对象内存模型一. 栈(Stack) VS. 堆(heap)栈由系统自动管理,以执行函数为单位空间大小编译时确定(参数+局部变量)函数执行时,系统自动分配一个stack函数执行结束时,系统立即自动回收stack堆在c++中由程序员手动控制手动分配new和malloc手动释放delete和free具有全...
分类:
编程语言 时间:
2015-08-02 13:12:56
阅读次数:
262
volatile的特性当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个监视器锁对这些单个读/写操作做了同步。下面我们通过具体的示例来说明,请看下面的示例代码:class Volatil...
分类:
编程语言 时间:
2015-08-02 13:11:52
阅读次数:
132
并发编程模型的分类在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读...
分类:
编程语言 时间:
2015-08-02 13:10:02
阅读次数:
142
内存模型
java虚拟机在执行java程序的过程中把他所管理的内存划分为若干个不同的数据区域。包括:程序计数器、java虚拟机栈、本地发放栈、java堆、方法区。
内存模型如图:
程序计数器
一块较小的内存空间,它是当前线程所执行的字节码的行号指示器,字节码解释器工作时通过改变该计数器的值来选择下一条需要执行的字节码指令,分支、跳转、循环等基础功能都要依...
分类:
编程语言 时间:
2015-07-28 18:36:27
阅读次数:
157
本人记忆差,整理这个思维导图,相当于较认真的看了一遍,整个思维导图,基本上就是对原文的拷贝。
有了层级关系。和本人自己的一些理解。由于思维导图弄出来的图片大于100M了。所以就放出源文件,
更方便的阅读查阅。在csdn太穷了。下载2积分。有需要的希望意思意思。我也要去下载资料呢。有几点我觉得是看这个本书或则思维导图。你要明白的是:
1. 在java程序中,在底层执行的代码指令并不是完全按照顺序...
分类:
编程语言 时间:
2015-07-28 13:01:13
阅读次数:
154
一、概述
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干不同的数据区域,这些区域都有各自的用途以及创建和销毁的时间。Java虚拟机所管理的内存将会包括以下几个运行时数据区域,如下图所示:
下面就每一个区域进行阐述。
回到顶部
二、运行时数据区域
程序计数器
程序计数器,可以看做是当前线程所执行的字节码的行号指示器。在虚拟...
分类:
编程语言 时间:
2015-07-28 10:55:05
阅读次数:
130
单例模式:总是返回自己的同一个实例,它提供了对类的对象所提供的资源的全局访问点,并且返回的实例只能被实例化一次.
单例设计模式设计需要考虑的两个问题:
(1) :发起调用的对象不能以其他分配方式实例化单例对象,否则,就有可能创建单例类的多个实例
(2) :对单例对象实例化的限制应该与引用计数内存模型共存.
Singleton.h
#import...
分类:
移动开发 时间:
2015-07-27 13:09:08
阅读次数:
160
最近因项目存在内存泄漏,故进行大规模的JVM性能调优?,?现把经验做一记录。 一、JVM内存模型及垃圾收集算法 ?1.根据Java虚拟机规范,JVM将内存划分为: New(年轻代) Tenured(年老代) 永久代(Perm) ? ...
分类:
其他好文 时间:
2015-07-26 19:25:43
阅读次数:
275
一:Java技术体系模块图二:JVM内存区域模型1.方法区也称"永久代” 、“非堆”, 它用于存储虚拟机加载的类信息、常量、静态变量、是各个线程共享的内存区域。默认最小值为16MB,最大值为64MB,可以通过-XX:PermSize 和 -XX:MaxPermSize 参数限制方法区的大小。运行时常...
分类:
编程语言 时间:
2015-07-23 17:34:53
阅读次数:
139
前言:
用在多线程,同步变量。线程为了提高效率,将某个成员(A)变量拷贝了一份(B),线程中对A的访问其实访问的是B。只在某些动作时才进行A和B的同步。因此存在A和B不
一致的情况。volatile就是用来避免这个中情况的。volatile告诉jvm,它所修饰的变量不保留拷贝,直接访问主内存中的A。在Java内存模型中,有main memory,每个线程也
有自己的memory(寄存器).为...
分类:
编程语言 时间:
2015-07-22 23:00:30
阅读次数:
194