Java基礎概念知識

年輕的小王發表於2019-10-11

簡述Java程式碼從編寫到執行的全過程

  1. 編寫程式碼: 將需求通過程式碼實現
  2. 編譯成位元組碼檔案:將編碼後的源程式編譯成位元組碼檔案 .class
  3. 類裝載(classloader): 為執行程式尋找或裝載所需要的類
  4. 位元組碼校驗(bytecode verifier): 校驗class的程式碼,保證安全性,比如物件型別,物件訪問許可權
  5. 解釋(interprter):機器不認識位元組碼檔案,需要被直譯器解釋後才能執行
  6. 執行: 最後程式碼可以在執行環境中進行執行

簡述虛擬機器的工作機制

同 【簡述Java程式碼從執行到執行的全過程】

簡述回收機制

垃圾回收是指JVM通過一些垃圾回收演算法回收分配出去且未被使用的記憶體空間,提高程式執行效率,防止出現記憶體洩露。由於回收記憶體空間需要耗費時間,頻繁的進行垃圾回收會影響程式的執行效率,因此當出現未被引用的物件,JVM不會立即進行回收,而是選擇在合適的時候進行回收。所以在程式中使用system.gc()不會立馬進行垃圾回收,而是通知JVM需要進行垃圾回收

簡述java安全機制

  1. 類裝載器結構(class loader): 裝載和尋找程式執行所需要的類
  2. class檔案檢查器(the class file verifier): 虛擬機器校驗裝載的位元組碼檔案的完整性,通過四趟進行校驗
    第一趟:檢查檔案結構,比如檢查檔案是否符合JavaClass檔案的節本結構
    第二趟:型別資料的語義檢查,例如檢查final類有沒有被子化等
    第三趟:位元組碼驗證,確保運算元棧總是包含正確的數值以及正確的型別。
    第四趟:符號引用的驗證,由於Java程式是動態連結的,所以Class檔案檢查器在進行第四次掃描中,必須檢查相互引用類之間的相容性。
  3. 內建於JVM的一些安全特性:
    a) 型別安全的引用轉換
    b) 自動垃圾回收機制
    c) 空引用檢查
    d) 結構化的記憶體訪問
  4. Java管理器以及java api

簡述java物件導向的三大特性

  1. 封裝: 將屬性私有化只有類內部才能使用,提供對外使用的公有方法,就像常見的java bean,屬性都是priavte,set和get方法都是共有的。
    為什麼不直接將類的屬性設定為public供外部使用,因為直接使用的話,無法對屬性進行相應的處理再獲取,或者有些共有屬性只讀,不能修改,就不能直接將屬性設定為公有供外部使用。
  2. 繼承: 子類繼承父類的方法和屬性,並且可以重寫父類方法或者可以擴充套件新方法。java是單繼承語言,就是一個子類,只能繼承一個父類。java的繼承屬提高了java的程式複用性和擴充套件性
  3. 多型: 指java不同類的物件可以對同一函式呼叫進行響應,也就是函式呼叫可以根據傳送物件的不同而採用不同的行為方式。java多型分為執行時多型和編譯時多型,編譯時多型指方法的過載,即在編譯時就可以確定使用哪個方法,執行時多型是指Java在執行時個根據呼叫方法的例項型別來決定呼叫哪個方法。所以多型是指在繼承的基礎上,對父類的引用可以指向子類物件,呼叫子類重寫的方法,就是子類向上轉型成父類,但是子類特有的擴充套件方法無法使用,可以通過強制型別轉換實現呼叫特有方法

方法的按值傳遞和按引用傳遞

  • 按值傳遞:方法的形參型別不是引用型別,則是按值傳遞,那麼呼叫該方法時,形參將實參拷貝一份進行運算,不會改變實參的值。
  • 按引用傳遞:方法的形參型別為引用型別,則是按引用傳遞,那麼呼叫該方法時,傳遞的是實參的地址,形參的運算會改變實參的值。


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

相關文章