一个优秀Java程序员,必须了解Java内存模型、GC工作原理,以及如何优化GC的性能、与GC进行有限的交互,有一些应用程序对性能要求较高,例如嵌入式系统、实时系统等,只有全面提升内存的管理效率,才能提高整个应用程序的性能。本文将从JVM内存模型、GC工作原理,以及GC的几个关键问题进行探讨,从GC...
分类:
编程语言 时间:
2014-06-24 11:52:29
阅读次数:
310
Java的内存模型分为主存储器和工作存储器两种。 主存就是实例位置所在的区域,主存为所有线程锁共用;每个线程都拥有自己独立的作业区,称为工作存储器。 当一个线程需要对某对象的一些字段进行操作时,就会把这些需要的信息从主存储器copy到自己的工作存储器,而这个拷贝就叫做工作拷贝。
说到这里大家都可以想象Java是如何保证内存一致的了。主存上面的内容就像是个标准,而每个线程的工作拷贝就像是草...
分类:
编程语言 时间:
2014-06-22 21:23:29
阅读次数:
242
原文出自:http://developer.51cto.com/art/200906/129353.htm作为Internet最流行的编程语言之一,Java现正非常流行。我们的网络应用程序就主要采用Java语言开发,大体上分为客户端、服务器和数据库三个层次。在进入测试过程中,我们发现有一个程序模块系...
分类:
编程语言 时间:
2014-06-21 06:40:47
阅读次数:
249
Java内存模型是保障多线程安全的根基,这里仅仅是认识型的理解总结并未深入研究。
一、什么是内存模型,为什么需要它
Java内存模型(Java Memory Model)并发相关的安全发布,同步策略的规范、一致性等都来自于JMM。
1 平台的内存模型
在架构定义的内存模型中将告诉应用程序可以从内存系统中获得怎样的保证,此外还定义了一些特殊的指令(称为内存栅栏或栅栏),当...
分类:
编程语言 时间:
2014-06-20 11:36:41
阅读次数:
289
贪婪是一种原罪,不要再追求性能的路上离正确越来越远。
内存模型
java内存模型重排序
锁synchronized
什么是锁独占锁分拆锁分离锁分布式锁
volatile
内存模型
java内存模型
提到同步、锁,就必须提到java的内存模型,为了提高程序的执行效率,java也吸收了传统应用程序的多级缓存体系。
在共享内存的多处理器体系架构中,每...
分类:
其他好文 时间:
2014-06-18 12:00:22
阅读次数:
225
当竞争对手的应用程序与我们的应用程序运行在同一个系统上时,我们的应用程序在内存中的敏感数据是很容易被竞争对手获取的。如果我们的应用程序符合下面几种情况之一,那么竞争对手可以获取到我们应用的敏感数据:
1)应用程序使用对象来存储敏感数据,而且在对象使用完后,对象的内容没有被清除或者对象没有被垃圾回收;
2)在操作系统运行内存管理任务或者执行休眠等功能时,应用程序的内存分页将被置换到磁盘上保存;...
分类:
编程语言 时间:
2014-06-16 19:18:30
阅读次数:
267
一、jvm内存结构程序计数器(Program Counter Register)、JVM虚拟机栈(JVM Stacks)、本地方法栈(Native Method Stacks)、堆(Heap)、方法区(Method Area)(1)PCR尾随线程生命周期,记录当前运行到的.class字节码行数,用于...
分类:
编程语言 时间:
2014-06-16 13:40:31
阅读次数:
266
JAVA线程 工作内存 主内存java内存模型中的八种操作:lock unlock read load
use assign store write八种基本操作必须满足的规则volatile当一个变量被定义成volatile之后,它将具备两种特性
一是保证此变量对所有线程的...
分类:
编程语言 时间:
2014-06-13 13:22:55
阅读次数:
294
可见性Java内存模型(JMM)规定了jvm有主内存,主内存是多个线程共享的。当new一个对象的时候,也是被分配在主内存中,
每个线程都有自己的工作内存,工作内存存储了主存的某些对象的副本,当然线程的工作内存大小是有限制的。(1) 从主存复制变量到当前工作内存 (read and
load)(2) ...
分类:
编程语言 时间:
2014-06-11 10:30:35
阅读次数:
291
1.
垃圾回收器职责分配内存保证有引用对象不被回收保证无引用对象被回收设计方式串行(Serial)与并行(Parallel)串行的回收方式, 每次只能执行一种操作.
例如, 在多 cpu 的情况下, 只能有一个 cpu 来执行回收.而并行则可以将回收任务分为多部分交给不同的 cpu 同时执行. 并行...
分类:
编程语言 时间:
2014-06-09 13:30:19
阅读次数:
395