JAVA基礎之兩種核心機制


    突然之間需要學習Java,學校里學的東西早就忘記了,得用最短的時間把Java知識理順,重點還是J2EE,畢竟所有的ava項目中95%都是J2EE,還是先從基礎的J2SE學起吧.......

    首先是了解Java的核心機制,Java中有兩種核心機制:

    ①Java虛擬機(Java Virtual Machine)

    ②垃圾收集機制(Garbage collection)

   一、核心機制之Java虛擬機

    ① Java虛擬機可以理解成一個以字節碼為機器指令的CPU

    ② 對於不同的運行平台,有不同的虛擬機

    ③ Java虛擬機機制屏蔽了底層運行平台的差別,能夠很好的實現跨平台

                                      Java編譯器                                          執行          |--->JVM for UNIX

     源程序(*.java文件)========>字節碼(*.class文件)=========>|--->JVM for Windows

                                                                                                                |--->JVM for other

     在不同的平台上有相應平台的虛擬機(相當於Java程序是運行在Java准備的虛擬環境中),這樣就保證了Java程序的跨平台性.....

     注:由此也可以看出Java是解釋型語言

     補充說明:語言類型

     ①編譯型語言:直接編譯成操作系統可識別的可執行文件,例如C,C++

     ②解釋型語言:需要首先編譯為.class等字節碼文件后在逐行解釋為操作系統可識別的可執行文件,例如Java

   二、核心機制之垃圾收集

      Java的內存管理實際上就是對象的管理,其中包括對象的分配和釋放。

      分配對象使用new關鍵字;釋放對象時,只要將對象所有引用賦值為null即可。對於GC來說,當程序員創建對象時,GC就開始監控這個對象的地址、大小以及使用情況。通常,GC采用有向圖的方式記錄和管理堆(heap)中的所有對象,通過這種方式確定哪些對象是“可達的”,哪些對象是“不可達的”,當GC確定一些對象為“不可達”時,GC就有責任回收這些內存空間

      GC在JVM中通常是由一個或一組進程來實現的,它本身也和用戶程序一樣占用heap空間,運行時也占用CPU,當進程運行時,應用程序停止運行。

      因此,當GC運行時間較長時,用戶能夠感到Java程序的停頓,另一方面,如果GC運行時間太短,則可能對象回收率太低,這意味着還有很多應該回收的對象沒有被回收,這即要求我們在設計GC時要均衡效率。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM