在一个例子中,看到这样的用法:
private static final Logger logger = Logger.getLogger(ATest.class);另外也常在一些函数中看到传入一个get(xx, ATest.class)这样的参数。以前是学C++的,最近转到了JAVA,不是很明白。希望懂的人给我解释一下。或者说一下这是java的哪方面,我在google上不知道怎么搜索~谢谢了java

解决方案 »

  1.   

    class是java编译后的文件,这是动态加载类,利用了反射技术
      

  2.   

    .java是源文件,在目录的scr中可以找到 ,一个.java文件里可以有很多类,.class是编译后产生的文件,在bin中可以找到,而且一个类产生一个.class文件,比如说你有一个.java文件,里面有很多类,编译后它就产生了很多.class文件
      

  3.   

    ATest.class就是ATest类编译后的字节码文件
      

  4.   

    哦,可能我忘说了。对于基本的我倒是知道。比如.java编译后是.class文件。这个我清楚,但是在方法中传入一个编译后的.calss文件,应该不是这个意思吧?我觉得.class作为一个函数的参数,应该会像楼上说的反射之类的东东。可能是加载javabean?或者是该类的描述文件?我倒是觉得这个传入的.class文件是这个类的说明描述这个类中属性和方法的信息。我还是去google一下~
      

  5.   

    .java原文件编译后的字节码文件.class
      

  6.   

    这和反射是有关系的,建议你看关于java反射的相关方面的视频或者google上面找资料,要是基础还是可以的话,几个小时认识了解是没有问题的,
      

  7.   

    还有就是.java文件编译过后也就是.class文件,这就是文件的编译了,java自己完成的,和你就没有什么关系了,,
      

  8.   

    Logger.getLogger(ATest.class); 反射机制 实现动态类的加载
      

  9.   

    Java的类本身也是一个特殊的对象,ATest.class返回了代表ATest这个类的特殊对象
      

  10.   

    .class就是 Jvm编译.java文件后的编码
      

  11.   

    .class就是 Jvm编译.java文件后的编码
    上述方法用到了反射
      

  12.   

    个人观点,这里的.class并不是什么类编译文件,也不一定会和反射挂钩,这里的.class仅仅是一个参数,和传递一个 int ,object差不多,在java里面,Class也是一个类,而xx.class就是这个Class类的一个实例,这个参数传递过去具体怎么用还要看函数的实现方法,也许仅仅是作为一个map的key来用,所以它就是一个普通的Class类的参数。
      

  13.   

    在Java中有一个类,类的名称是Class,在java.lang包下,你可以查一下api文档。而ATest.class
    就是这样的一个类,是一个名字叫ATest的Class类,Logger.getLogger(ATest.class)方法需要一个Class类,传进去的参数相当与Class<ATest>。然后根据反射机制,会自动查找到这个类并加载。