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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

黑马网友  发表于 2011-9-28 18:39:27
21#
String a = "abc";  
String b = "abc";  
System.out.println("====>"+ a==b );

对于这个问题,答案是true
为什么?第一行代码创建了一个对象 (String pool)  String内部会把内容为"abc"放进String pool(String池)并且让a指向"abc"
对于第二行代码,String会去检查String Pool有没有"abc"的对象,发现有那么就不创建对象了,直接让b指向"abc"
所以a和b指向的是同一个内存地址,更加详细的信息可以查看String 的API

评分

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

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-30 12:47:43
22#
我新来的,我是来学习一下的.看上面的兄弟们都给出答案了.
回复 使用道具 举报
黑马网友  发表于 2011-9-30 20:29:20
23#
这道题太邪恶了,弄个运算符 搞成了 ====>a和b比较
回复 使用道具 举报
{:soso_e103:}  是比较邪恶,惯性思维在作怪。

System.out.println("===>"+(a==b));   打印的结果是 ====>true
System.out.println("===>"+a==b);      打印的结果是 false  而不是====>false
回复 使用道具 举报
邪恶的一道题
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马