/*
要操作一个类的字节码,需要先获取这个类的字节码,怎么获取java.lang.class实例?
三种方式
第一种:Class c=Class.forname("完整类名带包名");
第二种:Class c=对象.getClass();
*/
public static void main(String[] args) {
/*
1.Class.forname()是静态方法.
2.方法的参数是一个字符串
3.字符串需要的是一个完整地类名
4.完整的类名必须带有包名.即使java.lang包也不能省略.
*/
Class c1=null;
try {
c1 = Class.forName("java.lang.String");//c1代表String.Class文件,或者说c1代表String类型
Class c2 = Class.forName("java.util.Date");//c2代表Date类型
Class c3 = Class.forName("java.lang.Integer");//c3代表Integer类型
Class c4 = Class.forName("java.lang.System");//c4代表System类型
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
//java中任何一个对象都有一个方法:getClass()
String s="abc";
Class x = s.getClass();//x代表String.class字节码文件,x代表String类型
System.out.println(c1==x);//true(==判断的是对象的内存地址.)
//第三种方式:java语言中任何一种类型,包括基本数据类型,它都有.class属性.
Class z =String.class;//z代表String类型
Class k = Date.class;//k代表Date类型
System.out.println(x==z);//true
}
}
配置文件
package cn.zmy;
//定义一个User类
public class User {
}