Java的起源、发展与基本概念
目录
- Java的起源与演变
- Java的起源
- Java的演变
- Java的体系与特点
- Java体系
- Java特点
- JVM 与 GC
- 垃圾回收器(Garbage Collection) GC
- Java 虚拟机(JVM)
- JDK 与 JRE
Java的起源与演变
Java的起源
20 世纪 90 年代,单片式计算机系统诞生,单片式计算机系统不仅廉价,而且功能强大,使用它可以大幅度提升消费性电子产品的智能化程度。生活中的家用电器比如电冰箱、微波炉都会用到这种单片机计算机系统。
SUN 公司为了抢占市场先机,在 1991 年成立了一个由詹姆斯·高斯林(James Gosling)领导, 名为“Green”项目小组,目的是开发一种能够在各种消费性电子产品上运行的程序架构。
但是采用什么编程语言来设计成了一个首要问题,当时比较火的是c++,但是c++庞大且复杂,而且不适于跨平台应用的开发。
于是项目小组决定:既不用 C++编写,也不开发全新的编程语言,而是对 C++进行改造:去除了 C++复杂的指针和内存管理,并结合嵌入式系统的实时性要求,最终在 1992 年,他们开发了一种名 为“Oak”的面向对象语言。
遗憾的是,这种语言开发的应用要想在各种电子产品上运行,需要非常巨大的硬件成本,所以当时这个项目由于暂时没有市场应用前景被搁置了。
1994 年,项目小组看到了浏览器在未来的发展前景,于是决定将 OaK 应用于万维网。1995 年, 他们用 OaK 语言研发了一种能将小程序嵌入到网页中执行的技术——Applet,由于 Applet 不仅能嵌 入网页,还可随同网页在网络上进行传输,这让无数的程序员看到了 OaK 这门语言,与此同时,OaK 正式更名为 Java。从此,Java 在互联网的推动下火了。
Java的演变
1996 年 1 月,SUN 公司推出了 JDK1.0。在 JDK1.0 发布后,有很多程序员学习并运用 Java 来制作 网页,JDK 包括两大部分:开发工具和运行环境。
运行环境包括核心 API、集成 API、用户界面 API、发布技术、Java 虚拟机(JVM)。JDK1.0 的发布, 标志着 Java 成为一种独立的开发工具。JDK1.0 的代表性技术有:Java 虚拟机、Applet、AWT 等。
1997 年 2 月,SUN 公司紧接着推出了 JDK 1.1。 JDK1.1 的代表性技术有:JDBC、JavaBeans、RMI、JAR 文件格式、Java 语法中的内部类和反射。
1998 年 12 月 8 日,JDK1.2——第二代 Java 平台的企业版 J2EE 发布。
1999 年 6 月,Sun 公司把 Java 体系分为三个方向:
J2ME(Java2 Micro Edition,Java2 平台的微型版),应用于移动、无线及有限资源的环境;
J2SE(Java 2 Standard Edition,Java 2 平台的标准版),应用于桌面环境;
J2EE(Java 2Enterprise Edition,Java 2 平台的企业版),应用于基于 Java 的应用服务器。
随着供应商的不同,Java 的 API 也分为三大类:
Java Core API:Java 核心类库;
Java Optional API:对之前 API 的扩充;
JKD1.2 的代表性技术有:Swing、Java IDL、EJB、Java Plug-in 等,在 API 文档中,添加了 strictfp 关键字和 Collections 集合类。
到2000 年 5 月,JDK1.3、JDK1.4 和 J2SE1.3 相继发布,J2SE1.3 是对 J2SE1.2 的补充和扩展,从应 用领域的角度分析,JavaSE1.3 已经涵盖了数据库、WEB、网络、图形、多媒体、电话、影像等大 部分的信息技术领域。
2002 年 2 月 26 日,J2SE1.4 发布。与 J2SE1.3 相比,多了近 62%的类和接口。在这些新特性当中, 还提供了广泛的 XML 支持、安全套接字(Socket)支持(通过 SSL 与 TLS 协议)、全新的 I/OAPI、 正则表达式、日志与断言。
2004 年 9 月 30 日,J2SE1.5 发布,成为 Java 语言发展史上的又一里程碑。为了表示该版本的重要 性,J2SE 1.5 更名为 Java SE 5.0(内部版本号 1.5.0)。
2005 年 6 月,在 Java One 大会上,Sun 公司发布了 Java SE 6。此时,Java 的各种版本已经更名, 已取消其中的数字 2,如 J2EE 更名为 JavaEE,J2SE 更名为 JavaSE,J2ME 更名为 JavaME。
2011 年 7 月 28 日,收购 Sun 公司的 Oracle 发布了 Java SE 7。
2014 年 3 月 18 日,Oracle 公司发布 Java SE8,这次版本升级为 Java 带来了全新的 Lambda 表达 式、流式编程等大量新特性,这些新特性使得 Java 变得更加强大。
2017 年 9 月 22 日,Oracle 公司发布 Java SE 9,这次版本升级强化了 Java 的模块化系统,让 Java 语言更轻量化,且采用了更高效、更智能的 GI 垃圾回收器,并在核心类库上进行大量更新,可进一 步简化编程。
2018 年 3 月 21 日,Java SE 10 发布。
2018 年 9 月 26 日,Java SE 11 发布。这是 Java 大版本周期变化后的第一个长期支持版本(LTS 版本持续支持到 2026 年 9 月)。
2019 年 3 月 20 日,Java SE 12 发布。
2019 年 9 月 23 日,Java SE 13 发布。
2020年 3 月 28 日,Oracle公司正式公布了Java14的开发版
2020年 9 月 15 日,Java SE 15 发布。
Java的体系与特点
Java体系
Java SE:Java Platform,Standard Edition 标准版:各应用平台的基础,桌面开发和低端商务应用的解决方案
Java EE:Java Platform,Enterprise Edition
企业版:以企业为环境而开发应用程序的解决方案
Java ME :Java Platform, Micro Edition
微型版:致力于消费产品 和嵌入式设备的最佳解决方案
Java特点
- 一种纯面向对象的编程语言。
- 一种与平台无关(跨平台)的语言。(它提供了在不同平台下运行的解释环境)
- 一种健壮的语言,吸收了 C/C++语言的优点。
- 有较高的安全性。(自动回收垃圾,强制类型检查,取消指针)
JVM 与 GC
垃圾回收器(Garbage Collection) GC
Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用空闲的内存。但是,程序员往往不能对垃圾回收的过程进行精准的预测和控制。
Java 虚拟机(JVM)
JVM 可以理解成一个可运行 Java 字节码的虚拟计算机系统
它有一个解释器组件,可以实现 Java 字节码和计算机操作系统之间的通信
对于不同的运行平台,有不同 的 JVM。
JVM 屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”。
JDK 与 JRE
JDK(Java Development Kits)-- Java 开发工具集
JRE(Java Runtime Environment)Java 运行时环境
Java的起源、发展与基本概念相关推荐
- Spring源码学习笔记:起源发展和核心模块主要职能
1.博客内容均出自于咕泡学院架构师第三期 2.架构师系列内容:架构师学习笔记(持续更新) 1.Spring 的前世今生 早在 2007 年,一个基于 Java语言的开源框架正式发布,取了一个非常有活力 ...
- java自制缓冲池_java String 缓冲池概念的举例说明
口试中常会碰到String对象构造的题目.例如String s= new String("a");创建了几个对象. 下面根据代码具体解释一下各种String构造情况. 代码如下: ...
- 学Java后未来发展方向和前景怎么样?
学习Java成为Java程序员,进入IT行业,已经成为很多年轻人的选择.毕竟,Java开发薪资高.待遇好已经是公认的事实.那么,学Java后,未来的发展方向和前景怎么样呢?针对这些问题,小千就给大家分 ...
- java和python哪个编程好找工作_学编程选Python还是Java?就业发展哪个好??
原标题:学编程选Python还是Java?就业发展哪个好?? 近日,很多学生在选择专业上遇着难题,不少打算学计算机的学生询问,是学Java好就业还是Python好就业. 我们认为,不管是想学Java还 ...
- Java反射机制01_反射的概念以及获取字节码信息 的四种方式
Java反射机制01-反射的概念以及获取字节码信息 的四种方式 一.反射的概念 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象, 都能够调用它的任意 ...
- java ee7帮助文档_帮助推动Java EE向前发展
java ee7帮助文档 如果您还记得我写的题为< Java EE 8:当前状态是什么>的文章 ,很明显,Java EE的发展无疑在过去几个月中有所放缓. 肯定有一些Java EE下的JS ...
- java中接口文件创建_功能接口简介–在Java 8中重新创建的概念
java中接口文件创建 世界各地的所有Java开发人员都将至少使用以下接口之一:java.lang.Runnable,java.awt.event.ActionListener,java.util.C ...
- 帮助推动Java EE向前发展
如果您还记得我写的题为< Java EE 8:当前状态是什么>的文章 ,很明显,在过去的几个月中,Java EE的发展肯定已经放缓. 肯定有一些Java EE下的JSR具有比其他JSR更多 ...
- 功能接口简介–在Java 8中重新创建的概念
世界各地的所有Java开发人员都将至少使用以下接口之一:java.lang.Runnable,java.awt.event.ActionListener,java.util.Comparator,ja ...
最新文章
- 圆与平面的接触面积_如果一个绝对的圆放在绝对的平面上,接触面是不是无限小?...
- workerman结合laravel开发在线聊天应用的示例代码
- 使用对称加密来加密Spring Cloud Config配置文件
- linuxpython23同时_Linux-centos同时存在Python2-Python3
- while循环以及for循环的区别
- 【毕业设计】基于Java的五子棋游戏的设计(源代码+论文)
- 000 初步使用Kotlin开发Android应用
- 改革开放40年·软件产业
- python 爬虫基础——淘宝评论
- 安装 3dsMax 2020 there is problem 错误
- 卡巴斯基激活码 卡巴斯基2010激活码下载
- 蒋文华《博弈论》笔记及视频摘录
- Docker Swarm集群实践——部署篇
- Word中如何修改脚注的编号方式
- PDM与Excel利用VB脚本进行互导
- python算法专项(六)——Tensorflow原理基础,三层网络
- 二元函数对xy同时求导_关于反三角函数及其导数
- matlab绘制磁场图,基于Matlab的电磁场图示化教学
- 《中国垒球》:棍网球委员会·垒球联盟
- Start Developing Mac Apps -- 开始开发Mac应用