- 博客(5)
- 资源 (2)
- 收藏
- 关注
转载 四种情况下必须立即对类进行“初始化”
对于初始化阶段,虚拟机规范严格规定了有且只有四种情况必须立即对类进行“初始化”(而加载、验证、准备自然需要在此之前开始): 一、遇到new、getstatic、putstatic或invokestatic这4条字节码指令时,如果类没有进行过初始化,则需要先触发其初始化。生成这4条指令的最常见的Java代码场景是:使用new关键字实例化对象的时候、读取或设置一个类的静态字段(被final修饰、已在
2012-03-16 20:57:55 1417 2
转载 ClassLoader抽象类提供的六个关键的方法
一、loadClass 此方法负责加载指定名字的类,ClassLoader的实现方法为先从已经加载的类中寻找,如没有则继续从parentClassLoader中寻找,如仍然没找到,则从System ClassLoader中寻找,最后再调用findClass方法来寻找,如果要改变类的加载顺序,则可覆盖此方法。 二、findLoadedClass 此方法负责从当前ClassLoa
2012-03-16 14:40:55 722
转载 四个主要的ClassLoader
一、BootStrap ClassLoader 这是JVM的根ClassLoader,它是用C++实现的,JVM启动时初始化此ClassLoader,并由此ClassLoader完成%JAVA_HOME%中jre/lib/rt.jar(Sun JDK的实现)中所有class文件的加载,这个jar中包含了java规范定义的所有接口以及实现。 二、Extension ClassLoader
2012-03-16 14:26:17 1313
转载 JVM的生命周期
一、JVM实例的诞生 当启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String[] args)函数的class都可以作为JVM实例运行的起点。 二、JVM实例的运行 main()作为该程序初始线程的起点,任何其他线程均由该线程启动。JVM内部有两种线程:守护线程和非守护线程,main()属于非守护线程,守护线程
2012-03-16 11:48:47 548
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人