JAVA程序基礎(JDK,JRE,JVM)

一、開發和運行環境

1、JDK和JRE的區別是什麼?它們各自有什麼作用?

JDK(Java Development Kit)是Java開發工具,它不僅提供了Java程序運行所需的JRE(Java Runtime Environment),還提供了一系列的編譯,運行等工具(各種類庫和工具),如javac、java、javaw等。JRE只是Java程序的運行環境,它最核心的內容就是JVM(Java虛擬機)及核心類庫。

2、環境變量CLASSPATH的作用是什麼?

CLASSPATH環境變量保存的是一些目錄和jar文件的地址,這些路徑是爲Java程序在編譯和運行的時候搜索類而用的。

二、Java語言概述

3、Java與C++程序在編譯和運行上有什麼區別?

C++源碼編譯以後,生成的是特定機器可以直接運行的文件,而Java源碼經過編譯後,生成的是中間的字節碼文件。這些字節碼文件是需要放在JVM中運行的額,而JVM是有多個平臺版本的。因此,Java具有跨平臺性,而C++沒有。
(注:class文件指的就是字節碼文件,而不是專指類編譯後的文件。不管是類、接口、枚舉或者其他類型,都是編譯成class文件的。)

4、什麼是JVM及其工作原理

JVM是Java程序運行的平臺,是一種用軟件模擬出來的計算機,負責執行Java編譯好的字節碼文件。它有一套非常嚴格的技術規範,大多數操作系統都可以安裝JVM,爲Java語言的跨平臺性起到了關鍵的作用。Java虛擬機有自己想象中的硬件,如處理器、堆棧、寄存器等,還具有相應的指令系統,它運行Java程序就好像一臺計算機運行C或C++程序一樣。

5、Java程序爲什麼無需delete語句進行內存回收?

Java的堆棧內存數據的釋放功能是由垃圾回收器自動進行的,無需程序員顯式的調用delete方法。該機制有效的避免了因爲程序員忘記釋放內存而造成內存溢出的錯誤,相對於C++等需要顯式釋放內存的語言,是一種巨大的改進。
(Java虛擬機規範並沒有強制規定要實現自動垃圾回收功能,但是目前大多數JVM都實現了自動垃圾回收機制,只是它們各自的實現算法不同。
注:垃圾回收線程是一個優先級很低的線程

發佈了26 篇原創文章 · 獲贊 53 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章