
底层原理
文章平均质量分 95
卓尔货币
这个作者很懒,什么都没留下…
展开
-
SPI技术理解及应用
一、什么是SPI ?SPI 全称:Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的接口,它可以用来启用框架扩展和替换组件。面向的对象的设计里,我们一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。一旦代码里涉及具体的实现类,就违反了可拔插的原则,如果需要替换一种实现,就需要修改代码。为了实现在模块装配的时候不用在程序里动态指明,这就需要一种服务发现机制。java spi就是提供这样的一个机制:为某个接口寻找服务实现的机制。这有点类似IOC的原创 2021-09-01 20:33:26 · 3642 阅读 · 0 评论 -
Java虚拟机学习(3)—对象存活判定算法和垃圾收集算法
存活下来的物种,并不是最强的和最聪明的,而是最能适应变化的。—— 达尔文 《未知》一、对象存活判定算法垃圾收集器在对堆进行回收前,第一件事就是确定哪些对象还“活着”,哪些已经“死了”。1、引用计数算法引用计数算法是一个简单且高效的对象存活判定算法:在对象中添加一个引用计数器,每当有一个地方引用它时,计数器数值就加一,当引用失效时,计数器数值就减一。当计数器数值为0时,代表该对象不会再被引用。尽管这个算法非常通俗易懂,但是并没有什么主流Java虚拟机采用这个算法,主要是因为这个算法会遇到很多特殊.原创 2020-11-30 15:31:19 · 250 阅读 · 0 评论 -
Java虚拟机学习(2)—对象的创建、布局、访问
创造的神秘,有如夜间的黑暗,是伟大的。而知识的幻影,不过如晨间之物。 ——泰戈尔在了解了虚拟机内存区域划分之后,我们就可以更进一步探究Java对象是如何在内存上创建、存放并访问的了。1、对象的创建当Java虚拟机遇到一条字节码new指令时,首先将去检查这个指令的参数能否在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析、初始化过。如果没有,则首先进行类加载。当类加载完成后,新生对象所需的内存就已经可以确定了。所以为新生对象分配空间就是从堆空间中划分一块大小确定的内.原创 2020-11-30 15:30:35 · 103 阅读 · 0 评论 -
浅析原型模式中的clone()
更多精彩文章请访问我的个人博客(zhuoerhuobi.cn)最近学习到设计模式中的原型模式,在学习过程中,产生了对clone()实现的原理和效率的兴趣。原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。什么是clone(),和new有什么区别clone()方法,在内存中进行数据块的拷贝,复制已有的对象,也是生成对象的一种方式。前提是类实现Cloneable接口,Cloneable接口没有.原创 2020-07-01 11:30:07 · 824 阅读 · 0 评论