System類與StringBuilder類

繼續API : System類

System類與StringBuilder類

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點之間的毫秒差值

System類與StringBuilder類

arraycopy方法

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) :將數組中指定的數據拷貝到另一個數組中。

數組的拷貝動作是系統級的,性能很高。System.arraycopy方法具有5個參數,含義分別為:

System類與StringBuilder類

將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]

System類與StringBuilder類

StringBuilder類

字符串拼接問題

由於String類的對象內容不可改變,所以每當進行字符串拼接時,總是會在內存中創建一個新的對象。例如:

System類與StringBuilder類

在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對象。
System類與StringBuilder類

StringBuilder已經覆蓋重寫了Object當中的toString方法。


分享到:


相關文章: