-
类的加载:
加载类,分配内存,初始化,设置对象头. -
对象创建和内存分配
init方法就是按照我们的要求为属性赋值
有个工具叫做 jol-core
里面的classLayout工具可以查看对象头的信息。
- 什么叫做指针压缩技术?
-XX: +UseCompreddesOops 因为使用指针在主内存和缓存间移动数据会占用较大的内存.
栈上分配
public class Alloca {
public static void main(String[] args) {
Alloca alloca = new Alloca();
for (int i = 0; i < 1000; i++) {
alloc();
}
}
private static void alloc() {
Alloca alloca = new Alloca();
}
}
https://www.processon.com/view/link/622de15407912907c27e4e24
-
什么情况下会发生FullGC,老年代满了
空间担保-> eden区域不够了
动态年龄判断 默认是15次
长期存活的对象 -
GC 区别
MinorGC: 年轻代
MajorGC 老年代
FullGC 新,老生年代,方法区(元空间).
建议线上关闭 System.gc() ,关闭显式GC.
Screen Shot 2022-03-13 at 8.29.19 PM.png
网友评论