12、常用類:
字串相關類:
字串的順序是按照字母順序排列的,先比字元再比長度。
String類:
String類是引用,字串常量裡面的資料是不可變的,即使改變也是讓String的引用指向另一個空間。
載入期在main方法前虛擬機器會把所有的字串常量以對象的形式預先放置在常量池中。
指向堆的引用:
String str=new String("hello");不檢查常量池,直接new出新對象(這段代碼產生了2個字串對象,載入時預先在常量池產生對象,然後new出一個對象放在堆中。)
指向常量池的引用:
String str="hello";這段代碼會先在常量池中尋找是否有對象,有它的引用就直接指向那個對象,沒有就重新劃分空間建立對象。
StringBuffer類:
這個類是可變的,它沒有繼承String,使用是不能直接賦字串只能通過構造器new出來。
StringBuffer sb=new StringBuffer("Hello");
sb.append("world");
他的連結符不是+號,而是append();
調用它的toString方法能將其轉換成一個String對象。
與String相比唯一的優勢就是字串連結動作,他不會在記憶體產生新的字串對象。
StringBuilder類:
它與StringBuffer類用起來是一樣的。
不同的是StringBuffer是安全執行緒的,而Stringbuilder則是不安全的。
日期相關類:
Date類:
Date目前的作用是擷取目前時間並按照我們需要的格式列印輸出。
Date date=new Date();
DateFormat抽象類別與SimpleDateFormat類:
DateFormat是抽象的類不能被實列化,但是它提供了大量的靜態方法返回一個具體的子類。我們可以用不通的方法格式化日期時間。
DateFormat類的getDateInstance()方法可以返回一個將日期按照預設或制定地區的方式格式化。
得到具體子類後我們就可以調用具體子類的Format()方法按照預定義的方式格式化日期時間。
Calendner抽象類別與GregorianCalender類;
Calender類是抽象的,不能執行個體化。它唯一的子類是GregoeianCalender類,所以它的的靜態方法getInstance()方法就是返回一個GregorianCalender對象。
Calender cal=Calender.getInstance();這是設計模式。
GregorianCalender day=new GregorianCalender(1949,9,1);
需要注意的是,月份是從0還是記得,如12+1才是12月;星期是從星期天開始的,如1就是星期天,3是星期2。
封裝類與自動裝箱拆箱:
封裝類封裝了大量基本類的屬性(列如最大值、最小值)以及大量對基本類型進行轉換的方法。
八中資料類型對應的封裝類只有int(Integer)和char(Character)這兩個不同,其他的封裝類都是把首字母改為大寫。
Number類有shortValue()、intValue()、doubleValue()等方法,使用這些方法就返回對應的基礎資料型別 (Elementary Data Type)。
也提供了parse…(String s)方法,將字串轉換成對應的基礎資料型別 (Elementary Data Type)。
基本類型和封裝類對象互轉:
基本轉封裝類對象:自動封箱和自動拆箱。
封裝類對象轉基本:調用封裝類的…Value方法。
封裝類對象轉字串:調用封裝類對象的toString方法。
字串轉封裝類對象:調用封裝類對象的帶參數的toString構造方法。
字串轉基本:調用封裝類的parse…方法。
基本轉字串:調用封裝類的帶參數的toString方法。也可以:直接使用字串連結空串進行連結,String s1=變數名+"";
Regexregex:
任何一個字串都是Regex。
(|) 分組,可以放豎線前面也可以放後面,可以加多個豎線分隔;
\ 轉義,(\\?);
* 匹配前面的子運算式零次或多次;
+ 匹配前面的子運算式一次或多次;
? 匹配前面的子運算式零次或一次;
{n} 前面的規則允許出現次數;
{n,} 最少出現n次,最多不限;
{n,m} 最少n次最多m次;
[abc] 匹配一個abc;
[a-f] 匹配a到f的所有字元
[^0-9] 不匹配0到9的數字。
property屬性檔案:
Key-Value(KV 對)
key是鍵value是值,元素數由鍵和值組成的他們永遠共同出現。