java畢向東聽課筆記17(字串1)

2021-07-11 07:04:10 字數 736 閱讀 7251

string s1 = 「abc」;其中s1是乙個類型別變數,「abc」是乙個物件。

字串最大的特點:一旦被初始化就不可以被改變。

如果在接下來的語句中寫出s1= 「kk」;只能說明s1的位址變了,指向了「kk」物件,而在記憶體中,「abc」物件並沒有變,所以成為一旦初始化就不可以改變。

字串也可以這樣初始化:

string s2 = new string("abc");

例題:判斷下列輸出結果

為什麼出現這樣的結果呢?

原因在於string類複寫了object類中的equals方法,該方法用於判斷字串是否相同。

問題二:s1和s2有什麼區別:

答:s1在記憶體中有乙個物件,s2在記憶體中有兩個物件

問題三:如果出現下列**,結果如何?

解釋:在記憶體中有乙個叫做常量池的位置,字串就會放在裡面,當建立s2時,系統發現在常量池中已經存在「abc」物件,所以系統就不再建立新物件,可以節約記憶體,所以s1和s2指向了同一片記憶體位址。

java畢向東聽課筆記18(字串2)

string類適用於描述字串事物。那麼它就提供了多個方法對字串進行操作。常見的操作有哪些?1.獲取。1.1 字串中的包含的字元數,也就是字串的長度。int length 獲取長度 1.2 根據位置獲取位置上某個字元。char charat int index 1.3 根據字元獲取該字元在字串中的位置...

java畢向東聽課筆記10(異常)

異常 一般情況下,函式內出現異常,函式上需要宣告。發現列印的結果中只有異常的名稱,卻沒有異常的資訊。因為自定義的異常並未定義資訊。如何定義異常資訊呢?因為父類中已經把異常資訊的操作都完成了。所以子類只要在構造時,將異常資訊傳遞給父類通過super語句。那麼就可以直接通過getmessage方法獲取自...

java畢向東聽課筆記14(執行緒3)

死鎖 為什麼出現 同步中巢狀同步,而鎖卻不同。在開發中,應該盡量避免死鎖。執行緒間的通訊 其實就是多個執行緒在操作同一資源,但是操作的動作不同。等待喚醒機制 wait notify notifyall 都使用在同步中,因為要對持有監視器 鎖 的執行緒操作。所以要使用在同步中,因為只有同步才有鎖。為什...