JAVA - 深入JAVA 虚拟机 1

Java虚拟机与程序的生命周期

Java虚拟机将结束生命周期

1.call System.exit(n)

  Terminates the currently running JVM.

2.程序正常执行结束

3.程序在执行过程中遇到了异常或者错误而异常终止

4.由于操作系统出现错误而导致JVM进程终止

 

类的加载,连接和初始化

加载: 查找并加载类的二进制数据

连接: 验证:确保被加载的类的正确性

          准备:为类的静态变量分配内存,并将其初始化为默认值

           解析:把类中的符号引用转换为直接引用

初始化:为类的静态变量赋正确的初始值

 

Java程序对类的使用方式

主动使用:

    -创建类的实例

    -访问某个类或者接口的静态变量,或者对该静态变量赋值

    -调用类的静态方法

    -反射(Class.forName("com.xueruan.Test"))

    -初始化一个类的子类

    -Java虚拟机启动时被标明启动类的类

被动使用:

所有JAVA虚拟机实现必须在每个类或接口被JAVA程序“首次主动使用时” 才初始化他们

 

类的加载指将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆

区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构

加载类的方式:

  -从本地系统加载.class文件

  -通过网络下载.class文件

  -通过zip,jar等归档文件中加载.class文件

  -从专有数据库中提取.class文件

  -将JAVA源文件动态编译为.class文件

 

 

posted on 2017-07-06 10:27  dawangandy  阅读(68)  评论(0)    收藏  举报

导航