最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java System類詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

 更新時(shí)間:2017年04月19日 14:28:19   投稿:mrr  
System類是jdk提供的一個(gè)工具類,有final修飾,不可繼承,由名字可以看出來(lái),其中的操作多數(shù)和系統(tǒng)相關(guān)。這篇文章主要介紹了Java System類詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理,需要的朋友可以參考下

System類是jdk提供的一個(gè)工具類,有final修飾,不可繼承,由名字可以看出來(lái),其中的操作多數(shù)和系統(tǒng)相關(guān)。其功能主要如下:

• 標(biāo)準(zhǔn)輸入輸出,如out、in、err

• 外部定義的屬性和環(huán)境變量的訪問(wèn),如getenv()/setenv()和getProperties()/setProperties()

• 加載文件和類庫(kù)的方法,如load()和loadLibrary()、

• 一個(gè)快速拷貝數(shù)組的方法:arraycopy()

• 一些jvm操作,如gc()、runFinalization()、exit(),該部分并未在源碼的java doc中提到,可能因?yàn)楸旧聿唤ㄗh主動(dòng)調(diào)用吧。而且這幾個(gè)方法都僅僅是Runtime.getRuntime()的調(diào)用,兩者沒(méi)有區(qū)別 下邊直接看圖,主要的方法和功能都已經(jīng)列出來(lái)。

 下邊我們重點(diǎn)來(lái)該類是如何初始化的。 首先在開頭我們就可以看如下代碼:

private static native void registerNatives();
static {
 registerNatives();
}

類中的靜態(tài)代碼塊調(diào)用了一個(gè)native方法registerNatives(),可以猜到該方法應(yīng)該是一個(gè)入口方法,看一下注釋:通過(guò)靜態(tài)初始化注冊(cè)native方法,該方法會(huì)令vm通過(guò)調(diào)用initializeSystemClass方法來(lái)完成初始化工作。果然如此,那么接下來(lái)我們看下initializeSystemClass方法吧:

private static void initializeSystemClass() {
  // 初始化props
  props = new Properties();
  initProperties(props); 
  sun.misc.VM.saveAndRemoveProperties(props);
  //獲取系統(tǒng)相關(guān)的換行符
  lineSeparator = props.getProperty("line.separator");
  sun.misc.Version.init();
  //分別創(chuàng)建in、out、err的實(shí)例對(duì)象,并通過(guò)setXX0()初始化,查看setXX0()方法可知,這是個(gè)native方法,將系統(tǒng)的標(biāo)準(zhǔn)流管理到類內(nèi)的對(duì)象
  FileInputStream fdIn = new FileInputStream(FileDescriptor.in);
  FileOutputStream fdOut = new FileOutputStream(FileDescriptor.out);
  FileOutputStream fdErr = new FileOutputStream(FileDescriptor.err);
  setIn0(new BufferedInputStream(fdIn));
  setOut0(new PrintStream(new BufferedOutputStream(fdOut, 128), true));
  setErr0(new PrintStream(new BufferedOutputStream(fdErr, 128), true));
  //加載zip包以獲取java.util.zip.ZipFile這個(gè)類,以便之后加載利庫(kù)使用
  loadLibrary("zip");
  // 設(shè)置平臺(tái)相關(guān)的信號(hào)處理
  Terminator.setup();
  // 初始化sun.misc相關(guān)的環(huán)境變量
  sun.misc.VM.initializeOSEnvironment();
  // 主線程不會(huì)在同一個(gè)線程組中添加相同的線程,我們必須在這里自己實(shí)現(xiàn)。注釋半天沒(méi)弄明白,看代碼就是主線程自己把自己加到了自己的線程組中......
  Thread current = Thread.currentThread();
  current.getThreadGroup().add(current);
  // 注冊(cè)共享秘鑰?注釋沒(méi)看明白,該方法就是實(shí)例化一個(gè)JavaLangAccess
  setJavaLangAccess();
  // 子系統(tǒng)在初始化的時(shí)候可以調(diào)用sun.misc.VM.isBooted(),以保證在application類加載器啟動(dòng)前不做任何事。booted()其實(shí)就是改了個(gè)狀態(tài),使isBooted()變?yōu)閠rue。
  sun.misc.VM.booted();
}

以上所述是小編給大家介紹的Java System類詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 詳解Java 類的加載機(jī)制

    詳解Java 類的加載機(jī)制

    這篇文章主要介紹了Java 類的加載機(jī)制,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-08-08
  • 聊聊Java三種常見(jiàn)的分布式鎖

    聊聊Java三種常見(jiàn)的分布式鎖

    目前分布式鎖的實(shí)現(xiàn)方案主要包括三種,本文就來(lái)介紹一下這三種常見(jiàn)的分布式鎖以及這三種鎖的性能等,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-06-06
  • spring循環(huán)依賴策略解析

    spring循環(huán)依賴策略解析

    這篇文章主要為大家詳細(xì)介紹了spring循環(huán)依賴策略,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • 用C和JAVA分別創(chuàng)建鏈表的實(shí)例

    用C和JAVA分別創(chuàng)建鏈表的實(shí)例

    使用用C和JAVA分別創(chuàng)建鏈表的方法,創(chuàng)建鏈表、往鏈表中插入數(shù)據(jù)、刪除數(shù)據(jù)等操作。
    2013-10-10
  • maven打包所有依賴對(duì)外提供sdk.jar

    maven打包所有依賴對(duì)外提供sdk.jar

    這篇文章主要介紹了maven打包所有依賴,對(duì)外提供sdk.jar,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • Java調(diào)用構(gòu)造函數(shù)和方法及使用詳解

    Java調(diào)用構(gòu)造函數(shù)和方法及使用詳解

    在Java編程中,構(gòu)造函數(shù)用于初始化新創(chuàng)建的對(duì)象,而方法則用于執(zhí)行對(duì)象的行為,構(gòu)造函數(shù)在使用new關(guān)鍵字創(chuàng)建類實(shí)例時(shí)自動(dòng)調(diào)用,沒(méi)有返回類型,并且名稱與類名相同,本文通過(guò)示例詳細(xì)介紹了如何在Java中使用構(gòu)造函數(shù)和方法,感興趣的朋友一起看看吧
    2024-10-10
  • Java負(fù)載均衡服務(wù)器實(shí)現(xiàn)上傳文件同步

    Java負(fù)載均衡服務(wù)器實(shí)現(xiàn)上傳文件同步

    這篇文章主要介紹了Java負(fù)載均衡服務(wù)器實(shí)現(xiàn)上傳文件同步,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • java顯示當(dāng)前美國(guó)洛杉磯時(shí)間

    java顯示當(dāng)前美國(guó)洛杉磯時(shí)間

    這篇文章主要介紹了java顯示當(dāng)前美國(guó)洛杉磯時(shí)間的方法,也就是當(dāng)前時(shí)間的切換,需要的朋友可以參考下
    2014-02-02
  • Java實(shí)現(xiàn)字符串和輸入流的相互轉(zhuǎn)換

    Java實(shí)現(xiàn)字符串和輸入流的相互轉(zhuǎn)換

    這篇文章主要介紹了Java實(shí)現(xiàn)字符串和輸入流的相互轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • java語(yǔ)言基礎(chǔ)之標(biāo)識(shí)符和命名規(guī)則詳解

    java語(yǔ)言基礎(chǔ)之標(biāo)識(shí)符和命名規(guī)則詳解

    這篇文章主要給大家介紹了關(guān)于java語(yǔ)言基礎(chǔ)之標(biāo)識(shí)符和命名規(guī)則的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03

最新評(píng)論

始兴县| 乌拉特中旗| 屏南县| 铜山县| 云龙县| 财经| 延安市| 墨脱县| 镇康县| 平度市| 吉林市| 七台河市| 库伦旗| 双牌县| 丰顺县| 博爱县| 灵台县| 沙雅县| 荆门市| 贺州市| 大庆市| 无锡市| 阿拉善左旗| 铁力市| 林周县| 荆门市| 棋牌| 乌海市| 当雄县| 孝感市| 阳原县| 阿勒泰市| 珲春市| 蓝田县| 乃东县| 界首市| 崇左市| 吉安县| 区。| 兖州市| 普兰店市|