| Java关键技术强化:类加载器之Class类的作用(1) (day03)
一、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类的作用,下一节为大家讲解类加载器的作用,日拱一卒,不期速成。