猿问

求问JAVA 类名.class是什么意思?

if (instance == null) {
synchronized (ConfMgr.class) {
if (instance == null)
instance = new ConfMgr(configFile);
}
}
如上,ConfMgr是这代码的中公开类,在这个类中有如上面这一小点代码,其中有的ConfMgr.class是什么意思的啊

慕村225694
浏览 495回答 4
4回答

慕妹3242003

ConfMgr.class是获取ConfMgr的class对象,类型类指的是代表一个类型的类,因为一切皆是对象,几种获取class对象的方法:1,所有的引用数据类型(类-类型)的类名、基本数据类型都可以通过.class方式获取其 Class对象。对于基本数据类型的封装类还可以通过.TYPE 的方式获取其 Class 对象,但要注意。TYPE 实际上获取的封装类对应的基本类型的 Class 对象的引用。那么你可以判断出int.class==Integer.TYPE 返回 true,int.class==Integer.class 返回 false!通过这种方式不会初始化静态域,使用.class、.TYPE 的方式获取 Class对象叫做类的字面常量;2,Class 的 forName(String &nbsp;name)传入一个类的完整类路径也可以获得 Class 对象。由于使用的是字符串,必须强制转换才可以获取泛型的Class<T>的 Class对象,并且必须获取这个方法可能抛出的ClassNotFoundException异常。这种方法可以初始化静态域。3,还可通过类的对象实例下的getClass()方法来获取Class对象,即 实例名getClass()扩展资料在一个面向对象的系统中,类(class)是数据和操作数据的方法的集合。数据和方法一起描述对象(object)的状态和行为。每一对象是其状态和行为的封装。类是按一定体系和层次安排的,使得子类可以从超类继承行为。在这个类层次体系中有一个根类,它是具有一般行为的类。当编辑并运行一个Java程序时,需要同时涉及到这四种方面。使用文字编辑软件(例如记事本、写字板、UltraEdit等)或集成开发环境(Eclipse、MyEclipse等)在Java源文件中定义不同的类。通过调用类(这些类实现了Java API)中的方法来访问资源系统,把源文件编译生成一种二进制中间码,存储在class文件中。通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用 。

慕后森

.class文件是java文件编译之后的文件。A&nbsp;a&nbsp;=&nbsp;new&nbsp;A(); &nbsp;if(a.getClass()==A.class)&nbsp;{ &nbsp;System.out.println("equal"); &nbsp;}&nbsp;else&nbsp;{ &nbsp;System.out.println("unequal"); &nbsp;} &nbsp;可以看到,对象a是A的一个实例,A是某一个类,在if语句中使用a.getClass()返回的结果正是类A的类型类,在Java中表示一个特定类型的类型类可以用“类型.class”的方式获得,因为a.getClass()获得是A的类型类,也就是A.class,因此上面的代码执行的结果就是打印出“equal”。拓展资料:Java反射所谓反射,可以理解为在运行时期获取对象类型信息的操作。传统的编程方法要求程序员在编译阶段决定使用的类型,但是在反射的帮助下,编程人员可以动态获取这些信息,从而编写更加具有可移植性的代码。严格地说,反射并非编程语言的特性,因为在任何一种语言都可以实现反射机制,但是如果编程语言本身支持反射,那么反射的实现就会方便很多。
随时随地看视频慕课网APP

相关分类

Java
CSS3
我要回答