Java语言发展史

java的诞生

在1991年时候,James Gosling在Sun公司的工程师小组想要设计这样一种主要用于像电视盒这样的消费类电子产品的小型计算机语言

这些电子产品有一个共同的特点:计算处理能力和内存都非常有限。所以要求:语言必须非常小且能够生成非常紧凑的代码,这样才能在这样的环境中执行。

另外,由于不同的厂商选择不同的CPU,因此,要求该语言不能和特定的体系结构绑在一起,要求语言本身是中立的,也就是跨平台的。

最初这个语言命名为“Green”,类似于绿色软件的意思。

其原先的目的是为家用消费电子产品开发一个分布式代码系统, 这样我们可以把E-mail发给电冰箱、 电视机等家用电器, 对它们进行控制, 和它们进行信息交流。

开始, 准备采用C++,但C++太复杂, 安全性差, 最后基于C++开发一种新的语言Oak,Oak是一种用于网络的精巧而安全的语言, Sun公司此投标一个交互式电视项目, 但结果被SGI打败。

可怜的Oak几乎无家可归, 恰巧这时Mark Ardreesen开发的Mosaic和Netscape启发了Oak项目组的成员。

他们用一种全新的语言编写了一款浏览器,得到了Sun公司首席执行官Scott McNealy的支持。

在一次几位该成员组的会员在一家名为“爪蛙”咖啡的店里正在讨论给这个新的语言取什么名字时,有一个人灵机一动说:“就叫 Java 怎样”, 得到了其他人的赞赏,。

于是, Java语言就诞生了。

JAVA语言发展历程

1995年5月23日,Java语言正式诞生。

1996年1月,第一个JDK-JDK1.0诞生。

新特性及更新修改:Sun Classic VM(虚拟机)、Applet(java小应用程序)、AWT(java图形设计)

1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入Java技术。

1996年9月,约8.3万个网页应用了Java技术来制作。

1997年2月18日,JDK1.1发布。

  • JDK1.1新特性及更新修改:

    • JAR(jar包)
    • JDBC(Java DataBase Connectivity)(连接数据库)
    • JavaBeans(java规范)
    • RMI(远程调用)
    • Inner Class(内部类)
    • Reflection(反射)

1997年4月2日,JavaOne会议召开,参与者超过万人,创造当时全球同类会议规模之纪录。

1997年9月,JavaDeveloperConnection社区成员超过十万。

1998年2月,JDK1.1被下载超过2,000,000次。

1998年12月8,Java的企业平台Java EE正式发布。

1999年6月,Sun公司发布Java的三大版本:标准版(Java SE)、企业版(Java EE)、微型版(Java ME)。

2000年5月8日,JDK1.3发布。

  • 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日,Java EE 1.3发布。

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

2004年9月30日,J2SE1.5发布,Java语言发展史上的又一里程碑事件。为了表示这个版本的重要性,Java SE 1.5正式更名为Java SE 5.0。

  • Java SE 5.0 新特性及更新修改:

    • 自动装箱拆箱
    • 泛型
    • 元数据
    • Introspector(内省)
    • enum(枚举)
    • 静态引入
    • 可变长参数(Varargs)
    • foreach(高级循环)
    • JMM(内存模型)
    • concurrent(并发包)

2006年12月,Sun公司发布了JDK1.6(也被称为Java SE 6)。一直以来,Sun公司维持着大约2年发布一次JDK新版本的习惯。

2009年4月20日,Oracle宣布将以每股9.5美元的价格收购Sun,该交易的总价值约为74亿美元。但Oracle通过收购Sun公司获得了两项软件资产:Java和Solaris。2007年11月,Java语言作为服务器端编程语言,已经取得了极大地成功;而Android平台的流行,则让Java语言获得了在客户端程序上大展拳脚的机会。

2011年7月28日,Oracle公司发布了Java SE 7,这次版本升级经过了将近5年时间。Java SE 7也是Oracle发布的第一个Java版本,引入了二进制整数、支持字符串的switch语句、多异常捕捉、自动关闭资源的try语句等新特性。

2014年3月18日,Oracle公司发布了Java SE 8,这次版本升级为Java带来了全新的Lambda表达式。除此之外,Java 8还增加了大量新特性,这些新特性使得Java变得更加强大。目前Java的版本已经更新了好几个版本,但目前市场主流还是使用的JDK8

JDK8 新特性及更新修改:

Lambda表达式

函数式接口

方法引用和构造器调用

Stream API

接口中的默认方法和静态方法

新时间日期API

计算机进制转换

二进制 计算机中的数据不同于人们生活中的数据,人们生活采用十进制数,而计算机中全部采用二进制数表示,它只包含 0、1两个数,逢二进一,1+1=10。每一个0或者每一个1,叫做一个bit(比特)。 下面了解一下十进制和二进制数据之间的转换计算。 十进制数据转成二进制数据:使用除以2获取余数的方式 北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090 二进制数据转成十进制数据:使用8421编码的方式 小贴士: 二进制数系统中,每个0或1就是一个位,叫做bit(比特)。

Java语言发展史-计算机进制转换的更多相关文章

  1. HexDump.java解析,android 16进制转换

    HexDump.java解析android 16进制转换 package com.android.internal.util; public class HexDump { private final ...

  2. 【搬砖】安卓入门(2)- Java开发编程基础--进制转换和运算符

    02.01_Java语言基础(常量的概述和使用)(掌握) A:什么是常量 在程序执行的过程中其值不可以发生改变 B:Java中常量的分类 字面值常量 自定义常量(面向对象部分讲) C:字面值常量的分类 ...

  3. java中Integer包装类的具体解说(java二进制操作,全部进制转换)

    程序猿都非常懒,你懂的! 今天为大家分享的是Integer这个包装类.在现实开发中,我们往往须要操作Integer,或者各种进制的转换等等.我今天就为大家具体解说一下Integer的使用吧.看代码: ...

  4. java中常用的进制转换

    十进制转成十六进制:   Integer.toHexString(int i)   十进制转成八进制   Integer.toOctalString(int i)   十进制转成二进制   Integ ...

  5. IT兄弟连 Java语法教程 数据类型 进制转换

    ●  正十进制转换为二进制 拆分法,将十进制整数拆分为若干个二进制权重的和,若有该权重则下面写1,否则写0.如: 34 = 32 + 2 128 64 32 16 8 4 2 1 0  0  1  0 ...

  6. 【Java】7.0 进制转换

    [二进制转十进制] public static void main(String args[]) { Scanner sc = new Scanner(System.in); System.out.p ...

  7. 【九度OJ】题目1138:进制转换 解题报告

    [九度OJ]题目1138:进制转换 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1138 题目描述: 将一个长度最多为30 ...

  8. Java基础复习之一篇:关健字,标识符,注释,常量,进制转换,变量,数据类型,数据类型转换

    1.关健字 1.1.被Java语言赋予特定意义的单词(如:class,interface,public ,static) 1.2.全部是小写 1.3.注意事项(goto和const作为关健字保留起来) ...

  9. JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算

    JAVA之旅(一)--基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算 Android老鸟重新学一遍JAVA是什么感觉?枯燥啊,乏味啊,而且归纳写博客,都 ...

随机推荐

  1. 搭建harbor私有仓库

    2-1.项目说明  Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,由VMware开源,其通过添加一些企业必需的功能特性,例如安全.标识和管理等,扩展了开源 Docke ...

  2. 如何解读Linux Kernel OOPS信息

    OOPS信息解读 root@firefly:~/mnt/module# insmod oops_module.ko [ 867.140514] Unable to handle kernel NULL ...

  3. 关于软件物料清单(SBOM),你所需要了解的一切

    在此前的多篇文章中,我们已经详细地介绍了软件物料清单(SBOM)对于保障软件供应链安全的重要性以及一些注意事项.在本文中,我们将会更深入地介绍SBOM,包括最低要求元素.格式.使用场景以及如何对其进行 ...

  4. dp入门30题

    前言:本文章主要记录一些 \(dp\) 入门题,都是我做过的,希望读者能从这些基础题中打好 \(dp\) 扎实的基础,有不足的地方也欢迎指出.大部分是 \(CodeFoces\) 和 \(Atcode ...

  5. CodeQL(1)

    前言 开始学习使用CodeQL,做一些笔记,可供参考的资料还是比较少的,一个是官方文档,但是Google翻译过来,总觉得怪怪的,另一个就是别人的一个资源整合,其中可供参考的也不是很多,大多也是官方文档 ...

  6. python基础语法/简单数据类型/常量与变量

    今日内容概要 PEP-8规范/python基础语法 变量与常量定义 基本数据类型(整形int,字符串str,浮点型float,字典dict,列表list) 到此我们前期的配置已经可以满足我们正常编写代 ...

  7. JUC-学习笔记

    传统的多线程开发方式 implements Runnable public class oldThreadDev implements Runnable { @Override public void ...

  8. JS逆向实战9——cookies DES加密混淆

    cookie加密 DES 混淆 目标网站:aHR0cHM6Ly90bGNoZW1zaG9wLnlvdXpoaWNhaS5jb20vbWFpbi90ZW5kP05vdGljZUNhdGVJZD0xJk5 ...

  9. VulnHub靶场渗透实战8-DarkHole: 2

    靶场地址:DarkHole: 2 ~ VulnHub DescriptionBack to the Top Difficulty:Hard This works better with VMware ...

  10. Go | 闭包的使用

    闭包基本介绍 闭包就是 一个函数 和其相关的 引用环境 组合的一个整体 好处: 保存引用的变量,下次继续使用,不会销毁 下面通过闭包的方式,写一个数字累加器,体验一下闭包的妙处 闭包实现数字累加 pa ...