Java编程发展历史(动力节点Java学院整理)

 更新时间:2017年03月31日 09:20:23   投稿:mrr  
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已经是长久雄踞编程语言排名第一的宝座了。

相关文章

  • Spring Cloud 网关服务 zuul  动态路由的实现方法

    Spring Cloud 网关服务 zuul 动态路由的实现方法

    网关服务是流量的唯一入口。不能随便停服务。所以动态路由就显得尤为必要。这篇文章主要介绍了Spring Cloud 网关服务 zuul 三 动态路由的相关知识,需要的朋友可以参考下
    2019-10-10
  • spring aop的简单使用方法详解

    spring aop的简单使用方法详解

    这篇文章主要介绍了spring aop的简单使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • java调用文心一言API的方法实现过程

    java调用文心一言API的方法实现过程

    Java是一种广泛使用的编程语言,用于开发各种应用程序,下面这篇文章主要给大家介绍了关于java调用文心一言API的方法实现,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • java 中JXL操作Excel实例详解

    java 中JXL操作Excel实例详解

    这篇文章主要介绍了java 中JXL操作Excel实例详解的相关资料,需要的朋友可以参考下
    2017-04-04
  • java中利用Dom4j解析和生成XML文档

    java中利用Dom4j解析和生成XML文档

    本篇文章主要介绍了java中利用Dom4j解析和生成XML文档,dom4j是一套非常优秀的Java开源api,主要用于读写xml文档,具有性能优异、功能强大、和非常方便使用的特点。有兴趣的可以了解一下。
    2016-11-11
  • Java单链表的增删改查与面试题详解

    Java单链表的增删改查与面试题详解

    单链表是链表的其中一种基本结构。一个最简单的结点结构如图所示,它是构成单链表的基本结点结构。在结点中数据域用来存储数据元素,指针域用于指向下一个具有相同结构的结点。 因为只有一个指针结点,称为单链表
    2022-09-09
  • java中生成任意之间数的随机数详解

    java中生成任意之间数的随机数详解

    这篇文章主要介绍了java中生成任意之间数的随机数详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • 如何用JAVA判断当前时间是否为节假日、周末、工作日及调休日(不报错:IOException!)

    如何用JAVA判断当前时间是否为节假日、周末、工作日及调休日(不报错:IOException!)

    最近公司有个业务需要判断工作日,但是每年的节假日不一样,下面这篇文章主要给大家介绍了关于如何用JAVA判断当前时间是否为节假日、周末、工作日及调休日的相关资料,且不报错:IOException!,需要的朋友可以参考下
    2023-12-12
  • SpringBoot 注解 @AutoConfiguration 在 2.7 版本中被新增的使用方法详解

    SpringBoot 注解 @AutoConfiguration 在 2.7 版本中被新增的使用方法详解

    这篇文章主要介绍了SpringBoot 注解 @AutoConfiguration 在 2.7 版本中被新增(使用方法),本文给大家介绍的非常详细,需要的朋友可以参考下
    2024-09-09
  • 关于java自定义线程池的原理与实现

    关于java自定义线程池的原理与实现

    本文介绍了如何自定义线程池和阻塞队列,包括阻塞队列的实现方法,线程池的构建以及拒绝策略的应用,详细阐述了线程池中任务的提交和执行流程,以及如何处理任务超出队列容量的情况
    2022-04-04

最新评论