搜索
首页Javajava教程详解Java编程发展历史(动力节点整理)

Java的历史可以追溯到1991年4月,Sun公司的James Gosling领导的绿色计划(Green Project)开始着力发展一种分布式系统结构,使其能够在各种消费性电子产品上运行,他们使用了C/C++/Oak语言。由于多种原因,绿色计划逐渐陷于停滞状态

Java的由来

Java语言的诞生具有一定的戏剧性,它并不是经过精心策划、制作、最后残生的划时代产品,从某个角度来说,Java语言的诞生完全是一种误会,美丽的误会。

           1990年年末,Sun公司预科嵌入式系统将在未来家用电器领域大显身手,于是Sun公司成立了一个由James Gosling(后来被称为Java之父)领导的“Creen计划”,准备为下一代智能家电(如电视机,微波炉,电话)编写一个通用控制系统。

           该团队最初考虑使用C++语言,但是很多成员包括Sun的首席科学家Bill Joy,发现C++和可用的API在某些方面存在很大问题,而且工作小组使用的是嵌入式平台,可用在系统资源极其有限,并且很多成员都发现C++太复杂,以至很多开发者经常错误使用,而且C++缺少垃圾回收系统,可移植性,分布式和多线程等功能。

           根据可用的资金,Bill Joy决定开发一种新语言,他提议在C++的基础上,开发一种面向对象的环境,于是,Gosling视图通过修改和扩展C++的功能来满足这个要求,但是后来他放弃了,他决定创造一种全新的语言:oak, 这个就是Java的前身。

           到了1992年的夏天,Green计划已经完成了新的平台的部分功能,包括Green操作系统,Oak的程序设计语言,类库等,同年11月,Green计划被转化成“FirstPerson有限公司”,一个Sun公司的全资子公司。
         FirstPerson团队致力于创建一种高度互动的设备,当时代华纳公司发布了一个关于电视机顶盒的征求提议书时, FirstPerson改变了他们的目标,作为对征求提议书的响应,提出了一个机顶盒平台的提议。但有限电视业界觉得 FirstPerson的平台给予用户过多的控制权,因此 FirstPerson的投标败给了SGI,同时,在3DO公司的另外一笔关于机顶盒的交易也没有成功,因此,可怜的Green项目几乎接近夭折,甚至Green项目组的一半成员也被调到其他项目组。

oak正式更名为Java

         1994年夏天,互联网和游览器的出现不仅给广大互联网的用户带来了福音,也给Oak语言带来了新的生机,James Gosling立即意识到,这是一个机会,于是对Oak进行小规模的改造,到了1994年秋,小组中的Naughton和Jonathan Payne 完成了第一个Java语言的网页游览器:WebRunner。Sun公司实验室主任Bert Sutherland和技术总监Eric Schmidt观看了该游览器的演示,对该游览器的效果给予了高度的评价,当时Oak这个商标已经被别人注册,于是只的将Oak更名为Java。

 Sun公司在1995年年初发布了Java语言,Sun公司直接把Java放到互联网上,免费给大家使用,甚至连源代码也不保密,也放在互联网上向所有人公开。

         几个月后,让所有人都大吃一惊的事情发生了,Java成了互联网上最热门的宝贝,竟然后10万多人次访问了Sun公司的网页,下载了Java语言,然后,互联网上立即就有了数不清的Java小程序(也就是Applet),演示着各种小动画,小游戏等。

        Java语言终于扬眉吐气成为了一种广为人知的编程语言。 

Java的正式推出

        1995年,Sun虽然推出了Java,但这只是一种语言,如果想开发复炸的应用程序,必须要有一个强大的开发类库,因此,Sun在1996年年初发布了JDK1.0,这个版本包括两部分:运行环境(即JRE)和开发环境(JDK),运行环境包括核心API,集成API,用户界面API,发布,Java虚拟机(JVM)5个部分,开发环境包括编译Java程序的编译器(即javac命令)

         接着,Sun公司1997年2月18日发布JDK1.1,JDK1.1增加了JIT(即时编译)编译器,JIT和传统的编译器不同,传统的编译器是编译一条,运行完后将其扔掉,而JIT会将经常的指令保存在内存中,下次调用时就不需要重新编译了,通过这种方式让JDK在效率上有了很大的提高。

  1. n1996年年底,Flash面世了,这个更加简单的动画设计软件,吞噬了Java在网页上的应用。

  2. n1998年12月,Sun公司发布Java历史上最重要的JDK版本,JDK1.2,伴随JDK1.2一同发布的还有JSP/Servlet,ELB等规范,并将Java分成了J2EE,J2SE,j2ME三个版本:

  • J2ME:主要用于控制移动设备和信息家电等有限存储的设备。

  • J2SE:整个Java技术核心和基础,它是J2ME和J2EE编程的基础。

  • J2EE:java技术中应用应用最广泛的部分,

  1. n2002年2月,Sun发布了Jdk1.4历史上最成熟的版本,也出现了大量Java开源框架:Struts,WebWork,Hibernate,Spring。

  2. n2004年10月,Sun发布了JDK1.5,同时将JDK1.5更名为JDK5.0,并增加了新功能。

  3. n2006年12月,Sun公司发布了JDK1.6,也称为JDK6.0。

  4. n2009年4月20日,Oracle宣布以每股9.5美元的价格收购Sun公司,该交易的总价值约为74亿美元。

  5. n2011年7月28日,Oracle公司发布了JDK7。

  6. n2014年3月18日,Oracle公司发布了JDK8。

现在Java已经是长久雄踞编程语言排名第一的宝座了。

以上是详解Java编程发展历史(动力节点整理)的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
云计算如何影响Java平台独立性的重要性?云计算如何影响Java平台独立性的重要性?Apr 22, 2025 pm 07:05 PM

云计算显着提升了Java的平台独立性。 1)Java代码编译为字节码,由JVM在不同操作系统上执行,确保跨平台运行。 2)使用Docker和Kubernetes部署Java应用,提高可移植性和可扩展性。

Java的平台独立性在广泛采用中扮演着什么角色?Java的平台独立性在广泛采用中扮演着什么角色?Apr 22, 2025 pm 06:53 PM

Java'splatformindependenceallowsdeveloperstowritecodeonceandrunitonanydeviceorOSwithaJVM.Thisisachievedthroughcompilingtobytecode,whichtheJVMinterpretsorcompilesatruntime.ThisfeaturehassignificantlyboostedJava'sadoptionduetocross-platformdeployment,s

容器化技术(例如Docker)如何影响Java平台独立性的重要性?容器化技术(例如Docker)如何影响Java平台独立性的重要性?Apr 22, 2025 pm 06:49 PM

容器化技术如Docker增强而非替代Java的平台独立性。1)确保跨环境的一致性,2)管理依赖性,包括特定JVM版本,3)简化部署过程,使Java应用更具适应性和易管理性。

Java运行时环境(JRE)的关键组件是什么?Java运行时环境(JRE)的关键组件是什么?Apr 22, 2025 pm 06:33 PM

JRE是Java应用程序运行的环境,其作用是让Java程序在不同操作系统上运行无需重新编译。JRE的工作原理包括JVM执行字节码、类库提供预定义类和方法、配置文件和资源文件设置运行环境。

解释JVM如何处理内存管理,而不论基础操作系统如何。解释JVM如何处理内存管理,而不论基础操作系统如何。Apr 22, 2025 pm 05:45 PM

JVM通过自动内存管理和垃圾回收确保Java程序高效运行。1)内存分配:为新对象在堆中分配内存。2)引用计数:跟踪对象引用,检测垃圾。3)垃圾回收:使用标记-清除、标记-整理或复制算法回收不再引用的对象。

IntelliJ IDEA是如何在不输出日志的情况下识别Spring Boot项目的端口号的?IntelliJ IDEA是如何在不输出日志的情况下识别Spring Boot项目的端口号的?Apr 19, 2025 pm 11:45 PM

在使用IntelliJIDEAUltimate版本启动Spring...

如何优雅地获取实体类变量名构建数据库查询条件?如何优雅地获取实体类变量名构建数据库查询条件?Apr 19, 2025 pm 11:42 PM

在使用MyBatis-Plus或其他ORM框架进行数据库操作时,经常需要根据实体类的属性名构造查询条件。如果每次都手动...

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具