博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
深入理解java虚拟机_前言
阅读量:5227 次
发布时间:2019-06-14

本文共 2015 字,大约阅读时间需要 6 分钟。

 

2.JVM虚拟机

 

2.1  概述

  

  java获得广泛认可主要是因为:

(1)  java是一门结构严谨、面向对象的编程语言;

(2)  java摆脱了硬件平台的束缚,实现了“一次编写,到处运行”的理想;

(3)  java提供了一套相对较为安全的内存管理和访问机制,避免了绝大部分的内存泄露和指针越界问题;

(4)  java实现了热点代码检测和运行时编译及优化,使得java随着运行时间增加,获得更高的性能;

(5)  有一套完善的应用程序接口,还有无数的商业机构、开源社区的第三方库;

 

2.2  java技术体系

 

2.2.1 java技术体系包括以下几个组成部分:

 

  • java程序设计语言
  • 各种硬件平台上的java虚拟机
  • class文件格式
  • java API类库
  • 商业机构、开源社区的第三方java类库

(1)把java程序设计语言、java虚拟机、java API类库这三个部分统称为JDK(Java Development Kit),JDK是支持java程序开发的最小环境;

(2)把java API类库中Java SE API子集和java虚拟机两部分统称为JRE(Java Runtime Eenvironment),JRE是支持java程序运行的标准环境;

 

(如下图所示)

 

 

2.2.2 java技术平台可以分为4个平台:

 

  • Java Card: 支持一些java小程序(applet),运行在小内存设备(如智能卡)上的平台;
  • Java ME(Micro Edition): 支持java运行在移动终端(手机、PDA)平台,对Java API有所精简,并加入对移动终端的支持,这个版本以前称为J2ME;
  • Java SE(Standard Edition): 支持面向桌面级应用(如windows下的应用程序)的java平台,提供完整的java核心API,这个版本以前称为J2SE;
  • Java EE(Enterprise Edition): 支持多层架构的企业应用(如ERP、CRM应用)的java平台,提供了Java SE API外,还对其做了大量的扩充并提供相应的部署支持,以前称为J2EE;

 

2.3  java发展历史

  • 1991年4月,James Gosling领导”绿色计划“,诞生Oak(java的前身);
  • 1995年5月,Oak语言改名为Java,在SunWorld大会上,公布java1.0版本,提出”Write Once ,Run any Where“的口号
  • 1998年12月,sun吧java技术体系拆分为三个方向J2SE、J2EE、J2ME;
  • 1999年4月,HotSpot虚拟机发布,由一家”LongView Technologies”开发,后被sun公司收购;
  • 2000年5月,JDK1.3发布,提供java 2D API 并且新增添JavaSound类库;
  • 2002年2月,JDK1.4发布,发布了很多新技术,如正则表达式、异常链、NIO、日志类、XML解析器和XSLT转换器;
  • 2004年9月,JDK1.5发布,加入自动装箱、范型、动态注释、枚举、可变长参数、遍历循环(foreach)等语法特性,改进了java内存模型,提供了java.util.concurrent并发包;
  • 2006年11月,Sun公司宣布java会开源;
  • 2006年12月,JDK1.6发布,启用Java SE6、Java EE6、Java ME 6的命名方式。改进了Java虚拟机,包括锁与同步、垃圾收集、类加载等方面算法;
  • 2009年2月,JDK1.7发布,提供新的G1收集器、加强对非java语言的调用支持、升级加载类架构;
  • 2013年9月,JDK1.8发布;

 

2.4  java虚拟机发展历史

 

  • 1996年,Sun Classic VM虚拟机;
  • 1999年,Sun HotSpot VM虚拟机,服务器/桌面领域的商用虚拟机;
  • Sun Mobile-embedded VM / Meta-Circular VM(KVM、JavaInJava、Maxine VM):针对移动端和嵌入式;
  • BEA JRockit / IBM J9 VM;
  • Azul VM / BEA Liquid VM;
  • Apache Hoarmony / Google Andriod DalvikVM;
  • Microsoft JVM;

 

2.5  实战:自己编译虚拟机

  

  书本上的内容年代比较久远了,参考了一下linux公社的文章(http://www.linuxidc.com/Linux/2016-04/130484.htm)

  (也可以用intellij idea查看jvm日志和GC回收信息,可以网上google也可以私信我)

 

 

 

---恢复内容结束---

转载于:https://www.cnblogs.com/Mairr/p/7699158.html

你可能感兴趣的文章
Linux下phpsh安装与使用
查看>>
Ubuntu14.04+eclipse下cocos2d-x3.0正式版环境的搭建
查看>>
iOS UIScrollView的嵌套使用(仿穷游主界面的实现)
查看>>
mac 如何显示隐藏文件和.点开头文件?
查看>>
AddChildViewController
查看>>
C#解压或压缩文件夹
查看>>
人机猜拳
查看>>
WEB应用从服务器主动推送Data到客户端有那些方式?
查看>>
07 装饰器及进阶
查看>>
黑马程序员——java学习7(152-165)——String类和StringBuffer,StringBuilder
查看>>
Asp.Net 5
查看>>
流式计算之Storm简介
查看>>
44.纯 CSS 创作背景色块变换的按钮特效
查看>>
TopCoder SRM 571 题解
查看>>
CentOS 6.2 安装chromium,并可以使用yum update保持更新
查看>>
vue.js计算属性 vs methods
查看>>
Day004课程内容
查看>>
调整显示屏幕偏移和刷新频率[zt]
查看>>
There are no accidents.
查看>>
图片与文本的对齐方式
查看>>