黑马程序员技术交流社区

标题: 关于获取字节码的三种方式的疑惑 [打印本页]

作者: 王虎    时间: 2012-10-31 14:15
标题: 关于获取字节码的三种方式的疑惑
什么时候用  .class
什么时候用  getClass()
什么时候用  ClassforName()
以及他们之间有什么区别?内存中和jvm中的字节码又是怎么个运作原理,最好上个图解释下
作者: 张忠豹    时间: 2012-10-31 15:14
什么时候用  .class                  已经知道这个类,而且这个类可能已经引入到当前类中,或者与当前类在同一个包中,就是用这个方法。
什么时候用  getClass()            在本道程序中存在对象,那么可以直接通过对象来调用。
什么时候用  ClassforName()     在知道这个类名,而且这个类没有已经引入到当前类中、或者这个类没有相关对象,这个时候使用此方式最好。
区别:也就是使用方式的区别。第三种最灵活。Class.forName(String变量),只要我改变一下这个String变量,就会加载相关的字节码。使程序变得灵活。

作者: 王得新    时间: 2012-10-31 15:22
区别二楼已经说了,在此不作赘述,下面的两张图,是我回答另一个帖子时画的,可以和二楼加在一起做个补充

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

图1

图1

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

图2

图2

作者: 王虎    时间: 2012-10-31 17:44
楼上两位辛苦了,解释的很好{:soso_e183:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2