JAVA-类加载机制-其他

Posted wanhua.wu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA-类加载机制-其他相关的知识,希望对你有一定的参考价值。

1.JVM初始化步骤

    ①,如果类还没有加载连接,则虚拟机先加载并连接

    ②,父类还没有被初始化,则先初始化父类

    ③,如果类包含初始化语句,则系统依次执行这些初始化语句

 

2.类初始化时机

  ①,使用new创建类的实例

  ②,访问类或接口的静态变量,或者对静态变量进行赋值

  ③,调用类的静态方法

  ④,反射

  ⑤,初始化子类

  ⑥,虚拟机启动时的启动类

 

3.JVM结束生命周期的方式

  ①,System.exit()

  ②,程序正常执行结束

  ③,程序发生异常或者错误

  ④,操作系统异常导致的虚拟机终止运行

 

4.类加载的三种方式

  ①,虚拟机初始化加载

  ②,使用Class.forName()方法动态加载

  ③,使用ClassLoader.loadClass()方法动态加载

 

5.Class.forName和ClassLoader.loadClass区别

  ①,Class.forName在将类加载到虚拟机后,会执行static代码块

  ②,ClassLoader.loadClass在将类加载到虚拟机后,不是执行static代码块;  只要newInstance后才会执行static代码块

 

6.获取类加载器的方式

  ①,通过线程获取

    如:ClassLoader loader = Thread.currentThread().getContextClassLoader();

  ②,通过某个类获取

    如:ClassLoader loader = HelloWorld.class.getClassLoader();

7.自定义类加载器

  ①,继承ClassLoader 

  ②,重写findClass方法

      实例参考: http://www.importnew.com/23792.html

 

以上是关于JAVA-类加载机制-其他的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向类加载器 ClassLoader ( 类加载器源码简介 | BaseDexClassLoader | DexClassLoader | PathClassLoader )(代码片段

JVM类加载机制

Java 类加载机制

Java类加载机制详解

Java 类加载机制详解

java类加载机制