深入理解jvm
听说明天有台风
我不喜欢吃烧烤
展开
-
深入理解JVM虚拟机(三)关于判断对象是否回收的两种算法
思考GC需要完成的三件事情:1.哪些内存需要回收?2.什么时候回收?3.如何回收?问题一:到底是什么样的方法是在栈中的,什么方法是在堆中的呢?具体可以看https://blog.csdn.net/Genjicoo/article/details/104933059比较通俗的讲解了堆和栈中具体存的是什么。为什么要去了解gc和内存分配?当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成...原创 2020-03-17 23:36:55 · 196 阅读 · 0 评论 -
举例讲解JAVA中的堆和栈
Java中堆和堆栈的区别 1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 (降低内存或者说是程序方面的内存泄露等问题出现的几率?)...转载 2020-03-17 22:23:32 · 251 阅读 · 0 评论 -
深入理解JVM虚拟机(二)对象的创建、内存布局以及访问定位
对象的创建声明:本文讨论的对象仅限于普通Java对象,不包括数组和class对象等虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过,如果没有,那必须先执行相应的类加载过程。类加载检查通过后,接下来虚拟机将为新生对象分配内存,分配方式有两种指针碰撞和空闲列表。具体使用哪一种分配方式取决于Jav...原创 2020-03-15 17:35:03 · 206 阅读 · 0 评论 -
深入理解JVM虚拟机(一)Java内存区域的划分
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。程序计数器Java虚拟机栈本地方法栈Java堆方法区运行时异常直接内存...原创 2020-03-15 15:39:00 · 154 阅读 · 0 评论