摘要:什么是為執(zhí)行字節(jié)碼提供一個運行環(huán)境。它的實現(xiàn)主要包含三個部分,描述實現(xiàn)規(guī)格的文檔,具體實現(xiàn)和滿足要求的計算機程序以及實例具體執(zhí)行字節(jié)碼。該類先被轉(zhuǎn)化為一組字節(jié)碼并放入文件中。字節(jié)碼校驗器通過字節(jié)碼校驗器檢查格式并找出非法代碼。
什么是Java Development Kit (JDK)?
JDK通常用來開發(fā)Java應(yīng)用和插件?;旧峡梢哉J為是一個軟件開發(fā)環(huán)境。JDK包含Java Runtime Environment(JRE),JRE包含加載器/解釋器,編譯器(javac),文檔生成器(Javadoc),打包功能(jar)和其它在開發(fā)中所需要功能:
加載代碼
校驗代碼
執(zhí)行代碼
提供運行時環(huán)境
什么是Java Runtime Environment(JRE)Java Runtime Environment(JRE)又稱為Java RTE。JRE中包含核心類和支持文件。它還包含JVM。JVM會提供運行時環(huán)境。
確定JVM運行的特定類型。其類型主要由Sun和其它的幾個機構(gòu)提供。
其實現(xiàn)是一個滿足JVM特定前提條件的客戶端程序。
運行時實例無論何時運行Java類,都會產(chǎn)生JVM。
JDK一個物理存在的工具包。它包含JRE和其他工具。
什么是Java Virtual Machine(JVM)JVM為執(zhí)行Java字節(jié)碼提供一個運行環(huán)境。它是一個抽象的獨立于平臺運行的機器。它的實現(xiàn)主要包含三個部分,描述JVM實現(xiàn)規(guī)格的文檔,具體實現(xiàn)和滿足JVM要求的計算機程序以及實例(具體執(zhí)行Java字節(jié)碼)。
JVM的主要任務(wù)包括:
加載代碼
校驗代碼
執(zhí)行代碼
提供運行時環(huán)境
JDK, JRE和JVM之間的區(qū)別 JRE的組成部署機制:Java Web Start, Java插件等
UI工具包:AWT,Swing,Java2D等
集成庫:IDL,JDBC,RMI等
其它基礎(chǔ)庫:I/O,JNI,JMX等
Lang和utils基礎(chǔ)庫:lang,util,格式化,序列化,打包等
JVM:Java HotSpot客戶端和服務(wù)端虛擬機
JRE功能為了了解JRE的功能,可以看一下是如何加載Example.class這個類的。該類先被轉(zhuǎn)化為一組字節(jié)碼并放入.class文件中。
Java ClassLoaderClassLoader將執(zhí)行程序所需的每個重要類放入堆棧中。它通過命名系統(tǒng)來提供彼此之間的安全性。源碼可以來自于硬盤,系統(tǒng)以及其它來源。
Java 字節(jié)碼校驗器JVM通過字節(jié)碼校驗器檢查格式并找出非法代碼。校驗器確JVM執(zhí)行代碼時能夠夠快,以及這段代碼不會損害現(xiàn)存的框架。
Java解釋器解釋器有兩個功能:
執(zhí)行字節(jié)碼
正確調(diào)用隱藏的設(shè)備
想要了解更多開發(fā)技術(shù),面試教程以及互聯(lián)網(wǎng)公司內(nèi)推,歡迎關(guān)注我的微信公眾號!將會不定期的發(fā)放福利哦~
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/72366.html
摘要:由于需要跨進程訪問網(wǎng)絡(luò)上的高速緩存,因此延遲,故障和對象序列化會導(dǎo)致性能下降。應(yīng)用程序高速緩存會自動清除條目以保持其內(nèi)存占用。緩存統(tǒng)計高速緩存統(tǒng)計信息可幫助識別高速緩存的運行狀況并提供有關(guān)高速緩存行為和性能的信息。 前言 這篇文章探索了現(xiàn)有的各種JAVA緩存基數(shù),它們對各種場景下提高應(yīng)用的性能起著重要的作用。 近十年來,信息技術(shù)極高的提升了業(yè)務(wù)流程,它已經(jīng)成為了全球企業(yè)的戰(zhàn)略性方案。它...
摘要:有可能一個線程中的動作相對于另一個線程出現(xiàn)亂序。當實際輸出取決于線程交錯的結(jié)果時,這種情況被稱為競爭條件。這里的問題在于代碼塊不是原子性的,而且實例的變化對別的線程不可見。這種不能同時在多個線程上執(zhí)行的部分被稱為關(guān)鍵部分。 為什么要額外寫一篇文章來研究volatile呢?是因為這可能是并發(fā)中最令人困惑以及最被誤解的結(jié)構(gòu)。我看過不少解釋volatile的博客,但是大多數(shù)要么不完整,要么難...
摘要:在此基礎(chǔ)上又向前邁進了一步局部變量類型推斷允許開發(fā)人員跳過局部變量的類型聲明局部變量是指在方法定義,初始化塊,循環(huán)和其它的如代碼塊,會推斷該局部變量的類型。 前言 之前面試的時候問了我是否了解JDK10的變化,一時回答不出來,所以只回答了JDK8中的函數(shù)式編程和流編程。今天看到這篇講JAVA10的文章,順便了解一下。 正文 JAVA10的所有新特性請參考這里。在所有的JEP中,JEP-...
摘要:前言這周我準備介紹一個有趣的但是很少使用的方法按照合約編程,又稱為合約編程,是一種軟件設(shè)計的方法。這些規(guī)則被稱為合約,可以比擬為商業(yè)合同中的條件和義務(wù)。通過將檢查和異常拋出指令包裝到方法中,人們可以很容易地實現(xiàn)合約式編程。 前言 這周我準備介紹一個有趣的但是很少使用的方法 按照合約編程,又稱為合約編程,是一種軟件設(shè)計的方法。它規(guī)定了軟件設(shè)計師應(yīng)該為軟件組件定義正式,精確和可驗證的接口規(guī)...
摘要:否則它就會用新的值替代當前值。在這種情況下,鎖可能會優(yōu)于原子變量,但在實際的爭用級別中,原子變量的性能優(yōu)于鎖。在中引入了另外一個構(gòu)件。 題目要求 在我們深入了解CAS(Compare And Swap)策略以及它是如何在AtomicInteger這樣的原子構(gòu)造器中使用的,首先來看一下這段代碼: public class MyApp { private volatile int ...
閱讀 1476·2021-09-22 15:43
閱讀 2191·2019-08-30 15:54
閱讀 1189·2019-08-30 10:51
閱讀 2116·2019-08-29 18:35
閱讀 452·2019-08-26 11:58
閱讀 2512·2019-08-26 11:38
閱讀 2468·2019-08-23 18:35
閱讀 3672·2019-08-23 18:33