第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

空和空(“)Java字符串的區(qū)別

空和空(“)Java字符串的區(qū)別

蝴蝶刀刀 2019-07-19 15:14:22
空和空(“)Java字符串的區(qū)別.之間的區(qū)別是什么?null而""(空字符串)?我寫了一些簡單的代碼:String a = "";String b = null;System.out.println(a == b); // falseSystem.out.println(a.equals(b)); // false兩個語句都返回false..看來,我找不到他們之間的實(shí)際區(qū)別。
查看完整描述

3 回答

?
精慕HU

TA貢獻(xiàn)1845條經(jīng)驗(yàn) 獲得超8個贊

“是一個實(shí)際的字符串,盡管是空字符串。

但是,NULL意味著字符串變量指向空。

a==b返回false,因?yàn)椤昂蚇ULL不占用內(nèi)存中相同的空間-換句話說,它們的變量不指向相同的對象。

a.equals(b)返回false,因?yàn)椤帮@然不等于NULL。

不同之處在于,由于“是一個實(shí)際的字符串,所以仍然可以在其上調(diào)用方法或函數(shù),例如

a.length()

a.substring(0, 1)

諸若此類。

如果字符串等于NULL,就像b一樣,Java將拋出一個NullPointerException如果您試圖調(diào)用,請說:

b.length()


如果您想知道的區(qū)別是=與相等,則如下所示:

=比較引用,就像我去

String a = new String("");String b = new String("");System.out.println(a==b);

這將輸出false,因?yàn)槲曳峙淞藘蓚€不同的對象,而a和b指向不同的對象。

然而,a.equals(b)在本例中,將返回true,因?yàn)?/trans>equals因?yàn)镾trings將返回true當(dāng)且僅當(dāng)參數(shù)字符串不是NULL并且表示相同的字符序列。

但是,請注意,Java確實(shí)有字符串的特例。

String a = "abc";String b = "abc";System.out.println(a==b);

你會認(rèn)為輸出false,因?yàn)樗鼞?yīng)該分配兩個不同的字符串。實(shí)際上,Java會實(shí)習(xí)生文字字符串(在我們的示例中初始化為a和b的字符串)。所以要小心,因?yàn)檫@可能會在=的工作方式上產(chǎn)生一些錯誤的結(jié)果。


查看完整回答
反對 回復(fù) 2019-07-19
?
蠱毒傳說

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個贊

你的陳述告訴你的只是“和NULL不一樣-這是真的?!啊睘榭兆址?;NULL表示未分配任何值。

也許更有啟發(fā)性的是:

System.out.println(a.length()); // 0
System.out.println(b.length()); // error; b is not an object

“仍然是一個字符串,意味著您可以調(diào)用它的方法并獲得有意義的信息。NULL是一個空變量-實(shí)際上什么都沒有。


查看完整回答
反對 回復(fù) 2019-07-19
  • 3 回答
  • 0 關(guān)注
  • 429 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號