深入浅析java中class与class.forName()有什么不同-创新互联
这篇文章给大家介绍深入浅析java中class与class.forName() 有什么不同,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
成都创新互联公司服务项目包括古丈网站建设、古丈网站制作、古丈网页制作以及古丈网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,古丈网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到古丈省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!Class对象的生成方式如下:
1、类名.class
说明: JVM将使用类装载器, 将类装入内存(前提是:类还没有装入内存),不做类的初始化工作.返回Class的对象
2、Class.forName("类名字符串") (注:类名字符串是包名+类名)
说明:装入类,并做类的静态初始化,返回Class的对象
3、实例对象.getClass()
说明:对类进行静态初始化、非静态初始化;返回引用o运行时真正所指的对象(因为:子对象的引用可能会赋给父对象的引用变量中)所属的类的Class的对象
通过下面的程序,来观察一下Class对象的生成的原理。
public class TestClass { public static void main(String[] args) { try { //测试.class Class testTypeClass=TestClassType.class; System.out.println("testTypeClass---"+testTypeClass); //测试Class.forName() Class testTypeForName=Class.forName("TestClassType"); System.out.println("testTypeForName---"+testTypeForName); //测试Object.getClass() TestClassType testTypeGetClass= new TestClassType(); System.out.println("testTypeGetClass---"+testTypeGetClass.getClass()); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } class TestClassType{ //构造函数 public TestClassType(){ System.out.println("----构造函数---"); } //静态的参数初始化 static{ System.out.println("---静态的参数初始化---"); } //非静态的参数初始化 { System.out.println("----非静态的参数初始化---"); } }
文章标题:深入浅析java中class与class.forName()有什么不同-创新互联
网站URL:http://hbruida.cn/article/ceeods.html