天天看點

2021年Java基礎面試題

Java 技術具有卓越的通用性、高效性、平台移植性和安全性,廣泛應用于PC、資料中心、遊戲控制台、科學超級計算機、行動電話和網際網路,同時擁有全球最大的開發者專業社群。

 先給大家複習一下基礎題!!!

Java基礎是java初學者的起點,是幫助你從小白入門到精通必學基礎課程!

2021年Java基礎面試題
2021年Java基礎面試題

 為初學者而著!

Java300集>>>适合準備入行開發的零基礎員學習Java,基于最新JDK13、IDEA平台講解的,視訊中穿插多個實戰項目。每一個知識點都講解的通俗易懂,由淺入深。不僅适用于零基礎的初學者,有經驗的程式員也可做鞏固學習。

Java基礎闆塊知識:

  1. 職業規劃
  2. 學習方法
  3. 泛型、容器
  4. 資料結構和算法
  5. 智能電話本實戰
  6. IO流
  7. Java介紹
  8. 變量、資料類型、運算符
  9. IDEA
  10. 控制語句、方法、遞歸算法
  11. 面向對象
  12. JVM
  13. 數組和資料儲存
  14. JDK
  15. 異常機制、可視化
  16. 飛機大戰項目

配套學習:Java初學者入門教程>>>

Java基礎面試題

1、如果main方法被聲明為private會怎樣?

能正常編譯,但運作的時候會提示”main方法不是public的”。

2、Java裡的傳引用和傳值的差別是什麼?

傳引用是指傳遞的是位址而不是值本身,傳值則是傳遞值的一份拷貝。

3、如果要重寫一個對象的equals方法,還要考慮什麼?

hashCode。

4、Java的”一次編寫,處處運作”是如何實作的?

Java程式會被編譯成位元組碼組成的class檔案,這些位元組碼可以運作在任何平台,是以Java是平立的。

5、說明一下public static void main(String args[])這段聲明裡每個關鍵字的作用。

public: main方法是Java程式運作時調用的第一個方法,是以它必須對Java環境可見。是以可見性設定為pulic.

static: Java平台調用這個方法時不會建立這個類的一個執行個體,是以這個方法必須聲明為static。

void: main方法沒有傳回值。

String是指令行傳進參數的類型,args是指指令行傳進的字元串數組。

6、==與equals的差別

==比較兩個對象在記憶體裡是不是同一個對象,就是說在記憶體裡的存儲位置一緻。兩個String對象存儲的值是一樣的,但有可能在記憶體裡存儲在不同的地方。

==比較的是引用而equals方法比較的是内容。public boolean equals(Object obj) 這個方法是由Object對象提供的,可以由子類進行重寫。預設的實作隻有當對象和自身進行比較時才會傳回true,這個時候和==是等價的。String, BitSet, Date, 和File都對equals方法進行了重寫,對兩個String對象 而言,值相等意味着它們包含同樣的字元序列。對于基本類型的包裝類來說,值相等意味着對應的基本類型的值一樣。

7、如果去掉了main方法的static修飾符會怎樣?

程式能正常編譯。運作時會抛NoSuchMethodError異常。

8、為什麼oracle type4驅動被稱作瘦驅動?

oracle提供了一個type 4 JDBC驅動,被稱為瘦驅動。這個驅動包含了一個oracle自己完全用Java實作的一個TCP/IP的Net8的實作,是以它是平立的,可以在運作時由浏覽器下載下傳,不依賴任何用戶端 的oracle實作。用戶端連接配接字元串用的是TCP/IP的位址端口,而不是資料庫名的tnsname。

9、介紹一下finalize方法

final: 常量聲明。 finally: 處理異常。 finalize: 幫助進行垃圾回收。

接口裡聲明的變量預設是final的。final類無法繼承,也就是沒有子類。這麼做是出于基礎類型的安全考慮,比如String和Integer。這樣也使得編譯器進行一些優化,更容易保證線程的安全性。final方法無法重寫。final變量的值不能改變。finalize()方法在一個對象被銷毀和回收前會被調用。finally,通常用于異常處理,不管有沒有異常被抛出都會執行到。比如,關閉連接配接通常放到finally塊中完成。

10、什麼是Java API?

Java API是大量軟體元件的集合,它們提供了大量有用的功能,比如GUI元件。

11、GregorianCalendar類是什麼東西?

GregorianCalendar提供了西方傳統月曆的支援。

12、ResourceBundle類是什麼?

ResourceBundle用來存儲指定語言環境的資源,應用程式可以根據運作時的語言環境來加載這些資源,進而提供不同語言的展示。

13、為什麼Java裡沒有全局變量?

全局變量是全局可見的,Java不支援全局可見的變量,因為:全局變量破壞了引用透明性原則。全局變量導緻了命名空間的沖突。

14、如何将String類型轉化成Number類型?

Integer類的'valueOf方法可以将String轉成Number。

15、SimpleTimeZone類是什麼?

SimpleTimeZone提供公曆日期支援。

16、while循環和do循環有什麼不同?

while結構在循環的開始判斷下一個疊代是否應該繼續。do/while結構在循環的結尾來判斷是否将繼續下一輪疊代。do結構至少會執行一次循環體。

17、Locale類是什麼?

Locale類用來根據語言環境來動态調整程式的輸出。

18、面向對象程式設計的原則是什麼?

主要有三點,多态,繼承和封裝。

19、介紹下繼承的原則

繼承使得一個對象可以擷取另一個對象的屬性。使用繼承可以讓已經測試完備的功能得以複用,并且可以一次修改,所有繼承的地方都同時生效。

20、什麼是隐式的類型轉化?

隐式的類型轉化就是簡單的一個類型指派給另一個類型,沒有顯式的告訴編譯器發生了轉化。并不是所有的類型都支援隐式的類型轉化。

21、sizeof是Java的關鍵字嗎?

不是。

22、native方法是什麼?

native方法是非Java代碼實作的方法。

23、在System.out.println()裡面,System, out, println分别是什麼?

System是系統提供的預定義的final類,out是一個PrintStream對象,println是out對象裡面一個重載的方法。

24、封裝,繼承和多态是什麼?

簡單來說,多态是指一個名字多種實作。多态使得一個實體通過一個通用的方式來實作不同的操作。具體的操作是由實際的實作來決定的。

多态在Java裡有三種表現方式:方法重載通過繼承實作方法重寫通過Java接口進行方法重寫。

25、顯式的類型轉化是什麼?

顯式的類型轉化是明确告訴了編譯器來進行對象的轉化。

26、什麼是Java虛拟機?

Java虛拟機是能移植到不同硬體平台上的軟體系統。

27、類型向下轉換是什麼?

向下轉換是指由一個通用類型轉換成一個具體的類型,在繼承結構上向下進行。

28、Java的通路修飾符是什麼?

通路權限修飾符是表明類成員的通路權限類型的關鍵字。使用這些關鍵字來限定程式的方法或者變量的通路權限。它們包含:

public: 所有類都可以通路 protected: 同一個包内以及所有子類都可以通路 private: 隻有歸屬的類才能通路預設: 歸屬類及相同包下的子類可以通路。

29、所有類的父類是什麼?

Object.

30、Java的基本類型有哪些?

byte,char, short, int, long, float, double, boolean。

 想要學習更多的知識可以,工衆号:程式設計領域

實戰遊戲項目:大魚吃小魚>>>

Java開發掃雷遊戲實戰項目>>>

Java制作坦克大戰遊戲實戰項目>>>

2021年Java基礎面試題