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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 愿㊡╃數曐曐メ   /  2013-5-29 23:15  /  2518 人查看  /  23 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Changer_s 发表于 2013-6-15 13:56
后面的确有点问题,现在还是对字节码产生了疑惑,为什么比较的时候要用:== 来比较。就像你的一样,那如 ...

比较他们Class对象的引用地址的
得到某个Java类的Class实例的方式(以String为例):
1. Class c1 = String.class
2. Class c2 = 字符串对象.getClass();
3. Class c3 = Class.forName("java.lang.String");
c1,c2,c3的都是指向的是同一个Class对象的引用
回复 使用道具 举报
只创建有一个对象 对象是在堆内存中的 引用变量是创建在栈内存中的
刚开始 "abc"这是一个匿名对象会被放在一个叫常量池的地方,当“abc”赋给一个引用变量的时候 会首先找常量池有没有“abc”如果有就将“abc”所在常量池的地址返回
果断上图
回复 使用道具 举报
在堆中他们指向同一个字符串对象地址,就像楼上所画的图一样。。。
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马