Java
文章平均质量分 82
java相关
void丿
勤于思考,善于观察,勇于创新(指希望达到的状态)
通过讲清楚一个知识来学习这个知识
展开
-
Dubbo订阅发布的实现原理
Dubbo核心模块实现原理阅读笔记原创 2022-09-06 00:42:41 · 868 阅读 · 0 评论 -
Java对象创建的过程----个人总结
Java中对象的创建大致分为以下5步1.类加载检查2.分配内存3.初始化4.设置对象头5.执行<-init->方法1.类加载检查当JVM遇到字节码new指令(如new关键字,对象克隆,对象序列化)时。首先去检查这个指令的参数是否能在class对象常量池中定位到一个类的符号引用,并且检查这个符号引用的类是否被加载,解析和初始化。如果没有,则先执行相应的类加载过程。2.分配内存在类加载检查后,接下来JVM将为新生对象分配内存补充:① 指针碰撞和空闲列表的详细实现,可阅读《深入理解Jav原创 2020-09-11 11:36:47 · 248 阅读 · 0 评论 -
手撕阻塞队列
package other;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * 实现一个阻塞队列 * @author void * */public class BlockQueue<T> { private int size; // 队列长度原创 2020-07-26 23:48:24 · 273 阅读 · 0 评论 -
HotSpot算法细节实现----个人整理
前言:这一块内容比较晦涩,所以整理出一篇博客帮助自己深入理解。① 根节点枚举目前为止,所有的垃圾收集器(包括CMS,G1,ZGC)在初始标记这一阶段都是需要STW的,而如果这一步耗时过长,就无法满足所谓低延迟垃圾收集器的需求。在HotSpot的解决方案里,使用一个叫做OopMap的数据结构解决上述问题。在类加载动作完成时,HotSpot就会把对象内什么偏移量上是什么类型的数据计算出来,在即时编译过程中,也会在待定为止记录下栈和寄存器里哪些位置是引用。这样收集器在初始标记阶段就不用遍历GC Root了,原创 2020-07-25 00:43:55 · 547 阅读 · 0 评论 -
Java反射个人总结
反射的使用① Class.forName("packageName")② Person.class(),## 此方法性能最好。③ person.getClass()关于反射的脑图总结注意事项① 反射无法更改类中final修饰的String和基本类型。因为Java在编译时会把对此引用的地方替换成相应常量。② 尽量使用高性能的反射库,如joor,Apache的commons工具类。...原创 2020-07-19 14:55:22 · 217 阅读 · 0 评论 -
JVM垃圾收集机制概括
JVM垃圾收集机制· 部分前置知识可以阅读《深入理解JVM虚拟机》第三版。我这里从三个方面概述垃圾收集的框架,主要分为**what(哪些内存需要被收集),when(什么时候回收),how**(如何回收)。从这三个方面不断深入,再一层层揭开垃圾收集的面纱。...原创 2020-07-07 15:05:43 · 261 阅读 · 0 评论