
jvm
逃不可逃的2020
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
new Object()发生了什么?
问题1 新建对象的过程 申请空间,此时成员变量赋初始值 调用构造方法,给成员变量赋值 关联引用 问题2 DCL和volatile的关系 DCL全程Double Check Lock指的是单例的懒汉模式双重非空检测 cpu在执行指令时会发生指令重排序,谁快就执行谁 volatile通过写操作加内存屏障,禁止指令重排 问题3 对象的结构 对象结构 含义 32位大小 64...原创 2020-05-02 21:27:13 · 992 阅读 · 0 评论 -
JVM类加载过程
类生命周期: 加载 在Java程序运行之前JVM会把编译完成的.class二进制文件加载到内存,后续提供程序使用,用到的就是类加载器ClassLoader 。加载阶段与连接阶段的部分内容(如一部分字节码文件格式验证动作)是交叉进行的,加载阶段尚未结束,连接阶段就可能开始了。但是夹在加载阶段进行的动作,仍然属于连接阶段的内容。 验证 文件格式验证,元数据验证,字节码验证,符号引用验证 准备 正...原创 2020-04-14 10:54:25 · 165 阅读 · 0 评论 -
垃圾回收器
七种垃圾回收器 java8 默认的是Parallel Scavenge-Parallel Old java9 默认是G1 ParallelScavenge 和ParNew的区别在于:1)可控制的吞吐量 2)自适应调节策略 使用策略: 单核或小内存:-XX:+UseSerialGC 多核,需要大吞吐量,如后台计算应用:-XX:+UseParallelGC 或者-XX:+UsePar...原创 2020-04-12 09:24:38 · 157 阅读 · 0 评论 -
四种引用
强引用:不会被回收 软引用:当内存充足时不回收,当内存不够时回收 弱引用:回收 case: public static void main(String[] args) { Object obj = new Object(); WeakReference<Object> weakReference = new WeakReference&...原创 2020-04-11 19:52:13 · 106 阅读 · 0 评论