深入jvm

Posted Sunray

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入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);
}
}

以上是关于深入jvm的主要内容,如果未能解决你的问题,请参考以下文章

JVM虚拟机--深入理解Class中--方法属性表集合

深入理解JVM

深入理解JVM—JVM内存模型

深入理解JVM—Java 6 JVM参数配置说明

深入理解JVM之JVM内存区域与内存分配

深入理解jvm - 编译优化(下)