亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java字符串

java字符串

fenkapian 2017-04-05 21:24:10
String a= "as"; String b= new String("as");a == b返回true還是false?為什么?
查看完整描述

2 回答

?
堯叔

TA貢獻77條經驗 獲得超201個贊

String?b=?new?String("as");

看見new 不管以前有沒有都會創建一個新的String 。

所以a == b是false。


查看完整回答
2 反對 回復 2017-04-05
?
羽觴丨醉月

TA貢獻22條經驗 獲得超6個贊

很簡單 ?false

你要知道=和 new 是不一樣的

= 是將對象存在棧中(常量池?) 而new出來的對象是存放在堆中的

意思是無論你new多少個"as",就會創建多少個對象,

而=是當你沒有"as"的時候才會創建,有了"as",就不會再創建又一個對象了,只是會讓那個引用變量指向那個對象

==比較對象的地址值。

你可以試一下String c=a;看看a和c是否相等.

String d=new String("as")看d和b是否相等驗證一下我的說法。

查看完整回答
1 反對 回復 2017-04-05
?
丶子非魚

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);

? ?}

查看完整回答
反對 回復 2017-04-06
  • fenkapian
    fenkapian
    那最后一個返回false,是因為什么呢?
  • 丶子非魚
    丶子非魚
    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);//在不同的位置一個在池中 一個在堆中 所以為false a=a.intern(); System.out.println("估計是:"+(a==d));//intern() 方法:把a放到常量池中 如果常量池中有相同的內容的話 //a的指針指向該內容 沒有的話把a對象添加到常量池中 所以這里是true }
  • 丶子非魚
    丶子非魚
    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); a=a.intern(); System.out.println("估計是:"+(a==d)); }
  • 2 回答
  • 1 關注
  • 1647 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號