JAVA學習筆記(初級)一

虛擬機

JVM爲下列各項做出了定義:
- 指令集
- 寄存器
- 類文件格式
- 棧
- 垃圾收集堆
- 存儲區

JVM的功能:
- 通過ClassLoader尋找和裝載class文件;
- 解釋字節碼成爲指令並執行,提供class運行環境;
- 進行運行期間垃圾回收;
- 提供與硬件交互的平臺;

垃圾回收

在程序運行過程中,存在被分配了的內存塊不再被需要的情況,那麼這些內存塊對程序來說就是垃圾。
對不再需要的已分配內存,也就是釋放內存,這個過程就是垃圾回收。

  • Java的垃圾回收:
    Java編程語言提供了一種系統級線程以跟蹤內存分配,從而可以自動檢查和釋放不再需要的內存。

    • 在Java裏面,垃圾回收是一個自動的系統行爲,程序員不能控制垃圾回收的功能和行爲,比如垃圾回收什麼時候開始,什麼時候結束,以及到底哪些資源需要回收等。
    • 有一些跟垃圾回收相關的方法,比如System.gc()。但是調用這些方法,僅僅是在通知垃圾回收程序,至於垃圾回收程序運不運行,什麼時候運行,都是無法控制的
    • 程序員可以通過設置對象爲null來標示某個對象不再被需要了,這只是表示這個對象可以被回收了,並不是馬上被回收

代碼安全

  • 編譯:編寫的代碼首先被編譯成爲class文件。如果代碼有問題,編譯期間就會發現,提示有編譯錯誤,無法編譯通過;
  • 裝載:在類裝載的時候,還會進行類裝載檢查,把本機上的類和網絡資源類相分離,在調入類的時候進行檢查,因而可以限制“木馬”應用。
  • 運行前:類裝載後,運行前,還會進行字節碼校驗,以判斷程序是安全的。
  • 沙箱:如果你的程序在網絡上運行,還有沙箱(Sand Box)的保護。如果你的程序沒有取得授權,只能在沙箱限定的範圍內運行,是不能訪問本地資源的,從而保證安全性。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章