zoukankan      html  css  js  c++  java
  • JAVA-类加载机制(4)-其他

    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

  • 相关阅读:
    编译原理基础知识---文法和语言(一)
    编译原理简单知识总结(一)---编译程序和解释程序
    python网络编程
    博客声明
    v4l2编程
    Linux中的虚拟文件系统
    linux 内核文件中Makefile、kconfig、.config的关系(SDK结构)
    shell编程---find命令
    springcloud、springboot 版本号解析
    List<Map<String, Object>> 与 json 互转
  • 原文地址:https://www.cnblogs.com/wanhua-wu/p/6580356.html
Copyright © 2011-2022 走看看