標籤:
作業系統是平台,可提供軟體啟動並執行環境,在系統上啟動並執行軟體是一個一個的進程,考慮到安全問題他們之間不能共用資料,所以是進程。線程包含在進程中,他們之間可以共用資料,
java語言有自己的運行環境它就是jre,JRE是JVM(java虛擬機器)和JDK(java開發套件)組成,jvm又有編譯器和解譯器組成,編譯器使.java類型的檔案轉換成.class類型的檔案,再有解譯器將.class檔案由JDK中一段可以將.class檔案轉換成系統可以識別的位元組碼,然後系統在將位元組碼轉換成電腦認識的二進位碼。
虛擬機器內建的幾種機制:
1、記憶體回收機制, java虛擬機器內建應用程式管理記憶體,
system.gc()方法的作用只是喚醒記憶體回收機制,記憶體回收原理就是標記交換區收集演算法,(在棧中自上而下的進行兩次搜尋,第一次如果有長時間不用或者以前用過的對象現在為空白的就做上標記,在第二次搜尋時,如果仍然是長時間不使用,或為空白,就立即清理掉釋放資源)在執行gc()方法後不能立即處理垃圾,他也是一個線程,而且層級是最低的,要等到搶佔到CPU資源後再進行清理,真正清理垃圾的方法是finalize()方法,回收垃圾不是程式員做的,如果想清理當前對象,可以先置空,在調用System.gc()方法,最後This.finalize()方法
2、異常處理機制,lang包中throwable類的直接子類有兩個,一個是exception,一個是error,exception又分為兩種一個是運行期異常,一個是檢查期異常,檢查型異常是有編譯器直接捕獲,運行期異常是由解譯器捕獲的異常,
如果方法中出現異常不能解決就拋出,用throw 異常對象,調用方法時如果還是不能解決該異常就拋棄異常,第二次是throws,寫在類名後面。職座標www.zhizuobiao.com
3、多線程
線程包含三種狀態:
1、建立狀態,由start()方法喚醒這個線程,使線程處於線程隊列中
2、運行狀態,當此線程搶佔到CPU資源時,就會回調其中的run()方法
3、阻塞狀態,阻塞狀態可以有兩個方法實現wait()線程將不線上程隊列中知道有notify(),或者是notify()方法喚醒,
sleep()線程
還線上程隊列中等待著,到指定時間到達就又會去搶佔CPU資源
線程銷毀:1、isAlive()判斷線程是否還活著
2、yield()銷毀
多線程與java運行環境的總結