自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 1.设计模式7大原则

1.开闭原则软件实体应当对扩展开放,对修改关闭:即当应用需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。软件实体包括:项目中的模块,类和接口,方法。作用对软件测试的影响:测试时只需要对扩展的功能进行测试。提高代码的可复用性提高软件的可维护性2.里氏替换原则继承必须确保超类所拥有的性质在子类中仍然成立:即子类可以扩展父类的功能,但是不能改变父类原有的功能。作用里氏替换是实现开闭原则的重要方式之一。克服了继承中重写父类造成的可

2020-07-27 18:06:46 238

原创 记20200725后端饭局后感

记20200725后端饭局后感起因饭局记录饭局主要内容1. 吐槽现项目组组长及技术负责人2. 谈已跳槽大佬的公司,及面试经验3. 推理公司出现这种情况的原因及解决方案4. 谈公司出现一些特殊事情最后总结起因随着公司业务扩大,且公司想要进行ipo,所以需要扩大互联网中心的规模,提升公司信息化的进程,以进行更高效的业务办公。中心由100人不到扩展到接近200人的规模,由此而引发了新的管理问题:中心需要更高效更合理的管理方式。由于原来的管理人员能力不足以进行如此规模的人员管控,所以招了(猎头猎的?关系进来的?

2020-07-26 00:11:50 559

原创 类加载过程是线程安全的吗?

答案是:是的。ClassLoader.loadClass()源码:Unless overridden, this method synchronizes on the result of <getClassLoadingLock> method during the entire class loading process.除非是重写,那么这个整个加载过程都是同步的。...

2020-04-29 14:38:23 2953

原创 1.基础篇--面向对象

1.什么是面向过程?自顶而下的编程模式。把问题分解成一个一个步骤,每个步骤用函数实现,依次调用即可。就是说,在进行面向过程编程时,不用考虑太多,开始就定义一个函数,然后再一步步实现即可。典型用法:实现一个冒泡排序算法2.什么是面向对象?将事务高度抽象化的编程模式。将问题分解成一个一个步骤,每个步骤进行相对应的抽象,形成对象,通过不同对象间的调用,组合解决问题。就是说...

2020-04-15 16:08:03 224

原创 2.基础篇--面向对象三大基本特征,五大

封装封装就是指把客观上的事务封装成抽象的类Class,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏,即类定义、方法、属性定义。封装是面向对象的特征之一,是对象和类概念的主要特性。简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防...

2020-04-15 16:07:37 190

原创 Hibernate ObjectNotFoundException:hibernate 懒加载 对象信息找不到

线上突然出现问题:本着这可能是环境问题,应该不是我写的,这一眼就知道是历史bug的心情排查下。Method threw 'org.hibernate.ObjectNotFoundException' exception. Cannot evaluate *.*.entity.*看异常就是找不到对象,对象是数据库直接查出来的怎么突然就没有,且前面用这个对象处理了一堆的业务也没问题。调试下...

2020-04-15 12:13:46 950

原创 13. Java 关键字:transient,instanceof,volatile,synchronized,final,static,const

1.transient作用于变量上,防止属性被序列化。一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。 transient关键字只能修饰变量,而不能修饰方法和类。注意,局部变量是不能被transient关键字修饰的。变量如果是用户自定义类变量,则该类需要实现Serializable接口。 一个静态变量不管是否被transient修饰,...

2019-03-27 13:34:28 975

原创 12. Integer缓存机制

从Java5开始,为了优化频繁使用的Integer的空间和时间性能,采用了缓存实现。public static Integer valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i +...

2019-03-22 15:30:46 215

原创 11. String基础知识

String:内部用final的char数组实现,是一个final类,也就是说不能被继承,所以他一旦被实例化就无法被修改。String需要特别注意的有: replaceFirst、replaceAll、replace区别 String 对"+" 的重载 String.valueOf和Integer.toString的区别 1.replaceFirst、replac...

2019-03-22 14:50:41 327

原创 10. 模块化(jboss modules、osgi、jigsaw)-破坏双亲委派

待补充

2019-03-21 15:57:59 730 1

原创 9. 类加载器-类加载过程,双亲委派

本文为个人学习用,所以内容不一一转载,详情查看https://blog.csdn.net/championhengyi/article/details/78680700

2019-03-21 15:39:38 252

转载 8. HotSpot即时编译及编译优化

首先我们要知道,通常javac将程序源代码编译,转换成java字节码(.java文件编译转换成.class文件,这也是我们通常意义上所理解的编译)。但是字节码不是机器语言,想要让机器执行,还需要通过JVM来解释字节码,将其翻译成对应的机器指令,逐条读入,逐条解释翻译(这个过程也叫编译,更深层次的编译)。但是通过解释执行,它的执行效率必定会比可执行的二进制字节码程序慢很多(这就是传统的JVM解释器I...

2019-03-21 14:53:02 656

原创 7 Java对象模型 Oop-Klass模型

对象在堆内存中的结构:以HotSpot虚拟机为例,对象在堆内存的布局分为三个区域,分别是对象头(Header)、实例数据(Instance Data)、对齐填充(Padding)。其中对象头包括有Mark world,元数据指针。对象头:Mark World用于存储对象运行时的数据,比如HashCode,锁状态标识,GC分代年龄等。元数据指针用于指向方法区中的目标类的类型信息,通过元数...

2019-03-21 11:32:17 505

原创 6. jvm垃圾回收机制

废话不多说,直接开始正文: 上一篇介绍过,程序计数器、虚拟机栈、本地方法栈 3 个区域是线程的私有内存区域,随线程的生命周期生灭。随着线程的销毁,这几个区域的内存就会被回收。而 Java 堆和方法区则不一样,这两个区域是线程共享区。堆中存放着实例对象,而在程序运行中,实例是不停的创建销毁的,所以GC在堆中频繁发生的。一个接口中的多个实现类需要的内存可能不一样,一个方法中的多个分支需...

2019-03-20 15:14:53 317

原创 5. Jvm内存结构-基础知识

《深入理解Java虚拟机(第二版)》中的描述如下:JVM和系统调用之间的关系方法区和堆是所有线程共享的内存区域;而java栈、本地方法栈和程序员计数器是运行是线程私有的内存区域。下面我们详细介绍每个区域的作用Java堆(Heap)对于大多数应用来说,Java堆(Java Heap)是Java虚拟机所管理的内存中最大的一块。Java堆是被所有线程共享的一块内存区域,在虚拟...

2019-03-19 16:29:22 259

原创 4. Java8 Map集合基础知识点

Map:Map集合:子接口:Bindings,ConcurrentMap<K,V>,ConcurrentNavigableMap<K,V>,LogicalMessageContext,MessageContext,NavigableMap<K,V>,SOAPMessageContext,SortedMap<K,V>实...

2019-03-19 14:49:50 365

原创 3.java8 队列queue基础知识

集合:QueueQueue:Deque,PriorityQueue,PriorityBlockingQueue,ArrayBlockingQueueQueue用于模拟队列这种数据结构。队列通常是指“先进先出(FIFO)”的容器。队列的头部保存在队列中存放时间最长的元素,尾部保存存放时间最短的元素。新元素插入到队列的尾部,取出元素会返回队列头部的元素。通常,队列不允许随机访问队列中的元素。...

2019-03-19 14:49:40 1813 2

原创 2. java8 Set集合知识点

集合:SetSet集合包含有:EnumSet,SortedSet,HashSet,TreeSet,LinkHashSet,其中treeSet是SortedSet的进一步实现,LinkHashSet是HashSet的进一步实现。1. EnumSet:EnumSet类是一种专为枚举类设计的集合类,EnumSet中的所有元素都必须是指定枚举类型的枚举值,该枚举类型在创建EnumSe类时...

2019-03-19 14:49:28 1003

原创 1.Java8 List基础知识

集合:ListList包含有ArrayList,Vector,LinkedList,Stack,其中Stack是Vector的进一步实现1. ArrayList需要注意点:底层结构使用数组实现,初始容量,扩容规则public class ArrayList<E> extends AbstractList<E> implements List&...

2019-03-19 14:49:12 345

内含《java8函数式编程》+《 Java 8实战 》.pdf

Java 8实战全面介绍了Java 8 这个里程碑版本的新特性,包括Lambdas、流和函数式编程。有了函数式的编程特性,可以让代码更简洁,同时也能自动化地利用多核硬件。全书分四个部分:基础知识、函数式数据处理、高效Java 8 编程和超越Java 8,清晰明了地向读者展现了一幅Java 与时俱进的现代化画卷。

2018-04-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除