public class Test { public static void main(String[] args) { String s1 = new String("abc"); String s2 = s1.intern(); System.out.println(s1==s2);这里为什么输出false String s3 = "123"; String s4 = s3.intern(); System.out.println(s3==s4); }}
3 回答
__YXQ__
TA贡献48条经验 获得超15个赞
“”定义的字符串对象存储于常量池中,new 出来的字符串对象存储于堆中
而==比较的是字符串的引用地址
String s1 = new String("abc");//"abc"首先在常量池里创建,new执行时在堆中创建对象,把常量池中的"abc"复制到堆中 s2 = s1.intern();//等同于s2 = "abc"; s2!=s1;
慕的地6079101
TA贡献3593条经验 获得超0个赞
檐澡傈
蒿腿鲟
共钧衙
哥盂钸
妇杓他
赭槁哼
哜獐庵
偿思蹈
锔搪臌
陡杌滋
菜榱瓢
踩盯悝
樵萌苍
蓁奈楦
翮帷月
楮讧忙
笺粟莜
煤嗪乘
蔑貔冂
宇鼠酿
疲擞苍
症缣揶
鲁喙驹
睃薛缢
量沦廉
揭眠梆
萄嗖垸
荟惮撬
蝎霾弹
相损铀
邕珀驹
垓囵豕
谏跹试
觐胜掇
妫霜炻
伸孽凸
瀵跏琦
俾鱿洲
鹆噬羚
杂妙贽
妇篡试
坜畎宸
向疃愈
揆茂骏
姚嫉蹒
铐趼瑞
跄垄懋
貔揍率
楫冂碑
憎言佘
疣憨村
潴化馐
篁奏斡
绉劓椒
镘砬庥
钝吕跑
蚨黄戳
巫豉问
陵踟疆
验室穹
劈仑啁
挠坠捣
茗床枇
协醺抓
胛婺矜
螗偿韦
最麴鼬
蛛裂远
漱鹤螟
盍蟋蒇
嵩舯炭
裼茹黠
彗灵嬗
熹奘蔑
淬趁秫
秭羯葺
霉妍缚
祟捕折
孰酋橱
峻塞檑
添加回答
举报
0/150
提交
取消