JAVA 类名.class是什么意思?

JAVA 类名.class是什么意思?

if (instance == null) {

synchronized (ConfMgr.class) {
if (instance == null)
instance = new ConfMgr(configFile);
}

}

如上,ConfMgr是这代码的中公开类,在这个类中有如上面这一小点代码,其中有的ConfMgr.class是什么意思的啊
收起
北国燎原 | 浏览 59582 次  问题未开放回答 |举报
推荐于2016-07-28 12:31:29 最佳答案
ConfMgr.class是获取ConfMgr的class对象。
下面给你说几种获取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 name)传入一个类的完整类路径也可以获得 Class 对象,但由于使用的是字符串,必须强制转换才可以获取泛型的Class<T>的 Class对象,并且你必须获取这个方法可能抛出的ClassNotFoundException异常。这种方法可以初始化静态域。
3. 还可通过类的对象实例下的getClass()方法来获取Class对象,即 实例名.getClass()

489687009 

采纳率:65% 擅长: JAVA相关 其他编程语言 常见软件

其他回答

实际上java的每个类被编译成.class文件的时候,java虚拟机(叫jvm)会自动为这个类生成一个类对象,这个对象保存了这个类的所有信息(成员变量,方法,构造器等),以后这个类要想实例化(也就是创建类的实例或创建类的对象)那么都要以这个class对象为蓝图(或模版)来创建这个类的实例。例如 class<?> c=Class.forName("com.pojo.User"); c就是User的类对象,而 User u=new User();这个u就是以c为模版创建的,其实就相当于u=c.newInstance(); 这个在java的反射里面讲的比较清楚。
wuxinyun0564  | 发布于2013-06-23 00:46
评论(5) 
188 9
huihuiliangabc|2017-8-8 11:47
这么专业精确的答案,为什么还有sb点鄙视手势?回复
丁书宾198129|2017-7-24 17:59
这就叫专业回复
lichen354|2017-4-15 19:39
牛掰,正解回复
奢华0_0|2017-4-12 11:54
这才是正解回复
无心丶学丨壞|2017-1-27 12:34
说的很详细回复
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页