目录

  • 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的起源、发展与基本概念相关推荐

  1. Spring源码学习笔记:起源发展和核心模块主要职能

    1.博客内容均出自于咕泡学院架构师第三期 2.架构师系列内容:架构师学习笔记(持续更新) 1.Spring 的前世今生 早在 2007 年,一个基于 Java语言的开源框架正式发布,取了一个非常有活力 ...

  2. java自制缓冲池_java String 缓冲池概念的举例说明

    口试中常会碰到String对象构造的题目.例如String s= new String("a");创建了几个对象. 下面根据代码具体解释一下各种String构造情况. 代码如下: ...

  3. 学Java后未来发展方向和前景怎么样?

    学习Java成为Java程序员,进入IT行业,已经成为很多年轻人的选择.毕竟,Java开发薪资高.待遇好已经是公认的事实.那么,学Java后,未来的发展方向和前景怎么样呢?针对这些问题,小千就给大家分 ...

  4. java和python哪个编程好找工作_学编程选Python还是Java?就业发展哪个好??

    原标题:学编程选Python还是Java?就业发展哪个好?? 近日,很多学生在选择专业上遇着难题,不少打算学计算机的学生询问,是学Java好就业还是Python好就业. 我们认为,不管是想学Java还 ...

  5. Java反射机制01_反射的概念以及获取字节码信息 的四种方式

    Java反射机制01-反射的概念以及获取字节码信息 的四种方式 一.反射的概念 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象, 都能够调用它的任意 ...

  6. java ee7帮助文档_帮助推动Java EE向前发展

    java ee7帮助文档 如果您还记得我写的题为< Java EE 8:当前状态是什么>的文章 ,很明显,Java EE的发展无疑在过去几个月中有所放缓. 肯定有一些Java EE下的JS ...

  7. java中接口文件创建_功能接口简介–在Java 8中重新创建的概念

    java中接口文件创建 世界各地的所有Java开发人员都将至少使用以下接口之一:java.lang.Runnable,java.awt.event.ActionListener,java.util.C ...

  8. 帮助推动Java EE向前发展

    如果您还记得我写的题为< Java EE 8:当前状态是什么>的文章 ,很明显,在过去的几个月中,Java EE的发展肯定已经放缓. 肯定有一些Java EE下的JSR具有比其他JSR更多 ...

  9. 功能接口简介–在Java 8中重新创建的概念

    世界各地的所有Java开发人员都将至少使用以下接口之一:java.lang.Runnable,java.awt.event.ActionListener,java.util.Comparator,ja ...

最新文章

  1. 圆与平面的接触面积_如果一个绝对的圆放在绝对的平面上,接触面是不是无限小?...
  2. workerman结合laravel开发在线聊天应用的示例代码
  3. 使用对称加密来加密Spring Cloud Config配置文件
  4. linuxpython23同时_Linux-centos同时存在Python2-Python3
  5. while循环以及for循环的区别
  6. 【毕业设计】基于Java的五子棋游戏的设计(源代码+论文)
  7. 000 初步使用Kotlin开发Android应用
  8. 改革开放40年·软件产业
  9. python 爬虫基础——淘宝评论
  10. 安装 3dsMax 2020 there is problem 错误
  11. 卡巴斯基激活码 卡巴斯基2010激活码下载
  12. 蒋文华《博弈论》笔记及视频摘录
  13. Docker Swarm集群实践——部署篇
  14. Word中如何修改脚注的编号方式
  15. PDM与Excel利用VB脚本进行互导
  16. python算法专项(六)——Tensorflow原理基础,三层网络
  17. 二元函数对xy同时求导_关于反三角函数及其导数
  18. matlab绘制磁场图,基于Matlab的电磁场图示化教学
  19. 《中国垒球》:棍网球委员会·垒球联盟
  20. Start Developing Mac Apps -- 开始开发Mac应用

热门文章

  1. 微软云Linux服务器 Mysql、tomcat远程连接错误解决办法
  2. 测试人员常用测试方法---正交法
  3. 混合选择集的坐标提起lisp_Autolisp函数
  4. Ansoft Links v4.2.7z
  5. 51单片机系列——基于单片机的蓝牙LED摇摇棒设计
  6. C# 2012QQ空间最新加密方式
  7. 小i机器人闪耀首届长三角科交会,展示真实智能生活
  8. FDA批准首个治疗儿童多动症的的医疗器械
  9. 普通人应该如何找到,一个适合自己的创业项目?开一家赚钱的小店?
  10. 编程之美:让CPU占用率曲线听你指挥