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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王虎 中级黑马   /  2012-10-31 14:15  /  1133 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

什么时候用  .class
什么时候用  getClass()
什么时候用  ClassforName()
以及他们之间有什么区别?内存中和jvm中的字节码又是怎么个运作原理,最好上个图解释下

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1

查看全部评分

3 个回复

正序浏览
楼上两位辛苦了,解释的很好{:soso_e183:}
回复 使用道具 举报
区别二楼已经说了,在此不作赘述,下面的两张图,是我回答另一个帖子时画的,可以和二楼加在一起做个补充

1.png (37.75 KB, 下载次数: 9)

图1

图1

2.png (10.6 KB, 下载次数: 8)

图2

图2

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1

查看全部评分

回复 使用道具 举报
什么时候用  .class                  已经知道这个类,而且这个类可能已经引入到当前类中,或者与当前类在同一个包中,就是用这个方法。
什么时候用  getClass()            在本道程序中存在对象,那么可以直接通过对象来调用。
什么时候用  ClassforName()     在知道这个类名,而且这个类没有已经引入到当前类中、或者这个类没有相关对象,这个时候使用此方式最好。
区别:也就是使用方式的区别。第三种最灵活。Class.forName(String变量),只要我改变一下这个String变量,就会加载相关的字节码。使程序变得灵活。

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1 神马都是浮云

查看全部评分

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