-
StringBuffer與StringBuild的區別
頻繁修改字串時,建議使用StringBuffer和StringBuilder類,StringBuilder相較于StringBuffer有速度優勢,要求執行緒安全的情況下,必須使用StringBuffer類, -
為什么拼接String不推薦用加號
String的值是不可變的,每次對String的操作都會生成新的String物件,不僅效率低下,而且消耗大量記憶體空間, -
為什么String是不可變的
- String類內部所有的欄位都是final修飾的,
- String類內部所有的欄位都是私有的,
- String類不能夠被繼承和擴展,
-
有什么辦法能夠改變String
可以通過反射來改變String -
String設計成不可變有什么好處
- 安全需要:在JDK中Java的類裝載機制通過傳遞的引數(通常是類名)加載類,這些類名在類路徑下,假設String是可變的,攻擊者可能通過自定義類裝載機制損害應用,
- 性能需要:不可變物件才可以創建常量池,提高JVM性能,
- 執行緒安全:當多執行緒訪問時,不可變物件是執行緒安全的,
參考(部分摘抄的文字著作權屬于原作者):
https://blog.csdn.net/u011702479/article/details/82262823
https://www.cnblogs.com/wuchanming/p/9201103.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/6697.html
標籤:其他
上一篇:資料結構與演算法學習(二)——Master公式及其應用
下一篇:TCP協議的三次握手與四次揮手
