JVM
shanchahua123456
这个作者很懒,什么都没留下…
展开
-
JVM 对象内存分配流程
1. Java对象分配流程 2. 栈上分配 2.1 本质:Java虚拟机提供的一项优化技术 2.2 基本思想: 将线程私有的对象打散分配在栈上 2.3 优点: 2.3.1 可以在函数调用结束后自行销毁对象,不需要垃圾回收器的介入,有效避免垃圾回收带来的负面影响 2.3.2 栈上分配速度快,提高系统性能 2.4 局...转载 2020-03-28 16:09:03 · 757 阅读 · 0 评论 -
JVM 变量存储位置
1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.2. 栈:方法执行时创建方法栈帧,存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)3. 堆:存放所有new出来的对象。4. 静态域(方法区):存放静态成员(static定义的)5. 常量池(方法区):存放字符串常量和基本类型常量(p...原创 2018-03-18 22:20:12 · 4768 阅读 · 3 评论 -
触发JVM进行Full GC的情况及应对策略
本文参考:http://blog.csdn.net/chenleixing/article/details/46706039 1.调用System.gc2.老年代空间不足3、永生区空间不足4、CMS GC时出现promotion failed和concurrent mode failure5、统计得到的Minor GC晋升到旧生代的平均大小大于老年代的剩余空间6、堆中分配很大的对象...转载 2018-03-21 00:14:52 · 148 阅读 · 0 评论 -
JVM 老年代对象来源
一般情况是四种,但是尤其以第一种来源最多1.新生代对象每经历依次minor gc,年龄会加一,当达到年龄阀值会直接进入老年代。阀值大小一般为152.Survivor空间中年龄所有对象大小的总和大于survivor空间的一半,年龄大于或等于该年龄的对象就可以直接进入老年代,而无需等到年龄阀值3.大对象直接进入老年代4.新生代复制算法需要一个survivor区进行轮换备份,如果出现大量对象在minor...原创 2018-03-21 00:25:27 · 884 阅读 · 0 评论 -
JVM 调优/问题排查 浅谈
参考:https://www.cnblogs.com/xingzc/p/5756119.htmlhttps://www.cnblogs.com/yang-hao/p/5939487.htmlhttps://blog.csdn.net/chenjianandiyi/article/details/52442021https://www.bilibili.com/video/av52674...原创 2018-08-15 22:44:31 · 1091 阅读 · 0 评论 -
JAVA 类加载 随记
视频: https://www.bilibili.com/video/av295028771 JVM把Class加载到内存当中,检验解析初始化。默认使用的懒加载方式。以下步骤是并行执行 可以把加载源看成JAVA配置文件。解析:符号引用: 类名,基本类型直接引用:内存地址初始化:1 类初始化是线程安全的,多个线程同时触发类初始化时,只有...原创 2019-02-01 17:32:38 · 160 阅读 · 0 评论 -
JVM导图
https://blog.csdn.net/timczm/article/details/89076051转载 2019-04-12 15:39:22 · 104 阅读 · 0 评论