学习新思路:API中的class,class可以实现的方法都可以去API文档上查找。
class的实例对象代码内存里的字节码,
Class cls1=字节码1;
Class cls2=字节码2;
每一个字节码就是一个实例对象,
Class cls1=Date.class//date这个类的字节码,Class.forName("java.lang.String"),可以得到这个类的字节码,
2中情况:1:这个类已经有了(字节码已经在java虚拟及中)。
2:这个类还没加载(字节码开始在虚拟机中加载)。
Class cls1=void.class;这是一份字节码.
public calss RefletTest
{
String str1=“abc”;
Class cls1=str1.getClass();
calss cls2=String.class;
Class cls3=Class.forName("java.lang.String");
这三份字节码在内存中是否指向同一个字节码?
System.out.println(cls1==cls2);
System.out.println(cls3==cls2);
得到结果为:true。
同一份字节码。
System.out.println(cls1.isPrimtive());
System.out.println(int.class.isPrimitive()); 基本类型的字节码。
System.out.println(int.class==Integer.TYPE);所包装的基本类型的字节码。
int[].class.isPrimitive());数组也是一种类型,但不是原始类型.。
数组类型的class的实例对象Class.isArray();
【总之,只要是在源程序中有类型,都有各自的class实例对象】。
主要用在面试中,平时很少触及,明白原理就行了
|
|
来自: 永远饥饿_愚蠢 > 《java高级特性-张孝祥》