java的诞生:

  • 1991 年Sun公司成立了一个计算机开发小组,由James Gosling等人开发一款希望用于控制嵌入在有线电视交换盒、PDA等的微处理器的计算机语言,本来他们想直接扩展C++,后来发现C++无法满足他们的需求,所以他们基于C++重新开发了一门名为 Oak 的计算机语言,这就是Java的前身。
  • 此后他们将Oak这门语言进一步优化并完善,有一次开发组成员们在一家名为“爪蛙”的咖啡店讨论给这门新的语言重新取个新名字时,有人灵机一动说:“就叫Java如何?”,之后得到其他人的赞同,由此Java语言诞生,这也是为什么Java的图标是一杯咖啡的原因。


  • 1995年5月23日, Oak语言正式更名为Java,因为James Gosling在开发中贡献巨大,所以之后被人们称为“Java之父”,可以理解为Java的祖师爷。


JDK全名为Java Development Kit,翻译过来就是Java开发工具包,里面包含着Java的核心类库,如果你还是搞不懂也没关系,继续学习后你就能慢慢了解,姑且认为是使用Java所需要的工具就行。


Java的发展:

  • 1996年JDK 1.0发布,其新特性以及更新修改如下:

    1. Sun Classic VM(虚拟机)
    2. Applet(java小应用程序)
    3. AWT(java图形设计)
  • 1997年JDK 1.1发布,其新特性以及更新修改如下:

    1. JAR(jar包)
    2. JDBC(Java DataBase Connectivity)(连接数据库)
    3. JavaBeans(java规范)
    4. RMI(远程调用)
    5. Inner Class(内部类)
    6. Reflection(反射)
  • 1998年,JDK1.1被下载超过2百万次。

  • 1998年,JDK迎来了一个新的里程碑,JDK1.2正式发布,1.2版之后改名为Java2,之所以说是里程碑是因为在之后1999年,Sun 公司重新组织Java平台的集成方法,并将Java企业级应用平台作为发展方向,将Java技术体系拆分为3个发展方向:

    1. J2ME——即Java2 Micro Edition,用于嵌入式Java消费电子平台。无线通信、手机、PDA等小型电子装置都可采用其作为开发工具及应用平台
    2. J2SE——即Java2(Software Development Kit)Standard Edition,是Java最通行的版本,是用于工作站、PC机的Java标准平台,也是java的基础。
    3. J2EE——即Java2 Enterprise Edition(可扩展的企业应用Java2平台),它提供了企业Business架构及Web Services服务,其深受广大企业用户欢迎之处是其开放的标准和优越的跨平台能力。


  • 2000年5月8日,JDK1.3发布,其新特性以及更新修改如下:

    1. 数学运算
    2. Timer API(时间)
    3. Java Sound API(声音)
    4. CORBA IIOP实现RMI的通信协议
    5. Java 2D新特性
    6. jar文件索引
  • 2000年5月29日,JDK1.4发布。

  • 2001年6月5日,NOKIA宣布,到2003年将出售1亿部支持Java的手机。

  • 2001年9月24日,J2 EE 1.3发布。

  • 2002年2月26日,J2SE1.4发布,自此Java的计算能力有了大幅提升。

  • 2004年9月30日 JDK1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5更名为Java SE 5.0。其新特性以及更新修改如下:

    1. 自动装箱拆箱
    2. 泛型
    3. 元数据
    4. Introspector(内省)
    5. enum(枚举)
    6. 静态引入
    7. 可变长参数(Varargs)
    8. foreach(高级虚幻)
    9. JMM(内存模型)
    10. concurrent(并发包)
  • 2005年6月,JavaOne大会召开。此时,Java的各种版本更名,以取消其中的数字“2”:J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME。


  • 2006年11月13日 Sun公司宣布Java开源,建立OpenJDK组织对代码进行管理。

  • 2006年12月,Sun公司发布了JDK1.6(也被称为Java SE 6)。


  • 2007年11月,Java语言作为服务器端编程语言,已经取得了极大地成功;而Android平台的流行,则让Java语言获得了在客户端程序上大展拳脚的机会。

  • 2009年4月20日,Oracle宣布将以每股9.5美元的价格收购Sun,该交易的总价值约为74亿美元。但Oracle通过收购Sun公司获得了两项软件资产:Java和Solaris。


  • 2011年7月28日,Oracle公司发布Java SE 7

  • 2014年3月18日,Oracle公司发布Java SE 8,其新特性及更新修改如下:

    1. Lambda表达式
    2. 函数式接口
    3. 方法引用和构造器调用
    4. Stream API
    5. 接口中的默认方法和静态方法
    6. 新时间日期API

从Java SE9开始遵循半年一个版本的更新速度,Oracle将每三年指定一个版本作为长期支持(LTS)版本。到目前为止已经发布到Java SE16,下个版本java SE 17将成为长期支持(LTS)版本。

这里重点在说一下人们常说的jdk8、jdk1.8、 java SE8、java8可以说是等价的,之所以这么多叫法,只是java在更新版本后,对命名修改所造成的。

现在企业常用的是jdk8,也有一些企业在慢慢过渡到jdk11,但我觉得技术更新是很快的所以能学新的还是学新的,所以还是希望大家学习jdk11,因为里面也包含着jdk8的内容。




更多精彩内容敬请关注微信公众号:【平兄聊Java】

原来Java的发家史是这么回事的更多相关文章

  1. 论C++的发家史以及相对其他语言优缺

    C++发家史: 最初导致C++诞生的原因是在Bjarne博士等人试图去分析UNIX的内核的时候,这项工作开始于1979年4月,当时由于没有合适的工具能够有效的分析由于内核分布而造成的网络流量,以及怎样 ...

  2. Java 测试驱动开发--“井字游戏” 游戏实战

    TDD 介绍 TDD是测试驱动开发(Test-Driven Development)的英文简称,是敏捷开发中的一项核心实践和技术,也是一种设计方法论.TDD的原理是在开发功能代码之前,先编写单元测试用 ...

  3. Jenkins日常运维笔记-重启数据覆盖问题、迁移、基于java代码发版(maven构建)

    之前在公司机房部署了一套jenkins环境,现需要迁移至IDC机房服务器上,迁移过程中记录了一些细节:1)jenkins默认的主目录放在当前用户家目录路径下的.jenkins目录中.如jenkins使 ...

  4. java实现发短信功能---腾讯云短信

    目录 java实现发短信功能 前言 开发环境 腾讯云 ---短信 代码 效果 结束语 java实现发短信功能 前言 如今发短信功能已经成为互联网公司的标配,本篇文章将一步步实现java发送短信 考察了 ...

  5. Java实现发邮件功能---网易邮箱

    目录 Java实现发邮件功能 前言 开发环境 代码 效果 结束语 Java实现发邮件功能 前言 电子邮件的应用场景非常广泛,例如新用户加入,即时发送优惠清单.通过邮件找回密码.监听后台程序,出现异常自 ...

  6. 小白学Java:迭代器原来是这么回事

    目录 小白学Java:迭代器原来是这么回事 迭代器概述 迭代器设计模式 Iterator定义的方法 迭代器:统一方式 Iterator的总结 小白学Java:迭代器原来是这么回事 前文传送门:Enum ...

  7. 关于java mail 发邮件的问题总结(转)

    今天项目中有需要用到java mail发送邮件的功能,在网上找到相关代码,代码如下: import java.io.IOException; import java.util.Properties; ...

  8. java ipv6发邮件需要注意的点

    和ipv4发邮件一样,毕竟ip只是用来找地址的,v4 v6使用上基本没区别. 但有一点得注意:java ipv6采用发送RST包来通知邮件服务器断开连接,这样会导致客户端抛 MessagingExce ...

  9. JAVA反射其实就是那么一回事

    概念:什么是反射 java反射机制: JAVA反射机制是在运行状态中, 对于任意一个类,都能够知道这个类的所有属性和方法: 对于任意一个对象,都能够调用它的任意一个方法和属性: 这种动态获取的信息以及 ...

随机推荐

  1. postman 发送数组

    原文 users[]:aa users[]:22 object[] // { users: [ { name: ' "ajanuw"', pwd: ' "aaa" ...

  2. jquery.query.js

    帮助文档 var url = location.search; > "?action=view&section=info&id=123&debug&te ...

  3. NGK与Captain technology合作 推出贷款体验用于简化汽车经销商流程

    据外媒报导,近日,NGK.IO正在与Captain technology恰谈合作事宜,以简化购车体验,包括简化购车流程.NGK的CTO Stephen Litan表示:"NGK宣布与Capt ...

  4. NGK流动性挖矿为何会备受瞩目?

    随着越来越多资金的涌入,参与DeFi项目或挖矿的用户不难发现,使用体验不尽人意,在以太坊网络的DeFi时常需要漫长的等待确认和高昂的GAS费用,加上DeFi流动性挖矿需要相对较高的资金门槛和技术门槛, ...

  5. 手把手教你Spring Boot整合Mybatis Plus 代码生成器

    一.在pom.xml中添加所需依赖 <!-- MyBatis-Plus代码生成器--> <dependency> <groupId>com.baomidou< ...

  6. springboot项目打包成jar包在Linux服务器默认80端口运行

    springboot项目端口设置 在application.properties文件 server.port=80 在application.yml文件 server: port: 80 然后在ide ...

  7. ServiceMesh

    传统微服务架构 在微服务模式下,企业内部服务少则几个到几十个,多则上百个,每个服务一般都以集群方式部署,这时自然产生两个问题: 一.服务发现:服务的消费方(Consumer)如何发现服务的提供方(Pr ...

  8. css实现鼠标滑过出现从中间向两边扩散的下划线

    这个效果一开始我是在华为商城页面上看到的,刚开始还以为挺复杂,实现的时候还有点没头绪.不过,还好有百度,借此记录一下我在导航条上应用的实现方法. 主要是借助了伪元素,代码如下: <div cla ...

  9. 给出镜像FreeBSD 基本要求

    硬盘 ports 500G update 500G portsnap 500G pkg arm64 amd64 i386 11-12-13 4TB 网络流量一个月专线大概2w RMB CPU 内存 其 ...

  10. Python开发环境从零搭建-02-代码编辑器Sublime

    想要从零开始搭建一个Python的开发环境说容易也容易 说难也能难倒一片开发人员,在接下来的一系列视频中,会详细的讲解如何一步步搭建python的开发环境 本文章是搭建环境的第2篇 讲解的内容是:安装 ...