JAVA内存结构和JAVA内存模型

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

《JAVA内存结构和JAVA内存模型》《JAVA内存结构和JAVA内存模型》《JAVA内存结构和JAVA内存模型》《JAVA内存结构和JAVA内存模型》

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

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

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

    原文作者:java内存模型
    原文地址: https://blog.csdn.net/xiaojia_wahaha_/article/details/79094118
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞