String類學習筆記
String類學習三要點
1.String一旦聲明就不可變,是不可變字符序列。
2.字符串緩衝池:直接通過=爲字符串賦值,會先在字符串緩衝池中查詢有沒有一樣的字符串,如果有就把那個引用賦給字符串變量,否則就會創建一個新的字符串,並把對應的新字符串放入緩衝池中。
3.字符串常用方法(查看API,最常用的要非常熟悉)
String、StringBuffer、StringBuilder區別
StringBuffer(線程安全,效率低,多線程使用) && StringBuilder(線程不安全的,效率高,推薦使用)
PS:他們和String最大不同就是內容可變的
方法連綴:stringbuffer.append()
.append()
.append();
要想理解好String類不可變性,就得從內存開始分析,棧內存和堆內存。
Java裏面如果涉及區間的一般都是半開半閉,左開右閉。
equals 和= = 區別
PS:equals和= =的區別:(一個是地址一個是內容)
1.equals比較的是堆內存的內容
2.= =比較的是棧內存的引用地址
簡單理解可以像如上那麼理解,但是如果深入Object源碼的時候就會發現,equals比較的其實也是地址,只是String覆蓋了父類Object的equals方法,使其變成了比較內容了。
PS:Date && DateFormat
Date:是一個封裝了時間的類 Date date=new Date();
DateFormat:是一個時間、字符串格式化抽象類 一般使用其子類:SimpleDateFormat
最經常使用的就是SimpleDateFormat
PS:Random && Math
Random:主要產生隨機數
Math:有很多數學方法,Math的方法都是static 方法
靜態導入:舉例 ---- import static java.lang.Math.*; 用的比較少,瞭解即可。
String類和其它的類有點不同,需要注意,String也是很多開發語言中最常使用的一個類。