Java的发展历程
Java的发展历程充满了传奇色彩。
最初,Java是由Sun公司的一个研究小组开发出来的,
该小组起先的目标是想用软件实现对家用电器进行集成控制的小型控制装置。
开始,准备采用C++,但C++太复杂,而且安全性差,最后基于C++开发了一种新的语言Oak,
据说当时是小组成员之一Gosling在苦思冥想这种语言的名字时,正好看到了窗外的一颗橡树,
Oak在英文里是“橡树”的意思,所以给该语言命名为Oak。
它是一种用于网络的精巧而安全的语言,但是这个在技术上非常成功的产品在商业上却几近失败,
可怜的Oak几乎濒临夭折的危险。Internet的诞生给Oak的发展带来了新的契机。
在Java出现以前,Internet上的信息内容都是一些乏味死板的HTML文档。
这对于那些迷恋于WEB浏览的人们来说简直不可容忍。
他们迫切希望能在WEN中看到一些交互式的内容,
开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,
当然这些程序还要有极大的安全保障。对于用户的这种要求,传统的编程语言显得无能为力。
SUN的工程师敏锐地察觉到了这一点,
从1994年起,他们开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本。
当SUN公司1995年正式以Java这个名字推出的时候,几乎所有的WEB开发人员都感觉到:
噢,这正是大家想要的。
那么Java的名字又是由何而来呢,据说有一天,
几位Java成员组的会员正在讨论给这个新的语言取什么名字,
当时他们正在咖啡馆喝着Java(爪哇)咖啡,
有一个人灵机一动说就叫Java怎样,得到了其他人的赞赏,
于是,Java这个名字就这样传开了。
随后Java成了一颗耀眼的明星,
丑小鸭一下了变成了白天鹅。
在1995年Sun虽然推出了Java,但这只是一种语言,而要想开发复杂的应用程序,
必须要有一个的强大的开发库支持才行。因此,Sun在1996 年1月23日发布了JDK1.0。
这个版本包括了两部分:运行环境(即JRE)和开发环境(即JDK)。
在运行环境中包括了核心API、集成API,用户界面API
,发布技术,Java虚拟机(JVM)五个部分。
二、Java的茁壮成长史:
1995年5月23日,Java语言正式宣布诞生
1996年1月,jdk1.0诞生,同年,10个最主要的操作系统供应商申明将在其产品中嵌入Java技术。同年9月,8.3万个网页应用了Java技术来制作。
1997年2月18日,jdk1.1发布,接下去的3周内,jdk1.1软件包被下载了22万次。同年9月,Java开发者社区超过10万成员
1998年2月,jdk1.1被下载了超过200万次。同年12月8日,Java2平台发布。
1999年6月,sun发布三种Java版本,标准版、企业版和微型版。
2000年5月,Java开发者社区超过了150万成员。该月8日,jdk1.3发布。
2001年5月29日,Jdk1.4试用版发布,同年6月5日,全球最大的手机提供商NOKIA宣布,到2003年将出售1亿内含Java的手机
2002年2月,jdk1.4正式版发布,短短一个月的时间内(3月)该工具包被下载超过了100万次。(5月)jdk被下载了超过200万次 到2002年止全球财富500强企业中超过了95%的企业内部都使用了基于Java应用的企业平台
2003 5.5亿台桌面机上运行Java程序,75%的开发人员将Java作为首要开发工具
2004 J2SE1.5发布,这是Java语言的发展史上的又一里程碑事件。为了表示这个版本的重要性,J2SE1.5更名为J2SE5.0。
2005 JavaOne大会召开,Sun公司公开Java SE6。此时,Java的各种版本被更名,取消其中的数字"2":J2EE更名为Java EE, J2SE更名为Java SE,J2ME更名为Java ME
2010年10月24日 。美国数据软件巨头甲骨文公司20日宣布以74亿美元收购太阳微电子公司
在Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器。
这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口。编译程序只需要面向
虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的机
器码执行。在Java中,这种供虚拟机理解的代码叫做字节码(ByteCode),它不面向任何
特定的处理器,只面向虚拟机。
每一种平台的解释器是不同的,但是实现的虚拟机是相同的。Java源程序经过编译器编译
后变成字节码,字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器,
解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行。
随着JAVA开发库的不断的完善。JAVA开始进军软件开发的不同的方向:
目前 主流的 发展方向:
Java SE(Java Platform,Standard Edition)。Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。
Java EE(Java Platform,Enterprise Edition)。这个版本以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0 应用程序。
Java ME(Java Platform,Micro Edition)。这个版本以前称为 J2ME。Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。基于 Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。
说得更简单点
Java SE 是做电脑上运行的软件。
Java EE 是企业及开发,最多的应该是web开发-
Java ME 是做手机软件的。
7----------------------------- |
Java的发展历程的更多相关文章
- IT兄弟连 Java语法教程 Java的发展历程
只有少数几种编程语言对程序设计带来过根本性的影响.其中,Java的影响由于迅速和广泛而格外突出.可以毫不夸张的说,1995年Sun公司发布的Java1.0给计算机程序设计领域带来了一场变革.这场变革迅 ...
- Java 持久化发展历程
- Java起源、发展历程、环境变量、第一个Java程序等【1】
若有不正之处,请多多谅解并欢迎批评指正,不甚感激. 请尊重作者劳动成果,转载请标明原文链接: 本文原创作者:pipi-changing 本文原创出处:http://www.cnblogs.com/pi ...
- java发展历程、常用dos命令与jDK工具使用
Java菜鸟学习之旅 1.勤敲代码 2.必须将课堂上讲的内容学到位 2.1 学到会用 2.2 在学会之前不要自作主张 2.3 当天课程当天完成 3.能说会道 3.1 善于表达 3.2 学会的都能讲 4 ...
- Java日志体系(一)发展历程
一.日志框架的分类 门面型日志框架: JCL: Apache基金会所属的项目,是一套Java日志接口,之前叫Jakarta Commons Logging,后更名为Commons Logging SL ...
- Java语言的发展历程
前言 自1946年2月14日世界上首款计算机ENAC问世,第一代计算机语言“机器语言”便诞生了,它使用的是最原始的穿孔卡片,这种卡片上使用的语言只有专家才能理解,与人类语言差别极大.这种语言本质上是计 ...
- Java发展历程
Java 的发展要追溯到 1991 年,Patrick Naughton(帕特里克·诺顿)和 James Gosling(詹姆斯·高斯林)带领 Sun 公司的工程师打算为有线电视转换盒之类的消费产品设 ...
- JAVA基础知识|HTTP协议-发展历程
HTTP 是基于 TCP/IP 协议的应用层协议.它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口. 此文章为转载内容:http://www.ruanyif ...
- C#与C++的发展历程第一 - 由C#3.0起
俗话说学以致用,本系列的出发点就在于总结C#和C++的一些新特性,并给出实例说明这些新特性的使用场景.前几篇文章将以C#的新特性为纲领,并同时介绍C++中相似的功能的新特性,最后一篇文章将总结之前几篇 ...
随机推荐
- 基于Ajax+div的“左边菜单、右边内容”页面效果实现
效果演示: ①默认页面(index.jsp): ②:点击左侧 用户管理 标签下的 用户列表 选项后,右边默认页面内容更新为用户列表页(userList.jsp)的内容 : ③:同理,点击 产品管理.订 ...
- SQL Server 2008 R2——软件创建月表时同时创建一个触发器
=================================版权声明================================= 版权声明:原创文章 谢绝转载 请通过右侧公告中的“联系邮 ...
- HTML 5 的自定义 data-* 属性和jquery的data()方法的使用
人们总喜欢往HTML标签上添加自定义属性来存储和操作数据.但这样做的问题是,你不知道将来会不会有其它脚本把你的自定义属性给重置掉,此外,你这样做也会导致html语法上不符合Html规范,以及一些其它副 ...
- 配置TortoiseSVN客户端, 强制签入前加注释
正如上篇提到, 总有一些人在签入代码到SVN前没有加注释, 然后, 像这样: 鬼才知道改了什么东西. ①有些人可能就是没有写注释的习惯, ②有些人可能是忘记写注释 && SVN服务端和 ...
- Netruon 理解(12):使用 Linux bridge 将 Linux network namespace 连接外网
学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...
- 蓝牙BLE传输性能及延迟分析
BLE传输性能主要受以下几个因素影响:操作类型,Connection Interval,每个Connection Event内发送的帧数.每一帧数据的长度.具体参见如下链接: https://devz ...
- python利用unrar实现rar文件解压缩
python第三方包unrar可以实现rar文件的解压缩,它以动态库UnRAR为基础,封装而成 1. 下载UnRAR动态库 https://pypi.python.org/pypi/unrar/0.2 ...
- BZOJ 2330: [SCOI2011]糖果 [差分约束系统] 【学习笔记】
2330: [SCOI2011]糖果 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 5395 Solved: 1750[Submit][Status ...
- one to many
@OneToMany(mappedBy="order",fetch=FetchType.EAGER,cascade={CascadeType.ALL}) private Li ...
- [转载]一张图看懂开源许可协议,开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别
本文转载自:http://blog.csdn.net/testcs_dn/article/details/38496107 开源许可证GPL.BSD.MIT.Mozilla.Apache和LGPL的区 ...