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 ......");
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值