- 博客(6)
- 资源 (6)
- 收藏
- 关注
原创 GC回收机制
GC三问 回收那些内存 什么时候回收 如何回收 程序计数器,虚拟机栈,本地方法栈三个区域都是随着线程而生,线程而灭;栈中的栈帧随着方法的进入和退出而有序的执行这出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知,因此这几个区域的内存分配和回收具有确定性。 而java堆不一样,一个接口中的多个实现类需要的内存可能是不一样,一个方法中的多个分支需要的内存也可能不一样,我们...
2018-10-22 14:34:03 201
原创 Java 堆内存溢出(OutOfMemoryError)相关记录
为什么对java对内存溢出? Java堆是用来储存对象实例的,当只要不断的创建对象,并保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象,那么在对象数量到达最大堆的容量限制之后就会产生内存溢出异常 -Xms和-Xmx设置一样可以避免对自动扩容 通过参数-XX:+HeapDumpOnOutOfMemoryError可以让虚拟机在出现内存溢出时Dump出当前内存堆转存快照进行...
2018-10-15 13:50:37 255
原创 JVM中对象的内存布局
在JVM中对象在内存中储存的布局可以分为三个部分: 对象头(Header),实例数据(Instance Data)和对齐填充(Padding)。 对象头(Header) ...
2018-10-10 13:58:39 278
原创 jvm内存分配的基本概念
程序计数器 是一块较小的内存空间,可以把它当做是当前线程所执行的字节码的行号指示器。每个线程都会有一个独立的程序计数器,各个线程之间的计数器互不影响,独立存储,我们称这类内存区域为“线程私有”的内存。此内存区域是唯一一个在jvm中没有规定任何内存溢出(OutOfMemoryError)情况的区域。 java虚拟机栈 和程序计数器一样也是线程私有的,生命周期和线程的周期相...
2018-10-09 10:12:39 140
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人