JVM
文章平均质量分 73
用于复习JVM相关知识概念
爱学习的阿舒
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JVM 第三节——垃圾回收 GC
判断对象可以回收: 引用计数法: 只要一个对象被其他引用,计数就会增加,如果没有引用了,计数就为0,可以被回收。 但存在循环引用时,就无法进行垃圾回收。 可达性分析算法: 根对象——肯定不能被当作垃圾的对象 扫描堆中的对象,虚拟机的垃圾回收器沿着GC root对象为起点的引用链来找到该对象,找不到,表示可以回收。 哪些对象可以作为GC root? system class系统类,native stack底层本地方法,busy monitor锁的监控,thread线程。 四种引用:原创 2022-03-28 00:00:56 · 325 阅读 · 0 评论 -
JVM 第二节
直接内存: 常见于NIO操作,用于数据缓冲区 分配回收成本较高,但读写速度快。 磁盘文件 先进入到系统缓存区,再复制到Java缓冲区 直接内存,在操作系统和Java内存都可以读取。 不受JVM内存回收管理。 直接内存的释放,需要调用unsafe.freeMemory()方法来释放 分配和回收原理: 使用了Unsafe对象完成直接内存的分配回收,并且回收需要调用freeMemory方法。 ByteBuffer的实现类内部,使用了Cleaner虚引用来检测ByteBuffer对原创 2022-03-26 20:46:38 · 223 阅读 · 0 评论 -
JVM 第一节
Program Counter Register(程序计数器、寄存器) 二进制字节码必须经过解释器才能变成机器码,机器码被CPU执行。 程序计数器:记住下一条JVM指令的执行地址。 在物理上就是寄存器,读写速度最快的,位于CPU。 特点: 线程私有、唯一不会内存溢出。 虚拟机栈: Java virtual machine Stacks 栈的结构是先进后出的模式,每个线程运行所需要的内存,就是虚拟机栈。 每个线程只能有一个活动栈帧,对应当前执行的方法。 栈帧(Frame):存入原创 2022-03-26 19:45:03 · 679 阅读 · 0 评论
分享