1.什麼是java虛擬機?爲什麼說java是跨平臺的語言?
jvm即java虛擬機是一個可以執行java字節碼的虛擬機進程。java源代碼編譯後的.class字節碼文件能夠在不同的jvm上被解釋成爲相應的機器碼,得以在不同平臺上執行。在不同的平臺上安裝相應的jvm,才能實現java的跨平臺。
2.jre和jdk的區別?
Java運行時環境(JRE java runtime environment)。它包括Java虛擬機、Java核心類庫和支持文件。它不包含開發工具(JDK)--編譯器、調試器和其他工具。
Java開發工具包(JDK java deployment kit)是完整的Java軟件開發包,包含了JRE,編譯器和其他的工具(比如:JavaDoc,Java調試器),可以讓開發者開發、編譯、執行Java應用程序。
3.”static”關鍵字是什麼意思?Java中是否可以覆蓋(override)一個private或者是static的方法?
static是靜態的意思,就是說被static修飾的成員變量或者成員方法等在類加載時就加載了,因此可以直接通過類名調用靜態的方法或者變量,而不需要實例化對象。覆蓋方法是指子類繼承父類時,擁有與父類同名,參數及返回值都相同,但是如果是父類中private方法,子類根本就無法調用,就談不上覆蓋。static方法不需要重寫。
4.是否可以在static環境中訪問非static變量?
不可以。因爲在static環境中可以不創建對象的實例,而非static變量在對象未初始化時是不存在的,這樣運行時只執行靜態環境中的代碼時編譯器就會報錯。
5.什麼是自動拆裝箱?
自動裝箱就是Java編譯器將基本數據類型轉化爲對應的對象包裝類型;自動拆箱反之。