一、Class类
- Class对象由JVM自动产生,每当一个类被加载时,JVM就自动为其生成一个Class对象,通过Class对象可以获得类的相关信息。
- 将类信息读到内存中过程,称为类加载
二、获得Class对象
获得类的基本信息的常用方法:
getName():获得类名
getPackage():获得包名
isInterface():是否为接口
isPrimitive():是否为基本类型
isArray():是否为数组
getSuperclass():获得父类的Class对象
1、分别使用getClass()和class属性,来简单的获取String类的Class对象,并从中获得一些相关信息?
范例(代码):
1 package demo01;
2
3 public class Demo01 {
4 /*
5 * @param args
6 * */
7 public static void main(String[] args) {
8 String s = new String("hello");
9
10 //1、getClass()
11 Class clz = s.getClass();
12 System.out.println("类名:"+clz.getName());
13 System.out.println("包名:"+clz.getPackage());
14 System.out.println("是否为接口:"+clz.isInterface());
15 System.out.println("是否为基本类型:"+clz.isPrimitive());
16 System.out.println("是否为数组:"+clz.isArray());
17 System.out.println("String类的父类:"+clz.getSuperclass());
18
19 //2、class
20 Class clz1 = String.class;
21 System.out.println("类名:"+clz1.getName());
22 System.out.println("包名:"+clz1.getPackage());
23 System.out.println("是否为接口:"+clz1.isInterface());
24 System.out.println("是否为基本类型:"+clz1.isPrimitive());
25 System.out.println("是否为数组:"+clz1.isArray());
26 System.out.println("String类的父类:"+clz1.getSuperclass());
27
28 System.out.println(clz == clz1);
29
30 //得出结论:
31 //a.一个类的类对象是唯一的
32 //b.如果已知对象的实例,可以通过getClass()得到类对象
33 //C.如果已知类型,可以通过class得到类对象
34 }
35 }
2、对于基本类型有没有Class对象呢?怎么获取?
范例(代码):
int a = 100;
System.out.println(int.class);
三、总结
这次为大家讲解了有关Class类的作用,下一节为大家讲解类加载器的作用,日拱一卒,不期速成。