黑马程序员技术交流社区
标题:
类名.getclass和类名.class的区别
[打印本页]
作者:
常文艺
时间:
2011-12-2 22:16
标题:
类名.getclass和类名.class的区别
本帖最后由 常文艺 于 2011-12-3 01:05 编辑
{:soso_e100:}。。。。。。。。。。。。。。。。。。。
作者:
刘国辉
时间:
2011-12-2 22:19
区别简单点说就是:
String.class
是能对类名的引用取得在内存中该类型class对象的引用,
new String().getClass()
是通过实例对象取得用取得在内存中该实际类型class对象的引用
(这个方法是从java.lang.Object类继承过来的)
因为在java虚拟机中对现一个类文件,它只加载一个class对象所以它们取得的是在同一内存位置的对象所以,
可以用“==”来比较判断。
如:
String.class==new String().getClass()
返加的应该是true
作者:
颜秉武
时间:
2011-12-2 22:43
1:
.class是通过类名获取类
getClass()是通过对象获取类
2:
getClass()是一个对象实例的方法,只有对象实例才有这个方法,具体的类是没有的
类的Class对象实例是通过.class获得的,具体的类没有.getClass()方法
3:
.class是静态加载
getClass()是动态加载
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2