java字符串反轉(zhuǎn)函數(shù) string類和stringbuilder的區(qū)別?
string類和stringbuilder的區(qū)別?1)變量或不可變:字符串是不可變的,每次執(zhí)行時(shí)都會(huì)生成一個(gè)新對(duì)象。因此,在頻繁更改字符串以節(jié)省內(nèi)存時(shí),不使用字符串。2)是多線程安全的:StringB
string類和stringbuilder的區(qū)別?
1)變量或不可變:字符串是不可變的,每次執(zhí)行時(shí)都會(huì)生成一個(gè)新對(duì)象。因此,在頻繁更改字符串以節(jié)省內(nèi)存時(shí),不使用字符串。
2)是多線程安全的:StringBuilder不向方法添加同步鎖,因此它不是線程安全的。StringBuffer和string是線程安全的
StringBuilder和StringBuffer。字符串存儲(chǔ)在char[]中,char[]存儲(chǔ)在堆中。
StringBuilder和StringBuffer的附件將string對(duì)象中的char[]字符直接復(fù)制到StringBuilder和StringBuffer的char[]中,與每次創(chuàng)建一個(gè)新的string對(duì)象并打開(kāi)一段新的內(nèi)存相比,效率更高。當(dāng)然,當(dāng)StringBuilder和StringBuffer的char[]長(zhǎng)度不夠時(shí),會(huì)打開(kāi)一段新的內(nèi)存。此外,StringBuffer是線程安全的,而StringBuilder不是。