String-vs-StringBuilder-vs-StringBuffer

String

String是不可變的對象,一旦建立就不能改變。String被存放在字符串常量池中,Java中每個不可變對象都是線程安全的,因此String也是線程安全的。安全

性能:慢。多線程

使用場景:常量聲明,少許的變量運算。性能

StringBuffer

StringBuffer是可變的,咱們能夠改變它的值。new StringBuffer建立的對象被放在堆中,StringBuffer和StringBuiler有相同的方法,可是StringBuffer的每一個方法都有synchronized,因此它是線程安全的,也所以在性能上不如StringBuilder。。ui

性能:很快。線程

使用場景:多線程中頻繁的進行字符串操做。對象

StringBuilder

StringBuiler和StringBuffer相同,也是被存儲在堆中,能夠被修改,他們主要的不一樣就是StringBuilder不是線程安全的字符串

性能:很快。變量

使用場景:不要求線程安全的頻繁的進行字符串操做。方法

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息