【Java】26.常用API之lang.Class类与ClassLoader类

定义作用:lang下的Class 类是Class类的表示正在运行的Java应用程序中的类和接口,用于记录一个特定的类在运行时的类型信息。一个类的定义包含成员变量,成员方法,还有这个类实现的接口,以及这个类的父类

 

自动构建:Class类没有公共的构造方法,Class对象是在编译后加载类时 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造。
 

常用方法:返回类名称、类装载器、AnnotatedType对象、对象注释、Constructor对象以及所有与类相关的东西。

 

1.   getName()                 

返回对象的类名

返回String类型

 

2.static forName(String ClassName)   

使用ClassName指定的、与类或接口相联系的class对象;调用此方法相当于:

Class.forName(className, true, currentLoader)

返回Class类型

 

3.static forName(String name,boolean initialize,ClassLoader loader)   

使用给定的类加载器返回与给定字符串名称的类或接口相关联的 对象。可用于安装驱动程序。

返回Class类型

 

4.newInstance()

根据某个Class对象产生其对应类的实例对象。需要强调的是,它调用的是此类的默认构造方法

返回T对象

 

Class的一些使用技巧:
1、forName和newInstance结合起来使用,可以根据存储在字符串中的类名创建对象。例如
    Object obj = Class.forName(s).newInstance();

2、虚拟机为每种类型管理一个独一无二的Class对象。因此可以使用==操作符来比较类对象。例如:
    if(e.getClass() == Employee.class)...

3.反射机制
 

补充:这里需要解释一下:请记住一句话,java中,一切皆对象。也就是说,基本类型int float 等也会在jvm的内存池像其他类型一样中生成一个Class对象。数组等组合型数据类型也是会生成一个Class对象的,而且更令人惊讶的是,java中数组的本来面目其实就是某个类,惊讶中的惊讶是,含有相同元素的相同维数的数组还会共同享用同一个Class对象

 

本文部分摘自

https://blog.csdn.net/yxwb1253587469/article/details/62045551

https://blog.csdn.net/u014082714/article/details/50004843                     


java.lang.ClassLoader类

类加载器,类的加载过程等参考文章如下:

1.ClassLoader详解

https://blog.csdn.net/poorcoder_/article/details/80258725

2.深入理解ClassLoader工作机制(jdk1.8)

https://blog.csdn.net/u014634338/article/details/81434327

3.一看你就懂,超详细java中的ClassLoader详解

https://blog.csdn.net/briblue/article/details/54973413

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值