Java虛擬機詳解01----初識JVM

 

主要內容以下:java

  • JVM的概念
  • JVM發展歷史
  • JVM種類
  • Java語言規範
  • JVM規範

1、JVM的概念:正則表達式

JVM:編程

  Java Virtual Machine,意爲Java虛擬機。安全

虛擬機:多線程

  指經過軟件模擬的具備完整硬件系統功能的、運行在一個徹底隔離環境中的完整計算機系統模塊化

有哪些虛擬機:性能

VMWare、Virtual Box:都是使用軟件模擬物理CPU的指令集加密

JVM:使用軟件模擬Java 字節碼的指令集spa

 

2、JVM發展歷史:線程

一、Java發展史:

  • 1996年:SUN JDK 1.0 Classic VM

    純解釋運行,使用外掛進行JIT

  • 1997年:JDK1.1 發佈

    AWT、內部類、JDBC、RMI、反射

  • 1998年:JDK1.2 Solaris Exact VM

    JIT 解釋器混合    

    Accurate Memory Management 精確內存管理,數據類型敏感

    提高了GC性能

    注:JDK1.2開始,稱爲Java 2,因而有了J2SE J2EE J2ME 的出現,同時加入Swing Collections。

  • 2000年:JDK 1.3,Hotspot 做爲默認虛擬機發布

    加入JavaSound

  • 2002年:JDK 1.4【Java真正走向成熟的一個版本】,Classic VM退出歷史舞臺

    加入:Assert  正則表達式  NIO  IPV6  日誌API  加密類庫

  • 2004年:JDK 1.5【相當重要的版本】。即 JDK5 、J2SE 5 、Java 5

泛型

註解

枚舉

自動裝箱

可變長參數

Foreach循環

  • 2006年:JDK 1.6發佈,JDK6

腳本語言支持

JDBC 4.0

Java編譯器 API

  • 2011年:JDK7發佈

延誤項目推出到JDK8

G1(全新的GC收集器)

動態語言加強

64位系統中的壓縮指針

NIO 2.0

  • 2014年:JDK8發佈【重要的版本】

Lambda表達式

語法加強  Java類型註解

  • 2016年:計劃發佈JDK9

    模塊化

 

二、重大歷史事件:

  • 使用最爲普遍的JVM爲HotSpot

    HotSpot 爲Longview Technologies開發,被SUN收購

  • 2006年:Java開源,並創建OpenJDK

    HotSpot  成爲Sun JDK和OpenJDK中所帶的虛擬機

  • 2008年:Oracle收購BEA

    獲得JRockit VM

  • 2009年4月20日:Oracle公司正式宣佈以74億美金的價格收購Sun公司。  

獲得Hotspot

  • Oracle宣佈在JDK8時整合JRockit和Hotspot,將這兩款優秀的虛擬機取長補短,最終合二爲一。

    在Hotspot基礎上,移植JRockit優秀特性

 

3、JVM種類:

一、KVM:

SUN發佈

IOS Android興起以前,普遍用於手機系統

二、CDC/CLDC HotSpot:

手機、電子書、PDA等設備上創建統一的Java編程接口

J2ME的重要組成部分

三、JRockit:

  BEA 

四、IBM J9 VM:

  IBM內部

五、Apache Harmony:

兼容於JDK 1.5和JDK 1.6的Java程序運行平臺

與Oracle關係惡劣,退出JCP ,Java社區的分裂

OpenJDK出現後,受到挑戰,2011年退役

沒有大規模商用經歷

對Android的發展有積極做用

 

4、Java語言規範:

Java語言規範主要體如今如下幾點:

  • 語法
  • 變量
  • 類型
  • 文法

 

5、JVM規範:

JVM主要定義二進制class文件和JVM指令集等。

JVM語言規範主要體如今如下幾點:

  • Class文件類型
  • 運行時數據
  • 幀棧
  • 虛擬機的啓動
  • 虛擬機的指令集

此外,JVM須要對Java Library 提供如下支持:(由於這些東西沒有辦法經過java語言自己來實現)

  • 反射 java.lang.reflect
  • ClassLoader
  • 初始化class和interface
  • 安全相關 java.security
  • 多線程
  • 弱引用
相關文章
相關標籤/搜索