Java版本历史

  • 1995年5月23日,Java语言诞生
  • 1996年1月,第一个JDK1.0诞生
  • 1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入JAVA技术
  • 1996年9月,约8.3万个网页应用了JAVA技术来制作
  • 1997年2月18日,JDK1.1发布
  • 1997年4月2日,JavaOne会议召开,参与者逾一万人,创当时全球同类会议规模之纪录
  • 1997年9月,JavaDeveloperConnection社区成员超过十万
  • 1998年2月,JDK1.1被下载超过2,000,000
  • 1998年12月8日,JAVA2企业平台J2EE发布
  • 1999年6月,SUN公司发布Java的三个版本:标准版(J2SE)、企业版(J2EE)和微型版(J2ME)
  • 2000年5月8日,JDK1.3发布
  • 2000年5月29日,JDK1.4发布
  • 2001年6月5日,NOKIA宣布,到2003年将出售1亿部支持Java的手机
  • 2001年9月24日,J2SE1.3发布
  • 2002年2月26日,J2SE1.4发布,自此Java的计算能力有了大幅提升
  • 2004年9月30日18:00PM,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5更名为Java SE 5.0
  • 2005年6月,JavaOne大会召开,SUN公司公开Java SE 6。此时,Java的各种版本已经更名,以取消其中的数字“2”:J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME
  • 2006年12月,SUN公司发布JRE6.0
  • 2009年12月,SUN公司发布Java EE 6
  • 2010年11月,由于Oracle公司对于Java社区的不友善,因此Apache扬言将退出JCP
  • 2011年7月28日,Oracle公司发布Java SE 7
  • 2014年3月18日,Oracle公司发表Java SE 8

2、Java平台:

广泛地说,只要能执行Java bytecode者,就可以称为Java 平台(Java platform)。大致上,实现Java平台(implementations of the Java SE platform)的方式有三种,分别是:

  • Java虚拟机器(Java Virtual Machine,JVM)
  • Java操作系统(Java Operating System)
  • Java芯片(Java Chip)

以下就此三种Java平台提出解说,并比较之。

2.1、Java虚拟机器:

所谓的Java虚拟机器,指的是在操作系统上执行的一种程序,此程序可以解读Java 字节码(bytecode),并在操作系统的帮助下执行Java 字节码。这样的执行架构,大致上可以分成四层,分别是:

  • 第一层(最上层)的Java bytecode
  • 第二层的Java虚拟机器
  • 第三层的操作系统
  • 第四层(最底层)的芯片

芯片执行上面的操作系统,操作系统执行上面的Java虚拟机器,Java虚拟机器执行上面的Java bytecode。对于Java bytecode来说,它只接触到Java虚拟机器,所以当然“误以为”Java 虚拟机器就是它的平台。

  实例:Pentium III Chip + Windows 2000 OS + Sun HotSpot Client VM + Together/ Java pplication。

2.2、Java 操作系统:

如果把Java虚拟机器整合进既有的操作系统中(例如:Mac OS X),或是打造一个全新的操作系统专门执行Java bytecode(例如:JOS),这类能直接执行Java bytecode的操作系统也可视为Java平台。这样的执行架构,大致上可以分成三层,分别是:

  • 第一层(最上层)的Java bytecode
  • 第二层的 Java 操作系统
  • 第三层(最底层)的芯片

2.3、Java 芯片:

如果把Java操作系统和既有的芯片整合起来成为一组新的芯片(例如:ARM 7、ARM 9),或者打造一个全新的Java专用芯片(例如:aJile aJ-100)那么此一种类的芯片也是Java平台。这样的执行架构,大致上可以分成两层,分别是:

  • 第一层(最上层)的Java bytecode
  • 第二层(最底层)的Java 芯片

三种方式的比较

这三种都是 Java 平台,各有优缺点,很难说那一种方式比较好,必须看你的需求而定。

透过虚拟机器来执行Java是最常见的架构方式,一方面是因为虚拟机器的Java平台最容易被实作出来(相较于Java操作系统和Java芯片 而言),二方面是因为只要有虚拟机器就可以让在不更动实体平台(操作系统和CPU)的情况下多了执行Java程序的功能。目前,多数主流的实体平台(包括 Windows、Linux、Mac、Solaris、PalmOS、EPOC...)都已经有Java虚拟机器了。

虚拟机器的架构因为分了太多层级,所以效率上当然会比较差,这是虚拟机器架构最为人所抨击的地方。但是由于虚拟机器的技术一直在进步,所以执行 效率一直都有持续的提升。目前已经相当逼近Java操作系统的架构方式,所以虚拟机器的方式应该会继续成为PC上的Java平台主流。

一般来说,透过Java操作系统来执行Java bytecode,效率会比虚拟机器的方式好。所以Java虚拟机器被整合进操作系统中,来提升该操作系统的附加价值,这种作法有可能会成为一种趋势(例 如MacOS X就把 Java和操作系统作了很好的整合)。但如果设计一套只能执行Java的全新操作系统,可能不容易成功,因为全新的操作系统势必面临驱动程序 (device driver)不足的严重困扰。因为此原因,加上事实证明操作系统的Java平台,比虚拟机器的Java平台效率提升不如预期多,所以IBM和Sun合作 的纯Java操作系统“JavaOS”计划已经停摆。

利用芯片的方式来实作Java平台,对于Java程序的执行速度会有很大的提升,毕竟硬件的速度比软件快许多。这种方式以后会成为嵌入式系统的 主流,许多Java的IA产品(例如:Set-Top Box)都会开始使用 Java芯片。但是这种方式已经把Java整个变成硬件平台,不适合再称为跨平台了。

[Java]Java简介的更多相关文章

  1. Java SE 简介 & 环境变量的配置

    Java SE 简介 & 环境变量的配置 一.Java 技术的三个方向 Java 技术分为三个方向 javaSE( Java Platform Standard Edition 标准版)用来开 ...

  2. Java异常(一) Java异常简介及其架构

    概要 本章对Java中的异常进行介绍.内容包括:Java异常简介Java异常框架 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3544168.html ...

  3. 一、Android NDK编程预备之Java jni简介

    转自:  http://www.eoeandroid.com/thread-264384-1-1.html 游戏开发 视频教程 博客 淘帖     论坛›eoe·Android应用开发区›Androi ...

  4. Java RMI 简介及其优劣势总结

    今天,帮别人看UDAS配置问题时,看到采用的是RMI方式的调用,如:rmi://10.20.134.140:2299/DataServer,而且这个端口是被直接硬编码在UDAS的代码中的.既然看到了, ...

  5. Java多线程简介

    Java多线程简介 Java中内置了对多线程的支持,让多线程的开发方便很多,但同时也带来了另外的复杂,线程间的交互以及很多的不确定性让多线程又显得很复杂.在此只是针对Java中多线程的基础做些说明,有 ...

  6. Java异常简介、异常捕获还是上抛总结

    概要 本章对Java中的异常进行介绍.内容包括:1.Java异常简介2.Java异常框架 一.Java异常简介 Java异常是Java提供的一种识别及响应错误的一致性机制. Java异常机制可以使程序 ...

  7. Java Script 简介

    Java Script 简介 JavaScript 是世界上最流行的编程语言. 这门语言可用于 HTML 和 web,更可广泛用于服务器.PC.笔记本电脑.平板电脑和智能手机等设备.JavaScrip ...

  8. Java NIO系列教程(一)java NIO简介

    这个系列的文章,我们开始玩一玩IO方面的知识,对于IO和NIO,我们经常会接触到,了解他们的基本内容,对于我们的工作会有特别大的帮助.这篇博文我们仅仅是介绍IO和NIO的基本概念,以及一些关键词. 基 ...

  9. Java异常(一)Java异常简介及其框架

    Java异常(一)Java异常简介及其框架 概要 本章对Java中的异常进行介绍.内容包括:Java异常简介Java异常框架 Java异常简介 Java异常是Java提供的一种识别及响应错误的一致性机 ...

  10. java设计模式简介

    设计模式简介: 设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用.设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案.这些解决方案是众多 ...

随机推荐

  1. Gitweb 安装与配置

    gitweb 可以通过搭建git服务器将代码保存在git服务器上,多个开发者可以从服务器上clone代码,也可以各自维护一份本地代码,在本地更新之后可以提交到git服务器上,提高开发效率.     g ...

  2. weblogic 下载安装部署说明

    http://blog.csdn.net/gaofuqi/article/details/36870887/ http://jingyan.baidu.com/article/d8072ac45f57 ...

  3. 深入理解JVM虚拟机-2自动内存管理机制

    java虚拟机所管理的内存将会包括一下几个运行时数据区域. 程序计数器: 程序计数器是一块较小的内存空间.字节码解析式工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支.循环.跳转 ...

  4. xUtils更新到3.0后的基本使用规则

    说实话,对于xUtils,是我最近才用到的开发框架(也是刚接触),对于其功能不得不说,简化了很多的开发步骤,可以说是非常好的开发工具,但是其最近更新到3.0也没有解决加载自定义ImageView报错的 ...

  5. 为什么MB51本位币金额和采购订单历史本位币金额不一样?

    翻译 为什么物料凭证的本位币金额有时和采购订单历史记录物料的本位币金额不一致? 回答: 有2个字段对应FI存放位置.物料凭证的字段(MSEG-DMBER)是存放库存账目金额.采购订单历史(EKBE-D ...

  6. ajax再接触

    贴三个目前写的已经工作了的ajax,并且给出备注: 1.这是第一个ajax以及它的接口文档,需要注意的是1.因为返回数据是xml所以多加了contentType:"application/x ...

  7. 资源 之 4.4 Resource通配符路径(拾贰)

    4.4.1  使用路径通配符加载Resource 前面介绍的资源路径都是非常简单的一个路径匹配一个资源,Spring还提供了一种更强大的Ant模式通配符匹配,从能一个路径匹配一批资源. Ant路径通配 ...

  8. spring来了-02-HelloWorld

    spring的各个版本说明: 在3.0以下的版本,源码有spring中相关的所有包[spring功能+依赖包],如:2.5版本 在3.0以上的版本,源码中只有spring的核心功能包[没有依赖包],如 ...

  9. Feistel密码结构

    分组密码:是一种加解密方案,将输入的明文分组当作一个整体出来,输出一个等长的密文分组. 典型的分组大小为64位和128位.密钥长度一般为128位.迭代轮数典型值为16轮. Feistel 密码结构是用 ...

  10. hdu 2818 Building Block

    Building Block Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...