[Java]Java简介
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简介的更多相关文章
- Java SE 简介 & 环境变量的配置
Java SE 简介 & 环境变量的配置 一.Java 技术的三个方向 Java 技术分为三个方向 javaSE( Java Platform Standard Edition 标准版)用来开 ...
- Java异常(一) Java异常简介及其架构
概要 本章对Java中的异常进行介绍.内容包括:Java异常简介Java异常框架 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3544168.html ...
- 一、Android NDK编程预备之Java jni简介
转自: http://www.eoeandroid.com/thread-264384-1-1.html 游戏开发 视频教程 博客 淘帖 论坛›eoe·Android应用开发区›Androi ...
- Java RMI 简介及其优劣势总结
今天,帮别人看UDAS配置问题时,看到采用的是RMI方式的调用,如:rmi://10.20.134.140:2299/DataServer,而且这个端口是被直接硬编码在UDAS的代码中的.既然看到了, ...
- Java多线程简介
Java多线程简介 Java中内置了对多线程的支持,让多线程的开发方便很多,但同时也带来了另外的复杂,线程间的交互以及很多的不确定性让多线程又显得很复杂.在此只是针对Java中多线程的基础做些说明,有 ...
- Java异常简介、异常捕获还是上抛总结
概要 本章对Java中的异常进行介绍.内容包括:1.Java异常简介2.Java异常框架 一.Java异常简介 Java异常是Java提供的一种识别及响应错误的一致性机制. Java异常机制可以使程序 ...
- Java Script 简介
Java Script 简介 JavaScript 是世界上最流行的编程语言. 这门语言可用于 HTML 和 web,更可广泛用于服务器.PC.笔记本电脑.平板电脑和智能手机等设备.JavaScrip ...
- Java NIO系列教程(一)java NIO简介
这个系列的文章,我们开始玩一玩IO方面的知识,对于IO和NIO,我们经常会接触到,了解他们的基本内容,对于我们的工作会有特别大的帮助.这篇博文我们仅仅是介绍IO和NIO的基本概念,以及一些关键词. 基 ...
- Java异常(一)Java异常简介及其框架
Java异常(一)Java异常简介及其框架 概要 本章对Java中的异常进行介绍.内容包括:Java异常简介Java异常框架 Java异常简介 Java异常是Java提供的一种识别及响应错误的一致性机 ...
- java设计模式简介
设计模式简介: 设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用.设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案.这些解决方案是众多 ...
随机推荐
- 删除github账号的方法
如果你不想使用自己的github账号了,github官网允许你删除账号,具体操作步骤为: 1.登录github网站,网站右上角的头像,在下拉菜单中选择"Settings"(设置): ...
- hiho_1062_最近公共祖先
题目大意 给出一棵家谱树,树中的节点都有一个名字,保证每个名字都是唯一的,然后进行若干次查询,找出两个名字的最近公共祖先. 分析 数据量较小,对于每次查询都进行如下操作: 先找出person1到达根节 ...
- win7系统中更新错误怎么解决的方法
不少安装win7旗舰版系统的网友们都喜欢关注微软发布的一些消息,尤其是关于win7旗舰版系统的更新补丁时都会下载并安装的.可是不少网友在自动更新补丁的时遇到自动更新失败的问题,下面来介绍一下具体操作! ...
- dede调用文章的栏目,作者,发布时间.以及连接数据库输出一个表
发布时间: {dede:field.pubdate function="MyDate('Y-m-d H:i',@me)"/}类目:{dede:field.typename/}发布人 ...
- Shader中贴图知识汇总: 漫反射贴图、凹凸贴图、高光贴图、 AO贴图、环境贴图、 光照纹理及细节贴图
原文过于冗余,精读后做了部分简化与测试实践,原文地址:http://www.j2megame.com/html/xwzx/ty/2571.html http://www.cnblogs.com/z ...
- 空心文字闪动--css3
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- 谈谈JPA-03-基本注解
@Entity @Entity 标注用于实体类声明语句之前,指出该Java 类为实体类,将映射到指定的数据库表.如声明一个实体类 Customer,它将映射到数据库中的 customer 表上. @T ...
- 关于WorkFlow的使用以及例子
近期做项目,项目需要用到工作流方面的技术,我在这里与大家分享一个workFlow学习的地址,共大家学习. http://www.cnblogs.com/foundation/ 各文档的说明: F资料├ ...
- 11 个用来创建图形和图表的 JavaScript 工具包
11个用来创建图形和图表的JavaScript工具包,方便开发者使用,喜欢的各位收藏一下吧! Aristochart DEMO|| Download Aristochart 是一个用来创建图形和图表的 ...
- JVM性能调优
摘自:http://uule.iteye.com/blog/2114697 JVM垃圾回收与性能调优总结 JVM调优的几种策略 一.JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范,JVM将 ...