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. MapReduce工作原理

    第一部分:MapReduce工作原理   MapReduce 角色•Client :作业提交发起者.•JobTracker: 初始化作业,分配作业,与TaskTracker通信,协调整个作业.•Tas ...

  2. Windows 上远程访问 Unix 的 XWindow / XManager / X

    准备 下载 putty  - http://www.putty.org/ 安装 cygwin - http://cygwin.com/, 并添加 e.g. c:/cygwin/bin 到 Window ...

  3. Spring3.1新特性

    一.Spring2.5之前,我们都是通过实现Controller接口或其实现来定义我们的处理器类.   二.Spring2.5引入注解式处理器支持,通过@Controller 和 @RequestMa ...

  4. C/C++, Java和C#的编译过程解析

    原文地址:http://www.cnblogs.com/rush/p/3155665.html 1.1.1 摘要 我们知道计算机不能直接理解高级语言,它只能理解机器语言,所以我们必须要把高级语言翻译成 ...

  5. jmeter 建立一个JMS点对点测试计划

      确保所需的jar文件在JMeter的 自由 目录中. 如果他们不是,关闭JMeter, 重启JMeter复制jar文件. 看到 开始 获取详细信息.   测试的设置是1与5线程发送4 thread ...

  6. 【LINUX】Linux学习小结

    ****xargs命令**** 当需要将参数列表转换成小块分段传递给其他命令时,可以使用xargs命令.栗子如下: 若想在启动lampp之后用kill方式杀掉全部的进程就可以用下面的命令: ps -e ...

  7. hdu-----(1150)Machine Schedule(最小覆盖点)

    Machine Schedule Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  8. java arrayCopy

    int[] dest = new int[0]; int[] value = {1,2}; if(value != null && value.length>0) { int[] ...

  9. chrome 模拟点击

    实现进入一个页面后触发一个<a>的点击事件. 由于safari和chrome不支持<a>的click()所以需要对浏览器进行判断 var Sys = {};   var ua ...

  10. 数据库索引<二> 如何创建索引

    前面一篇说法了索引结构,和几种索引在数据表上的结构,了解了索引可以为查询服务,这篇说一说如何创建索引. >平时可能的创建方式 这个系统中要用到A字段,B字段,C字段做为查询的条件,联接的条件较多 ...