上一篇blog中比较深入的去了解JVM中的各大内存,这些天除了努力工作之外,有空便继续深入的探索虚拟机的内部一些实现的原理,与C++想必,Java语言最大的特色主要有跨平台和无需手动回收内存(由虚拟机负责GC)。今天主要是来好好总结一些这若干天来的一些Java虚拟机GC的研究结果,如果读者觉得我的这篇博客叙述有误,欢迎读者们在我的博客下方留下评论,方面我进行参考确定后进行修改,以免误导了其他读者。...
分类:
编程语言 时间:
2015-02-02 15:59:48
阅读次数:
256
Java RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。可以用此方法调用的任何对象必须实现该远程接口。Java RMI不是什么新技术(在Java1.1的时代都有了),...
分类:
编程语言 时间:
2015-02-02 15:29:57
阅读次数:
162
volatile型变量的特殊规则volatile是Java虚拟机提供的最轻量级的同步机制,当一个变量被定义成volatile后,它将具备两种特性,第一是保证此变量对所有线程的可见性,这里的“可见性”是指当一条线程改变了这个变量的值后,新值对于其他线程来说是可以立即得知的;第二个语义是禁止指令重排序,...
分类:
编程语言 时间:
2015-02-01 20:24:31
阅读次数:
296
主存储器和工作存储器Java虚拟机在执行Java程序的过程中会把它管理的内存划分为若干个不同的数据区域,这些区域包括方法区,堆,虚拟机栈,本地方法栈,程序计数器。方法区存储类信息,常量,字节码等数据,堆内存存储所有生成的对象,方法区和堆内存为所有线程共享,而虚拟机栈是每个线程独有的,也就是说每个线程...
分类:
编程语言 时间:
2015-02-01 20:17:58
阅读次数:
263
Java虚拟机所管理的内存会包括以下几个运行时数据区域: 程序计数器:是一块较小的内存空间,它可以看做是当前线程所执行的字节码的行号指示器。如果线程正在执行的是一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址。如果正在执行的事Native方法,这个计数器值则为空。 Java虚.....
分类:
其他好文 时间:
2015-02-01 19:02:16
阅读次数:
258
讲解java虚拟机以及堆和栈的:http://blog.csdn.net/cutesource/article/details/8244250编辑helloJNI.javaclass helloJNI { public native int get(); public ...
分类:
编程语言 时间:
2015-01-30 20:58:48
阅读次数:
127
在一些规模稍大的应用中,Java虚拟机(JVM)的内存设置尤为重要,想在项目中取得好的效率,GC(垃圾回收)的设置是第一步。 PermGen space:全称是Permanent Generation space.就是说是永久保存的区域,用于存放C...
分类:
编程语言 时间:
2015-01-30 19:46:23
阅读次数:
270
java虚拟机判断一个对象实例是否可以被回收,并非引用计数算法。因为引用计数算法很难解决对象直接互相循环引用的问题。
所以java C#都是使用可达性分析来判断对象是否可以回收的。...
分类:
编程语言 时间:
2015-01-30 19:43:41
阅读次数:
145
JPDA(Java Platform Debugger Architecture) 是 Java 平台调试体系结构的缩写,通过 JPDA 提供的 API,开发人员可以方便灵活的搭建 Java 调试应用程序。JPDA 主要由三个部分组成:Java 虚拟机工具接口(JVMTI),Java 调试线协议(J...
分类:
其他好文 时间:
2015-01-30 16:49:44
阅读次数:
173
首先,让我们来思考下面几个问题:什么是Dalvik虚拟机?Dalvik VM与JVM有什么区别?Dalvik VM有什么新的特点?Dalvik VM的架构是怎么样的?首先,我得承认第一个问题问得很傻:什么是Dalvik虚拟机?没有人给出过一个明确的定义,但是,我们似乎可以从人们对Java虚拟机的描述...
分类:
移动开发 时间:
2015-01-30 15:19:20
阅读次数:
165