1:上图为java虚拟机运行时数据区程序计数器:是一块较小的内存,可以看作是当前线程所执行的字节码的行号指示器。字节码的解释器工作就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支循环跳转异常处理线程回复等都要依赖于这个计数器完成。java虚拟机多线程通过线程轮流切换分配处理器时间片实...
分类:
编程语言 时间:
2015-07-09 00:27:05
阅读次数:
171
java虚拟机垃圾收集机制 java程序的运行过程编译型语言和解释型语言的区别:编译型:直接就可以编译成为操作系统可以认识的可执行的文件格式。例如:c、c++解释型:首先编译成java虚拟机可识别的文件,通过Java虚拟机再解释成操作系统可识别的文件格式。例如:java垃圾收集机制:java语言消除...
分类:
编程语言 时间:
2015-07-09 00:24:01
阅读次数:
178
JVM框架Java虚拟机HotSpot的框架:JVM主要组成部分:Class Loader(类加载器)、Runtime Data Area(运行时数据区)、执行引擎(Execution Engine)。JVM垃圾回收简介Step1:MarkingGC算法在扫描存活对象时通常需要从Root节点开始,扫...
分类:
编程语言 时间:
2015-07-09 00:19:50
阅读次数:
242
【虚拟机栈】一: java栈在java虚拟机结构中的位置java虚拟机体系结构中包括:类装载子系统、运行时数据区、执行引擎。其中类装载子系统负责查找并装载class文件。执行引擎处于JVM的核心位置,运行Java的每一个线程都是一个独立的虚拟机执行引擎的实例,从线程生命周期的开始到结束,他要么在执行...
分类:
其他好文 时间:
2015-07-08 22:10:04
阅读次数:
166
Dalvik: Google公司自己设计用于Android平台的Java虚拟机。因为Dalvik虚拟机的存在,Android系统的开发者只需使用谷歌提供的SDK(软件开发工具包)即可较为轻松的按照一套“规则”创建APP,不用顾忌硬件、驱动等问题,在每次执行应用的时候Dalvik虚拟机都会将程序的语言...
分类:
移动开发 时间:
2015-07-08 20:32:33
阅读次数:
170
作者:郭嘉
邮箱:allenwells@163.com
博客:http://blog.csdn.net/allenwells
github:https://github.com/AllenWell为什么会Java虚拟机会同时存在解释器和编译器呢?这是为了兼顾启动效率和执行效率两个方面。Java程序最初是通过解释器进行解释执行的,当虚拟机返现某个方法或代码块的运行特别频繁时,就会把这段代码标记为...
分类:
编程语言 时间:
2015-07-08 14:37:09
阅读次数:
260
对Java应用最常见的抱怨就是启动时间太长。这是因为Java虚拟机花费一段时间去加载所有必需的类,特别是对Swing应用,它们需要从Swing和AWT类库代码中去抽取大量的内容。用户并不喜欢应用程序花费大量时间去产生初始屏幕,他们甚至可能不知道首次启动是否成功的情况下尝试着多次启动该应用程序。此问题...
分类:
其他好文 时间:
2015-07-08 02:01:58
阅读次数:
111
动态库中的主要实现文件是:eclipse.c其主要功能定位启动Java虚拟机和显示Splash窗口(暂未用,通过在org.eclipse.equinox.launcher.Main中调用来显示)java虚拟机定位算法:1.从-vm参数所指定的文件或目录中查找2.如果没有指定-vm参数,程序会寻找Ec...
分类:
系统相关 时间:
2015-07-07 21:03:55
阅读次数:
197
早上一来,我的eclipse就无法启动了,错误就是这句话:eclipse failed to create the java virutal machine直译就是eclipse无法创建JAVA虚拟机。问题解决思路:1.确保java虚拟机是已经正常运行的。2.确保JAVA_HOME的环境变量是正确设...
分类:
编程语言 时间:
2015-07-07 09:22:21
阅读次数:
116
Java虚拟机具有一个堆,是运行时的数据区域,所有类实例和数组内存均从此处分配。堆是在java虚拟机启动时创建的。堆是留给开发人员用的内存区域。非堆就是JVM留给自己用的(方法区,JVM内部处理或优化所需的内存,运行时的常量池,字段方法数据等)。JVM初始分配的内存由-Xms指定,默认为物理内存的1...
分类:
编程语言 时间:
2015-07-06 21:40:24
阅读次数:
138