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