大數據面試寶典四

  好程序員大數據培訓分享大數據面試寶典四,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.一個類可以實現多個接口。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章