• 类装载机制的类的初始化顺序


    1.通过子类来调用父类的静态字段,只会触发父类的初始化,但是这是要看不同的虚拟机的不同实现。

    2.每个开发人员对Java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,这背后就涉及到了java技术体系中的类加载。

    3.对JVM采用的双亲委派类加载机制

    4.Java的连接模型允许用户运行时扩展引用程序

    你的程序可以装载在编译时并不知道或者尚未存在的类或者接口,并动态连接它们并进行有选择的解析。
      运行时动态扩展java应用程序有如下两个途径:

    5.

    3.1 调用java.lang.Class.forName(…)加载类

      这个方法其实在前面已经讨论过,在后面的问题2解答中说明了该方法调用会触发哪个类加载器开始加载任务。这里需要说明的是多参数版本的forName(…)方法:

    1. public static Class<?> forName(String name, boolean initialize, ClassLoader loader) throws ClassNotFoundException  

      这里的initialize参数是很重要的。它表示在加载同时是否完成初始化的工作(说明:单参数版本的forName方法默认是完成初始化的)。有些场景下需要将initialize设置为true来强制加载同时完成初始化。例如典型的就是利用DriverManager进行JDBC驱动程序类注册的问题。因为每一个JDBC驱动程序类的静态初始化方法都用DriverManager注册驱动程序,这样才能被应用程序使用。这就要求驱动程序类必须被初始化,而不单单被加载。Class.forName的一个很常见的用法就是在加载数据库驱动的时候。如 Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance()用来加载 Apache Derby 数据库的驱动。

  • 相关阅读:
    delphi 缓冲画图(内存画图)解决画图闪烁问题
    多重启动光盘制作
    Delphi源程序格式书写规范
    得到一个数据库的触发器的sql
    Querying Active Directory using .NET classes and LDAP queries(http://www.codeproject.com/dotnet/activedirquery.asp)
    My Friend Blog
    .net good study
    关于javascript的apply和call函数
    Microsoft command
    明基成人礼:巅峰战将营 http://www.cnvn.com.cn/Article/ShowArticle.asp?ArticleID=3172
  • 原文地址:https://www.cnblogs.com/panxuejun/p/5882186.html
Copyright © 2020-2023  润新知