写一点关于对JVM相关知识的理解,没有规划学习路线,想到哪里写到哪里。
JVM内存分为以下几个区域
1.PC寄存器
可以理解为汇编语言中的PC,每个Java实例/进程独享,实例的多个线程共享PC寄存器。
2.方法区
方法区有时被称为永久区,是存放Class相关信息/对象的内存区域,包含运行时常量池。
3.Java虚拟机栈
程序运行的内存区域,线程独享,不存在线程安全的问题,对同一个栈来说,每次方法调用都会生成一个栈帧。
4.本地方法栈
Java本地方法运行的内存区域。
5.Java堆
存放java对象或数组的内存区域,分为新生代和老年代,垃圾回收最频繁也是最有效的区域,多个线程共享,存在线程安全问题。
6.直接内存
Java直接可以访问的宿主机内存。