
JAVA虚拟机
黄山路443号
这个作者很懒,什么都没留下…
展开
-
深入理解Java虚拟机(六)类的加载机制
10. 虚拟机的加载机制类的生命周期类的加载过程:加载:将类的c读取如内存,并存放在方法区;验证:确保Class文件的字节流符合虚拟机要求;准备:为类变量(static)分配内存设置初始值(0,ture,null),如果类变量时final修饰,则赋给定值;解析 :将常量池中的符号替换为直接引用;初始化:执行初始化代码类的加载顺序:对于static关键字,他修饰的属性...原创 2020-03-09 15:13:55 · 191 阅读 · 0 评论 -
深入理解Java虚拟机(五)G1垃圾回收器
G1垃圾回收器特点原理优势原创 2020-03-06 23:47:11 · 345 阅读 · 0 评论 -
深入理解Java虚拟机(四)内存分配与回收策略
8. 内存分配与回收策略内存分配:堆内存分为新生代和老年代(默认1:2)新生代分为两部分:伊甸区和幸存区(幸存0区,幸存1区)(默认8:1:1);回收策略:新建对象优先在新生代Eden区分配;Eden区空间不够时会发生Minor GC:Minor GC的过程:复制—>清空—>互换Eden区满时触发第一次Minor GC,活着的对象拷贝到Sur...原创 2020-03-06 23:45:23 · 186 阅读 · 0 评论 -
深入理解Java虚拟机(三)垃圾收集算法与垃圾收集器
6.垃圾收集算法6.1 标记清除算法(Mark-Sweep)首先标记处需要回收的对象(见4),再统一回收所有被标记的对象。特点:效率低(标记和清除过程效率都低);会产生大量不连续的空间碎片。6.2 复制算法(Copying)将可用内存按容量划分为两块,每次只是用一块。当这块内存用完了,就将活着的对象复制到另一块,已使用的内存空间一次性清理掉。特点:无内存碎片,简单高效;内...原创 2020-03-06 23:43:00 · 151 阅读 · 0 评论 -
深入理解Java虚拟机(二)垃圾收集器:什么对象会被回收
2.垃圾收集器如何判断对象需要回收?引用计数算法: 给对象中添加一个引用计数器, 每当有一个地方引用它时, 计数器值就加1; 当引用失效时, 计数器值就减1; 任何时刻计数器为0的对象就是不可能再被使用的。难以解决循环引用问题!(给个例子)A.instance=B;B.instance=A;A=null;B=null;可达性分析算法(Java,C#): 当一个对象...原创 2020-03-06 16:30:55 · 235 阅读 · 0 评论 -
深入理解Java虚拟机(一)JAVA内存区域与内存管理
JVM 内存分哪几个区,每个区的作用是什么?运行时数据区:程序计数器当前线程所执行字节码的行号指示器;空间线程私有,各线程有自己独立的程序计数器,互不干扰;执行Java方法时,计数器记录正在执行的字节码地址,执行本地方法时,计数器值为空(Undefined),该区域不存在OOM。Java虚拟机栈栈帧存储局部变量(基本数据类型、引用类型和returnAdde...原创 2020-03-06 16:27:50 · 182 阅读 · 0 评论