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

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

String s = “123”;這個語句有幾個對象產生

String s = “123”;這個語句有幾個對象產生

android也瘋狂 2018-02-12 10:22:39
查看完整描述

1 回答

?
Zhuliuer

TA貢獻10條經驗 獲得超15個贊

類似于你題目中的形式定義一個字符串,java語言中有一個常量池,如果在你的代碼的其它地方已經定義過這么這個'123'的變量,在定義string s='123'的時候,直接把s指向常量池中的字符串123,就不會新生成一個字符串123,但假如沒有的話,就會新生成一個字符串123,指向s,并放入常量池!
我覺得你不需要去關注有幾個對象問題,你可以了解一下字符串常量池的概念!看看是什么原理。

查看完整回答
1 反對 回復 2018-02-12
?
慕沐9307871

TA貢獻27條經驗 獲得超9個贊

一個對象(常量池里的),需要搞清楚的是你這句代碼和

String?s?=?new?String("123");

有區別的,我這句兩個對象(一個堆中的對象,一個常量池里的對象)。

這類問題需要理清常量池的規律,其他迎刃而解。

查看完整回答
反對 回復 2018-02-13
?
楠寶寶_

TA貢獻46條經驗 獲得超18個贊

我覺得其實現在已經沒必要去糾結這種new對象的內存問題了,就比如我問你

String temp = "a" +"b"+"c"+"d";這句話有多少對象產生?你不管說幾個,3,4個都不一定對的,因為要看編譯器的,一些編譯器是會自動變成String temp = "abcd";

查看完整回答
反對 回復 2018-02-12
?
D明日邊緣

TA貢獻13條經驗 獲得超28個贊

String s = new String(〃123〃);
一個對象

查看完整回答
反對 回復 2018-02-12
  • 1 回答
  • 0 關注
  • 5183 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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