一、字符串
1》在Java中,字符串被作爲String類型的對象處理。String 類位於java.lang包中。默認情況下,該包被自動導入所有的程序。
2》創建String對象的方法
String s1 = "imooc" ;
String s2 = new String() ;
String s3 = new String("imooc") ;
二、字符串的不變性
String對象創建後則不能被修改,是不可變的,所謂的修改其實是創建了新的對象,所指向的內存空間不同。
注:1》每次new一個字符串就是產生一個新的對象,即便兩個字符串的內容相同,使用“ ==”比較時也爲false,如果只需比較內容是否相同,應使用“equals()”方法。
2》一旦一個字符串在內存中創建,則這個字符串將不可改變,如果需要一個可以改變的字符串,我們可以使用StringBuffer或者StringBuilder。
三、String類的常用方法
1》常用方法
注:1》字符串str中字符的索引從0開始,範圍爲0到str.length()-1
2》使用indexOf進行字符或字符串查找時,如果匹配返回位置索引;如果沒有匹配結果,返回-1
3》使用substring(beginindex,endindex)進行字符串截取時,包括beginindex位置的字符,不包括endindex位置的字符
4》“==” 和 equals() 區別?
== :是判斷兩個字符串在內存中首地址是否相同,即判斷是否是同一個字符串對象
equals(): 比較存儲在兩個字符串對象中的內容是否一致
PS: 字節是計算機存儲信息的基本單位,1個字節等於8位,gbk編碼中一個漢字字符存儲需要2個字節,1個英文字符存儲需要1個字節。同時,漢字對應的字節值爲負數,原因在於每個字節是8位,最大值不能超過127,而漢字轉換字節後超過127,如果超過就會溢出,以負數的形式顯示。
四、StringBuilder類
1》Java中,除了可以使用String類來存儲字符串,還可以使用StringBuilder類或StringBuffer類存儲字符串。
2》程序運行時會額外創建一個對象,當頻繁操作字符串時,就會額外產生很多臨時變量,使用StringBuilder類或StringBuffer類就可以避免這個問題。它們基本相似,不用之處,StringBuffer是線程安全的,而StringBuilder則沒有實現線程安全功能,所以性能略高。因此一般情況下,如果需要創建一個內容可變的字符串對象,應優先考慮StringBuilder類。
例如:StringBuilder hobby=new StringBuilder("immooo");
3》StringBuilder類提供的方法操作字符串:
創建StringBuilder對象,用來存儲字符串,可以對其做追加和插入操作,但這些操作修改了str對象的值,而沒有創建新的對象。這就是StringBuilder和String最大的區別。