深刻JVM內核之 —— 初識JVM

JVM的概念

jvm是Java Virtual Machine 的簡稱意味Java虛擬機,指經過軟件模擬的具備完整硬件系統功能的、運行在一個徹底隔離環境中的完整計算機系統正則表達式

有哪些虛擬機編程

虛擬機名稱  實現方式
  VMWare      使用軟件模擬物理CPU的指令集
  Visual Box  使用軟件模擬物理CPU的指令集
  JVM         使用軟件模擬Java 字節碼的指令集
複製代碼

JVM的歷史

1996年 SUN JDK 1.0 Classic VM,純解釋運行,使用外掛進行JITjvm

1997年 JDK1.1 發佈 AWT、內部類、JDBC、RMI、反射模塊化

1998年 JDK1.2 Solaris Exact VM JIT 解釋器混合 Accurate Memory Management 精確內存管理,數據類型敏感 提高的GC性能。從這時開始稱爲Java2 J2SE J2EE J2ME得出現加入Swing Collections性能

2000年 JDK 1.3 Hotspot 做爲默認虛擬機發布 加入JavaSound加密

2002年 JDK 1.4 Classic VM退出歷史舞臺 Assert正則表達式 NIO IpV6 日誌API 加密類庫spa

2004年發佈 JDK1.5 即 JDK5 、J2SE 5 、Java 5 泛型、註解、裝箱、枚舉、可變長的參數、Foreach循環指針

JDK1.6 JDK六、腳本語言支持、JDBC 4.0、Java編譯器 API日誌

2011年 JDK7發佈 延誤項目推出到JDK8 、G一、動態語言加強、64位系統中的壓縮指針、NIO 2.0code

2014年 JDK8發佈 Lambda表達式、語法加強、Java類型註解

2016年JDK9 模塊化

JVM的歷史 - 大事記

使用最爲普遍的JVM爲HotSpot

HotSpot 爲Longview Technologies開發 被SUN收購

2006年 Java開源 並創建OpenJDK HotSpot,成爲Sun JDK和OpenJDK中所帶的虛擬機

2008 年 Oracle收購BEA,獲得JRockit VM

2010年Oracle 收購 Sun,獲得Hotspot

Oracle宣佈在JDK8時整合JRockit和Hotspot,優點互補 在Hotspot基礎上,移植JRockit優秀特性

初識JVM - 各式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的發展有積極做用

初識JVM – 規範

Java語言規範

語法 變量 類型 文法 
複製代碼

JVM規範

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

Java語言規範定義了什麼是Java語言,Java語言和JVM相對獨立,Groovy、Clojure、Scala,這三種均可以運行在JVM上。JVM主要定義二進制class文件和JVM指令集等

整數得表達

原碼:第一位爲符號位(0爲正數,1爲負數)

反碼:符號位不動,原碼取反

負數補碼:符號位不動,反碼加1

正數補碼:和原碼相同

打印整數的二進制表示 int a=-6; for(int i=0;i<32;i++){ int t=(a & 0x80000000>>>i)>>>(31-i); System.out.print(t); }

爲何要用到補碼呢? 由於在人們的計算概念中零是沒有正負之分的,統一0的處理 統一處理加減法,無需增長減法器操做

相關文章
相關標籤/搜索