繼續API : System類
System類
java.lang.System 類中提供了大量的靜態方法,可以獲取與系統相關的信息或系統級操作,在System類的API文檔中,常用的方法有:
public static long currentTimeMillis() :返回以毫秒為單位的當前時間。
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) :將數組中指定的數據拷貝到另一個數組中。
currentTimeMillis方法
實際上,currentTimeMillis方法就是 獲取當前系統時間與1970年01月01日00:00點之間的毫秒差值
arraycopy方法
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) :將數組中指定的數據拷貝到另一個數組中。
數組的拷貝動作是系統級的,性能很高。System.arraycopy方法具有5個參數,含義分別為:
將src數組中前3個元素,複製到dest數組的前3個位置上
複製元素前:src數組元素[1,2,3,4,5],dest數組元素[6,7,8,9,10]
複製元素後:src數組元素[1,2,3,4,5],dest數組元素[1,2,3,9,10]
StringBuilder類
字符串拼接問題
由於String類的對象內容不可改變,所以每當進行字符串拼接時,總是會在內存中創建一個新的對象。例如:
在API中對String類有這樣的描述:字符串是常量,它們的值在創建後不能被更改。
如果對字符串進行拼接操作,每次拼接,都會構建一個新的String對象,既耗時,又浪費空間。為了解決這一問題,可以使用java.lang.StringBuilder 類。
StringBuilder概述
查閱java.lang.StringBuilder 的API,StringBuilder又稱為可變字符序列,它是一個類似於 String 的字符串緩衝區,通過某些方法調用可以改變該序列的長度和內容。
原來StringBuilder是個字符串的緩衝區,即它是一個容器,容器中可以裝很多字符串。並且能夠對其中的字符串進行各種操作。
它的內部擁有一個數組用來存放字符串內容,進行字符串拼接時,直接在數組中加入新內容。StringBuilder會自動維護數組的擴容。原理如下圖所示:(默認16字符空間,超過自動擴充)
構造方法
根據StringBuilder的API文檔,常用構造方法有2個:
public StringBuilder() :構造一個空的StringBuilder容器。
public StringBuilder(String str) :構造一個StringBuilder容器,並將字符串添加進去
常用方法
StringBuilder常用的方法有2個:
public StringBuilder append(...) :添加任意類型數據的字符串形式,並返回當前對象自身。
public String toString() :將當前StringBuilder對象轉換為String對象。
StringBuilder已經覆蓋重寫了Object當中的toString方法。
閱讀更多 學習編程 的文章