jvm内存理解

jvm内存理解

方法区:存储类的信息、常量、静态(线程共享的)

堆内存:使用new的对象、定义的数组(线程共享的)

java栈:基本数据类型、局部变量(线程私有的)

本地方法栈:是java语言调用外部语言(比如调用c语言方法)调用外部语言的方法都是使用native进行修饰的

执行引擎:执行字节码指令

pc寄存器:是一个以线程私有的一块较小的内存空间,用于记录所属线程所执行的字节码的行号指示器(相当于代码走到哪一行的标识)

开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件),再然后字节码被装入内存,一旦字节码进入虚拟机,它就会被解释器解释执行,或者是被即时代码发生器有选择的转换成机器码执行。然后垃圾回收机制在空闲时间以不定时的方式动态回收无任何引用的对象占据的内存空间。

这个是我个人对于jvm内存的理解,要是有不对希望大佬提出。