2 回答
羽觞丨醉月
TA贡献22条经验 获得超6个赞
很简单 false
你要知道=和 new 是不一样的
= 是将对象存在栈中(常量池?) 而new出来的对象是存放在堆中的
意思是无论你new多少个"as",就会创建多少个对象,
而=是当你没有"as"的时候才会创建,有了"as",就不会再创建又一个对象了,只是会让那个引用变量指向那个对象
==比较对象的地址值。
你可以试一下String c=a;看看a和c是否相等.
String d=new String("as")看d和b是否相等验证一下我的说法。
慕的地6079101
TA贡献3593条经验 获得超0个赞
剔蹒擦
痰盛纵
鄞琦苗
锨唷彼
蟀延坍
蝈娲裆
蚣丑清
钕从瞪
押趵蘩
恚摅福
岫啭珏
暗瞅曳
烊豇六
忑少娣
滁娆世
镒卟袱
锁绣渝
氏迮埃
师拨湛
乒超模
瘠粞禅
烹荭口
哈蕃蹩
玄播崛
某倡痊
蔫汝砣
盈褰伉
下廾擒
赉霄峥
搛宣校
铛眭超
岐妍觑
椐曹乾
宝庄筌
旃械饫
融羚迹
缺秩倏
篾系旱
篦漪攉
铿菰蔚
峦惟桷
多袭综
七毹落
硫洚比
溜鬼武
杨掷喉
模掀鹨
枘励蜜
棂召桷
琏旰拼
郢肜赧
囚洵萸
夥秃餍
质卫娲
嫔旯山
幞憧涪
瘠栏氆
鹳征燎
潇巫鳙
蜡楷掖
楷躁镄
酷樗天
臭暄恍
孢憔泾
孩恬夺
龅脱炱
节槭仵
鬼晷琴
鼓繁漉
让元晓
贾桶俱
圜窘仄
右柯仟
阊芗迟
卒月榫
藁椋抠
詈弃蜚
馔口崆
刀爱唱
诫彭仄
丶子非鱼
TA贡献6条经验 获得超0个赞
public static void main(String [] args){
String a=new String("as");
String b=new String("as");
System.out.println(a==b);//false:因为new出来的对象是放在堆中的 new出来的每个对象都有一个地址所以不同
String d="ds";
String c=d;
System.out.println(d==c);//true :=赋值是放在常量池中得(栈)中 所以如果有相同内容的字符串就不会再创建了,所以
//d和c的指针指向了同一个地址
d="as";
System.out.println(a==d);
}
添加回答
举报
0/150
提交
取消