Java编程思想笔记——第十四章 类型信息
2017-02-17 15:03
453 查看
运行时类型信息使得你可以在程序运行时发现和使用类型信息。
每一个类都有一个Class对象(每当编写并且编译一个新类,就会产生一个Class对象)。
当程序创建第一个对类的静态成员的引用,就会加载这个类。
Class对象仅在需要时才被加载,static初始化是在类加载时进行的。
Class中的forName()方法是取得Class对象的引用的一种方法,入参必须为全限定名(包含包名)。
当使用”.class“来创建对Class对象的引用时,不会自动初始化该Class对象。
为了使用类而做的准备工作实际包含三个步骤:
加载:这是由类加载器执行的。该步骤将查找字节码(通常在classpath所指定的路径中查找,但这并非是必需的),并从这些字节码中创建一个Class对象。
链接:在链接阶段将验证类中的字节码,为静态域分配内存,并且如果必需的话,将解析这个类创建的对其他类的所有引用。
初始化:如果该类有超类,则对其初始化,执行静态初始化器和静态初始化块。初始化被延迟到了对静态方法(构造器隐式是静态的)或者非常量静态域进行首次引用才执行。
反射是获取和操作运行时的类信息(反射本质是在运行时打开和检查.class文件,之所以是运行时是因为编译时.class文件是不可获取的)
每一个类都有一个Class对象(每当编写并且编译一个新类,就会产生一个Class对象)。
当程序创建第一个对类的静态成员的引用,就会加载这个类。
Class对象仅在需要时才被加载,static初始化是在类加载时进行的。
Class中的forName()方法是取得Class对象的引用的一种方法,入参必须为全限定名(包含包名)。
当使用”.class“来创建对Class对象的引用时,不会自动初始化该Class对象。
为了使用类而做的准备工作实际包含三个步骤:
加载:这是由类加载器执行的。该步骤将查找字节码(通常在classpath所指定的路径中查找,但这并非是必需的),并从这些字节码中创建一个Class对象。
链接:在链接阶段将验证类中的字节码,为静态域分配内存,并且如果必需的话,将解析这个类创建的对其他类的所有引用。
初始化:如果该类有超类,则对其初始化,执行静态初始化器和静态初始化块。初始化被延迟到了对静态方法(构造器隐式是静态的)或者非常量静态域进行首次引用才执行。
反射是获取和操作运行时的类信息(反射本质是在运行时打开和检查.class文件,之所以是运行时是因为编译时.class文件是不可获取的)
相关文章推荐
- java编程思想笔记14-类型信息
- java编程思想笔记--类型信息部分一
- 【学习笔记】第十四章 类型信息
- Java编程思想(二)第14章-类型信息
- 《Java 编程思想》--第十四章:类型信息
- Java编程思想 类型信息 Class.forName()
- Java编程思想之类型信息(Class对象)
- Java中动态代理(Java编程思想第14章--类型信息)整理
- Java中反射(Java编程思想第14章--类型信息)整理
- Java中RTTI(Java编程思想第14章--类型信息)整理
- Java编程思想 ch14 类型信息
- Java编程思想(十四) —— 类型信息RTTI基本概念
- Java编程思想 - 类型信息与反射机制
- JAVA编程思想学习总结:第十四章类型信息
- java 的多态 (java编程思想笔记)
- 获取栏目内容的知识点总结:KnobInfoSortPortlet类型笔记(没有层级关系的栏目信息)
- java学习笔记---类型信息(type information)、反射机制与动态代理
- Java编程思想(2nd)学习笔记(9)-3
- JAVA编程思想笔记【突击1】——初始化,访问权限控制,继承,多态