String能變化嗎?和StringBuffer的區(qū)別是什么?
【新手可忽略不影響繼續(xù)學(xué)習(xí)】看過上面例子的童鞋一定會覺得很奇怪,s = s + s1.charAt(i); 馬克-to-win, s不是老在變化嗎?其實(shí)s = "";時,虛擬機(jī)會創(chuàng)建一個String對象,s = s + s1.charAt(i); 時,會創(chuàng)建一個新對象,而不是之前的s了,會導(dǎo)致新對象的生成,這樣做次數(shù)少還沒有太大的問題,如果次數(shù)多的話,很浪費(fèi)空間。StringBuffer是在同一個實(shí)例上做這些事,不用生成新對象。當(dāng)做的次數(shù)多的話,會節(jié)省大量空間。
馬克- to-win:馬克 java社區(qū):防盜版實(shí)名手機(jī)尾號: 73203。