Java 类型信息与RTTI

      Java在运行时识别对象和类信息有两种方式:一种是RTTI;另一种是反射机制。什么是RTTI?RTTI:(run-time type identification)运行时类型识别,当只有一个指向对象基类的引用时RTTI机制可以让你找到这个对象的确切概念。要理解RTTI的工作原理,必须先了解类信息是如何表示的,这个是由Class对象完成的,它完成了相关类的信息,Java使用Class对象来执行RTTI,即使你正在执行类似转型的这样操作,Class也有其他方式来执行该操作。每当编译一个Class类就有个Class对象,也就是说有个Class对象保存在.class文件当中,这个类对象是由JVM类加载器,所有的类都是在第一次使用时加载到内存当中,若程序创建一个静态的对象的引用时就会加载该类,类加载器并不是加载所有的字节码,是动态加载的。也就是为什么通过反射可以或许相关类的信息。

 

 

public class SwettShop {
	
	public static void main(String args[]){
		System.out.println("inside main.....");
		new Cady();
		System.out.println("after create Cady ....");
		try {
			Class.forName("com.dt.java.study.chart5.Gum");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		System.out.println("after create Gum ....");
		new Cookie();
		System.out.println("after create Cookie ....");
	}
}

class Cady{
	{
		System.out.println("init Cady code ....");
	}
	static {
		System.out.println("Loading Cady ......");
	}
}

class Gum{
	{
		System.out.println("init Gum code ....");
	}
	static {
		System.out.println("Loading Gum ......");
	}
}

class Cookie{
	
	static {
		System.out.println("Loading Cookie ......");
	}
}

 

你可能感兴趣的:(java,jvm,工作)