W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
java.lang.Object
|---java.lang.System
public final class System
extends Object
System 類包含幾個(gè)有用的類字段和方法。 它不能被實(shí)例化。
System 類提供的設(shè)施包括標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出流; 訪問外部定義的屬性和環(huán)境變量; 一種加載文件和庫的方法; 以及一種用于快速復(fù)制數(shù)組的一部分的實(shí)用方法。
修飾符和類型 | 字段 | 描述 |
---|---|---|
static PrintStream | err | “標(biāo)準(zhǔn)”錯(cuò)誤輸出流。 |
static InputStream | in | “標(biāo)準(zhǔn)”輸入流。 |
static PrintStream | out | “標(biāo)準(zhǔn)”輸出流。 |
修飾符和類型 | 方法 | 描述 |
---|---|---|
static void | arraycopy(Object src, int srcPos, Object dest, int destPos, int length) | 將指定源數(shù)組中的數(shù)組從指定位置開始復(fù)制到目標(biāo)數(shù)組的指定位置。 |
static String | clearProperty(String key) | 刪除由指定鍵指示的系統(tǒng)屬性。 |
static Console | console() | 返回與當(dāng)前 Java 虛擬機(jī)關(guān)聯(lián)的唯一 Console 對(duì)象(如果有)。 |
static long | currentTimeMillis() | 以毫秒為單位返回當(dāng)前時(shí)間。 |
static void | exit(int status) | 終止當(dāng)前運(yùn)行的 Java 虛擬機(jī)。 |
static void | gc() | 運(yùn)行垃圾收集器。 |
static MapString,String | getenv() | 返回當(dāng)前系統(tǒng)環(huán)境的不可修改的字符串映射視圖。 |
static String | getenv(String name) | 獲取指定環(huán)境變量的值。 |
static Properties | getProperties() | 確定當(dāng)前系統(tǒng)屬性。 |
static String | getProperty(String key) | 獲取指定鍵指示的系統(tǒng)屬性。 |
static String | getProperty(String key, String def) | 獲取指定鍵指示的系統(tǒng)屬性。 |
static SecurityManager | getSecurityManager() | 獲取系統(tǒng)安全接口。 |
static int | identityHashCode(Object x) | 為給定對(duì)象返回與默認(rèn)方法 hashCode() 返回的相同的哈希碼,無論給定對(duì)象的類是否覆蓋 hashCode()。 |
static Channel | inheritedChannel() | 返回從創(chuàng)建此 Java 虛擬機(jī)的實(shí)體繼承的通道。 |
static String | lineSeparator() | 返回系統(tǒng)相關(guān)的行分隔符字符串。 |
static void | load(String filename) | 加載由文件名參數(shù)指定的本機(jī)庫。 |
static void | loadLibrary(String libname) | 加載由 libname 參數(shù)指定的本機(jī)庫。 |
static String | mapLibraryName(String libname) | 將庫名稱映射到表示本機(jī)庫的特定于平臺(tái)的字符串。 |
static long | nanoTime() | 返回正在運(yùn)行的 Java 虛擬機(jī)的高分辨率時(shí)間源的當(dāng)前值,以納秒為單位。 |
static void | runFinalization() | 運(yùn)行任何等待終結(jié)的對(duì)象的終結(jié)方法。 |
static void | runFinalizersOnExit(boolean value) | 已棄用。 這種方法本質(zhì)上是不安全的。 這可能會(huì)導(dǎo)致在其他線程同時(shí)操作這些對(duì)象時(shí)對(duì)活動(dòng)對(duì)象調(diào)用終結(jié)器,從而導(dǎo)致行為不穩(wěn)定或死鎖。 |
static void | setErr(PrintStream err) | 重新分配“標(biāo)準(zhǔn)”錯(cuò)誤輸出流。 |
static void | setIn(InputStream in) | 重新分配“標(biāo)準(zhǔn)”輸入流。 |
static void | setOut(PrintStream out) | 重新分配“標(biāo)準(zhǔn)”輸出流。 |
static void | setProperties(Properties props) | 將系統(tǒng)屬性設(shè)置為 Properties 參數(shù)。 |
static String | setProperty(String key, String value) | 設(shè)置由指定鍵指示的系統(tǒng)屬性。 |
static void | setSecurityManager(SecurityManager s) | 設(shè)置系統(tǒng)安全。 |
從類 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
public static final PrintStream err
“標(biāo)準(zhǔn)”錯(cuò)誤輸出流。 此流已經(jīng)打開并準(zhǔn)備好接受輸出數(shù)據(jù)。
通常,此流對(duì)應(yīng)于主機(jī)環(huán)境或用戶指定的顯示輸出或另一個(gè)輸出目的地。 按照慣例,此輸出流用于顯示錯(cuò)誤消息或其他應(yīng)立即引起用戶注意的信息,即使主要輸出流(變量 out 的值)已重定向到文件或其他目標(biāo) 通常不會(huì)持續(xù)監(jiān)控。
public static final InputStream in
“標(biāo)準(zhǔn)”輸入流。 該流已經(jīng)打開并準(zhǔn)備好提供輸入數(shù)據(jù)。 通常,此流對(duì)應(yīng)于鍵盤輸入或主機(jī)環(huán)境或用戶指定的另一個(gè)輸入源。
public static final PrintStream out
“標(biāo)準(zhǔn)”輸出流。 此流已經(jīng)打開并準(zhǔn)備好接受輸出數(shù)據(jù)。 通常,此流對(duì)應(yīng)于主機(jī)環(huán)境或用戶指定的顯示輸出或另一個(gè)輸出目的地。
對(duì)于簡(jiǎn)單的獨(dú)立 Java 應(yīng)用程序,編寫一行輸出數(shù)據(jù)的典型方法是:
System.out.println(data)
public static void setIn(InputStream in)
重新分配“標(biāo)準(zhǔn)”輸入流。
首先,如果有安全管理器,則使用 RuntimePermission("setIO") 權(quán)限調(diào)用其 checkPermission 方法,以查看是否可以重新分配“標(biāo)準(zhǔn)”輸入流。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
in | 新的標(biāo)準(zhǔn)輸入流。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 checkPermission 方法不允許重新分配標(biāo)準(zhǔn)輸入流。 |
public static void setOut(PrintStream out)
重新分配“標(biāo)準(zhǔn)”輸出流。
首先,如果有安全管理器,則使用 RuntimePermission("setIO") 權(quán)限調(diào)用其 checkPermission 方法,以查看是否可以重新分配“標(biāo)準(zhǔn)”輸出流。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
out | 新的標(biāo)準(zhǔn)輸出流 |
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 checkPermission 方法不允許重新分配標(biāo)準(zhǔn)輸出流。 |
public static void setErr(PrintStream err)
重新分配“標(biāo)準(zhǔn)”錯(cuò)誤輸出流。
首先,如果有一個(gè)安全管理器,它的 checkPermission 方法會(huì)以 RuntimePermission("setIO") 權(quán)限調(diào)用,以查看是否可以重新分配“標(biāo)準(zhǔn)”錯(cuò)誤輸出流。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
err | 新的標(biāo)準(zhǔn)錯(cuò)誤輸出流。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 checkPermission 方法不允許重新分配標(biāo)準(zhǔn)錯(cuò)誤輸出流。 |
public static Console console()
返回與當(dāng)前 Java 虛擬機(jī)關(guān)聯(lián)的唯一 Console 對(duì)象(如果有)。
返回:
系統(tǒng)控制臺(tái)(如果有),否則為 null。
public static Channel inheritedChannel() throws IOException
返回從創(chuàng)建此 Java 虛擬機(jī)的實(shí)體繼承的通道。
該方法返回調(diào)用系統(tǒng)范圍默認(rèn) SelectorProvider 對(duì)象的inheritedChannel 方法獲得的通道。
除了inheritedChannel中描述的面向網(wǎng)絡(luò)的通道外,該方法將來可能會(huì)返回其他類型的通道。
返回:
繼承的通道(如果有),否則為 null。
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯(cuò)誤 |
SecurityException | 如果存在安全管理器并且它不允許訪問通道。 |
public static void setSecurityManager(SecurityManager s)
設(shè)置系統(tǒng)安全。
如果已經(jīng)安裝了安全管理器,該方法首先調(diào)用安全管理器的 checkPermission 方法,并帶有 RuntimePermission("setSecurityManager") 權(quán)限,以確保可以替換現(xiàn)有的安全管理器。 這可能會(huì)導(dǎo)致拋出 SecurityException。
否則,該參數(shù)被建立為當(dāng)前的安全管理器。 如果參數(shù)為 null 并且沒有建立安全管理器,則不采取任何操作,方法只是返回。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
s | 安全管理員。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果已經(jīng)設(shè)置了安全管理器并且它的 checkPermission 方法不允許替換它。 |
public static SecurityManager getSecurityManager()
獲取系統(tǒng)安全接口。
返回:
如果已經(jīng)為當(dāng)前應(yīng)用程序建立了安全管理器,則返回該安全管理器; 否則,返回 null。
public static long currentTimeMillis()
以毫秒為單位返回當(dāng)前時(shí)間。 請(qǐng)注意,雖然返回值的時(shí)間單位是毫秒,但值的粒度取決于底層操作系統(tǒng),并且可能更大。 例如,許多操作系統(tǒng)以幾十毫秒為單位測(cè)量時(shí)間。
有關(guān)“計(jì)算機(jī)時(shí)間”和協(xié)調(diào)世界時(shí) (UTC) 之間可能出現(xiàn)的細(xì)微差異的討論,請(qǐng)參閱類 Date 的描述。
返回:
當(dāng)前時(shí)間與 UTC 1970 年 1 月 1 日午夜之間的差異,以毫秒為單位。
public static long nanoTime()
返回正在運(yùn)行的 Java 虛擬機(jī)的高分辨率時(shí)間源的當(dāng)前值,以納秒為單位。
此方法只能用于測(cè)量經(jīng)過的時(shí)間,與系統(tǒng)或掛鐘時(shí)間的任何其他概念無關(guān)。返回的值表示自某個(gè)固定但任意的原始時(shí)間以來的納秒(可能在將來,因此值可能為負(fù)數(shù))。在 Java 虛擬機(jī)實(shí)例中,此方法的所有調(diào)用都使用相同的來源;其他虛擬機(jī)實(shí)例可能使用不同的來源。
此方法提供納秒精度,但不一定提供納秒分辨率(即值更改的頻率) - 不保證分辨率至少與 currentTimeMillis() 的分辨率一樣好。
由于數(shù)值溢出,超過大約 292 年(263 納秒)的連續(xù)調(diào)用的差異將無法正確計(jì)算經(jīng)過的時(shí)間。
僅當(dāng)在 Java 虛擬機(jī)的同一實(shí)例中獲得的兩個(gè)此類值之間的差異被計(jì)算時(shí),此方法返回的值才有意義。
例如,要測(cè)量一些代碼需要多長(zhǎng)時(shí)間執(zhí)行:
long startTime = System.nanoTime();
// ... the code being measured ...
long estimatedTime = System.nanoTime() - startTime;
比較兩個(gè) nanoTime 值
long t0 = System.nanoTime();
...
long t1 = System.nanoTime();
應(yīng)該使用 t1 - t0 < 0,而不是 t1 < t0,因?yàn)閿?shù)值溢出的可能性。
返回:
正在運(yùn)行的 Java 虛擬機(jī)的高分辨率時(shí)間源的當(dāng)前值,以納秒為單位
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
將指定源數(shù)組中的數(shù)組從指定位置開始復(fù)制到目標(biāo)數(shù)組的指定位置。數(shù)組組件的子序列從 src 引用的源數(shù)組復(fù)制到 dest 引用的目標(biāo)數(shù)組。復(fù)制的組件數(shù)量等于長(zhǎng)度參數(shù)。源數(shù)組中位置 srcPos 到 srcPos+length-1 的分量分別復(fù)制到目標(biāo)數(shù)組的位置 destPos 到 destPos+length-1。
如果 src 和 dest 參數(shù)引用同一個(gè)數(shù)組對(duì)象,則執(zhí)行復(fù)制,就好像首先將位置 srcPos 到 srcPos+length-1 的分量復(fù)制到具有長(zhǎng)度分量的臨時(shí)數(shù)組,然后臨時(shí)數(shù)組的內(nèi)容是通過目標(biāo)數(shù)組的 destPos+length-1 復(fù)制到位置 destPos。
如果 dest 為 null,則拋出 NullPointerException。
如果 src 為 null,則拋出 NullPointerException 并且不修改目標(biāo)數(shù)組。
否則,如果以下任何一項(xiàng)為真,則拋出 ArrayStoreException 并且不修改目標(biāo):
否則,如果以下任何一項(xiàng)為真,則拋出 IndexOutOfBoundsException 并且不修改目標(biāo):
否則,如果從位置 srcPos 到 srcPos+length-1 的源數(shù)組的任何實(shí)際組件不能通過賦值轉(zhuǎn)換轉(zhuǎn)換為目標(biāo)數(shù)組的組件類型,則拋出 ArrayStoreException。 在這種情況下,設(shè) k 為小于 length 的最小非負(fù)整數(shù),使得 src[srcPos+k] 不能轉(zhuǎn)換為目標(biāo)數(shù)組的組件類型; 當(dāng)拋出異常時(shí),從位置 srcPos 到 srcPos+k-1 的源數(shù)組組件將已經(jīng)被復(fù)制到目標(biāo)數(shù)組位置 destPos 到 destPos+k-1,并且不會(huì)修改目標(biāo)數(shù)組的其他位置。 (由于已經(jīng)逐條列出了限制,本段僅適用于兩個(gè)數(shù)組都具有引用類型的組件類型的情況。)
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
src | 源數(shù)組。 |
srcPos | 源數(shù)組中的起始位置。 |
dest | 目標(biāo)數(shù)組。 |
destPos | 目標(biāo)數(shù)據(jù)中的起始位置。 |
length | 要復(fù)制的數(shù)組元素的數(shù)量。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IndexOutOfBoundsException | 如果復(fù)制會(huì)導(dǎo)致訪問數(shù)組邊界之外的數(shù)據(jù)。 |
ArrayStoreException | 如果 src 數(shù)組中的元素由于類型不匹配而無法存儲(chǔ)到 dest 數(shù)組中。 |
NullPointerException | 如果 src 或 dest 為空。 |
public static int identityHashCode(Object x)
為給定對(duì)象返回與默認(rèn)方法 hashCode() 返回的相同的哈希碼,無論給定對(duì)象的類是否覆蓋 hashCode()。 空引用的哈希碼為零。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
x | 要為其計(jì)算 hashCode 的對(duì)象 |
返回:
hashCode
public static Properties getProperties()
確定當(dāng)前系統(tǒng)屬性。
首先,如果有一個(gè)安全管理器,它的 checkPropertiesAccess 方法會(huì)被調(diào)用而不帶任何參數(shù)。 這可能會(huì)導(dǎo)致安全異常。
getProperty(java.lang.String) 方法使用的當(dāng)前系統(tǒng)屬性集作為 Properties 對(duì)象返回。 如果沒有當(dāng)前的系統(tǒng)屬性集,則首先創(chuàng)建并初始化一組系統(tǒng)屬性。 這組系統(tǒng)屬性始終包含以下鍵的值:
系統(tǒng)屬性值中的多個(gè)路徑由平臺(tái)的路徑分隔符分隔。
請(qǐng)注意,即使安全管理器不允許 getProperties 操作,它也可以選擇允許 getProperty(java.lang.String) 操作。
返回:
系統(tǒng)屬性
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 checkPropertiesAccess 方法不允許訪問系統(tǒng)屬性。 |
public static String lineSeparator()
返回系統(tǒng)相關(guān)的行分隔符字符串。 它總是返回相同的值——系統(tǒng)屬性 line.separator 的初始值。
在 UNIX 系統(tǒng)上,它返回 "\n"; 在 Microsoft Windows 系統(tǒng)上,它返回“\r\n”。
返回:
系統(tǒng)相關(guān)的行分隔符字符串
public static void setProperties(Properties props)
將系統(tǒng)屬性設(shè)置為 Properties 參數(shù)。
首先,如果有一個(gè)安全管理器,它的 checkPropertiesAccess 方法會(huì)被調(diào)用而不帶任何參數(shù)。 這可能會(huì)導(dǎo)致安全異常。
該參數(shù)成為 getProperty(java.lang.String) 方法使用的當(dāng)前系統(tǒng)屬性集。 如果參數(shù)為空,則當(dāng)前的系統(tǒng)屬性集被遺忘。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
props | 新的系統(tǒng)屬性。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 checkPropertiesAccess 方法不允許訪問系統(tǒng)屬性。 |
public static String getProperty(String key)
獲取指定鍵指示的系統(tǒng)屬性。
首先,如果有一個(gè)安全管理器,它的 checkPropertyAccess 方法會(huì)以鍵作為參數(shù)調(diào)用。 這可能會(huì)導(dǎo)致 SecurityException。
如果沒有當(dāng)前的系統(tǒng)屬性集,則首先以與 getProperties 方法相同的方式創(chuàng)建和初始化一組系統(tǒng)屬性。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
key | 系統(tǒng)屬性的名稱。 |
返回:
系統(tǒng)屬性的字符串值,如果沒有具有該鍵的屬性,則返回 null。
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果安全管理器存在并且其 checkPropertyAccess 方法不允許訪問指定的系統(tǒng)屬性。 |
NullPointerException | 如果鍵為null。 |
IllegalArgumentException | 如果鍵為empty。 |
public static String getProperty(String key, String def)
獲取指定鍵指示的系統(tǒng)屬性。
首先,如果有一個(gè)安全管理器,它的 checkPropertyAccess 方法會(huì)以鍵作為參數(shù)調(diào)用。
如果沒有當(dāng)前的系統(tǒng)屬性集,則首先以與 getProperties 方法相同的方式創(chuàng)建和初始化一組系統(tǒng)屬性。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
key | 系統(tǒng)屬性的名稱。 |
def | 默認(rèn)值。 |
返回:
系統(tǒng)屬性的字符串值,如果沒有具有該鍵的屬性,則為默認(rèn)值。
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果安全管理器存在并且其 checkPropertyAccess 方法不允許訪問指定的系統(tǒng)屬性。 |
NullPointerException | 如果鍵為null。 |
IllegalArgumentException | 如果鍵為empty。 |
public static String setProperty(String key, String value)
設(shè)置由指定鍵指示的系統(tǒng)屬性。
首先,如果存在安全管理器,則使用 PropertyPermission(key, "write") 權(quán)限調(diào)用其 SecurityManager.checkPermission 方法。 這可能會(huì)導(dǎo)致拋出 SecurityException。 如果未引發(fā)異常,則將指定的屬性設(shè)置為給定值。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
key | 系統(tǒng)屬性的名稱。 |
value | 系統(tǒng)屬性的值。 |
返回:
系統(tǒng)屬性的前一個(gè)值,如果沒有,則返回 null。
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 checkPermission 方法不允許設(shè)置指定的屬性。 |
NullPointerException | 如果鍵或值為null。 |
IllegalArgumentException | 如果鍵為empty。 |
public static String clearProperty(String key)
刪除由指定鍵指示的系統(tǒng)屬性。
首先,如果存在安全管理器,則使用 PropertyPermission(key, "write") 權(quán)限調(diào)用其 SecurityManager.checkPermission 方法。 這可能會(huì)導(dǎo)致拋出 SecurityException。 如果沒有拋出異常,則刪除指定的屬性。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
key | 要?jiǎng)h除的系統(tǒng)屬性的名稱。 |
返回:
系統(tǒng)屬性的前一個(gè)字符串值,如果沒有具有該鍵的屬性,則返回 null。
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果安全管理器存在并且其 checkPropertyAccess 方法不允許訪問指定的系統(tǒng)屬性。 |
NullPointerException | 如果鍵為null。 |
IllegalArgumentException | 如果鍵為empty。 |
public static String getenv(String name)
獲取指定環(huán)境變量的值。環(huán)境變量是系統(tǒng)相關(guān)的外部命名值。
如果存在安全管理器,則使用 RuntimePermission("getenv."+name) 權(quán)限調(diào)用其 SecurityManager#checkPermission 方法。這可能會(huì)導(dǎo)致拋出 SecurityException。如果沒有拋出異常,則返回變量名的值。
系統(tǒng)屬性 和 環(huán)境變量在概念上都是名稱和值之間的映射。這兩種機(jī)制都可用于將用戶定義的信息傳遞給 Java 進(jìn)程。環(huán)境變量具有更全局的影響,因?yàn)樗鼈儗?duì)定義它們的進(jìn)程的所有后代可見,而不僅僅是直接的 Java 子進(jìn)程。在不同的操作系統(tǒng)上,它們可能具有細(xì)微的不同語義,例如不區(qū)分大小寫。由于這些原因,環(huán)境變量更有可能產(chǎn)生意想不到的副作用。最好盡可能使用系統(tǒng)屬性。當(dāng)需要全局效果或外部系統(tǒng)接口需要環(huán)境變量(例如 PATH)時(shí),應(yīng)使用環(huán)境變量。
在 UNIX 系統(tǒng)上,名稱的字母大小寫通常很重要,而在 Microsoft Windows 系統(tǒng)上通常不重要。例如,表達(dá)式 System.getenv("FOO").equals(System.getenv("foo")) 在 Microsoft Windows 上可能為真。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
name | 環(huán)境變量的名稱 |
返回:
變量的字符串值,如果變量未在系統(tǒng)環(huán)境中定義,則為 null
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果名稱為null |
SecurityException | 如果存在安全管理器并且其 SecurityManager#checkPermission 方法不允許訪問環(huán)境變量名稱 |
public static MapString,String getenv()
返回當(dāng)前系統(tǒng)環(huán)境的不可修改的字符串映射視圖。環(huán)境是從名稱到值的系統(tǒng)相關(guān)映射,從父進(jìn)程傳遞到子進(jìn)程。
如果系統(tǒng)不支持環(huán)境變量,則返回一個(gè)空映射。
返回的映射永遠(yuǎn)不會(huì)包含空鍵或值。嘗試查詢是否存在空鍵或值將引發(fā) NullPointerException。嘗試查詢是否存在非 String 類型的鍵或值將引發(fā) ClassCastException。
返回的地圖及其集合視圖可能不遵守 Object#equals 和 Object#hashCode 方法的一般約定。
返回的地圖通常在所有平臺(tái)上都區(qū)分大小寫。
如果存在安全管理器,則使用 RuntimePermission("getenv.*") 權(quán)限調(diào)用其 SecurityManager#checkPermission 方法。這可能會(huì)導(dǎo)致拋出 SecurityException。
將信息傳遞給 Java 子進(jìn)程時(shí),系統(tǒng)屬性通常優(yōu)于環(huán)境變量。
返回:
環(huán)境作為變量名到值的映射
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 SecurityManager#checkPermission 方法不允許訪問進(jìn)程環(huán)境 |
public static void exit(int status)
終止當(dāng)前運(yùn)行的 Java 虛擬機(jī)。 該參數(shù)用作狀態(tài)碼; 按照慣例,非零狀態(tài)碼表示異常終止。
該方法調(diào)用 Runtime 類中的 exit 方法。 此方法永遠(yuǎn)不會(huì)正常返回。
調(diào)用 System.exit(n) 實(shí)際上等效于調(diào)用:
Runtime.getRuntime().exit(n)
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
status | 退出狀態(tài)。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果安全管理器存在并且其 checkExit 方法不允許以指定狀態(tài)退出。 |
public static void gc()
運(yùn)行垃圾收集器。
調(diào)用 gc 方法表明 Java 虛擬機(jī)花費(fèi)精力回收未使用的對(duì)象,以便使它們當(dāng)前占用的內(nèi)存可用于快速重用。 當(dāng)控制從方法調(diào)用返回時(shí),Java 虛擬機(jī)已盡最大努力從所有丟棄的對(duì)象中回收空間。
調(diào)用 System.gc() 實(shí)際上等效于調(diào)用:
Runtime.getRuntime().gc()
public static void runFinalization()
運(yùn)行任何等待終結(jié)的對(duì)象的終結(jié)方法。
調(diào)用此方法表明 Java 虛擬機(jī)花費(fèi)精力運(yùn)行已發(fā)現(xiàn)已丟棄但尚未運(yùn)行其 finalize 方法的對(duì)象的 finalize 方法。 當(dāng)控制從方法調(diào)用返回時(shí),Java 虛擬機(jī)已盡最大努力完成所有未完成的終結(jié)。
調(diào)用 System.runFinalization() 實(shí)際上等效于調(diào)用:
Runtime.getRuntime().runFinalization()
@Deprecated public static void runFinalizersOnExit(boolean value)
已棄用。 這種方法本質(zhì)上是不安全的。 這可能會(huì)導(dǎo)致在其他線程同時(shí)操作這些對(duì)象時(shí)對(duì)活動(dòng)對(duì)象調(diào)用終結(jié)器,從而導(dǎo)致行為不穩(wěn)定或死鎖。
在退出時(shí)啟用或禁用終結(jié); 這樣做指定在 Java 運(yùn)行時(shí)退出之前運(yùn)行具有尚未自動(dòng)調(diào)用的終結(jié)器的所有對(duì)象的終結(jié)器。 默認(rèn)情況下,退出時(shí)的最終確定是禁用的。
如果存在安全管理器,則首先調(diào)用其 checkExit 方法,并以 0 作為其參數(shù),以確保允許退出。 這可能會(huì)導(dǎo)致 SecurityException。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
value | 指示啟用或禁用終結(jié) |
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 checkExit 方法不允許退出。 |
public static void load(String filename)
加載由文件名參數(shù)指定的本機(jī)庫。 文件名參數(shù)必須是絕對(duì)路徑名。 如果 filename 參數(shù)在去除任何特定于平臺(tái)的庫前綴、路徑和文件擴(kuò)展名時(shí),指示名稱為 L 的庫,并且名為 L 的本機(jī)庫與 VM 靜態(tài)鏈接,則 JNI_OnLoad_L 函數(shù) 調(diào)用由庫導(dǎo)出的,而不是嘗試加載動(dòng)態(tài)庫。 與參數(shù)匹配的文件名不必存在于文件系統(tǒng)中。 有關(guān)更多詳細(xì)信息,請(qǐng)參閱 JNI 規(guī)范。 否則,文件名參數(shù)以與實(shí)現(xiàn)相關(guān)的方式映射到本機(jī)庫映像。
調(diào)用 System.load(name) 實(shí)際上等效于調(diào)用:
Runtime.getRuntime().load(name)
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
filename | 要加載的文件。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 checkLink 方法不允許加載指定的動(dòng)態(tài)庫 |
UnsatisfiedLinkError | 如果文件名不是絕對(duì)路徑名,則本機(jī)庫未與 VM 靜態(tài)鏈接,或者主機(jī)系統(tǒng)無法將庫映射到本機(jī)庫映像。 |
NullPointerException | 如果文件名為空 |
public static void loadLibrary(String libname)
加載由 libname 參數(shù)指定的本機(jī)庫。 libname 參數(shù)不得包含任何特定于平臺(tái)的前綴、文件擴(kuò)展名或路徑。 如果名為 libname 的本機(jī)庫與 VM 靜態(tài)鏈接,則調(diào)用該庫導(dǎo)出的 JNI_OnLoad_libname 函數(shù)。 有關(guān)更多詳細(xì)信息,請(qǐng)參閱 JNI 規(guī)范。 否則,libname 參數(shù)將從系統(tǒng)庫位置加載并以與實(shí)現(xiàn)相關(guān)的方式映射到本機(jī)庫映像。
調(diào)用 System.loadLibrary(name) 實(shí)際上等效于調(diào)用
Runtime.getRuntime().loadLibrary(name)
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
libname | 庫的名稱。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 checkLink 方法不允許加載指定的動(dòng)態(tài)庫 |
UnsatisfiedLinkError | 如果 libname 參數(shù)包含文件路徑,則本機(jī)庫未與 VM 靜態(tài)鏈接,或者該庫無法由主機(jī)系統(tǒng)映射到本機(jī)庫映像。 |
NullPointerException | 如果 libname 為null |
public static String mapLibraryName(String libname)
將庫名稱映射到表示本機(jī)庫的特定于平臺(tái)的字符串。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
libname | 庫的名稱。 |
返回:
平臺(tái)相關(guān)的本地庫名稱。
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果libname為null |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: