JAVA内存结构和JAVA内存模型

 2019-12-10 15:58  阅读(833)
文章分类:Java Core

JAVA内存结构:堆、栈、方法区;

![《JAVA内存结构和JAVA内存模型》][JAVA_JAVA]![《JAVA内存结构和JAVA内存模型》][JAVA_JAVA]![《JAVA内存结构和JAVA内存模型》][JAVA_JAVA]20191210001463\_1.png

堆:存放所有 new出来的东西(堆空间是所有线程共享,虚拟机气动的时候建立);栈:存放局部变量(线程创建的时候 被创建);方法区:被虚拟机加载的类信息、常量、静态常量等。

类加载系统:负责从文件系统或者网络加载class信息,加载的信息存放在方法区。 直接内存:JAVAnio库允许JAVA程序直接内存,从而提高性能,通常直接内存性能高于JAVA堆。读写频繁的场合可能会考虑使用。 本地方法栈:本地方法栈和JAVA栈类似,最大的不同为本地方法栈用于本地方法调用。JAVA虚拟机允许JAVA直接调用本地方法。 垃圾回收系统:是JAVA的核心。 pc寄存器:每个线程私有的空间。JAVA虚拟机为每个线程创建pc寄存器,在任意时刻一个JAVA线程总是在执行一个方法,这个方法被称为当前方法,如果当前方法不是本地方法,pc寄存器总会执行当前正在被执行的指令,如果是本地方法,则pc寄存器值为underfined,寄存器存放当前执行执行环境指针、程序技术器、操作栈指针、计算的变量指针等信息。 执行引擎:虚拟机的核心组件,负责执行虚拟机的字节码,一般先编译成机器码后执行。

JAVA内存模型:(共享内存模型JMM)定义了一个线程对另一个线程可见。共享变量存放在主内存中,每个线程都有自己的本地内存,当多个线程同时访问一个数据时,可能本地内存没有及时刷新到主内存,所以就会发生线程安全问题。

[JAVA_JAVA]:

点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> JAVA内存结构和JAVA内存模型

相关推荐