-
JAVA的发展史
-
JAVA的体系特点
-
Java 特性
-
JVM 与 GC
-
JDK 与 JRE
-
环境变量
起源
在sun公司,由James Goesling领导的“green"小组进行开发。小组起初的开发目的是开发出一种能够在各种消费性电子产品上运行的程序架构。经过数年的努力,开发小组开发出一种硬件加软件的架构。(硬件相当于现在的万能遥控器)但是由于硬件造价过于高昂,小组最终放弃硬件。软件方面则诞生了一门基于C++名为“Oak”的面向对象语言。OaK 语言因为缺乏硬件的支持而无法进入市场,从而被搁置一旁。
1994 年,项目小组看到了浏览器在未来的发展前景,于是决定将 OaK 应用于万维网。1995 年, 他们用 OaK 语言研发了一种能将小程序嵌入到网页中执行的技术——Applet,由于 Applet 不仅能嵌 入网页,还可随同网页在网络上进行传输,这让无数的程序员看到了 OaK 这门语言,与此同时,OaK 正式更名为 Java。从此,Java 在互联网的推动下火了。
演变
1996 年 1 月,SUN 公司推出了 JDK1.0。在 JDK1.0 发布后,有很多程序员学习并运用 Java 来制作 网页,JDK 包括两大部分:开发工具和运行环境。运行环境包括核心 API、集成 API、用户界面 API、发布技术、Java 虚拟机(JVM)。JDK1.0 的代表性技术有:Java 虚拟机、Applet、AWT 等
JDK1.0 的发布, 标志着 Java 成为一种独立的开发工具。
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 的扩充;
-
特殊 API:由特殊厂商或组织提供的 API。
Java 2 平台的发布,是 Java 发展过程中最重要的一个里程碑,标志着 Java 的应用开始普及。
JDK不断的迭代更新到J2SE1.4。在2004 年 9 月 30 日,J2SE1.5 发布,成为 Java 语言发展史上的又一里程碑。为了表示该版本的重要 性,J2SE 1.5 更名为 Java SE 5.0(内部版本号 1.5.0)。Java SE 5.0 包含了从 1996 年发布 1.0 版 本以来的最重大的更新,其中包括泛型支持、基本类型的自动装箱、改进的循环、枚举类型、格式化 I/O 及可变参数。
2005 年 6 月,在 Java One 大会上,Sun 公司发布了 Java SE 6。此时,Java 的各种版本已经更名, 已取消其中的数字 2,如 J2EE 更名为 JavaEE,J2SE 更名为 JavaSE,J2ME 更名为 JavaME。
2011 年 7 月 28 日,收购 Sun 公司的 Oracle 发布了 Java SE 7,引入了二进制整数、支持字符串的 switch 语句、棱形语法、多异常捕抓、自动关闭资源的 try 语言等新特性。
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 发布,Java 10 版本带来了很多新特性,其中最备受广大开发者 关注的莫过于局部变量类型推断。此外,还包垃圾收集器改善、GC 改进、性能提升、线程管控等新 特性。
2018 年 9 月 26 日,Java SE 11 发布。这是 Java 大版本周期变化后的第一个长期支持版本(LTS 版本持续支持到 2026 年 9 月)。Java11 带来了 ZGC、Http Client 等重要特性,一共包含 17 个 JEP (JDK Enhancement Proposals,JDK 增强提案)。 现在用的主要版本!
2019 年 3 月 20 日,Java SE 12 发布。Java 12 是短期支持版本,可在下一个版本发布之前获得 Oracle 的商业支持。
2019 年 9 月 23 日,Java SE 13 发布,此版本中添加了“文本块”,文本块是一个多行字符串文字, 避免对大多数转义序列的需要,以可预测的方式自动格式化字符串,并在需要时让开发人员控制格式。
JAVA的体系特点
-
Java SE:Java Platform,Standard Edi(标准版:各应用平台的基础,桌面开发和低端商务应用的解决方案)(不擅长桌面软件开发)
-
Java EE:Java Platform,Enterprise Edition( 企业版:以企业为环境而开发应用程序的解决方案)(更擅长)
-
Java ME :Java Platform, Micro Edition (微型版:致力于消费产品 和嵌入式设备的最佳解)(现在很少用)
Java 特性
-
纯面向对象的编程语言。
-
与平台无关(跨平台)的语言。(它提供了在不同平台下运行的解释环境) (JVM的支持下才能实现)
-
健壮的语言,吸收了 C/C++语言的优点。(剔除C/C++的糟粕,取其精华)
-
有较高的安全性。(自动回收垃圾,强制类型检查,取消指针)(GC实现自动回收垃圾)
JVM 与 GC
Java 虚拟机(Java Virtual Machine) JVM
万能的翻译器
JVM 可以理解成一个可运行 Java 字节码的虚拟计算机系统
-
它有一个解释器组件,可以实现 Java 字节码和计算机操作系统之间的通信
-
对于不同的运行平台,有不同 的 JVM
垃圾回收器(Garbage Collection) GC
一个自动运行可以识别数据的程序
一种系统线程跟踪存储空间的分配情况。并在 JVM 的空闲时,检查并释放那些可以被释放的存储空间。
垃圾回收器在 Java 程序运行过程中自动启用,程序员无法精确控制和干预
JDK 与 JRE
JDK(Java Development Kits)-- Java 开发工具集合(一套独立程序构成的集合)
-
JRE(Java Runtime Environment)Java 运行时环境 (加译)
-
JVM
Java API (应用程序编程接口)
Java 编译器(javac.exe)、Java 运行时解释器(java.exe)、Java 文档化化工具(javadoc.exe)及其它工具及资源
JRE 的三项主要功能:
-
加载代码:由类加载器(class loader)完成;
-
校验代码:由字节码校验器(byte code verifier)完成;
-
执行代码:由运行时解释器(runtime interpreter)完成。
环境变量
为要执行的指令提供一个方便指令执行的操作方式。在操作界面输入指令,系统先在文件夹里在寻找,假如没有,系统就会去path中的文件夹里寻找。
程序
程序员为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令(即命令)的集合。Java的程序是以类为单位。java是从类中的main方法开始执行的。
class是一种类,这里把class命名为Demo3。其中{}是代码框。该程序用了main方法作为程序开始执行的入口。
Java的语法
注释 :java 程序有三种注释方式
-
单行注释://注释
-
多行注释:/*注释*/
-
文档注释:/**注释*/
语法规则:
-
java 是严格区分大小写的
-
java 是一种自由格式的语言 代码分为结构定义语句和功能执行语句
-
功能执行语句的最后必须用分号(;)结束
java 代码的位置 class 必须编写在.java 文件中
创建,编译和执行Java程序
创建程序
可以使用文本编辑器或者集成开发环境来创建和编写Java的源代码文件。Java的源代码文件保存为.java文件,并且文件名必须与公共类名完全相同。例如:程序中类名为Hello,则文件名要是Hello。
编译程序
Java的源代码文件让编译器进行加译产生以.class结尾的文件。
执行程序
JVM执行.class文件