成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java 語言概述與開發(fā)環(huán)境

wangshijun / 1465人閱讀

摘要:一次性編譯成機器碼,脫離開發(fā)環(huán)境獨立運行,運行效率較高。解釋型語言使用專門的解釋器對源程序逐行解釋成特定平臺的機器碼并立即執(zhí)行的語言。垃圾回收機制保護程序的完整性,垃圾回收是語言安全性策略的一個重要部分。

Java程序運行機制 編譯型語言

使用專門的編譯器,針對特定平臺(操作系統(tǒng))將某種高級語言源代碼一次性“翻譯”成可被該平臺硬件執(zhí)行的機器碼(包括機器指令和操作數(shù)),并包裝成該平臺所能識別的可執(zhí)行性程序的格式,這個轉(zhuǎn)換過程稱為編譯。編譯生成的可執(zhí)行性程序可以脫離開發(fā)環(huán)境,在特定的平臺上獨立運行。

一次性編譯成機器碼,脫離開發(fā)環(huán)境獨立運行,運行效率較高。

編譯生成的可執(zhí)行性程序通常無法移植到其他平臺上運行。

解釋型語言

使用專門的解釋器對源程序逐行解釋成特定平臺的機器碼并立即執(zhí)行的語言。解釋型語言通常不會進行整體性的編譯和鏈接處理,解釋型語言相當(dāng)于把編譯型語言中的編譯和解釋過程混合到一起同時完成。

跨平臺比較容易,只需提供特定平臺的解釋器即可,每個特定平臺上的解釋器負責(zé)將源程序解釋成特定平臺的機器指令即可。

程序運行效率通常較低,而且不能脫離解釋器獨立運行。

Java程序的運行機制和JVM

Java程序的執(zhí)行過程必須經(jīng)過先編譯、后解釋兩個步驟。
Java源文件(.java)→ 使用javac編譯 → 字節(jié)碼文件(.class)→ 使用java解釋執(zhí)行 → 特定平臺的機器碼

Java語言中負責(zé)解釋執(zhí)行字節(jié)碼文件的是Java虛擬機,即JVM(Java Virtual Machine)JVM是運行字節(jié)碼文件的虛擬計算機。所有平臺上的JVM向編譯器提供相同的編程接口,而編譯器只需要面向虛擬機,生成虛擬機能理解的代碼,然后由虛擬機來解釋執(zhí)行。JVM:指令集+寄存器+類文件的格式+棧+垃圾回收堆+存儲區(qū)

垃圾回收機制

Java程序的內(nèi)存分配和回收都是由JRE在后臺自動進行的。JRE會負責(zé)回收那些不再使用的內(nèi)存,這種機制被稱為垃圾回收(Garbage Collection, GC)。通常JRE會提供一個后臺線程來進行檢測和控制,一般都是在CPU空閑或內(nèi)存不足時自動進行垃圾回收,而程序員無法精確控制垃圾回收的時間和順序等。

Java的堆內(nèi)存是一個運行時數(shù)據(jù)區(qū),用以保存類的實例(對象),Java虛擬機的堆內(nèi)存中存儲著正在運行的應(yīng)用程序所建立的所有對象,這些對象不需要程序通過代碼來顯示式地釋放。

Java虛擬機具有兩個顯著特點

垃圾回收機制可以很好地提高編程效率。在沒有垃圾回收機制時,可能要花許多時間來解決一個難懂的存儲器問題。在用Java語言編程時,依靠垃圾回收機制可大大縮短時間。

垃圾回收機制保護程序的完整性,垃圾回收是Java語言安全性策略的一個重要部分。

垃圾回收具有如下幾個特點

垃圾回收機制的工作目標(biāo)是回收無用對象的內(nèi)存空間,這些內(nèi)存空間都是JVM堆內(nèi)存里的內(nèi)存空間,垃圾回收只能回收內(nèi)存資源,對其他物力資源,如數(shù)據(jù)庫連接、磁盤I/O等資源則無能為力。

為了更快地讓垃圾回收機制回收那些不再使用的對象,可以將該對象的引用變量設(shè)置為null,通過這種方式暗示垃圾回收機制可以回收該對象。

垃圾回收發(fā)生的不可預(yù)知性。不同的垃圾回收機制和不同的垃圾回收算法。

垃圾回收的精確性主要包括兩個方面:

垃圾回收機制能夠精確地標(biāo)記活著的對象;

垃圾回收器能夠精確地定位對象之間的引用關(guān)系。
前者是完全回收所有廢棄對象的前提,否則就可能造成內(nèi)存泄漏;而后者則是實現(xiàn)歸并和復(fù)制等算法的必要條件,通過這種引用關(guān)系,可以保證所有對象都能被可靠地回收,所有對象都能被重新分配,從而有效地減少內(nèi)存碎片的產(chǎn)生。

現(xiàn)在的JVM有多種不同的垃圾回收實現(xiàn),每種回收機制因其算法差異可能表現(xiàn)各異,有的當(dāng)垃圾回收開始時就停止應(yīng)用程序的運行,有的當(dāng)垃圾回收運行時允許應(yīng)用程序的線程運行,還有的在同一時間允許垃圾回收多線程運行。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/65236.html

相關(guān)文章

  • 從零開始學(xué) Java 之 基礎(chǔ)概述

    摘要:想著糾結(jié)來糾結(jié)去也沒有什么用,不如就從零開始吧。剛開始配置環(huán)境的時候,建議對照著學(xué)習(xí)視頻進行配置,看書配置容易出錯。本文原創(chuàng)發(fā)布于微信公眾號,編程思維成長正能量,關(guān)注并回復(fù)編程閱讀等關(guān)鍵字獲取免費學(xué)習(xí)資料 showImg(https://segmentfault.com/img/remote/1460000016088460); 一直關(guān)注我的朋友們應(yīng)該都知道,很早之前我就打算開始寫 J...

    thursday 評論0 收藏0
  • Java編程基礎(chǔ)01——計算機基礎(chǔ)

    摘要:外部存儲器可用于長期保存大量程序和數(shù)據(jù),其成本低容量大,但速度較慢。 1_計算機概述(了解) A:什么是計算機?計算機在生活中的應(yīng)用舉例 計算機(Computer)全稱:電子計算機,俗稱電腦。是一種能夠按照程序運行,自動、高速處理海量數(shù)據(jù)的現(xiàn)代化智能電子設(shè)備。由硬件和軟件所組成,沒有安裝任何軟件的計算機稱為裸機。常見的形式有臺式計算機、筆記本計算機、大型計算機等。 應(yīng)用舉例 ...

    xiangzhihong 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<