分类: Java
2008-03-27 22:01:47
1,class对象 Class对象包含了与类有关的信息,Class对象就是用来创建类的所有普通对象的。生成相关的对象前JVM会首先载入Class对象即该.class文件。可以看到.class文件的载入时在需要时才被载入的,这与许多传统语言不同。 package com.biaoflying; class Candy{ //对于static对象,或者static语句是在类被首次加载时运行的。 //并且只会加载一次。 static{ System.out.println("Loading Candy"); } } class Gum{ static{ System.out.println("Loading Gum"); } } class Coo_kie{ static{ System.out.println("Loading cookie"); } } public class SweetShop { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("inside main"); new Candy(); System.out.println("After creating Candy"); //若去掉这里的注释,可以发现static加载的方式。 //new Gum(); try{ //?这里无法找到Gum.class文件 //class.forName("Gum"); //这里又可以找到Gum.class文件,但只会生成Class对象而 //不加载 Class clazz=Gum.class Class.forName("com.biaoflying.Gum"); }catch(ClassNotFoundException e){ System.out.println("Couldn't find Gum"); } new Coo_kie(); System.out.println("After creating Coo_kie"); } }
boolean.class 等价于Boolean.TYPE int.class 等价于Integer.TYPE .... 2,instanceof关键字
除了使用instanceof方式(包含isIntance方法)还可以对Class对象进行比较,但两者存在不同之处:
3,常用的方法 Class.getName() Class.toString()这两个方法得到的结果是一样的 Class.newInstance() Class.getInterfaces() Class.getSuperclass() |