JVM、JRE和JDK的關(guān)系
JVMJava Virtual Machine是Java虛擬機(jī),Java程序需要運行在虛擬機(jī)上,不同的平臺有自己的虛擬機(jī),因此Java語言可以實現(xiàn)跨平臺。
JREJava Runtime Environment包括Java虛擬機(jī)和Java程序所需的核心類庫等。核心類庫主要是java.lang包:包含了運行Java程序必不可少的系統(tǒng)類,如基本數(shù)據(jù)類型、基本數(shù)學(xué)函數(shù)、字符串處理、線程、異常處理類等,系統(tǒng)缺省加載這個包
如果想要運行一個開發(fā)好的Java程序,計算機(jī)中只需要安裝JRE即可。
JDKJava Development Kit是提供給Java開發(fā)人員使用的,其中包含了Java的開發(fā)工具,也包括了JRE。所以安裝了JDK,就無需再單獨安裝JRE了。其中的開發(fā)工具:編譯工具(javac.exe),打包工具(jar.exe)等
JVM&JRE&JDK關(guān)系圖
什么是字節(jié)碼?采用字節(jié)碼的最大好處是什么
字節(jié)碼:Java源代碼經(jīng)過虛擬機(jī)編譯器編譯后產(chǎn)生的文件(即擴(kuò)展為.class的文件),它不面向任何特定的處理器,只面向虛擬機(jī)。
采用字節(jié)碼的好處:
Java語言通過字節(jié)碼的方式,在一定程度上解決了傳統(tǒng)解釋型語言執(zhí)行效率低的問題,同時又保留了解釋型語言可移植的特點。所以Java程序運行時比較高效,而且,由于字節(jié)碼并不專對一種特定的機(jī)器,因此,Java程序無須重新編譯便可在多種不同的計算機(jī)上運行。
先看下java中的編譯器和解釋器:
Java中引入了虛擬機(jī)的概念,即在機(jī)器和編譯程序之間加入了一層抽象的虛擬機(jī)器。這臺虛擬的機(jī)器在任何平臺上都提供給編譯程序一個的共同的接口。編譯程序只需要面向虛擬機(jī),生成虛擬機(jī)能夠理解的代碼,然后由解釋器來將虛擬機(jī)代碼轉(zhuǎn)換為特定系統(tǒng)的機(jī)器碼執(zhí)行。在Java中,這種供虛擬機(jī)理解的代碼叫做字節(jié)碼(即擴(kuò)展為.class的文件),它不面向任何特定的處理器,只面向虛擬機(jī)。每一種平臺的解釋器是不同的,但是實現(xiàn)的虛擬機(jī)是相同的。Java源程序經(jīng)過編譯器編譯后變成字節(jié)碼,字節(jié)碼由虛擬機(jī)解釋執(zhí)行,虛擬機(jī)將每一條要執(zhí)行的字節(jié)碼送給解釋器,解釋器將其翻譯成特定機(jī)器上的機(jī)器碼,然后在特定的機(jī)器上運行,這就是上面提到的Java的特點的編譯與解釋并存的解釋。
什么是Java程序的主類?應(yīng)用程序和小程序的主類有何不同?
一個程序中可以有多個類,但只能有一個類是主類。在Java應(yīng)用程序中,這個主類是指包含main()方法的類。而在Java小程序中,這個主類是一個繼承自系統(tǒng)類JApplet或Applet的子類。應(yīng)用程序的主類不一定要求是public類,但小程序的主類要求必須是public類。主類是Java程序執(zhí)行的入口點。
Java應(yīng)用程序與小程序之間有那些差別?
簡單說應(yīng)用程序是從主線程啟動(也就是main()方法)。applet小程序沒有main方法,主要是嵌在瀏覽器頁面上運行(調(diào)用init()線程或者run()來啟動),嵌入瀏覽器這點跟flash的小游戲類似。
以上就是深圳達(dá)內(nèi)教育java培訓(xùn)機(jī)構(gòu)的小編針對“2020年最新Java基礎(chǔ)知識考題”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。