什么!你用的Java版本叫“Tiger🐯”?

作为一个Java初学者,很多同学的精力都放到了Java语言本身的语法当中,或是开始纠结于各种算法,或是专研OO思想,还有人对各种设计模式趋之若鹜,总之开启了各种“高大上”的装逼模式……
少年人,你可知道:

“生活不止眼前的苟且,还有诗和远方的田野。”
———————— 高晓松

今天就让我们先放下冷冰冰的代码,虚无缥缈的编程思想,来看点关于Java你应该知道的一些“趣知识”吧。

Java之父

这位看上去亲切和蔼的“花样”大叔,相信很多人都认识。他就是著名的Java之父—-詹姆斯.高斯林(James Gosling)。别看人家现在是一脸沧桑,想当初也是以一个“天才”少年的身份闪亮登场的。
1955年的冬天,詹姆斯出生在加拿大的一个村庄里。12岁的时候,他用报废的电话机和电视机中的部件做了一台电子游戏机。附近农民的联合收割机出了问题也常常找他修理。14岁的时候,中学组织到附近大学参观,他记住了大学计算中心的门锁密码,从此开始偷偷地溜进计算中心,学习计算机编程。一年后(15岁),大学的天文系招他当了一名临时编程员,编写计算机程序来分析卫星天文数据。
1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位。毕业后到IBM工作,设计IBM第一代工作站NeWS系统,但不受重视。后来转至Sun公司。1990年,与Patrick Naughton和Mike Sheridan等人合作“绿色计划”,发展了一套语言叫做“Oak”,后改名为Java。1994年底,在硅谷召开的“技术、教育和设计大会”上詹姆斯.高斯林展示了Java程序。2000年,Java成为世界上最流行的电脑语言。
2009年4月,甲骨文公司花费了74亿美元收购了SUN公司。但由于理念不合,不到一年詹姆斯.高斯林宣布从甲骨文公司离职。2011年3月29日,他在个人博客上宣布将加入谷歌,但几个月以后他又离开了。2011年8月30日,他加盟一家从事海洋机器人研究的创业公司Liquid Robotics,担任首席软件架构师。2017年5月22日,詹姆斯在Facebook上宣布他将加入到亚马逊。
厉害吧👍👍👍,这位60多岁的IT大牛太能折腾了。有这么一位祖师爷,各位Java学员你们还怕什么?!😏😏😏

Java吉祥物

说到Java,所有同学都应该认识那杯热气腾腾的咖啡杯,那么下面这个小家伙你认识吗?

它叫做Duke(杜克),是由Joe Palrang在1992年创作出来的。Duke当时所扮演的角色是类似Office中小助手的功能,而那时的Java这门编程语言还不叫Java而被称之为Oak呢。另外大家也许都知道Java是开源的,那你知道Duke也是开源的吗?也就是说我们可以随意发挥我们的想象力,让Duke飞起来✈️~~~

Java全球排名

Java初学者常常被教导说:Java是最流行的语言。说这话的人往往是微微一笑,高深莫测的样子;听这话的则是将信将疑,你们是不是王婆卖瓜,自卖自夸呀……那么编程语言有没有排名呢?谁排的,咋排的呢?
其实在业内,我们还真有一个可靠的编程语言榜单,它叫做TIOBE排行榜。该榜单是根据互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎(如Google、Bing、Yahoo!)以及Wikipedia、Amazon、YouTube统计出排名数据。其目的只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。TIOBE开发语言排行榜每月更新一次排名,每年评选一个年度语言。我们来看看目前的最新排名情况:

给你个网址,可以随时可以查看:TIOBE排行榜单;

Java版本演化及别名

JDK1.0

这是第一个发布的版本,发布时间是1996-1-23。当时语言的名字还被叫做Oak(橡树)。直到第一个稳定版本JDK1.0.2被发布出来,才被称之为Java。

JDK1.1

这个版本发布的时间在1997-2-19,它主要添加的内容包括:

  1. 改进扩展了AWT的事件模型
  2. 添加了内部类
  3. 引入JDBC(Java数据库连接)
  4. 引入RMI(远程方法调用)
  5. 引入反射机制
  6. 在微软的Windows平台上引入JIT编译器(Just in Time,及时编译器)。
  7. 开始支持国际化和Unicode编码

J2SE1.2

这是Java历史上的一个“里程碑”式的版本。它发布于1998年12月8日,并且从这个版本开始出现了几个名称上的变化:

  1. 从这个版本开始直到J2SE5.0,Java被更改为Java2;
  2. 从这个版本开始,版本名称从JDK改为J2SE,以便于区分其它扩展平台J2ME、J2EE。
  3. 从这个版本开始,开始公布每个Java版本的开发代号。J2SE1.2的开发代号是“playground”(操场)。意味,SUN公司给各位Java程序员提供了一个广阔的平台,大家High 起来。

这个版本提供的新内容包括:

  1. 增加strictfp关键字;
  2. 核心类中融入Swing图形API;
  3. SUN公司的JVM(Java虚拟机)首次装备JIT编译器;
  4. 引入集合框架;
  5. 引入Java插件applet支持;
  6. Java IDL(交互式数据语言),支持CORBA。

J2SE1.3

开发代号为Kestrel(红隼),发布于2000年5月8日。

引入新特性包括:

  1. HotSpot JVM首次被包含(发布是在1999年4月份);
  2. 修改RMI,使其支持CORBA;
  3. JNDI(Java命名与目录接口)被包含在核心库当中;
  4. 引入JPDA(Java平台调试体系);
  5. 引入Java声音API;
  6. 引入动态代理类。

J2SE1.4

开发代号为Merlin(灰背隼),发布于2002年2月6日。

引入新特性:

  1. 增加assert关键字;
  2. 引入正则表达式;
  3. 引入链式异常处理;
  4. 提供IPV6的支持;
  5. 提供非阻塞的输入输出(被称之为新的IO,NIO);
  6. 提供日志API;
  7. 提供Image IO API支持读写格式为JPEG和PNG的图片;
  8. 提供XML解析和XSLT的处理;
  9. 引入安全和密码表达式;
  10. 引入Java Web Start;
  11. 引入Preferences API。

J2SE5.0

开发代号为Tiger(老虎),发布于2004年9月30日。

这个版本是Java版本史上第二个“里程碑”式的突破,它不断更新,一直持续到2009年年底,经历了Orcale收购SUN这一重大事件。在名称上,也经历了从原本的J2SE1.5更改为J2SE5.0,到JavaSE5这一系列的变化。
引入新特性:

  1. 引入泛型;
  2. 增强循环,可以使用迭代方式;
  3. 自动装箱与自动拆箱;
  4. 类型安全的枚举;
  5. 可变参数;
  6. 静态引入;
  7. 元数据(注解);
  8. 引入Instrumentation。

JavaSE6

开发代号为Mustang(野马),于2006年12月11日发行,直到2017年1月17日。

引入的新特性包括:

  1. 支持脚本语言;
  2. 引入JDBC 4.0 API;
  3. 引入Java Compiler API;
  4. 可插拔注解;
  5. 增加对Native PKI(Public Key Infrastructure)、Java GSS(Generic Security Service)、Kerberos和LDAP(Lightweight Directory Access Protocol)的支持;
  6. 继承Web Services;
  7. 深入优化。

JavaSE7

开发代号为Dolphin(海豚),于2011-07-28发行,直到2017-1-17。

引入新特性:

  1. switch语句块中允许以字符串作为分支条件;
  2. 在创建泛型对象时应用类型推断;
  3. 在一个语句块中捕获多种异常;
  4. 支持动态语言;
  5. 支持try-with-resources;
  6. 引入Java NIO.2开发包;
  7. 数值类型可以用二进制字符串表示,并且可以在字符串表示中添加下划线;
  8. 钻石型语法;
  9. null值的自动处理。

JavaSE8

开发代号为Spider(蜘蛛),于2014年3月18直到如今。

引入新特性:

  1. Lambda表达式
  2. Stream函数式操作流元素集合
  3. 接口新增:默认方法与静态方法
  4. 方法引用,与Lambda表达式联合使用
  5. 引入重复注解
  6. 类型注解
  7. 最新的Date/Time API (JSR 310)
  8. 新增base64加解密API
  9. 数组并行(parallel)操作
  10. JVM的PermGen空间被移除:取代它的是Metaspace(JEP 122)元空间