Java 概述
-
是 SUN(Stanford University Network,斯坦福大学网络公司 ) 1995 年推出的一门高级 编程语言。
-
是一种面向 Internet 的编程语言。Java 一开始富有吸引力是因为 Java 程序可以在 Web 浏览器中运行。这些 Java 程序被称为 Java 小程序(applet),内嵌在 HTML 代码 中。
-
伴随着互联网的迅猛发展,以及 Java 技术在 web 方面的不断成熟,已经成为 Web 应 用程序的首选开发语言。
Java 语言简史
起步阶段:
1991 年,Sun 公司的工程师小组想要设计一种语言,应用在电视机、电话、闹 钟、烤面包机等家用电器的控制和通信。由于这些设备的处理能力和内存都很有码短小、紧凑且与平台无关(即不能与任何特定的体系结构捆绑在一起)。
Gosling 团队率先创造了这个语言,并命名为“Oak"(起名的原因是因为他非常 喜欢自己办公室外的橡树)。后因智能化家电的市场需求没有预期的高,Sun 公 司放弃了该项计划。
随着 20 世纪 90 年代互联网的发展,Sun 公司发现该语言在互联网上应用的前 景,于是改造了 Oak,于 1995 年 5 月以 Java 的名称正式发布。(Java 是印度 尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。)
发展阶段:
发行版本 | 发行时间 | 备注 |
Java 1.0 | 1996.01.23 | Sun 公司发布了 Java 的第一个开发工具包 |
Java 1.1 | 1997.02.19 | JavaOne 会议召开,创当时全球同类会议规模之最。 |
Java 1.2 | 1998.12.08 | Java 拆分成:J2SE(标准版)、J2EE(企业版)、 J2ME(小型版) |
Java 1.3 | 2000.05.08 | |
Java 1.4 | 2004.02.06 | |
Java 5.0 | 2004.09.30 | 1版本号从 1.4 直接更新至 5.0;2平台更名为 JavaSE、JavaEE、JavaME |
Java 6.0 | 2006.12.11 | 2009.04.20 Oracle 宣布收购 SUN 公司 |
2009.04.20 | Oracle 公司收购 SUN,交易价格 74 亿美元 | |
Java 7.0 | 2011.07.02 | |
Java 8.0 | 2014.03.18 | 此版本是继 Java 5.0 以来变化最大的版本。是长期 支持版本(LTS) |
Java 9.0 | 2017.09.22 | 1此版本开始,每半年更新一次;2Java 9.0 开始不 再支持 windows 32 位系统 |
Java 10.0 | 2018.03.21 | |
Java 11.0 | 2018.09.25 | JDK 安装包取消独立 JRE 安装包,是长期支持版本 (LTS) |
Java 12.0 | 2019.03.19 | |
Java17.0 | 2021.09 | 发布 Java 17.0,版本号也称为 21.9,是长期支持版 本。 |
Java19.0 | 2022.09 | 发布 Java19.0,版本号也称为 22.9 |
Java 之父
-
詹姆斯·高斯林(James Gosling)先生以“Java 技术之父”而闻名于世。他是 Java 技 术的创始人,他亲手设计了 Java 语言,并开发了 Java 编译器和 Java 虚拟机,使 Java 成为了世界上最流行的开发语言。
-
James Gosling 于 1984 年加入 Sun 公司,并一直服务于 Sun 公司,直至 2010 年前 后,Sun 被 Oracle 并购而加入 Oracle,担任客户端软件集团的首席技术官; 2010 年 4 月从 Oracle 离职。
Java 技术体系平台
Java SE(Java Standard Edition)标准版
– 支持面向桌面级应用(如 Windows 下的应用程序)的 Java 平台,即定位 个人计算机的应用开发。
– 包括用户界面接口 AWT 及 Swing,网络功能与国际化、图像处理能力以及 输入输出支持等。
– 此版本以前称为 J2SE
Java EE(Java Enterprise Edition)企业版
– 为开发企业环境下的应用程序提供的一套解决方案,即定位在服务器端的 Web 应用开发。
– JavaEE 是 JavaSE 的扩展,增加了用于服务器开发的类库。如:Servlet 能够 延伸服务器的功能,通过请求-响应的模式来处理客户端的请求;JSP 是一 种可以将 Java 程序代码内嵌在网页内的技术。
– 版本以前称为 J2EE
Java ME(Java Micro Edition)小型版
支持 Java 程序运行在移动终端(手机、机顶盒)上的平台,即定位在消 费性电子产品的应用开发
– JavaME 是 JavaSE 的内伸,精简了 JavaSE 的核心类库,同时也提供自己的 扩展类。增加了适合微小装置的类库:javax.microedition.io.*等。
– 此版本以前称为 J2ME
注意:Android 开发不等同于 Java ME 的开发
Java 开发环境搭建
什么是 JDK、JRE
JDK (Java Development Kit):是 Java 程序开发工具包,包含 JRE 和开发人员使用的工 具。
JRE (Java Runtime Environment) :是 Java 程序的运行时环境,包含 JVM 和运行时所 需要的核心类库。
如下是 Java 8.0 Platform:
JDK = JRE + 开发工具集(例如 Javac 编译工具等)
JRE = JVM + Java SE 标准类库
JDK 版本选择
-
自 Java 8 版本发布以来,其后的每次更新,都会有小伙伴高呼:Java8 YYDS!
-
论坛的声音:“你发任你发,我用 Java 8!”
-
JRebel 于 2022 年 4 月前后发布了《2022 年 Java 生态系统状况报告》,报告 中提到使用 Java11 的占比最多,Java 8 紧随其后,如下图。而此前 2020 年的 报告显示,Java8 占比达到了 84.48%。
-
我的分析:G1 是最受欢迎的 GC 算法。Java 11 及更高版本的 G1 收集器是默认的 GC,而 Java 8 中并不是。出于对 G1 的喜爱,很多开发者才会选择抛 弃 Java 8。
-
此外,某美国软件开发商在对近千名专业的 Java 开发者调研后,发布的《2022 年 Java 开发者生产力报告》称:八年前发布的 Java 8 依然是 Java 中应用最广 泛的版本,占比 37%,其次是 Java 11,占比 29% 。
-
在 Java 17 正式发布之前,Java 开发框架 Spring 率先在官博宣布,Spring Framework 6 和 Spring Boot 3 计划在 2022 年第四季度实现总体可用性的高端 基线:
-
Java 17+(来自 Spring Framework 5.3.x 线中的 Java 8-17)
-
Jakarta EE 9+(来自 Spring 框架 5.3.x 线中的 Java EE 7-8)
Spring 官方说明:https://spring.io/blog/2022/01/20/spring-boot-3-0- 0-m1-is-now-available
-
意味着:springboot3.0 是需要用 java17 和 spring6.0 为基础建设。如 果从企业选型最新 springboot3.0 作为架构来说,它搭配 jdk17 肯定是 标配了。
JDK 的下载
-
下载网址(Oracle 公司官网):www.oracle.com
-
下载步骤:如图所示,在官网底部选择 Developers 开发者
在 Developers 页面中间的技术分类部分,选择 Java,单击进入,如图所 示:
这里展示的是最新 Java 版本,例如 Java17。单击 Download Java,然后 选择具体的版本下载。
选择 Download Java 按钮后
如果想安装 Java8 可以选择如下位置:
选择 Accept License Agreement,
注册或登录后下载:
如果需要安装其它版本,可以选择 Java archive:
接着进行选择下载即可:
JDK 的安装
安装说明:
傻瓜式安装,下一步即可。
建议:安装路径不要有中文或者空格等特殊符号。
会同时安装 JDK8 和 JDK17,并以 JDK17 为默认版本进行讲解。
安装步骤:
(1)双击 jdk-17_windows-x64_bin.exe 文件,并单击下一步,如图所示:
修改安装路径,单击更改,如图所示:
将安装路径修改为 D:\develop_tools\jdk\jdk-17.0.2\,并单击下一 步,如图所示:
稍后几秒,安装完成,如图所示:
理解 path 环境变量
什么是 path 环境变量?
window 操作系统执行命令时,所要搜寻的路径。
为什么配置 path?
希望在命令行使用 javac.exe 等工具时,任意目录下都可以找到这个工具所 在的目录。
以 JDK 为例演示
我们在 C:\Users\songhk 目录下使用 javac 命令,结果如下:
我们不可能每次使用 java.exe,javac.exe 等工具的时候都进入到 JDK 的安装目 录下,太麻烦了。这时就需要配置 path 环境变量。
JDK17 配置方案:自动配置
不管大家有没有提前安装 JDK8 或其它版本 JDK,在我们安装完 JDK17 之后,理 应按 JDK8 的方式配置 path 环境变量。但是,我们发现在安装完 JDK17 以后, 配置环境变量之前,执行 CMD 指令:
自动进行了环境变 量的配置。如下:
这里建议,将 JDK17 安装的路径,设置为 JAVAHOME,并将 `%JAVAHOME%\bin`上移到首位