四虎影视库国产精品一区-四虎影视库-四虎影视久久久免费-四虎影视久久久-四虎影视久久-四虎影视精品永久免费网站

TEL:15195455103

Java培訓 > 焦點資訊 >

java面試題及答案整理(java面試題基礎題)

作者:南京中博教育????來源:Java面試資訊????發布時間:2021-08-05 15:22????瀏覽量:107

  不少人都知道Java開發崗位的工資比較高,但是你們可能不知道想要找到Java開發工作同樣不是一件簡單的事情,不僅需要我們有著扎實的開發技術,還需要我們對于面試題有一定的了解,這樣才能在面試期間有更好的變現,今天就給大家帶來了java面試題及答案整理(java面試題基礎題)


中博教育軟件學校
 

  1.在 Java 中如何跳出當前的多重嵌套循環?

  答案:在外層循環前加一個標記如outfor,然后用break outfor;可以跳出多重循環。例如以下代碼:

  public class TestBreak {
           public static void main(String[] args) {
             outfor: for (int i = 0; i < 10; i++){
                for (int j = 0; j < 10; j++){
                    if (j == 5){
                         break outfor;
                        }
                     System.out.println("j = " + j);
                      }
                     }
                   }
                 }

  運行結果如下所示:

  j = 0

  j = 1

  j = 2

  j = 3

  j = 4
 

  2.HashSet 里的元素是不能重復的, 那用什么方法來區分重復與否呢?

  答案:往集合在添加元素時,調用 add(Object)方法的時候,首先會調用Object的 hashCode()方法判斷hashCode 是否已經存在,如不存在則直接插入元素;如果已存在則調用Object對象的 equals()方法判斷是否返回 true,如果為true則說明元素已經存在,如為false則插入元素。
 

  3.請寫出幾個常見的運行時異常?

  答案:NullPointerException - 空指針引用異常

  ClassCastException - 類型強制轉換異常。

  IndexOutOfBoundsException - 下標越界異常

  NumberFormatException - 數字格式異常
 

  4.為什么Java語言的開發者,把String類定義為final的呢?

  答案:因為只有當字符串是不可變的,字符串池才有可能實現。字符串池的實現可以在運行時節約很多heap空間,因為不同的字符串變量都指向池中的同一個字符串。但如果字符串是可變的,那么String interning將不能實現,因為這樣的話,如果變量改變了它的值,那么其它指向這個值的變量的值也會一起改變。如果字符串是可變的,那么會引起很嚴重的安全問題。譬如,數據庫的用戶名、密碼都是以字符串的形式傳入來獲得數據庫的連接,或者在socket編程中,主機名和端口都是以字符串的形式傳入。因為字符串是不可變的,所以它的值是不可改變的,否則黑客們可以鉆到空子,改變字符串指向的對象的值,造成安全漏洞。

  因為字符串是不可變的,所以是多線程安全的,同一個字符串實例可以被多個線程共享。這樣便不用因為線程安全問題而使用同步。字符串自己便是線程安全的。

  因為字符串是不可變的,所以在它創建的時候HashCode就被緩存了,不需要重新計算。這就使得字符串很適合作為Map中的鍵,字符串的處理速度要快過其它的鍵對象。這就是HashMap中的鍵往往都使用字符串。
 

  5.抽象類(abstract class)和接口(interface)有什么異同?

  答案:不同點:

  ● 抽象類中可以定義構造器,接口不能;

  ● 抽象類可以有抽象方法和具體方法,接口不能有具體方法;

  ● 接口中的成員全都是 public 的,抽象類中的成員可以使用private、public、protected、默認等修飾;

  ● 抽象類中可以定義成員變量,接口中只能是常量;

  ● 有抽象方法的類必須被聲明為抽象類,而抽象類未必要有抽象方法;

  ● 抽象類中可以包含靜態方法,接口中不能有靜態方法;

  ● 一個類只能繼承一個抽象類,一個類可以實現多個接口;

  相同點:

  ● 不能夠實例化;

  ● 可以將抽象類和接口類型作為引用類型;

  ● 一個類如果繼承了某個抽象類或者實現了某個接口都需要對其中的抽象方法全部進行實現,否則該類仍然需要被聲明為抽象類;
 

  6.Java 出現 OutOfMemoryError(OOM)的原因有那些?出現 OOM 錯誤后,怎么解決?

  答案:觸發 java.lang.OutOfMemoryError:常見的原因就是應用程序需要的堆空間是大的,但是 JVM 提供的卻小。這個的解決方法就是提供大的堆空間即可。

  除此之外還有復雜的原因:內存泄露:特定的編程錯誤會導致你的應用程序不停的消耗更多的內存,每次使用有內存泄漏風險的功能就會留下一些不能被回收的對象到堆空間中,隨著時間的推移,泄漏的對象會消耗所有的堆空間,觸發java.lang.OutOfMemoryError: Java heap space 錯誤。

  解決方案:你應該確保有足夠的堆空間來正常運行你的應用程序,在 JVM 的啟動配置中增加如下配置:-Xmx1024m,流量/數據量峰值:應用程序在設計之初均有用戶量和數據量的限制,某一時刻,當用戶數量或數據量突然達到一個 峰 值 , 并 且 這 個 峰 值 已 經 超 過 了 設 計 之 初 預 期 的 閾 值 , 那 么 以 前 正 常 的 功 能 將 會 停 止 , 并 觸 發java.lang.OutOfMemoryError: Java heap space 異常解決方案,如果你的應用程序確實內存不足,增加堆內存會解決 GC overhead limit 問題,就如下面這樣,給你的應用程序 1G 的堆內存:java -Xmx1024m com.yourcompany.YourClass。
 

  以上就是對于Java面試題的介紹,當然這只是我們在面試中經過會出現的幾個問題,如果你想自己能夠有一個更好的面試結果,可以參加南京中博教育的Java培訓課程,不僅有著實戰項目練習,而且我們還有著專業的就業老師為您提供模擬面試,帶你體驗面試中的每個流程。


本文內容、圖片由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至2353260942@qq.com 舉報,一經查實,本站將立刻刪除。(如需投稿聯系管理員開通!)

? CopyRight njjava.com ???? 蘇ICP備14052071號

搶試聽名額

名額僅剩66名

教育改變生活

WE CHANGE LIVES