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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 苏乞儿 中级黑马   /  2014-9-29 18:59  /  1530 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. package cn.itcast.flect;

  2. public class ReflectTest {

  3.         public static void main(String[] args)throws Exception {
  4.                 String s=new String("abc");//第一种方式
  5.                 Class clazz1=s.getClass();
  6.                
  7.                 Class clazz2=String.class;//第二种方式
  8.                 Class clazz3=Class.forName("java.lang.String");//第三种方式
  9.                
  10.                 System.out.println(clazz1==clazz2);//true
  11.                 System.out.println(clazz2==clazz3);//true


  12.         }

  13. }
复制代码
反射到底是反射的哪个字节吗文件呢?第一种方式字节码文件可以找到,第二三种方式字节码文件在哪?不理解啊。。为什么是true呢?

评分

参与人数 1技术分 +1 收起 理由
敏敏好学 + 1

查看全部评分

13 个回复

倒序浏览
所有类的字节码文件只有一份,这三种方式都是指向的是String类的字节码文件,所以最后返回的是true
回复 使用道具 举报
楼主应该理解错误了,字节码不是内存地址值。获得的是String类的字节码,不是new String()这个对象的”字节码“。
回复 使用道具 举报
伍建雄 发表于 2014-9-29 20:08
楼主应该理解错误了,字节码不是内存地址值。获得的是String类的字节码,不是new String()这个对象的”字节 ...

嗯,有点理解了,但还是弱弱的问一句什么是String类的字节码呢?是真实存在的还是抽象出来的呢?
回复 使用道具 举报
huangxuanheng 来自手机 中级黑马 2014-9-29 23:50:42
报纸
String类的字节码就像你的身份证,只有一份。如果要new对象,就像拿身份证去复印,可以创建很多对象,但还是代表你的身份信息
回复 使用道具 举报
就只有一个吧。。。。恩。。。。
回复 使用道具 举报
sean 中级黑马 2014-9-30 05:52:14
7#
huangxuanheng 发表于 2014-9-29 23:50
String类的字节码就像你的身份证,只有一份。如果要new对象,就像拿身份证去复印,可以创建很多对象,但还 ...

正解!!
回复 使用道具 举报
一一对应的关系吧。 只要有类就有Class。
回复 使用道具 举报
huangxuanheng 发表于 2014-9-29 23:50
String类的字节码就像你的身份证,只有一份。如果要new对象,就像拿身份证去复印,可以创建很多对象,但还 ...

比喻很好,有点明白了,字节码就是用来创建对象的把?
回复 使用道具 举报
任何一个类都有字节码,这个字节码就是我们通过源码编译出来的.class文件,是实实在在存在的东东,你可以看的到哦,每一个类都需要编译才能运行,所以每个类都有字节码哦.String的字节码在内存中就那一份.字节码要加载进内存才能使用的,他们指向的是内存中的那个字节码
回复 使用道具 举报
Fightin黑马 发表于 2014-9-30 21:26
任何一个类都有字节码,这个字节码就是我们通过源码编译出来的.class文件,是实实在在存在的东东,你可以看的 ...

嗯,谢谢你,懂了!
回复 使用道具 举报
第二中是直接加载String字节码文件,应该是虚拟机启动是都已经加载了!第三种是要查询配置文件的。
回复 使用道具 举报
张业婷 发表于 2014-10-1 08:43
第二中是直接加载String字节码文件,应该是虚拟机启动是都已经加载了!第三种是要查询配置文件的。 ...

能说的再详细点吗?
回复 使用道具 举报
苏乞儿 发表于 2014-9-30 14:53
比喻很好,有点明白了,字节码就是用来创建对象的把?

可以拿来创建对象
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马