【002期】JavaSE面試題(二):基本數據類型與訪問修飾符

開篇導讀:
你們好,我是Java面試題庫的提褲姐,今天這篇是JavaSE系列的第二篇,主要總結了Java基礎語法中訪問修飾符會出現的相關面試題,在後續,會沿着第一篇開篇的知識線路一直總結下去,作到日更!若是我能作到百日百更,但願你也能夠跟着百日百刷,一百天養成一個好習慣。面試

1、Java的數據類型有哪些?

image.png

2、訪問權限修飾符 public、private、protected, 以及不寫(默認)時的區別?

Java中成員的訪問權限共有四種,可見性以下:
image.png函數

3、接口和抽象類有什麼區別?

實現:
抽象類的子類使用extends來繼承
接口必須使用implements來實現接口編碼

構造函數:
抽象類能夠有構造函數
接口沒有spa

main方法:
抽象類有main方法,而且能夠運行
接口不能有main方法code

實現數量:
類能夠實現多個接口,
可是隻能繼承一個抽象類。對象

訪問修飾符:
接口中的方法默認使用public修飾符
抽象類的方法能夠是任意訪問修飾符繼承

4、final, finally, finalize 的區別?

final
用於聲明屬性,方法和類, 分別表示屬性不可變, 方法不可覆蓋, 類不可繼承.接口

finally
是異常處理語句結構的一部分,表示老是執行.ci

finalize
是Object類的一個方法,在垃圾收集器執行的時候會調用被回收對象的此方法,能夠覆蓋此方法提供垃圾收集時的其餘資源回收,例如關閉文件等. JVM不保證此方法總被調用.資源

5、抽象類能用final修飾嗎?

不能:
定義抽象類就是讓其餘類繼承的,若是定義爲final,該類就不能被繼承,這樣彼此就回產生矛盾,因此final不能修飾抽象類。

6、爲何不能用浮點型表示金額?

因爲計算機中保存的小數實際上是十進制的小數的近似值,並非準確值,因此,千萬不要在代碼中使用浮點數來表示金額等重要的指標。
建議使用BigDecimal或者Long(單位爲分)來表示金額。

7、int 和 Integer 有什麼區別?

int 是 Java 提供的 8 種原始數據類型之一。
Java 爲每一個原始類型提供了封裝類,Integer 是 Java 爲 int 提供的封裝類。
int 的默認值爲0,而 Integer 的默認值爲 null,是引用類型,即 Integer 能夠區分出未賦值和值爲 0 的區別,int 則沒法表達出未賦值的狀況
Java 中 int 和 Integer 關係以下:

  • int 是基本的數據類型;
  • Integer 是 int 的封裝類;
  • int 和 Integer 均可以表示某一個數值;
  • int 和 Integer 不可以互用,由於他們兩種不一樣的數據類型;

8、char 型變量中能不能存儲一箇中文漢字,爲何?

char 類型能夠存儲一箇中文漢字,由於 Java 中使用的編碼是 Unicode(不選擇任何特定的編碼,直接使用字符在字符集中的編號,這是統一的惟一方法),一個 char 類型佔 2 個字節(16 比特),因此放一箇中文是沒問題的。

補充:使用 Unicode 意味着字符在 JVM 內部和外部有不一樣的表現形式,在 JVM 內部都是 Unicode,當這個字符被從 JVM 內部轉移到外部時(例如存入文件系統中),須要進行編碼轉換。因此 Java 中有字節流和字符流,以及在字符流和字節流之間進行轉換的轉換流,如 InputStreamReader 和OutputStreamReader,這兩個類是字節流和字符流之間的適配器類,承擔了編碼轉換的任務;
相關文章
相關標籤/搜索