首页 > 其他 > 详细

008、聊聊JVM分代模型:年轻代、老年代、永久代

时间:2019-08-06 12:02:34      阅读:118      评论:0      收藏:0      [点我收藏+]
 本文是个人学习《从 0 开始带你成为JVM实战高手》内容总结,详细内容扫描二维码技术分享图片
 
1. 背景引入
                    
技术分享图片
 
执行过程:
1、 运行Kafka - 启动JVM进程,启动main线程,创建main线程对应的栈,创建main方法栈帧
2、 调用loadReplicasFromDisk()方法 - 创建方法对应的栈帧,栈帧中放入replicaManager引用,引用在堆中创建的ReplicaManager 对象,将栈帧入    main线程栈
3、调用replicaManager.load(),创建对应的栈帧,入栈
4、loadReplicasFromDisk方法执行完栈帧出栈出栈,Thread.sleep(1000)-一样创建栈帧,入栈出栈 
5、循环2-4 
 
2. 大部分对象其实存活周期极短 
方法内创建的对象生命周期极其短暂的,方法执行完就变成垃圾了
 
3. 少数对象是长期存活的 
静态变量引用的对象,会长期存活
静态变量初始,编译器会在字节码中生成一个静态代码块,代码块中放入初始化语句。也就是说,对象引用是类的初始化过程中完成的
??静态变量存在哪?什么时候静态变量会被清除? 
 
4. JVM分代模型:年轻代和老年代 
年轻代:放新年龄比较小的对象
老年代:经历过n次垃圾回收的对象
 
5. 为什么要分成年轻代和老年代?
 
因为对象存在生存时长的差异,对他们的管理需要采用不同的方法(垃圾回收算法)。
 
6. 什么是永久代? 
就是指方法区,存放类信息的
 

008、聊聊JVM分代模型:年轻代、老年代、永久代

原文:https://www.cnblogs.com/csldm/p/11307698.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!