知识大全 Java内存结构与模型

Posted

篇首语:生活就像海洋,只有意志坚强的人,才能到达彼岸。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java内存结构与模型相关的知识,希望对你有一定的参考价值。

Java内存结构与模型  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  一 java内存结构

   Heap(堆) 实例分配的地方 通过 Xms与 Xmx来设置

   MethodArea(方法区域) 类的信息及静态变量 对应是Permanet Generation 通过 XX PermSize来设置

   JavaStack(java的栈) 虚拟机只会直接对Javastack执行两种操作 以帧为单位的压栈或出栈 通过 Xss来设置 若不够会抛出StackOverflowError

   ProgramCounter(程序计数器) 每一个线程都有它自己的PC寄存器 也是该线程启动时创建的 PC寄存器的内容总是指向下一条将被执行指令的饿地址 这里的地址可以是一个本地指针 也可以是在方法区中相对应于该方法起始指令的偏移量

   Nativemethodstack(本地方法栈) 保存native方法进入区域的地址

  当中Heap和MethodArea是被所有线程的共享使用的

  而Javastack Programcounter和Nativemethodstack是以线程为粒度的 每个线程独自拥有自己的部分

  二 内存模型

  由以上可以知道java内存分为main memory和线程的Working Memory 就会涉及到这两种内存数据同步以及多个线程操作时数据一致性和可见性的问题 这就不可避免要加锁了 在java中可采用如下的形式

     synchronized关键字或使用ncurrent locks中的锁

     volatile关键字 Volatile表示的是线程每次操作都是在主内存中进行 这只能保证其可见性 而不能保证其的原子性 要有原子性还得加锁

     final变量(基本类型 类类型还是可以改值的)

  三 如何保证线程安全

   每个线程只操作自有的数据 这个可能性要小

   设计的类无数据成员 也就没有共享变量 要有可用是 final或volatile

cha138/Article/program/Java/hx/201311/26489

相关参考

知识大全 JVM内存模型及垃圾收集策略解析(2)

JVM内存模型及垃圾收集策略解析(2)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  二JAVA

知识大全 Java内存泄漏分析与解决方案

Java内存泄漏分析与解决方案  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java内存泄漏是

知识大全 Java垃圾收集算法与内存泄露

Java垃圾收集算法与内存泄露  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  垃圾收集算法的核心

知识大全 JVM运行时内存空间结构

JVM运行时内存空间结构  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JVM执行Java程序的

知识大全 JAVA的安全结构

JAVA的安全结构  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JAVA的安全模型不同于传统的

知识大全 java内存泄漏的定位与分析

  ArrayList就是传说中的动态数组就是Array的复杂版本它提供了如下一些好处动态的增加和减少元素灵活的设置数组的大小……  认真阅读本文我相信一定会对你有帮助比如为什么ArrayList里面

知识大全 JVM内存模型及垃圾收集策略解析(1)

JVM内存模型及垃圾收集策略解析(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一JVM内

简述非组蛋白与DNA相互作用的主要结构模型

①a螺旋-转角-a螺旋模式:蛋白质形成对称的同型二聚体,每个单位由20个氨基酸的小肽组成,两个a螺旋相互连接成β转角。羧基端的a螺旋负责识别DNA大沟的特异碱基信息,另一个螺旋与磷酸戊糖链骨架接触。 

知识大全 深入Java核心 Java内存分配原理精讲

深入Java核心Java内存分配原理精讲  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java

知识大全 java语言与c++相比,有哪些优点?

java语言与c++相比,有哪些优点?主要是这两种开发者对内存地址变量的不同理解,使两种语言在编程的思维上有所差异。C中存在指针变量,而且每个指针对应着一个真实的物理内存地址,他可以对相应地址中的内存