1. 程式人生 > 實用技巧 >Java面試題記錄第一天

Java面試題記錄第一天

Java面試題記錄第一天

1. Java語言中,型別轉換分為自動轉換和強制轉換兩種。在自動轉換中,一般按照byte→short或者char→int→long→float→double的原則進行轉換,位元組數少的型別轉換為位元組數多的型別,此時可以看到long是8個位元組,而float是4個位元組,理解為小數的優先順序大於整數的優先順序。在強制轉換中,s=(int)(3.14rr),此時s為int型,避免記憶體溢位或精度問題。
2. JDK與JRE與JVM的關係
在這裡插入圖片描述
答:從自己的角度來看,JDK的意思是Java開發工具,同時包含了JRE,(所以通常情況下,下載JDK後就包含了JRE)是在JRE的基礎上增添了一些工具。JRE的意思是Java執行時環境,同時也包含了JVM。還有一些庫,Java應用程式等。JVM的意思是Java虛擬機器,相當於在所有的作業系統上模擬了一個CPU去處理Java相關的東西。跨平臺的核心就是利用了JVM。實現了一次編譯,到處執行。

3. Java的優點:Java為純面向物件的語言;平臺無關性;Java也提供了很多內建的庫類(比如:多執行緒,網路通訊,垃圾回收器等);Java也提供了對web應用的開發(Servlet,Jsp);具有較好的安全性和健壯性;去除了C++的指標。
4. 為什麼需要main方法?
答:main方法為Java程式的入口方法,JVM在執行程式時,首先會查詢main()方法。public static void main(String[] args)static表明main方法是一個靜態方法,即方法中的程式碼是儲存在靜態儲存區的,只要類被載入後,就可以使用該方法而不需要通過例項化物件來訪問,void表明方法沒有返回值,字串陣列引數args為開發人員在命令列狀態下與程式互動的一種手段。
5. 編譯型和解釋型
答:編譯型是指將程式碼全部翻譯成位元組碼(預編譯),解釋型是指一邊寫程式碼,一邊翻譯。對於Java而言,先去編譯,然後去解釋。
6. JVM的工作流程
答:Java程式(以.java結尾的檔案)會通過Java編譯器,生成一個位元組碼檔案(以.class結尾的檔案),由於不同的硬體平臺上會安裝有不同的JVM,JVM負責把位元組碼翻譯成機器碼,有硬體能夠去執行。JVM執行的過程:首先將位元組碼裝入類裝載器,然後再由位元組碼校驗器進行程式碼的校驗,最後通過直譯器交給操作平臺,解釋一段程式碼,執行一段程式碼。
7. JVM載入class檔案的原理機制是什麼?
答:暫時先不作答,需要更深層次瞭解JVM。JVM涉及到的面太廣,專門做一天面試題。
8. 銀行業為什麼不使用float計算?
答:針對銀行業或者說計算來說,float的屬性具有離散性,接近某個值但不相等,會有舍入誤差,所以不使用,使用時選擇專門的工具BigDecimal類。例如:在這裡插入圖片描述

9. 例項變數,區域性變數,類變數的區別
答:例項變數:從屬於物件,如果不自行初始化,基本型別會輸出型別的預設值0,布林值型別是預設false,string型別是null;區域性變數:必須宣告和初始化。例如:不去宣告a,就不能去使用它,同樣的a必須去賦值。類變數:加一個關鍵字《static》,全域性變數,靜態變數,隨著類一起出現一起消失。
10. 字元可以強制轉換的原因
答:所有的字元本質都是數字,該數字是位於編碼表Unicode上的。