(1)
java.lang.String類爲final類型,即不可被繼承、修改。
String類屬於特殊的引用類型,在棧空間引用,堆空間保持數據。
String的值是不可變的,因此每次對String的操作都需要新的String對象。效率低下、浪費內存空間。
e.g:
String a = "a"; // 假設 a 指向地址 0x0001
a = "b";// 重新賦值後, a 指向地址 0x0002 ,但 0x0001 地址中保存的
"a" 依舊存在,但已經不再是 a 所指向的 ,a 已經指向了其它地址。
因此 String 的操作都是改變賦值地址而不是改變值操作。
String str="abc";//str引用指向堆內存常量空間,常量空間存儲“abc”數據;
String str=new String("abc");//str引用指向堆空間,abc存在與new出的堆空間中;
StringBuffer對象有一定緩衝區容量,當字符串大小沒超過容量時,不會分配新的內存空間,當字符串超過該容量時會自動增加容量;
StringBuilder與StringBuffer類似,不過,StringBuilder線程不安全,StringBuffer線程安全。
(2)
8中基本類型:byte、short、int、float、double、long、char、boolean;
java爲每個原始類型(內置類型)提供了對應封裝類,每個封裝類都有相應的方法。
原始類型 | 封裝類 |
int | Integer |
byte | Byte |
short | Short |
double | Double |
float | Float |
char | Character |
long | Long |
boolean | Boolean |