Java概述
Java发展史
-
1996 年 1 月,SUN 公司推出了 JDK1.0。
-
1997 年 2 月,SUN 公司推出了 JDK 1.1。
-
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 的应用服务器。
-
1999 年 4 月 27 日,HotSpot 虚拟机发布。后来它成
为了 JDK 1.3 及之后所有版本的 Sun JDK 的默认虚拟机。
-
2000 年 5 月,JDK1.3、JDK1.4 和 J2SE1.3 相继发布。
-
2002 年 2 月 26 日,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 月,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 发布。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体系
-
JavaSE(Java Standard Edition,Java平台的标准版)
标准版:各应用平台的基础,桌面开发和低端商务应用的解决方案。
-
JavaEE(Java Enterprise Edition,Java平台的企业版)
企业版:以企业为环境而开发应用程序的解决方案,如:门户网站(工商银行)、网上商城、阿里巴巴、电子商务网站
-
J2ME(Java Micro Edition,Java平台的微型版)
微型版:致力于消费产品 和嵌入式设备的最佳解决方案,如:移动电话、可视电话、数字机顶盒和汽车导航系统
Java特点
- 面向对象
- 跨平台,提供不同平台的解释环境
- 健壮性,吸收了c/c++的优点
- 较高的安全性(强类型,垃圾自动回收,取消指针)
JVM
JVM:(Java Virtual Machine) Java虚拟机。是可运行Java字节码的虚拟计算机系统。
- 它有一个解释器组件,可以实现 Java 字节码和计算机操作系统之间的通信
- 对于不同的运行平台,有不同 的 JVM。
GC 垃圾回收器
GC:(Garbage Collection) 垃圾回收器。不再使用的内存空间应当进行垃圾回收。
在 C/C++等语言中,由程序员负责回收无用内存。 Java 语言消除了程序员回收无用内存空间的责任: JVM 提供了一种系统线程跟踪存储空间的分配情况。并在 JVM 的空闲时,检查并释放那些可以被释放的存储空间。 垃圾回收器在 Java 程序运行过程中自动启用,程序员无法精确控制和干预。
JDK 组成
JDK(Java Development Kits)Java开发工具集 包含:
-
JRE (Java Runtime Environment)Java运行时环境
- JVM Java虚拟机
- Java API (应用程序编程接口)
-
Java 编译器(javac.exe)、Java 运行时解释器(java.exe)、Java 文档化化工具(javadoc.exe)及其它工具及资源
环境搭建
安装
下载并安装以下安装包:
- jdk-11.0.6_windows-x64_bin.exe (https://www.oracle.com/)
- eclipse-jee-2019-12-R-win32-x86_64.zip (绿色版,打开即可用,可发送快捷方式到桌面)(https://www.eclipse.org/downloads/)
配置环境变量
(win10)
- 控制面板-系统-高级系统设置-环境变量
- 系统变量中添加:(变量名:JAVA_HOME,变量值:E:\Java\jdk-11.0.6)
- 找到系统变量的Path变量,添加 %JAVA_HOME%\bin
环境变量配置好后,在任意目录都可以执行java程序。
检查是否安装成功
- 快捷键 Win+r:输入cmd,进入命令行。
- 输入 java -version 查看版本号。版本号正确显示说明配置成功。
第一个程序
创建 Hello.java 文件
public class Hello {
public static void main(String[] args) {
System.out.println("Hello");
}
}
cmd,进入文件所在目录,执行
> java Hello.java (javac命令会将源代码编程成class字节码文件,编译通过会在当前目录生成 Hello.class )
> javac Hello (使用java命令来执行class字节码文件)
Hello
简单语法
注释 :java 程序有三种注释方式
- 单行注释:// 注释
- 多行注释:/* 注释 */
- 文档注释:/** 注释 */
语法规则:
-
java 是严格区分大小写的
-
java 是一种自由格式的语言
-
代码分为结构定义语句和功能执行语句
-
功能执行语句的最后必须用分号结束
Eclipse
-
打开eclipse,设置workspace
-
新建project
- File - New - Project : 选 Java Project ,点next
- 输入项目名称,点finish
-
新建java文件:Hello.java
-
src 右键,New - Class ,输入名称:Hello,并勾选
public static void main(String[] args)
package day01; public class Hello { public static void main(String[] args) { System.out.println("Hello"); } }
-
运行:代码窗口中右键,Run as - Java Application
-
快捷键
- **Alt+?**代码模板提示功能
- ctrl+alt+向下箭头 复制上面一行代码
- Alt+向上或向下箭头 移动本行代码向上或向下移动,点击箭头一次,移动一行。
自动关机程序
demo01.java
package day01;
import java.io.IOException;
public class demo01 {
public static void main(String[] args) throws IOException {
// 1小时后执行自动关机
Runtime.getRuntime().exec("shutdown -s -t 3600");
}
}
demo02.java
package day01;
import java.io.IOException;
public class demo02 {
public static void main(String[] args) throws IOException {
// 取消自动关机
Runtime.getRuntime().exec("shutdown -a");
}
}