Java筆記系列(基於馬士兵的課堂)(4)-常用類

常用類(j2se提供的常用類)

基礎:字符串相關類(String,StringBuffer),基本數據類型包裝,math,file,枚舉類。

String類:不可變的字符序列。




構造方法:空串構造方法,字節數組(傳入字節)構建字符串(在講一個構造字符串改變成另外一種字符串時往往會用到),字節數組的一部分,特定的字符編碼將字節數組改變成爲這個字節數組的字符串。(其他String類中的方法見API)

注意斜體方法(都標註了deprecated已經廢棄的,不再推薦使用了)

String中的引用,不見得是new出來的,系統在對於data區中的對象有一個優化,相同的引用指向data中的同一個對象,如果是String s=new String(””)此時兩個對象位於堆內存中,內容相同,直接不相等,但由於String類裏,重寫了equals,可以用equals判斷,內容是否相等。

String構造方法中可以用多個字符(char[]c={‘a’,’b’}構建字符數組)


String a= new String (c,2,2);(String 常量字符串)

String。Split方法,與StringvalueOf方法見java語法自學

StringBuffer類(buffer緩衝區)

可變的字符序列,與String相區別

不可變的字符串在加的時候,分配了一塊新的內存,相當於兩個因子的總和,再複製兩個銀子的內容,最後從佔內存中分配變量指向。(效率不高,String是不可變的字符串)

StringBuffer類裏是可變的字符串,已出現的字符串可以改變,不會消失。




String類要刪減字符,需要截需要字符串,在內存中分配多個內存,並取一塊大內存,將這些字符串一一複製。

而StringBuffer類可以直接刪減某個字符,相對於String類更加便捷。

Append可以不斷地調用,輸出結果是StringBUffer類,可以一直增加。


StringBuffer與String類的重大區別就在於兩者的內存模型不同。

基礎類型包裝類:

Integr,Bollean,Character…

每一個類型裏都有作爲常量最的大值,最小值,在內存中佔據多大的空間(可以用對象調用輸出),可以參考,來看其是否超出。

其中有toHexString(轉化爲十六進制字符串)同toBinaryString,toOctalString

可以觀察字符的內部結構。

valueOf()將一個包裝類對象轉換成基礎數據類型,用longvalue,將一個基礎數據類型,轉化爲包裝類,Long a=newLong(b),b就轉化爲一個包裝類型的Long。

在強制轉換的過程中若要捨去小數位一定是小數位被截掉,而不是四捨五入,四捨五入還要用到math裏的round方法。

Math與file

數學方法,math類大多靜態,大多返回值爲double。

abs絕對值,sqrt平方根,exp(自然指數),random返回0.0到1.0間的隨機數,toDgree()弧度轉化爲角度,toRandians()角度轉化爲弧度。E是一個靜態常量

File


Java.io.file 類代表文件名(而不是文件,若要訪問文件內容要用io),或者訪問路徑

Fileliset列出所有子目錄到一個數組中,separator(常量)分隔符,在windows下是反斜槓,在linux下是正斜槓,實現了跨平臺。

其他見API文檔。計算機在存儲時間時,都是用一個long類型的變量,存儲迄今爲止走過的毫秒數,這樣所有計算機的時間達到統一(這種方法效率比較高,這樣效率高,如果存年月日變量較多)。

當文件在某個包中,文件的上層路徑實際上是包的上層路徑,而非這個包,因爲此時可以認爲這個包和這個文件的整體的名字纔是這個文件的名字。


File類是一些文件的屬性(大小),文件的路徑,文件的名字。

枚舉類型(enum):

用enum關鍵字可以定義一個枚舉類型,這是一種類型並非一種變量,相當於定義了一種類,若用這種類型定義一種變量,這種變量只能取這種類型中的,不能區別的。

Public enum Mycolor(bulue,red,green)

Mycolor m=Mycolor.red;從而定義一種有限制的變量。

寫項目的時候將用到枚舉類型,限定變異類型,可以防止取別的值使程序紊亂且找不到。

總結:

String(正側表達式),基礎類型包裝類,Math(主要用random取隨機數),File(遞歸與io相關),枚舉類型。

注意查詢Api文檔。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章