码迷,mamicode.com
首页 >  
搜索关键字:java虚拟机    ( 4370个结果
深入理解Java虚拟机笔记---原子性、可见性、有序性
Java内存模型是围绕着并发过程中如何处理原子性、可见性、有序性这三个特征来建立的,下面是这三个特性的实现原理: 1.原子性(Atomicity)    由Java内存模型来直接保证的原子性变量操作包括read、load、use、assign、store和write六个,大致可以认为基础数据类型的访问和读写是具备原子性的。如果应用场景需要一个更大范围的原子性保证,Java内存模型还提供了loc...
分类:编程语言   时间:2014-12-17 00:23:19    阅读次数:236
Android的Dalvik虚拟机
一、?Dalvik虚拟机 其实也算是一个JAVA虚拟机,只不过它执行的不是class文件,而是dex文件 Dalvik虚拟机和ART虚拟机都实现了三个用来抽象Java虚拟机的接口: ??1.?JNI_GetDefaultJavaVMInitArgs?--?获取虚拟...
分类:移动开发   时间:2014-12-16 11:57:56    阅读次数:189
深入理解Java虚拟机笔记---内存模型
主内存与工作内存    Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量值这样的底层细节。此处的变量(Variable)与Java编译中所说的变量略有区别,它包括了实例字段,静态字段和构成数组对象的元素,但是不包括局部变量与方法参数,因为后者是线程私有的,不会被共享,自然就不存在竞争的问题。了为获得比较好的执行效率,Java内存模型并没有限...
分类:编程语言   时间:2014-12-15 21:50:01    阅读次数:209
深入理解Java虚拟机笔记---volatile变量的特殊规则
当一个变量定义成volatile之后,它将具备两种特性:第一是保证此变量对所有线程的可见性,这里的“可见性”是指当一条线程修改了这个变量的值,新值对于其它线程是可以立即得知的,变量值在线程间传递均需要通过主内存来完成,如:线程A修改一个普通变量的值,然后向主内存进行回写,另外一条线程B在线程A回写完成了之后再从主内存进行读取操作,新变量的值才会对线程B可见。    关于volatile变量的可见...
分类:编程语言   时间:2014-12-15 21:48:58    阅读次数:249
java 对象序列化 RMI
对于一个存在于Java虚拟机中的对象来说,其内部的状态只保持在内存中。JVM停止之后,这些状态就丢失了。在很多情况下,对象的内部状态是需要被持久化下来的。提到持久化,最直接的做法是保存到文件系统或是数据库之中。这种做法一般涉及到自定义存储格式以及繁琐的数据转换。对象关系映射(Object-relat...
分类:编程语言   时间:2014-12-15 13:38:24    阅读次数:260
深入理解Java虚拟机笔记---方法调用
方法调用并不等同于方法执行,方法调用阶段唯一的任务就是确定调用方法的版本(即调用哪一个方法),暂时还不涉及方法内部的具体运行过程。在程序运行时,进行方法调用是最普遍、最频繁的操作。在Class文件的编译过程中不包含传统编译中的连接步骤,一切方法调用在Class文件里存储的都只是符号引用,而不是方法在实际运行时内存布局中的入口地址(相当于直接引用)。这个特性给Java带来了更强大的动态扩展能力,但也...
分类:编程语言   时间:2014-12-14 15:56:34    阅读次数:236
深入理解Java虚拟机笔记---运行时栈帧结构
栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区的虚拟机栈(Virtual Machine Stack)的栈元素。栈帧存储了方法的局部变量表,操作数栈,动态连接和方法返回地址等信息。第一个方法从调用开始到执行完成,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。    每一个栈帧都包括了局部变量表,操作数栈,动态连接,方法返回地址和一些额外的...
分类:编程语言   时间:2014-12-14 13:18:31    阅读次数:227
深入理解Java虚拟机笔记---类加载过程
一、加载    “加载”(Loading)阶段是“类加载”(Class Loading)过程的一个阶段。在加载阶段,虚拟机需要完成以下三件事情: a.通过一个类的全限制名来获取定义此类的二进制字节流。 b.将这个字节流所代表的静态存储结构转化为方法区的运行进数据结构。 c.在Java堆中生成一个代表这个类的java.lang.Class对象,作为方法区这些数据的访问入口。    虚拟机规...
分类:编程语言   时间:2014-12-14 00:45:28    阅读次数:138
java虚拟机底层结构详解[转]
本文来自:曹胜欢博客专栏。转载请注明出处:http://blog.csdn.net/csh624366188 在以前的博客里面,我们介绍了在java领域中大部分的知识点,从最基础的java最基本语法到SSH框架。这里面应该包含了在java领域里面的大部分内容了吧。但是,那些知识点是让我们从一个...
分类:编程语言   时间:2014-12-14 00:40:37    阅读次数:290
Jvm基础-Java运行时数据区
最近在看《深入理解Java虚拟机》,里面讲到了Java运行时数据区,这是Jvm基本知识,把读书笔记记录在此。这些知识属于常识,都能查到的,如果我有理解不对的地方,还请指出。首先把图贴上来,图来自JVM Runtime Data Areas(运行时数据区),感谢。由上图可知,Java运行时数据区域包括...
分类:编程语言   时间:2014-12-14 00:36:47    阅读次数:205
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!