JVM笔记 | Java内存管理
Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。 《深入理解Java虚拟机》 概述 对于一个Java程序员而言,由于JVM的自动内存管理机制,不需要为每一个new操作写对应的delete/free操作,也不容易出现内存泄露和内存溢出的问题。然而一旦出现内存泄漏和溢出方面的问题,如果对JVM内存管理机制不了解,那么排查错误将十分艰难。 运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,即运行时数据区。这些区域都有各自的用途、以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有的区域依赖用户线程的启动和结束而建立和销毁。 1. 程序计数器(Program Counter Register) 是一块较小的内存空间,可看作当前线程所执行的字节码的行号指示器。 如果正在执行一个Java方法,计数器记录正在执行的虚拟机字节码指令的地址。 如果正在执行一个Native方法,计数器值为空(Undefined)。 Java虚拟机的多线程...

