- 博客(3)
- 收藏
- 关注
原创 JAVA面试题之面向对象
面向对象与面向过程: 面向对象与面向过程是两种不同的编程思想。面向对象更加注重事情有哪些参与者以及这些参与者有哪些行为,通过这些参与者的协调配合最终解决问题。面向过程则注重解决问题的步骤,按部就班地解决问题。引用别人的一个很形象的比喻,面向对象更像是纪传体,而面向过程更像是编年体。 举个例子,比如说洗衣服这件事。用面向对象的编程思想就是,洗衣服需要两个对象“人”和“洗衣机“。”人“有打开洗衣机、放洗衣液、放洗衣粉三个行为。”洗衣机“有”清洗“、”脱水“两个行为。通过人与洗衣机的配合就能完成洗衣服这件事。而用
2021-06-19 16:58:11 299 1
原创 根结点枚举与安全点
根结点枚举: 固定可作为GC Roots根对象主要有执行上下文(栈帧里面的本地变量表)和全局性的引用(方法区里的常量和类静态属性),在根结点枚举这一步骤需要暂停所有用户的线程。为了提高根结点枚举的效率,不用每次扫描所有执行上下文和全局性的引用,主流的虚拟机采用准确式收集的技术,即虚拟机有办法直接得到哪些区域存在引用。HotSpot虚拟机采用的是使用一组OopMap的数据结构来记录哪些位置存在引用。因引用关系变化复杂,若对每一条指令都生成一个OopMap,将会需要大量的存储空间。为解决此问题,提出安全点的概念
2021-06-12 12:36:03 224 2
原创 垃圾收集算法
垃圾收集算法 概述: 垃圾收集算法分为两大类:引用计数式垃圾收集(直接收集)和追踪式垃圾收集(间接收集),这里主要讨论追踪式垃圾收集。 分代收集理论: 弱分代假说: 绝大多数对象都是朝生夕灭的。 强分代假说:熬过多次垃圾收集过程的对象就越难以消亡。 跨代引用假说:跨代引用相对于同代引用仅占极少数。 Java虚拟机设计者根据第一第二条假说将Java堆分为不同区域(新生代和老年代)。新生代中,每次垃圾收集时都会有大量对象死亡,每次收集后存活的对象将会逐步晋升到老年代中。在局部回收中,新生
2021-06-11 20:39:34 118 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人