标签:创建 except otf 说明 load java类型 nbsp java pre
本章主要学习如何让我么在运行时识别对象和类的信息的.主要有两种方式:一种是传统的RTTI它假定我们在编译时已经知道了所有的类型. 另一种是反射机制它允许我们在运行时发现和使用类的信息.
一.为什么需要RTTI(Run-Time Type Information)
1. RTTI :在运行时识别一个对象的类型
2.反射 允许在运行时发现和使用类型信息
3.传统的RTTI 在编译期通过Class文件识别类型信息,反射在运行期通过Class文件识别类型信息。
4.Java类型转换都发生在运行时期。
二.Class对象
Class对象是用来创建类的所有的"常规"对象的.java使用Class对象来执行其RTTI即使你正在执行的是转型这样的操作.
一旦某个类的Class对象载入内存后,他就会用来创建该类的对象。
package test; class Candy { static { System.out.println("Loading Candy"); } } class Gum { static { System.out.println("Loading Gum"); } } class Cookie { static { System.out.println("Loading Cookie"); } } public class SweetShop { public static void main(String[] args) { System.out.println("inside main"); new Candy(); System.out.println("After creating Candy"); try { Class.forName("Gum");//返回的是一个Class对象的引用如果获取失败会抛出异常 ClassNotFoundException } catch(ClassNotFoundException e) { System.out.println("Couldn‘t find Gum"); } System.out.println("After Class.forName(\"Gum\")"); new Cookie(); System.out.println("After creating Cookie"); } } /* Output: inside main Loading Candy After creating Candy Loading Gum After Class.forName("Gum") Loading Cookie After creating Cookie *///:~ /* 注意新版本jdk和作者的结果不一样 * inside main Loading Candy After creating Candy Couldn‘t find Gum After Class.forName("Gum") Loading Cookie After creating Cookie *///~ */
标签:创建 except otf 说明 load java类型 nbsp java pre
原文地址:https://www.cnblogs.com/jiangfeilong/p/10347216.html