目录
一、Java简介
Java版本
名词解释JDK、JRE
JDK版本选择
二、JDK的下载
下载方式1:
(1)在Developers页面中间的技术分类部分,选择Java,单击进入,如图所示:
(2)这里展示的是最新Java版本,例如Java17。单击Download Java,然后选择具体的版本下载。
(3)选择Download Jdk按钮后
(4)如果想安装Java8 可以选择如下位置:
(5)选择Accept License Agreement,编辑
(6)注册或登录后下载:
JDK17下载:
JDK11下载:
下载方式二:(可忽略)
进入官网,点击Products;点击Java
进入界面下划,找到Java下载界面,点击Download Java now
点击Java archive进入历史版本中
找到对应自己电脑的JDK,点击下载。我这里选择的是JDK1.8 64位
Jdk安装包8/11/17均已下载,可按需求下载:(开源免费,省的注册Oracle账号)
三、Windows JDK的安装
安装说明
安装步骤:
(1)双击jdk-8u381-windows-x64.exe文件,并单击下一步,如图所示:
(2)修改安装路径,单击更改,如图所示:
(3)将安装路径修改为D:\Software\Java\jdk-1.8_381\,并单击下一步,如图所示:
(4)稍后几秒,提示安装JRE,更改默认目录,新建目录名为 jre加版本号 ,如图所示:
四、Windows配置path环境变量
1、理解path环境变量
什么是path环境变量?
为什么配置path?
以JDK为例演示
2、查看默认配置的环境变量
3、配置JAVA_HOME+path(推荐)
Java最早是由SUN公司(已被Oracle收购)的詹姆斯·高斯林(高司令,人称Java之父)在上个世纪90年代初开发的一种编程语言,最初被命名为Oak,目标是针对小型家电设备的嵌入式应用,结果市场没啥反响。谁料到互联网的崛起,让Oak重新焕发了生机,于是SUN公司改造了Oak,在1995年以Java的名称正式发布,原因是Oak已经被人注册了,因此SUN注册了Java这个商标。随着互联网的高速发展,Java逐渐成为最重要的网络编程语言。
Java介于编译型语言和解释型语言之间。编译型语言如C、C++,代码是直接编译成机器码执行,但是不同的平台(x86、ARM等)CPU的指令集不同,因此,需要编译出每一种平台的对应机器码。解释型语言如Python、Ruby没有这个问题,可以由解释器直接加载源码然后运行,代价是运行效率太低。而Java是将代码编译成一种“字节码”,它类似于抽象的CPU指令,然后,针对不同平台编写虚拟机,不同平台的虚拟机负责加载字节码并执行,这样就实现了“一次编写,到处运行”的效果。当然,这是针对Java开发者而言。对于虚拟机,需要为每个平台分别开发。为了保证不同平台、不同公司开发的虚拟机都能正确执行Java字节码,SUN公司制定了一系列的Java虚拟机规范。从实践的角度看,JVM的兼容性做得非常好,低版本的Java字节码完全可以正常运行在高版本的JVM上。
随着Java的发展,SUN给Java又分出了三个不同版本:
Java SE:Standard Edition
Java EE:Enterprise Edition
Java ME:Micro Edition
这三者之间有啥关系呢?
┌───────────────────────────┐
│Java EE │
│ ┌────────────────────┐ │
│ │Java SE │ │
│ │ ┌─────────────┐ │ │
│ │ │ Java ME │ │ │
│ │ └─────────────┘ │ │
│ └────────────────────┘ │
└───────────────────────────┘
简单来说,Java SE就是标准版,包含标准的JVM和标准库,而Java EE是企业版,它只是在Java SE的基础上加上了大量的API和库,以便方便开发Web应用、数据库、消息服务等,Java EE的应用使用的虚拟机和Java SE完全相同。
Java ME就和Java SE不同,它是一个针对嵌入式设备的“瘦身版”,Java SE的标准库无法在Java ME上使用,Java ME的虚拟机也是“瘦身版”。
毫无疑问,Java SE是整个Java平台的核心,而Java EE是进一步学习Web应用所必须的。我们熟悉的Spring等框架都是Java EE开源生态系统的一部分。不幸的是,Java ME从来没有真正流行起来,反而是Android开发成为了移动平台的标准之一,因此,没有特殊需求,不建议学习Java ME。
因此我们推荐的Java学习路线图如下:
首先要学习Java SE,掌握Java语言本身、Java核心开发技术以及Java标准库的使用;
如果继续学习Java EE,那么Spring框架、数据库开发、分布式架构就是需要学习的;
如果要学习大数据开发,那么Hadoop、Spark、Flink这些大数据平台就是需要学习的,他们都基于Java或Scala开发;
如果想要学习移动开发,那么就深入Android平台,掌握Android App开发。
无论怎么选择,Java SE的核心技术是基础,这个教程的目的就是让你完全精通Java SE并掌握Java EE!
从1995年发布1.0版本开始,到目前为止,最新的Java版本是Java 21:
发行版本 | 发行时间 | 备注 |
---|---|---|
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 | - |
Java1.4 | 2004.02.06 | - |
Java 5.0(亦即Java 1.5) | 2004.09.30 | ①版本号从1.4直接更新至5.0;②平台更名为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(亦即 Java 1.8) | 2014.03.18 | 此版本是继Java 5.0以来变化最大的版本。是长期支持版本(LTS) |
Java 9.0 | 2017.09.22 | ①此版本开始,每半年更新一次;②Java 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 20.0 | 2023.03 | Java 20 |
Java 21.0 | 2023.09 | Java 21 |
所谓"长期支持版本",意思是这个版本会“长期更新”。Java8.0为例,它是一个长期支持版本,即 若Java9.0已经发布,并不意味着Java8.0不再更新了,它还是会继续更新 解决Bug的。因此可以长期使用Java8.0。
而其它 不是长期支持的版本,例如Java7.0,它若存在一些Bug,你想要解决它,对不起!无法在当前版本解决,当Java8.0发布以后,Java7.0就不再更新,你想解决它的Bug,只能去新版本的Java,即使用Java8.0。
初学者学Java,经常听到JDK、JRE这些名词,它们到底是啥?
JDK
(J
ava D
evelopment K
it):是Java程序开发工具包,包含JRE
和开发人员使用的工具。JRE
(J
ava R
untime E
nvironment) :是Java程序的运行时环境,包含JVM
和运行时所需要的核心类库
。简单地说,JRE就是运行Java字节码的虚拟机。但是,如果只有Java源码,要编译成Java字节码,就需要JDK,因为JDK除了包含JRE,还提供了编译器、调试器等开发工具。
**JDK = JRE + 开发工具集(例如Javac编译工具等)**
**JRE = JVM + Java SE标准类库**
二者关系如下:
┌─ ┌──────────────────────────────────┐
│ │ Compiler, debugger, etc. │
│ └──────────────────────────────────┘
JDK ┌─ ┌──────────────────────────────────┐
│ │ │ │
│ JRE │ JVM + Runtime Library │
│ │ │ │
└─ └─ └──────────────────────────────────┘
┌───────┐┌───────┐┌───────┐┌───────┐
│Windows││ Linux ││ macOS ││others │
└───────┘└───────┘└───────┘└───────┘
要学习Java开发,当然需要安装JDK了。
你发任你发,我用Java 8!
”数据说话1:
JRebel 于2022年4月前后发布了《2022 年Java生态系统状况报告》,报告中提到使用Java11 的占比最多,Java 8 紧随其后,如下图。而此前2020年的报告显示,Java8占比达到了84.48%
。
我的分析:
G1是最受欢迎的GC算法。Java 11及更高版本的G1收集器是默认的GC,而Java 8中并不是。出于对G1的喜爱,很多开发者才会选择抛弃Java 8。
数据说话2:
此外,某美国软件开发商在对近千名专业的Java开发者调研后,发布的《2022年Java开发者生产力报告》称:八年前发布的Java 8依然是Java中应用最广泛的版本,占比 37%
,其次是 Java 11,占比29%
。
高斯林说话:
Spring框架说话:
在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 官方说明:Spring Boot 3.0.0-M1 is now available
意味着:springboot3.0 是需要用java17和spring6.0为基础建设。如果从企业选型最新springboot3.0作为架构来说,它搭配jdk17肯定是标配了。
教程使用的Java版本是最新版的Java 8,也是市面上最为主流最稳定的一个版本~~~
如图所示,在官网底部选择Developers开发者
Java
,单击进入,如图所示: Download Java
,然后选择具体的版本下载。同样进入Oracle官网:Oracle | Cloud Applications and Cloud Platform
https://download.csdn.net/download/weixin_46474921/88368541
之前win10系统配置的是jdk8u221,现在配置jdk8u381
jdk-8u381-windows-x64.exe
文件,并单击下一步,如图所示:D:\Software\Java\jdk-1.8_381\
,并单击下一步,如图所示: jdk8 安装过程中会出现两次安装提示。第一次是安装jdk ,第二次是安装jre 。建议两个都安装在同一个java文件夹中的不同文件夹
(其实没有必要安装jre,因为jdk中已经包含jre,但若想安装则在jdk文件夹下新建文件夹)
(5)完成安装,点击关闭
答:window操作系统执行命令时,所要搜寻的路径。
答:希望在命令行使用javac.exe等工具时,任意目录下都可以找到这个工具所在的目录。
我们在C:\Users\
目录下使用javac命令,结果如下:
1.8后的jdk会自动添加环境变量,所以我们不用配置环境
右键“此电脑”,点击“属性”,点击“高级系统设置”,在“高级”一栏,点击“环境变量”
可以看到path变量已经自动配置了值C:\ProgramData\Oracle\Java\javapath
正因如此,当我们查看java版本时会出现信息。
但执行Javac命令时无响应,为了后续高级学习方便,手动配置环境变量。
(1)打开桌面上的计算机,进入后在左侧找到计算机
,单击鼠标右键
,选择属性
(2)选择高级系统设置
(3)在高级
选项卡,单击环境变量
,如图所示:
(4)在系统变量
中,单击新建
,创建新的环境变量,如图所示:
(5)变量名输入JAVA_HOME
,变量值输入 D:\Software\Java\jdk-1.8_381
,单击确定
,如图所示:
(6)选中Path
环境变量,双击
或者点击编辑
,如图所示:
(7)在变量值的最前面,键入%JAVA_HOME%\bin
。如图所示:
注意:强烈建议将%JAVA_HOME%\bin声明在path环境变量中所有变量的最前面!
(8)环境变量配置完成,重启CMD命令行,在任意目录下输入javac
或java
命令或java -version
,运行成功。
检验 java.exe 命令
检验javac
获取当前安装的 jdk 的版本信息:输入java -version
有的书籍、论坛、视频上还提到配置classpath,用于指名class文件识别的路径。其实是没必要的,反而建议大家如果配置了classpath环境变量,要删除。对于初学者,反而不友好。