A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 常文艺 黑马帝   /  2011-12-2 22:16  /  2733 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 常文艺 于 2011-12-3 01:05 编辑

{:soso_e100:}。。。。。。。。。。。。。。。。。。。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

2 个回复

倒序浏览
区别简单点说就是:
String.class
是能对类名的引用取得在内存中该类型class对象的引用,
new String().getClass()
是通过实例对象取得用取得在内存中该实际类型class对象的引用
(这个方法是从java.lang.Object类继承过来的)

因为在java虚拟机中对现一个类文件,它只加载一个class对象所以它们取得的是在同一内存位置的对象所以,
可以用“==”来比较判断。
如:
String.class==new String().getClass()
返加的应该是true

评分

参与人数 1技术分 +1 收起 理由
王德云 + 1 赞一个!

查看全部评分

回复 使用道具 举报
1:
  .class是通过类名获取类
  getClass()是通过对象获取类
2:
    getClass()是一个对象实例的方法,只有对象实例才有这个方法,具体的类是没有的
    类的Class对象实例是通过.class获得的,具体的类没有.getClass()方法
3:
   .class是静态加载
    getClass()是动态加载

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马