美文网首页
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