深入理解JVM
老鼠只爱大米
只会写诗的程序员
展开
-
堆和栈的区别
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结转载 2016-10-11 21:35:11 · 245 阅读 · 0 评论 -
深入理解Java内存回收机制
JVM通过GC(Garbage Collection,垃圾回收器)来回收堆和方法区中的内存,这个过程是自动执行的。说到Java GC机制,其主要完成3件事:确定哪些内存需要回收;确定什么时候需要执行GC;如何执行GC。JVM主要采用回收器的方式实现GC,主要的回收器有引用计数回收器和跟踪回收器。 一、引用计数回收器 (1)引用计数器采用分散式管理方式,通过计数器记录对象是否被引用。当计数器为0...原创 2019-09-10 15:01:04 · 4637 阅读 · 0 评论