深入jvm

1:ClassLoad

  Jvm将要结束生命周期

    1:执行了system.exit()方法

    2:程序正常执行结束

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

    4:由于操作系统错误使得jvm挂掉。

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

  连接:

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

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

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

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

  Java程序对类的使用方式可分为两种。

    主动使用(6种)

      

    被动使用 

2:类加载器

Java虚拟机自带的加载器
根类加载器
扩展类加载器
系统类加载器
用户自定义的类加载器
Java.lang.ClassLoader的子类
用户可以自定义类的加载方式。

类的加载
类的验证
类的准备
类的解析

3:类的初始化

  先初始化默认值,在赋值。  

package com.google;
//final
import java.util.Random;

class Test{

//public static final int i=6/3;
public static final int i=new Random().nextInt(100);
static{
System.out.println("PAGE");
}
}
public class jvm {
public static void main(String[] args) {
System.out.println(Test.i);
}
}

posted @ 2017-02-09 12:19  Sunray0330  阅读(102)  评论(0编辑  收藏  举报