課程
/后端開發(fā)
/Java
/Java入門第三季
String S1=“imooc”;
String S2=new String("imooc");
請問S1與S2區(qū)別在哪?
2016-08-11
源自:Java入門第三季 2-1
正在回答
沒區(qū)別,一個是直接定義,另一個是通過創(chuàng)建一個對象的方式進行定義
菜鳥的羽毛 提問者
是有區(qū)別,學(xué)語言最怕得過且過。
區(qū)別在于,第一個在字符串常量池中創(chuàng)建。第二個實際在堆上。如果用==來比較兩個字符串返回的是false。應(yīng)為==是比較地址。字符串常量池不是棧哦
這實例化種方法一般會在堆內(nèi)存中開辟兩個空間,只用一個,比較浪費資源;所以一般采用直接賦值法
個人感覺是通過S1的方式創(chuàng)建的字符串是存放在棧區(qū)中的,而S2的創(chuàng)建方式是創(chuàng)建在堆中的,所以二者地址不一樣,使用==得到的也是false
木吉他__秋 回復(fù) 菜鳥的羽毛 提問者
舉報
Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧
1 回答字符串,字符串
5 回答空字符串問題
3 回答字符串長度問題
1 回答字符串2的問題
2 回答字符與字符串的區(qū)別
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-08-11
沒區(qū)別,一個是直接定義,另一個是通過創(chuàng)建一個對象的方式進行定義
2016-09-08
是有區(qū)別,學(xué)語言最怕得過且過。
2016-08-30
區(qū)別在于,第一個在字符串常量池中創(chuàng)建。第二個實際在堆上。如果用==來比較兩個字符串返回的是false。應(yīng)為==是比較地址。字符串常量池不是棧哦
2016-08-21
2016-08-11
個人感覺是通過S1的方式創(chuàng)建的字符串是存放在棧區(qū)中的,而S2的創(chuàng)建方式是創(chuàng)建在堆中的,所以二者地址不一樣,使用==得到的也是false