2020重新出发,JAVA语言,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
[学习资料:java发展历史]
2020重新出发,JAVA语言,JAVA的诞生和发展史的更多相关文章
- java语言什么时候诞生的?
java语言什么时候诞生的?创始人是谁?何时发布的? Java编程语言是sun Microsystems公司JamesGosling在1990年创建的1995年公布于世
- 全面解析Java语言 Java技能优化集锦
通用篇 "通用篇"讨论的问题适合于大多数Java应用. 不用new关键词创建类的实例 用new关键词创建类的实例时,构造函数链中的所有构造函数都会被自动调用.但如果一个对象实现了C ...
- 第二十六节:复习Java语言基础-Java的概述,匿名对象,封装,构造函数
Java基础 Java语言概述 Java语言 语言 描述 javaee 企业版 javase 标准版 javame 小型版 JDK JDK(Java开发工具包) Java语言 语言 Java语言 Ja ...
- Java 语言概述与开发环境(1)
目录: 一.计算机语言的发展史 二.Java语言的简述 三.Java的特点 四.java语言的运行环境及环境变量的配置 五.Dos的常见命令 六.第一个java程序-HelloWord ...
- 【软考2】Java语言的基本知识汇总
导读:现在对于java这一模块,还没有相应的项目经验,只是通过各种类型的资料,对java有一个面上的了解.现在,对此做一个罗列总结,在以后的学习过程中,逐步完善! 一.语言的发展 1.1,机器语言 在 ...
- java语言体系的技术简介之JSP、Servlet、JDBC、JavaBean(Application)
转自:https://zhangkunnan.iteye.com/blog/2040462 前言 Java语言 Java语言体系比较庞大,包括多个模块.从WEB项目应用角度讲有JSP.Servlet. ...
- Java 语言基础 (初识Java语言, 变量和数据类型, 运算符, 流程控制语句, 数组)
初始 Java 语言 Java SE -- Java Platform, Standard Edition 是 Java 平台的基础 Java SE 以前称为 J2SE, 可以编写桌面应用和基于 we ...
- 1、java语言概述
Java基础知识图解 软件开发 软件开发 软件,即一系列按照特定顺序组织的计算机数据和指令的集合.有系统软件和应用软件之分. 人机交互方式 图形化界面(Graphical User Interface ...
- Java语言(基础一)
Java语言 Java的特性和优势 简单性(简单易学) 面向对象(一种思想 万物皆对象) 可移植性(一次编写到处运行 JVM) 高性能(及时编译) 分布式(网络分布式url) 动态性(反射机制) 多线 ...
随机推荐
- Quartz.Net系列(十二):六大Calendar(Annual、Cron、Daily、Holiday、Monthly、Weekly)
Quartz.Net中为了动态排除一些时间,而使用Calendar可以做到 1.DailyCalendar 可以动态的排除一天中的某些时间段 示例:在一天当中的13:00到14:00不要执行 publ ...
- educoder SML程序设计题线下编译环境搭建
背景 最近<串并行数据结构与算法设计>的老师在educoder上布置了一些SML程序设计题,虽然网站上有在线编译功能,但还是在线下编译调试方便,特记录编译环境过程如下(我用的GVIM,但N ...
- 计算机网络学习socket--day1
socket编程 socket可以看成是用户进程与内核网络协议栈的编程接口 socket不仅可以用于本机的进程间通信,还可以用于网络上不同主机的进程间通信 socket全双工通信 在异构系统间进行通信 ...
- Python Ethical Hacking - Malware Analysis(4)
DOWNLOAD_FILE Download files on a system. Once packaged properly will work on all operating systems. ...
- Python Ethical Hacking - VULNERABILITY SCANNER(2)
VULNERABILITY_SCANNER How to discover a vulnerability in a web application? 1. Go into every possibl ...
- P1092 虫食算(洛谷)
今天做了一道题,我之前吹牛的时候曾经说:“这个题我觉得深搜剪枝一下就可以了.”. 我觉得我之前说的没错“这个题深搜剪枝亿下,再加点玄学就可以了!” 题目描述 所谓虫食算,就是原先的算式中有一部分被虫子 ...
- 为Dark模拟做出的一些微小的贡献
这几周经过liners大佬的指导,发现自己的代码实现能力确实太过于垃圾,所以根据他的指示,我应该去多多练习一下Dark模拟,但是最近刚刚入手Dark模拟的我感到非常的吃力,所以本人今天写博客一篇来讲述 ...
- vue中引入jq的步骤--以及注意事项
- 想理解JVM看了这篇文章,就知道了!
前言 本章节属于Java进阶系列,前面关于设计模式讲解完了,有兴趣的童鞋可以翻看之前的博文,后面会讲解JVM的优化,整个系列会完整的讲解整个java体系与生态相关的中间件知识.本次将对jvm有更深 ...
- 台账建立和sqlite数据库的数据导入和导入问题
principle platform command starts with "."; whiel sql command doesn't starts with ". ...