美文网首页
Day5 JVM内存分配

Day5 JVM内存分配

作者: 小周爱吃瓜 | 来源:发表于2022-03-13 21:52 被阅读0次
  • 类的加载:
    加载类,分配内存,初始化,设置对象头.

  • 对象创建和内存分配

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

相关文章

网友评论

      本文标题:Day5 JVM内存分配

      本文链接:https://www.haomeiwen.com/subject/cilddrtx.html