好程式設計師大資料培訓分享大資料面試寶典四

好程式設計師發表於2020-05-15

  好程式設計師大資料培訓分享大資料面試寶典四,31 abstract method 是否可同時是 static, 是否可同時是 native ,是否可同時是 synchronized? 【基礎】

  答:都不能。

  32 、靜態變數和例項變數的區別?【基礎】

  答:靜態變數也稱為類變數,歸全類共有,它不依賴於某個物件,可透過類名直接訪問;而例項變數必須依存於某一例項,只能透過物件才能訪問到它。

  33 、是否可以從一個 static 方法內部發出對非 static 方法的呼叫?【基礎】

  答:不可以, 如果其中包含物件的 method() ,不能保證物件初始化。

  34 、寫 clone() 方法時,通常都有一行程式碼,是什麼?【基礎】

  答:Clone 有預設行為: super.clone() ,他負責產生正確大小的空間,並逐位複製。

  35 GC 是什麼 ? 為什麼要有 GC? 【基礎】

  答:GC 是垃圾收集的意思( Gabage Collection , 記憶體處理是程式設計人員容易出現問題的地方,忘記或者錯誤的記憶體回收會導致程式或系統的不穩定甚至崩潰, Java 提供的 GC 功能可以自動監測物件是否超過作用域從而達到自動回收記憶體的目的, Java 語言沒有提供釋放已分配記憶體的顯示操作方法。 Java 程式設計師不用擔心記憶體管理,因為垃圾收集器會自動進行管理。要請求垃圾收集,可以呼叫下面的方法之一: System.gc() Runtime.getRuntime().gc()

  36 、垃圾回收的優點和原理。並考慮 2 種回收機制。【基礎】

  答:Java 語言中一個顯著的特點就是引入了垃圾回收機制,使 c++ 程式設計師最頭疼的記憶體管理的問題迎刃而解,它使得 Java 程式設計師在編寫程式的時候不再需要考慮記憶體管理。由於有個垃圾回收機制, Java 中的物件不再有“作用域”的概念,只有物件的引用才有“作用域”。垃圾回收可以有效的防止記憶體洩露,有效的使用可以使用的記憶體。垃圾回收器通常是作為一個單獨的低階別的執行緒執行,不可預知的情況下對記憶體堆中已經死亡的或者長時間沒有使用的物件進行清楚和回收,程式設計師不能實時的呼叫垃圾回收器對某個物件或所有物件進行垃圾回收。回收機制有分代複製垃圾回收和標記垃圾回收,增量垃圾回收。

  37 、垃圾回收器的基本原理是什麼?垃圾回收器可以馬上回收記憶體嗎?有什麼辦法主動通知虛擬機器進行垃圾回收?【基礎】

  答:對於GC 來說,當程式設計師建立物件時, GC 就開始監控這個物件的地址、大小以及使用情況。通常, GC 採用有向圖的方式記錄和管理堆 (heap) 中的所有物件。透過這種方式確定哪些物件是 " 可達的 " ,哪些物件是 " 不可達的 " 。當 GC 確定一些物件為 " 不可達 " 時, GC 就有責任回收這些記憶體空間。可以。程式設計師可以手動執行 System.gc() ,通知 GC 執行,但是 Java 語言規範並不保證 GC 一定會執行。

  38 String s=new String( xyz ); 建立了幾個 String Object? 【基礎】

  答:兩個物件,一個是"xyx", 一個是指向 "xyx" 的引用物件 s

  39 、介面是否可繼承介面 ? 抽象類是否可實現 (implements) 介面 ? 抽象類是否可繼承實體類 (concrete class)? 【基礎】

  答:介面可以繼承介面。抽象類可以實現(implements) 介面,抽象類可繼承實體類,但前提是實體類必須有明確的建構函式。

  40 Java 的介面和 C++ 的虛類的相同和不同處。【基礎】

  答:由於Java 不支援多繼承,而有可能某個類或物件要使用分別在幾個類或物件裡面的方法或屬性,現有的單繼承機制就不能滿足要求。與繼承相比,介面有更高的靈活性,因為介面中沒有任何實現程式碼。當一個類實現了介面以後,該類要實現介面裡面所有的方法和屬性,並且介面裡面的屬性在預設狀態下面都是 public static, 所有方法預設情況下是 public. 一個類可以實現多個介面。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2692357/,如需轉載,請註明出處,否則將追究法律責任。

相關文章