`

java的内存模式

阅读更多

Java的内存模式

   Java的内存模式,亦即Java执行处理系统所设置的内存模式,规定于"Java语言规格书第二版"的第17章"线程与锁定",但这个规格在解读上十分困难,因此,下面针对一下几个问题进行详细的解说。

 

主存储器与工作存储器

   Java的内存模式分为主存储器和工作存储器两种,它们各有自己的职责。

   主存储器是实例位置所在的区域,所有的实例都存在与主存储器中。尤其,实例所拥有的字段即位于主存储器的区域内。主存储器为所有线程所共有的,因此可以认为是共享的内存区域。

   工作存储器为各个线程所拥有的工作区,所有有的线程都有自己专用的工作存储器。在工作存储器内,存在有主存储器中必要的部分的拷贝,称为工作拷贝。

 

字段的引用

   线程无法对主存储器直接进行操作,因此它也无法直接引用字段的值。

   当线程欲引用字段的值时,会一次将值从主存储器拷贝到工作存储器上。通过此来拷贝所有得到的值,会成为工作拷贝。拷贝完成后,线程就会引用工作拷贝。

   当同一线程再度引用同一个字段的值时,会发生什么事情呢?线程或许会引用刚刚所制作的工作拷贝,也可能会先重新从主存储器拷贝到工作存储器,然后才引用工作拷贝。会出现哪种状况,完全是由java执行处理系统来决定。

 

指定字段

   线程无法直接对主存储器进行操作,因此它也无法将值直接指定给字段。

   当线程欲将值指定给字段时,会一次将值指定给位于工作存储器上的工作拷贝。指定完成后,工作拷贝的内容便会映像到主存储器。至于何时会映像到主存储器,则是由java执行处理系统来决定。

   当同一个线程反复指定至同一个字段时,会发生什么事呢?在反复进行指定的期间,线程有可能只会对工作拷贝进行指定,此时,只有指定的最后结果会拷贝到主存储器。另外,线程也有可能在每次进行指定时,进行拷贝到主存储器的操作。会出现哪种情况,也是由java执行处理系统来决定的。

分享到:
评论

相关推荐

    java内存模式

    java内存模式

    Java设计模式精讲

    您是一个初级的 coder,可以从中领会到怎么设计一段优秀的...您是一个高级程序员,可以从中全面了解到设计模式以及 Java 的边角技术的使用;您是一个顶级的系统分析师,可以从中获得共鸣,寻找到项目公共问题的解决办法

    java设计模式

    java设计模式

    JAVA内存管理模式研究.pdf

    JAVA内存管理模式研究

    最全 java23种设计模式 Debug模式+内存分析

    最全 java23种设计模式 Debug模式+内存分析

    java设计模式+内存分析

    最近的设计模式,可以直接下载。很好看的,实际操作,可以帮你很好的了解设计模式,另外帮助你进行开源框架的快速分析

    java设计模式(1)

    java设计模式,IT软件培训机构的讲义,适合初学者!

    java设计模式,学java'的同志需要看看

    java的设计模式,供大家参考一下!!!!!!!!!!!!!!!!!!

    应用示例-Java设计模式及应用案例(第2版)-[共11页].pdf

    180 Java 设计模式及应用案例(第 2 版) public CellContext2(String strPhone, String name, float price){ this.strPhone = strPhone; this.name = name; this.price = price; } public int getMark(){ int mark ...

    Java Bug模式详解

    Java.Bug模式详解 第1章 混乱环境下的灵活方法 1.1 软件设计、实现和维护的趋势 1.1.1 对于稳定、安全 系统的需求增加 1.1.2 传统软件工程技 术的局限性 1.1.3 开放源代码的软 件项目的可利用性 1.1.4 对于...

    java设计模式源码和笔记(第一部分)

    java设计模式 附带个人笔记 eclipse下实现 import后直接运行

    JAVA设计模式(单态模式和简单工厂模式)

    简单工厂模式又叫静态工厂模式,顾名思义,它是用来实例化目标类的静态类。下面我主要通过一个简单的... 使用Singleton的好处还在于可以节省内存,因为它限制了实例的个数,有利于Java垃圾回收(garbage collection)。

    java 设计模式幽默解读

    第一部分 大旗不挥,谁敢冲锋;第二部分 真刀实枪 ——23种设计模式完美演绎;第三部分 谁的地盘谁做主 ——设计模式PK;第四部分 完美世界 ——设计模式混编;第五部分 扩展篇

    java设计模式【之】享元模式【源码】【场景:多缓存可选模式】

    java设计模式【之】享元模式【源码】【场景:多缓存可选模式】 /** * 享元模式(预加载单例) * “元” 理解为 “同一地址对象” * 运用共享技术,减少对象的创建,降低对象的数量,降低内存消耗,提高性能 * ...

    使用JAVA内存数据库h2database性能优化

    我们在开发应用都知道IO是系统性能的瓶颈,在应用开发中,我们会经常碰到以下问题: 1.系统在不断实时地访问数据库时,一秒钟对同一个表操作几千,几万次以上,导致数据表死锁或则处理太慢; ...

    JAVA设计模式详细论述

    创建模式 结构模式 行为模式等的最详细论述。

    java 常用设计模式chm

    总之原则是,对于开销很大的对象,只有在使用它时才创建,这个原则可以为我们节省很多宝贵的Java内存. 所以,有些人认为Java耗费资源内存,我以为这和程序编制思路也有一定的关系. 如何使用Proxy? 以Jive论坛系统为例,...

    策略模式的实现,通过反射

    策略模式代码,两种方式实现,第一种,通过map存储方式,第二种,通过配置文件加反射方式

    图解java多线程设计模式

    java.util.concurrent包、synchronized关键字、Swing框架、Java内存模型等内容也均有涉及,不仅能够了解Java多线程的相关知识,还可加深对Java语言的理解。 本书适合以下读者阅读 a.对多线程感兴趣的人 b.对Java...

Global site tag (gtag.js) - Google Analytics