亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

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

wangshijun / 1498人閱讀

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

Java程序運(yùn)行機(jī)制 編譯型語(yǔ)言

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

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

編譯生成的可執(zhí)行性程序通常無(wú)法移植到其他平臺(tái)上運(yùn)行。

解釋型語(yǔ)言

使用專(zhuān)門(mén)的解釋器對(duì)源程序逐行解釋成特定平臺(tái)的機(jī)器碼并立即執(zhí)行的語(yǔ)言。解釋型語(yǔ)言通常不會(huì)進(jìn)行整體性的編譯和鏈接處理,解釋型語(yǔ)言相當(dāng)于把編譯型語(yǔ)言中的編譯和解釋過(guò)程混合到一起同時(shí)完成。

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

程序運(yùn)行效率通常較低,而且不能脫離解釋器獨(dú)立運(yùn)行。

Java程序的運(yùn)行機(jī)制和JVM

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

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

垃圾回收機(jī)制

Java程序的內(nèi)存分配和回收都是由JRE在后臺(tái)自動(dòng)進(jìn)行的。JRE會(huì)負(fù)責(zé)回收那些不再使用的內(nèi)存,這種機(jī)制被稱(chēng)為垃圾回收(Garbage Collection, GC)。通常JRE會(huì)提供一個(gè)后臺(tái)線程來(lái)進(jìn)行檢測(cè)和控制,一般都是在CPU空閑或內(nèi)存不足時(shí)自動(dòng)進(jìn)行垃圾回收,而程序員無(wú)法精確控制垃圾回收的時(shí)間和順序等。

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

Java虛擬機(jī)具有兩個(gè)顯著特點(diǎn)

垃圾回收機(jī)制可以很好地提高編程效率。在沒(méi)有垃圾回收機(jī)制時(shí),可能要花許多時(shí)間來(lái)解決一個(gè)難懂的存儲(chǔ)器問(wèn)題。在用Java語(yǔ)言編程時(shí),依靠垃圾回收機(jī)制可大大縮短時(shí)間。

垃圾回收機(jī)制保護(hù)程序的完整性,垃圾回收是Java語(yǔ)言安全性策略的一個(gè)重要部分。

垃圾回收具有如下幾個(gè)特點(diǎn)

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

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

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

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

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

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

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/65236.html

相關(guān)文章

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

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

    thursday 評(píng)論0 收藏0
  • Java編程基礎(chǔ)01——計(jì)算機(jī)基礎(chǔ)

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

    xiangzhihong 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<