![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM调优
文章平均质量分 77
UkeLiu
不管什么时候努力,都不算晚,重要的是你开始了自己的目标。一个幽默风趣的程序员
展开
-
深入了解JVM的内存机制和垃圾回收机制
对象内存分配机制对象内存可在两个地方进行分配,一个是栈,一个是堆。对象栈上的分配JVM通过逃逸分析确定该对象不会被外部访问,如果不会逃逸就可以将该对象在栈上分配内存,这样该对象所占用内存空间就可以随栈帧出栈而销毁减少垃圾回收的压力对象逃逸分析:就是分析对象动态作用域,当一个对象在方法中被定义后,它可能被外部方法所引用,例如作为调用参数传递到其他地方中。1 public User test1() {2 User user = new User();3 user.setId(1);4原创 2022-03-22 10:32:20 · 3376 阅读 · 0 评论 -
深入了解JVM底层如何创建对象与内存分配机制
对象创建的主要流程:1.new指令new指令可能是new关键字、对象克隆、对象序列化等2.类加载检查JVM遇到一条new指令时 ,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号代表的类是否已被加载、解析和初始化过。如果没有,那必须的执行相应的类加载过程。3.分配内存在类加载检查通过后,接下来JVM将会为新生对象分配内存。对象所需内存的大小在类加载完成后便可完全确定,为对象分配空间的任务等同于把一块确定大小的内存从JAVA堆中划分出来这原创 2022-03-21 14:54:38 · 3112 阅读 · 0 评论 -
JVM 内存结构
JVM虚拟机内存:堆:存放所有的数据,而其他内存区域都是存放的堆中数据的内存地址GC(垃圾回收)也是发送在堆区域,当Eden区满了,就会发生MinorGC,将Eden区未被引用的对象销毁掉,还在引用的对象放到S0和S1区域,当S0和S1区域满了,或者对象年龄到了15(jdk8默认值)或者是大对象,就会被放到老年代(也叫持久代),当老年代内存满了,就会触发FullGC,清理所有区域的对象,如果FullGC完成后,老年代的内存还是满的,就会发生OOM(内存溢出)栈:可以理解为线程,栈里面存...原创 2022-03-14 18:09:01 · 113 阅读 · 1 评论