天天看點

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的關系

Java面試題記錄第一天

答:從自己的角度來看,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類。例如:

Java面試題記錄第一天

9. 執行個體變量,局部變量,類變量的差別

答:執行個體變量:從屬于對象,如果不自行初始化,基本類型會輸出類型的預設值0,布爾值類型是預設false,string類型是null;局部變量:必須聲明和初始化。例如:不去聲明a,就不能去使用它,同樣的a必須去指派。類變量:加一個關鍵字《static》,全局變量,靜态變量,随着類一起出現一起消失。

10. 字元可以強制轉換的原因

答:所有的字元本質都是數字,該數字是位于編碼表Unicode上的。