原来Java的发家史是这么回事
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发布,其新特性以及更新修改如下:
- Sun Classic VM(虚拟机)
- Applet(java小应用程序)
- AWT(java图形设计)
1997年JDK 1.1发布,其新特性以及更新修改如下:
- JAR(jar包)
- JDBC(Java DataBase Connectivity)(连接数据库)
- JavaBeans(java规范)
- RMI(远程调用)
- Inner Class(内部类)
- Reflection(反射)
1998年,JDK1.1被下载超过2百万次。
1998年,JDK迎来了一个新的里程碑,JDK1.2正式发布,1.2版之后改名为Java2,之所以说是里程碑是因为在之后1999年,Sun 公司重新组织Java平台的集成方法,并将Java企业级应用平台作为发展方向,将Java技术体系拆分为3个发展方向:
- J2ME——即Java2 Micro Edition,用于嵌入式Java消费电子平台。无线通信、手机、PDA等小型电子装置都可采用其作为开发工具及应用平台
- J2SE——即Java2(Software Development Kit)Standard Edition,是Java最通行的版本,是用于工作站、PC机的Java标准平台,也是java的基础。
- J2EE——即Java2 Enterprise Edition(可扩展的企业应用Java2平台),它提供了企业Business架构及Web Services服务,其深受广大企业用户欢迎之处是其开放的标准和优越的跨平台能力。
2000年5月8日,JDK1.3发布,其新特性以及更新修改如下:
- 数学运算
- Timer API(时间)
- Java Sound API(声音)
- CORBA IIOP实现RMI的通信协议
- Java 2D新特性
- 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。其新特性以及更新修改如下:
- 自动装箱拆箱
- 泛型
- 元数据
- Introspector(内省)
- enum(枚举)
- 静态引入
- 可变长参数(Varargs)
- foreach(高级虚幻)
- JMM(内存模型)
- 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,其新特性及更新修改如下:
- Lambda表达式
- 函数式接口
- 方法引用和构造器调用
- Stream API
- 接口中的默认方法和静态方法
- 新时间日期API
从Java SE9开始遵循半年一个版本的更新速度,Oracle将每三年指定一个版本作为长期支持(LTS)版本。到目前为止已经发布到Java SE16,下个版本java SE 17将成为长期支持(LTS)版本。
这里重点在说一下人们常说的jdk8、jdk1.8、 java SE8、java8可以说是等价的,之所以这么多叫法,只是java在更新版本后,对命名修改所造成的。
现在企业常用的是jdk8,也有一些企业在慢慢过渡到jdk11,但我觉得技术更新是很快的所以能学新的还是学新的,所以还是希望大家学习jdk11,因为里面也包含着jdk8的内容。
更多精彩内容敬请关注微信公众号:【平兄聊Java】
原来Java的发家史是这么回事的更多相关文章
- 论C++的发家史以及相对其他语言优缺
C++发家史: 最初导致C++诞生的原因是在Bjarne博士等人试图去分析UNIX的内核的时候,这项工作开始于1979年4月,当时由于没有合适的工具能够有效的分析由于内核分布而造成的网络流量,以及怎样 ...
- Java 测试驱动开发--“井字游戏” 游戏实战
TDD 介绍 TDD是测试驱动开发(Test-Driven Development)的英文简称,是敏捷开发中的一项核心实践和技术,也是一种设计方法论.TDD的原理是在开发功能代码之前,先编写单元测试用 ...
- Jenkins日常运维笔记-重启数据覆盖问题、迁移、基于java代码发版(maven构建)
之前在公司机房部署了一套jenkins环境,现需要迁移至IDC机房服务器上,迁移过程中记录了一些细节:1)jenkins默认的主目录放在当前用户家目录路径下的.jenkins目录中.如jenkins使 ...
- java实现发短信功能---腾讯云短信
目录 java实现发短信功能 前言 开发环境 腾讯云 ---短信 代码 效果 结束语 java实现发短信功能 前言 如今发短信功能已经成为互联网公司的标配,本篇文章将一步步实现java发送短信 考察了 ...
- Java实现发邮件功能---网易邮箱
目录 Java实现发邮件功能 前言 开发环境 代码 效果 结束语 Java实现发邮件功能 前言 电子邮件的应用场景非常广泛,例如新用户加入,即时发送优惠清单.通过邮件找回密码.监听后台程序,出现异常自 ...
- 小白学Java:迭代器原来是这么回事
目录 小白学Java:迭代器原来是这么回事 迭代器概述 迭代器设计模式 Iterator定义的方法 迭代器:统一方式 Iterator的总结 小白学Java:迭代器原来是这么回事 前文传送门:Enum ...
- 关于java mail 发邮件的问题总结(转)
今天项目中有需要用到java mail发送邮件的功能,在网上找到相关代码,代码如下: import java.io.IOException; import java.util.Properties; ...
- java ipv6发邮件需要注意的点
和ipv4发邮件一样,毕竟ip只是用来找地址的,v4 v6使用上基本没区别. 但有一点得注意:java ipv6采用发送RST包来通知邮件服务器断开连接,这样会导致客户端抛 MessagingExce ...
- JAVA反射其实就是那么一回事
概念:什么是反射 java反射机制: JAVA反射机制是在运行状态中, 对于任意一个类,都能够知道这个类的所有属性和方法: 对于任意一个对象,都能够调用它的任意一个方法和属性: 这种动态获取的信息以及 ...
随机推荐
- Dart: puppeteer库
和node的差不多,只有写API不一样 puppeteer 地址 安装依赖 dependencies: puppeteer: ^1.7.1 下载 chrome-win 到 <project_ro ...
- django学习-23.admin管理后台的数据表数据的自定义展示
目录结构 1.前言 2.自定义设置一张指定的数据表的列表展示内容 2.1.第一步:如果我们想让数据表[hello_person]里面的表字段值全部展示出来,需在应用[hello]里的[admin.py ...
- Prometheus时序数据库-内存中的存储结构
Prometheus时序数据库-内存中的存储结构 前言 笔者最近担起了公司监控的重任,而当前监控最流行的数据库即是Prometheus.按照笔者打破砂锅问到底的精神,自然要把这个开源组件源码搞明白才行 ...
- Tomcat 安装Manager
sudo apt-get install tomcat8-admin tomcat8-docs tomcat8-examplessudo vi /etc/tomcat8/tomcat-users.xm ...
- Linux下搭建ZooKeeper集群
摘要 Zookeeper是针对大型分布式系统的高可靠的协调系统.它基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题. ...
- setScaledContents
ui->catchPhotoLabel_607->setPixmap(QPixmap::fromImage(*m_imageCatchtDefaultPhoto_607).scaled(Q ...
- 后端程序员之路 52、A Tour of Go-2
# flowcontrol - for - for i := 0; i < 10; i++ { - for ; sum < 1000; { ...
- Web性能优化之瘦身秘笈
Web 传输的内容当然是越少越好,最近一段时间的工作一直致力于 Web 性能优化,这是我近期使用过的一些缩减 Web 体积的手段 这些手段主要是为了减少 Web 传输的内容大小,只有干货 CSS 删除 ...
- 10个顶级Python实用库,推荐你试试!
为什么我喜欢Python?对于初学者来说,这是一种简单易学的编程语言,另一个原因:大量开箱即用的第三方库,正是23万个由用户提供的软件包使得Python真正强大和流行. 在本文中,我挑选了15个最有用 ...
- WeihanLi.Npoi 1.16.0 Release Notes
WeihanLi.Npoi 1.16.0 Release Notes Intro 最近有网友咨询如何设置单元格样式,在之前的版本中是不支持的,之前主要考虑的是数据,对于导出的样式并没有支持,这个 is ...