綱要
- String
- StringBuffer
- 基礎類型對應的8個包裝類
- 日期相關類
- 數字相關類
- Random
- Enum
1. 理解String類的存儲原理
- String類是不可變類,也就是說String對象聲明後,將不可修改。
- String表示字符串類型,屬於引用數據類型,不數據基本數據類型
1.1. String創建方式一
這種方式內存地址直接指向常量池中的對象
public class StringTest01 {
public static void main(String[] args) {
String s1 = "abcdef";
String s2 = "abcdef" + "xy";
// 會創建三個對象
}
}
以上代碼會創建3個字符串對象,都在常量池中,內存圖如下所示:
1.2 String創建方式二(通過 new String的方式)
這種方式會在 new對象的時候在堆內存中開闢空間
此時的內存圖如下所示:
1.3 創建類的方式,通過構造函數創建對象
首先:創建 User類
其次:通過 User user = new User(110,"張三”); 的方式創建
name裏面實際上保存的是:"張三“的字符串常量內存地址
1.4 比較兩個字符串常量是否相等
1.4.1 代碼片段:
1.4.1 內存分析:
1.4.2 代碼片段
1.4.2 內存分析
案例總結:
通過這個案例的學習,我們知道了字符串對象之間的比較不能使用 ”==“,應該調用String類的equals方法,因爲String類的equals方法被重寫了。
1.5 String 類的常用構造方法
方式一:直接聲明: String s1 = “hello,world”;
方式二: 傳入 byte數組
方式三:傳入char數組
方式四:通過new String()
1.6 String 類的常用方法之valueOf()
把不是字符串的轉成字符串
1.7 StringBuffer與StringBuilder
思考:爲什麼會有StringBuffer??
StringBuffer與StringBuilder的區別:
StringBuffer:線程安全的
StringBuilder:非線程安全的