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. ES6 学习笔记(五)基本类型Boolean

    Boolean 1.需要注意的地方: 取值:true false 对于值为空字符串,0,-0,NaN,Null,undefined,false的布尔对象,它都会有一个初始值false.对于其它的值如& ...

  2. python的list,dict,set

    list # 1.list() 把可迭代对象转换成list,即for循环遍历的可迭代对象 my_str = "abcdef" new_list = list(my_str) pri ...

  3. 修改服务器ssh端口

    最近,访问公司虚拟机都需要通过堡垒机才能访问了,觉得麻烦.要想不受该规则限制,也有办法,可以通过修改虚拟机ssh端口解决. 下面做个介绍. 1. 通过堡垒机登录虚拟机 2. 修改虚拟机ssh端口 编辑 ...

  4. Windows自带管理工具

    exe类notepad 记事本 control 控制面板 mstsc 远程桌面连接explorer 资源管理器 taskmgr 任务管理器resmon 资源监视器 perfmon 性能监视器reged ...

  5. c++ trivial, standard layout和POD类型解析

    目录 1. trivial类型 2. standard layout类型 3. 集大成者,POD(Plain Old Data)类型 4. 测试代码 1. trivial类型 占用一片连续的内存,编译 ...

  6. Java内存马的学习总结

    1.前置知识 Java Web三大组件 Servlet Servlet是运行在 Web 服务器或应用服务器上的程序,它是作为来自 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中 ...

  7. 保存sklearn中模型的两种方法(pickle、joblib)

    保存sklearn中模型的两种方法(pickle.joblib) from sklearn import svm from sklearn import datasets clf = svm.SVC( ...

  8. linux常用命令精讲

    一.虚拟机三种网卡模式 1 桥接 相当于虚拟机和真机之间架了一座桥 2 NAT 虚拟系统借助 NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网(常用vm8) 3 仅主机 虚拟机和物理机在一 ...

  9. 聊聊CPU的发展历程之单核、多核、超线程

    作者:小牛呼噜噜 | https://xiaoniuhululu.com 计算机内功.JAVA底层.面试.职业成长相关资料等更多精彩文章在公众号「小牛呼噜噜」 大家好,我是呼噜噜,在计算机的早期,In ...

  10. python函数及算法

    算法二分法 二分算法图 什么是算法? ​ 算法是高效解决问题的办法. 需求:有一个按照从小到大顺序排列的数字列表,查找某一个数字 # 定义一个无序的列表 nums = [3,4,5,67,8,9,12 ...