JVM从入门到放弃

JAVA虚拟机系列-垃圾回收

概述 Java和C/C++,虽然同为老牌且热门的语言,但它们最大的差别之一就是GC了。C/C++需要自己管理内存,而Java有垃圾自动收集回收机制,简直不要太爽。(然而,如果你搞一些骚操作,还是有可能会导致内存泄露)。 Java垃圾回收机制是在JVM实现的,那么JVM是怎么进行GC的呢。 JVM进行垃圾回收可以概括成两个阶段。 1. 判断对象是否可回收 要进行GC,就要判断哪些对象是不会引用的, ...

JAVA虚拟机系列-内存数据区域

概述 JVM虚拟机(这里讲的是HotSpot)的内存可以抽象的分为两大块 线程私有 程序计数器 虚拟机栈 本地方法栈 线程共享 堆 方法区 程序计数器 程序计数器是一块比较小的内存区域,主要的作用是记录当前线程执行的字节码指令位置。线程在执行字节码指令时,根据这个来定位当前执行的字节码指令位置,而且还可以通过它来计算下一个字节码指令。 例如以下某个方法的字节码,程序计数器的作用是保存本线程当前执行的指令位置,因此程序计数器是线程私有的, ...