zoukankan      html  css  js  c++  java
  • Class.forName和ClassLoader.loadClass等

    Class

            首先,Class类里可以记载所有类的属性、方法等信息。这个也就是运行时类别标记,它记录了所有的对象(比如int,MyClass,void,数组等等)对应的类信息。

    Class对象

            JVM对于每个所使用的对象,都会有相应的Class对象与之对应,要么这种类型的Class对象已经创建好了,要么就是要新创建一个Class对象。

    ClassLoader

            ClassLoader类负责的是加载一个类。也就是说,给定这个类相关的名字,定位到或者产生这个类相关的定义信息。ClassLoader对象.loadClass("类名")=ClassLoader对象.loadClass("类名",解析类=false)

    类的加载过程

            加载------>链接(验证----准备----解析【JVM将常量池中的符号引用替换成直接引用】)------>初始化------>。。。。。

    得到Class对象

            Class.forName("类的名称")=Class.forName("类的名称",初始化=true,classLoader对象),经过了Class对象的初始化,也就是执行了类中的静态方法

            ClassLoader.loadClass("类的全限定名")没有执行初始化

    生成新的类对象

            上一步生成的Class对象执行.newInstance()方法

            new 类名()的时候如果没有初始化,会自动执行Class对象的初始化方法

            另外调用子类时,如果父类Class对象没有初始化,也是先执行父类Class对象的初始化方法

  • 相关阅读:
    《ActionScript 3 CookBook 简体中文完整版》下载
    打开组件服务超慢,打不开属性窗口。
    无法引用Microsoft.Office.Interop.Excel的解决
    HttpWebResponse类
    反射性能优化 标记个
    配置文件入门 WebConfig.config常用配置节点介绍
    配置文件的读写
    HTTP权威指南阅读记录 第一章
    IIS
    锁机制与原子操作 <第四篇>
  • 原文地址:https://www.cnblogs.com/yuantf/p/5401416.html
Copyright © 2011-2022 走看看