第五章 java虚拟机
一. 什么是java虚拟机?
1、抽象的Java虚拟机规范
2、一个具体的Java虚拟机实现
3、一个运行的Java虚拟机实例
二.Java虚拟机的生命周期?
l java虚拟机内部的两种线程:守护线程和非守护线程
l 守护线程通常都是由java虚拟机自己创建的,比如垃圾收集任务的线程
l java程序也可以创建守护线程
l Java程序的初始线程——从main()开始的线程为非守护线程
l 只要有任何的非守护线程在运行,那么程序就继续运行
总之:java虚拟机的生命周期就是从java程序启动开始到所有的非守护线程终止的这个过程。
三.Java虚拟机的体系机构:
1. 每一个java虚拟机都有一个类加载子系统,负责装载类型(类和接口);
2. 每一个java虚拟机都有一个执行引擎,负责执行被装载类中方法的指令;
3. 某些运行时数据由所有线程共享,某些只能由一个线程拥有;
4. 每一个java虚拟机实例都拥有一个方法区以及一个堆;
5. 虚拟机加载class文件(其中的二进制数据),将类型信息存放到方法区中,运行时创建的对象存放在堆中;
6. 每一个新的线程被创建都将会有得到它自己的PC寄存器(程序计数器)以及一个java栈;
7. PC寄存器是用于存放下一条被执行的JVM指令的地址(如果即将执行的方法是native方法,则PC寄存器值没有定义);
8. Java栈是存储该线程中Java方法的调用状态(局部变量、参数、返回值以及中间结果);
9. 如果是本地方法调用的状态,则则是以依赖于具体实现的方式存储在本地方法栈、或是寄存器或是其它内存区中;
10. Java栈是由许多栈桢组成的,一个栈桢包含一个方法的调用状态;当线程调用一个Java方法时,虚拟机压入一个新的栈桢到该线程的Java栈中;当该方法返回时,这个栈桢将从Java栈中弹出;
四.数据类型
1. 虚拟机有两种数据类型:基本类型和引用类型。Java 语言中的所有基本类型同样也都是Java虚拟机中的基本类型,但boolean有点特别,虽然Java虚拟机也把boolean当作基本类型,但是指令集对boolean,只有很有限的支持:当编译器把Java源码编译为字节码时,它会用int或byte来表示boolean。在Java虚拟机中,false是由整数零表示的,所有非零整数都表示true。涉及boolean的值的操作则会使用int。另外,boolean数据是当做byte数组来访问的,但是在堆区,它也可以被表示为位域;
2. Java虚拟机中还有一个只在内部使用的基本类型:returnAddress,不能在程序开发时使用这个类型,它被用来实现Java程序中的finally子句;
3. Java虚拟机有三种引用类型:
l 类类型:对类实例的引用;
l 接口类型:对实现了该接口的某个类实例的引用;
l 数组类型:对数组对象的引用;在Java虚拟机中,数组是个真正的对象;
分享到:
相关推荐
深入Java虚拟机——本地方法栈.pdf
第5-20章深入描述了java技术的内部细节,包括垃圾收集、java安全模型、java的连接模型和动态扩展机制、class文件、运算及流程控制等等,其中等6章和附录a-c完全可以作为class文件和指令含集的参考手册。本书还附带...
深入java虚拟机.pdf
java虚拟机不用多少了吧。 深入java虚拟机第二版.pdf
第1~~3章介绍了Java虚拟机的定义、总体架构、常用配置参数。第4~~5章介绍了垃圾回收的算法和各种垃圾回收器。第6章介绍了虚拟机的性能监控和故障诊断工具。第7章详细介绍了对Java堆的分析方法和案例。第8章介绍了...
深入理解Java虚拟机学习笔记借鉴.pdf
深入java虚拟机——applet 演示, 深入java虚拟机的光盘中的所有文件。打包上传了
java虚拟机读书笔记,主要描述阅读Java虚拟机核心技术的描述。
不废话Java 虚拟机入门黄金搭档。JVM规范+深入JAVA虚拟机(附带源码)。
java 虚拟机
深入java虚拟机笔记http://blog.csdn.net/yangzl2008/article/details/8074667
深入java虚拟机深入java虚拟机深入java虚拟机深入java虚拟机
第1~3章介绍了Java虚拟机的定义、总体架构、常用配置参数。第4~5章介绍了垃圾回收的算法和各种垃圾回收器。第6章介绍了Java虚拟机的性能监控和故障诊断工具。第7章详细介绍了对Java堆的分析方法和案例。第8章介绍了...
深入JAVA虚拟机,帮助大家在Java方面进行学习,深入JAVA虚拟机,帮助大家在Java方面进行学习,
深入JAVA虚拟机是中文的,但是内容是图片
Java虚拟机的基本结构图:Java虚拟机包含一个类装载器(class loader),可以从程序和API中装载class文件,其中API只有程序执行时需要的那
深入JAVA虚拟机第二版.pdf深入JAVA虚拟机第二版.pdf深入JAVA虚拟机第二版.pdf深入JAVA虚拟机第二版.pdf深入JAVA虚拟机第二版.pdf深入JAVA虚拟机第二版.pdf
第1章 :简单地介绍了Java虚拟机的历史并... 第5章:定义了Java虚拟机启动以及类和接口的加载、链接和初始化的过程; 第6章:定义了Java虚拟机指令集; 第7章:提供了一张以操作码值为索引的Java虚拟机操作码助记表。
1.5 JVM调优总结(五)-分代垃圾回收详述1 1.6 JVM调优总结(六)-分代垃圾回收详述2 1.7 JVM调优总结(七)-典型配置举例1 1.8 JVM调优总结(八)-典型配置举例2 1.9 JVM调优总结(九)-新一代的垃圾回收算法 1.10...