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. Angular Routing

    Angular Routing v9.0.7 https://angular.io/start/start-routing

  2. 「NGK每日快讯」2021.1.22日NGK公链第80期官方快讯!

  3. Zookeeper从入门到删库跑路

    导语 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等.Zookeeper是hadoop的一个子项 ...

  4. redis环境配置

    1.解压redis压缩包 tar -zxvf redis-5.0.7 2. 基本环境安装 进入解压后的目录 安装yum(cents需要 其它版本Linux可能不适用yum用其它工具)ubuntu:ap ...

  5. 将springboot项目部署到服务器的tomcat中无法访问

    第一步:让启动类继承SpringBootServletInitializer,并重写configure方法,关键代码如下 @SpringBootApplication public class MyS ...

  6. 搭载华为麒麟9000的Mate X2:秒售罄,一机难求

    本文首发 | 公众号:lunvey 昨日10点,搭载了麒麟9000芯片的华为Mate X2正式开售,定价17999,对于手机来说,价格实在是高昂. 虽然价格高昂,但是一分钱一分货,对于想抢先体验的网友 ...

  7. 配置Nginx的坑及思路

    我配置的是Django + uwsgi + Nginx 说下思路,先进行模块化测试: Django: Django 下 第一个坑是sql版本低问题,原因用pip安装不正确,在网上查了下按这个文章重装下 ...

  8. macOS启动Kafka

    目录 kafka目录结构 先启动zookeeper 后启动kafka 创建topic 创建一个生产者 创建一个消费者 kafka目录结构 # kafka安装目录 /usr/local/Cellar/k ...

  9. 微信小程序和H5之间相互跳转

    1.微信小程序跳转小程序 wx.navigateToMiniProgram <script src='https://res.wx.qq.com/open/js/jweixin-1.3.0.js ...

  10. MVC base64加密的文件,前端下载

    后端代码: public FileResult OutPutFile(string  base64file,string filename) { buffer = Convert.FromBase64 ...