JAVA虚拟机

 

 

1.java虚拟机是什么

  1. 抽象规范
  2. 一个具体的实现
  3. 一个运行中的虚拟机实例  

2.java虚拟机的生命周期

当启动一个java程序时时,一个虚拟机实例就诞生了,当程序中的所有非守护线程都终止时,虚拟机实例将退出

3.java虚拟机的体系结构

 

 

 

 4.数据类型

5.字长

虚拟机中最基本的数据单元是字,两个字单元需持有long或double类型的值

6.类装载器子系统

用户自定义的类需派生自java.lang.ClassLoader类,每一个被装载的类型,都会被创建一个java.lang.Class实例

ClassLoader中的四个重要方法:

7.方法区

还存储:

  1. 常量池
  2. 字段信息
  3. 方法信息
  4. 类静态变量
  5. 一个到ClassLoader的引用
  6. 一个到Class实例的引用:Class类中的方法,获得Class的方式:Class.forName(String className);对象的getclass()方法

     

  7. 方法表

8.堆

堆空间设计的两种方式:

第一种对象移动方便,但需要进行两次指针传递;第二种只需要一个指针,但是移动对象时需要更新整个运行时数据区中指向对象的引用

方法表:

此外,堆上还负责存储对象锁,等待集合

数组在堆上的表示:

9.程序计数器

10.栈

栈帧由三部分组成:

  1. 局部变量区:方法对应的参数和局部变量
  2. 操作数栈

     

  3. 帧数据区:支持常量池解析,正常方法返回,异常派发数据

 栈的生长方式:

 

 

posted on 2017-03-09 16:43  伪善者ql  阅读(125)  评论(0编辑  收藏  举报

导航