Java道经第1卷 - 第1阶 - 新手村(一)
心法:本章使用 Maven 父子结构项目进行练习
练习项目结构如下:
|_ v1-1-basic-rookie
|_ helloworld
S01. 学前准备工作
学前练习:学习如何重做操作系统。
学前练习:学习并提高打字速度,个人推荐金山打字通工具。
学前练习:学习如何制作幻灯片,个人推荐 Foucsky 工具。
学前练习:学习如何彻底卸载软件,个人推荐 geek 工具。
学前练习:学习如何截图截屏,个人推荐 PixPin 工具。
学前练习:学习如何解压缩文件,个人推荐 NanaZip 工具。
学前练习:学习如何绘制思维导图,个人推荐 XMind 工具。
学前练习:学习如何搜索文件,个人推荐 Listary 工具。
学前练习:学习常用的快捷键,如全选、复制、剪切、粘贴、撤销、查找、替换等。
E01. 基础概念分享
1. 项目开发流程
心法:常见的项目开发流程大概分为以下三个阶段。
项目开发第一阶段:
项目开发第二阶段:
项目开发第三阶段:
2. 完整学习路线
心法:Java 学习的技术栈分为 单体 和 微服务 两种分别进行说明。
单体技术栈:
微服务技术栈:
3. 学习技巧分享
心法:Java 学习技巧分享(仅个人经验分享)
- 向钱看:钱是获取自由的工具,每当坚持不住的时候,就看一看自己的银行卡余额。
- 多喝水:科学研究表明,身体缺水,学习能力就会下降。
- 跟人学:古人死磕书本,今人回归人格,跟你的前辈,同学,老师学习,绝对要比跟书本和视频更合适。
- 多搜索:为什么我能记住这么多知识,因为知识是我自己主动搜索得来的,而非被动灌输的。
- 讲出来:说话可以刺激大脑的另一部分,如果我们想看懂什么或者想牢记什么,大声讲给别人听就行了。
- 多画图:图形比文字的信息传输率高 89% 左右,灵魂画手除外。
- 记笔记:笔记是记忆的最佳缝合方式,多去记录我们的疑惑,思路和思考等。
4. 学前环境准备
武技:Java 学习之前的环境准备(仅个人经验分享)
- 使用一切手段清理和整理我们的 win8+ 计算机,特殊情况下,升级硬件,重做系统。
- 确保我们的计算机名称为英文名称,否则某些软件如 MySQL 等,可能会安装失败。
- 确保我们是管理员用户,并将用户控制权限拉到最低,强烈建议关闭防火墙。
- 在资源管理器中显示文件的拓展名。
- 在资源管理器种将所有的隐藏内容也显示出来,但不要乱动。
- 新建目录如 D:\joezhou,统一存放今后所有的学习资源,项目和笔记。
E02. Java基础概念
1. 语言年龄分代
心法:Java 语言是第 4 代(或 3.5 代)的计算机语言,同时在 Java 技术栈中,也一定会涵盖到第 5 代的 SQL 语言。
分代 | 面向 | 描述 | 运行效率 | 开发效率 | 语言举例 |
---|---|---|---|---|---|
1 | 机器 | 打孔机 + 指令条模式 | 极高 | 极低 | 二进制语言 |
2 | 指令 | 有自主分析,但少了些灵魂,不够高级 | 较高 | 较低 | 汇编语言 |
3 | 过程 | 关心每一个流程和每一个细节,属于高级语言 | 中等 | 中等 | C 语言 |
4 | 对象 | 关注对象属性,对象方法,对象关系和对象调用 | 较低 | 较高 | Java,C++ 等语言 |
5 | 结果 | 需求-结果模型 | 中等 | 极高 | SQL 语言 |
2. 核心技术特点
心法:Java 曾用名 Green 和 Oak,后因印度尼西亚盛产咖啡的爪洼岛而改名。
Java 是 Sun 公司(09 年被 Oracle 公司收购)的詹姆斯·高斯林团队在 1994 年研发出来的一门计算机编程语言,分为 JavaSE 标准版,JavaME 个人版和 JavaEE 企业版三个版本。
Java 的技术特点总结如下:
- 简单高效:Java 是基于 C++ 起来的,但是去除了很多 C++ 的难点,上手难度低。
- 潜力无限:Java 拥有无穷无尽的强大类库,即各种功能拓展包,所以拥有无限潜力。
- 平易近人:Java 是一门面向对象的语言,相比过程和细节,更关心属性和方法,更接近人类的思维。
- 粉丝泛滥:Java 粉丝量大,社区活跃,文档齐全,始终处于 TIOBE 编程语言排行榜前几名。
- 身体健壮:Java 内部具有非常完善的异常处理机制,不容易使系统崩溃。
- 安全可靠:Java 有指针,但不支持直接操作指针,所以不容易中毒。
- 场景丰富:Java 被应用于安卓,金融,服务器,电商网站,嵌入式,大数据,高频交易空间,科学应用等场景。
- 掌声一片:Java 的源代码是在 JVM 上进行编译的,编译结果为字节码,字节码是可以跨平台的。
3. 平台移植专题
心法:跨平台指的是软件、应用或系统无需大幅修改,就能在多种不同操作系统、硬件架构或软件环境中正常运行。
C 语言不具有跨平台特性:
Java 语言由于引入了 JVM 的概念,所以具有跨平台特性:
E03. Java笔记工具
1. Markdown语法
心法:建议使用 Markdown 格式的文件记录笔记,该文件使用 .md 作为后缀。
2. Notepad3软件安装
武技:安装 Notepad3 记事本软件
下载 Notepad3:下载 Nodepad3 便携版,如 Notepad3_6.23.203.2_x64_Portable.zip 等。
解压 Notepad3:解压缩到 D:\notepad 目录。
启动 Notepad3:双击 Notepad3.exe 启动该软件,建议发送到桌面快捷方式。
配置 Notepad3:
- 查看 - 勾选 显示行长度标记。
- 查看 - 勾选 显示缩进提示。
- 查看 - 取勾 书签。
- 外观 - 语法高亮方案集 - Obsidian。
- 设置 - 勾选 自动关闭括号。
- 设置 - 勾选 自动关闭 HTML/XML 标记。
- 设置 - 勾选 自动补全单词。
- 设置 - 勾选 自动补全语法关键字。
3. Obsidian软件安装
武技:安装 Obsidian 笔记软件
下载 Obsidian:参考 Obsidian官网 和 Obsidian下载地址
安装 Obsidian:
- 傻瓜式安装即可,路径不要出现中文和特殊符号。
- 运行 obsidian.exe 程序,打开 Obsidian 软件。
- 调整语言为中文,然后创建仓库。
- 填写仓库名称,然后浏览一个仓库地址如
D:\workspace
:
4. Obsidian软件配置
心法:调整 Obisidian 软件的基础配置,仅供参考。
第 1 步:取消缩减栏宽:取勾 设置 - 编辑器 - 缩减栏宽
,此时编辑器宽度为 100%,加大编辑器宽度:
第 2 步:配置图片地址:
- 进入
设置 - 文件与链接
页面。 - 勾选 始终更新内部链接:此时重命名文件时可以自动更新链接地址,无需手动确认。
- 选择 内部链接类型 为 基于当前笔记的相对路径:此时内链会使用相对路径,更灵活。
- 取勾 使用Wiki链接:此时链接使用标准的 MD 语法,更通用。
- 选择 附件默认存放路径 为 当前文件所在文件夹下指定的子文件夹中:此时附件会自动存放到指定位置。
- 填写 子文件夹名称 为 image:附件的指定文件夹名称。
第 3 步:切换软件主题:
- 在
.obsidian\themes\
目录下安装对应主题(注意是目录,而非压缩包):
- 进入
设置 - 外观 - 主题
,选择 Things(推荐),此时会自动切换主题:
第 4 步:调整字体大小:
- 调整
设置 - 外观 - 字体大小
为 18。 - 勾选
设置 - 外观 - 快速调整字体大小
:此时通过 ctrl + 鼠标滚轮 可以快速调整字体。
第 5 步:设置全局样式:
- 创建全局样式文件
.obsidian\snippets\global.css
,目录不存在则手动创建。 - 在全局样式文件中输入 CSS 代码,并保存文件:
img {
border: 1px solid gray !important; /*边框*/
}
.cm-header-1 {
color: orange !important;
}
.cm-header-2 {
color: skyblue !important;
}
.cm-inline-code, code {
color: orange !important;
}
- 点击
设置 -> 外观
:在最后的 css代码片段 中选择启用刚才写的 global.css 样式文件:
5. Obsidian软件插件
心法:手动安装插件时,可在
.obsidian\plugins\
目录下直接安装对应插件(注意是目录,而非压缩包)。
武技:为 Obsidian 安装常用插件,仅供参考。
第 1 步:关闭安全模式:点击 设置 -> 第三方插件 - 关闭安全模式
,此时才允许安装第三方插件:
第 2 步:启用插件功能:勾选对应插件以开启插件功能,强烈推荐的插件如下:
插件名 | 描述 | 推荐值 |
---|---|---|
Clear Unused Images | 用于一键清除未被笔记链接的图片 | ★★★★★ |
Paste image rename | 用于重命名截图,自动将粘贴的截图生成指定的文件名 | ★★★★★ |
Unique attachments | 用于重命名附件,自动为附件生成唯一不重复的随机名 | ★★★★★ |
Trash Explorer | 用于打开 Obsidian 回收站 | ★★★★★ |
Excalidraw | 用于直接在笔记中画图 | ★★★★★ |
Full Calendar | 日历,用于记录日程 | ★★★★ |
Enhancing Mindmap | 用于创建思维导图 | ★★★★ |
Obsidian Git | 用于自动同步内容到 Gitee | ★★★★ |
Templater | 用于设置模板 | ★★★★ |
Style Settings | 用于修改主题 | ★★★★ |
Outliner | 用于规范 MD 列表 | ★★★★ |
File Explorer Note Count | 在目录列表右侧展示该目录中的文件数量 | ★★★★ |
Kanban | 看板,用于记录表格 | ★★★★ |
6. Obsidian代码同步
心法:Obsidian 的笔记都默认保存在本地,容灾性低,建议备份到云端,我这里选择备份到 Gitee 远程仓库上。
武技:将 Obsidian 的本地笔记备份到 Gitee 远程仓库。
- 创建 Gitee 仓库:自行注册,登录并绑定邮箱:
- 进入笔记位置处,初始化 git 环境(需要本地安装了 git 环境)并绑定 gitee 地址:
# 进入笔记位置处
cd obsidian\workspace\joezhou
# 初始化git仓库
git init
# 绑定远程仓库:克隆下来的项目不需要此步骤
git remote add origin https://gitee.com/coder-joezhou/note.git
# 查看当前绑定的远程仓库
git remote -v
# 从远程获取项目最新版本,弹日志直接 `:wq` 跳过
# 此操作不会覆盖本地的文件,放心使用
git pull origin master --allow-unrelated-histories
# 添加当前目录下的全部内容
git add .
# 提交内容
git commit -m "JoeZhou"
# 远程推送到Gitee
git push -u origin "master"
- 自动同步:使用自动同步功能,需要提前添加并启动 Obsidian Git 插件,然后在 Obsidian 中设置每隔 30 分钟自动备份,并同步一次:
- 手动同步:手动备份可直接使用以下 cmd 命令:
git add .
git commit -m "JoeZhou"
git pull
git push -u origin "master"
S02. 开发环境搭建
E01. 搭建Java环境
心法:JDK 与 JRE 的区别
Java Development Kits(JDK) | Java Runtime Environment(JRE) | |
---|---|---|
中文 | Java 开发工具箱 | Java 运行时环境 |
描述 | 包含 JRE 和一些 .exe 可执行程序 | 包含 JVM 虚拟机和一些类库 |
场景 | 开发 + 运行 Java 程序 | 只能运行 Java 程序,不能开发 Java 程序 |
武技:在 Windows 中安装 JDK 环境
1. 卸载JDK
若之前安装的是免安装版 JDK,直接删除安装目录即可,否则需要在控制面板处卸载。
2. 安装JDK
- 下载 JDK:选择 jdk-17.0.9 版本的免安装版本 JDK。
- 安装 JDK:解压缩即可使用,注意目标路径不要有中文,空格和特殊符号,且必须是一个空目录,如 D:\jdk\jdk-17.0.9 等。
- 检查 JDK:使用 CMD 窗口检查 JDK,具体指令如下:
# 清屏幕
cls
# 切换当前位置到D盘根目录
d:
# 查看当前目录下的全部目录和文件
dir
# 进入指定文件夹中
cd jdk\jdk-17.0.9\bin
# 使用 `java.exe` 程序查看JDK版本,`.exe` 后缀可省略
java.exe -version
# 可以查看更多 `java.exe` 命令,`.exe` 后缀可省略
java.exe -help
3. 配置Path变量
心法:为何要配置系统 Path 变量
Windows 系统的 Path 变量专门存放某些软件的可执行程序所在的目录,一般为 bin 目录。
当 CMD 在执行某个 .exe 程序的时候会优先在当前目录中寻找,若当前目录中没有这个 .exe 程序,则尝试在系统的 Path 变量中的全部目录下依次寻找。
所以,配置 Path 意义就是让 CMD 快速找到 Java 的可执行程序。
武技:将 JDK 配置到系统 Path 变量中
- 拷贝 Java 家目录中 bin 目录的地址,如
D:\jdk\jdk17\bin
目录。 - 点击
右键此电脑 -> 属性 -> 高级系统设置 -> 高级 -> 环境变量 -> 系统变量
:- 若无 Path 则新建 Path,添加
D:\jdk\jdk-17.0.9\bin
值。 - 否则追加该值,注意千万不要将 Path 的原值删除。
- 若无 Path 则新建 Path,添加
- 重启 CMD 窗口并在任意位置测试以下命令:
# 负责编译Java文件的编译程序,`.exe` 后缀可省略
javac.exe
# 负责运行Java文件的运行程序,`.exe` 后缀可省略
java.exe
4. 配置JAVA_HOME
心法:为何要配置系统 JAVA_HOME 变量
系统变量 JAVA_HOME 用于配置 JDK 的家目录,是自定义的,它主要用于实现系统变量 Path 的归一原则,所谓归一原则,就是尽量将相同的,易变的内容抽取为变量,将变化归于一处,统一处理和调度。
除此之外,其它如 Maven 之类的程序可能会默认寻找该变量。
武技:配置 JAVA_HOME 变量
- 拷贝 Java 家目录地址,如
D:\jdk\jdk-17.0.9
目录。 - 新建 JAVA_HOME 变量:
- 点击
右键此电脑 -> 属性 -> 高级系统设置 -> 高级 -> 环境变量 -> 用户变量
。 - 新建 JAVA_HOME 变量,添加
D:\jdk\jdk-17.0.9
值,点击确定完成新建。
- 点击
- 优化 Path 变量的值为
%JAVA_HOME%\bin
,使其满足归一原则:- 若 Path 变为单行模式,则在变量值最前面添加
C:\Windows\System64;
即可。
- 若 Path 变为单行模式,则在变量值最前面添加
# 使用 setx 命令配置 JAVA_HOME 变量
setx JAVA_HOME "D:\jdk\jdk-17.0.9"
# 查看JAVA_HOME变量
set "JAVA_HOME"
# 查看JAVA_HOME变量
echo %JAVA_HOME%
E02. HelloWorld程序
心法:Java 程序运行分为编写,编译和运行三个步骤。
编写:我们写代码文件,叫做源文件,后缀是 .java。
编译:把我们能看懂的 .java 文件编译成 JVM 能看懂的 .class 文件。
运行:将 .class 文件中的全部类先加载到 JVM,然后再转换成对应 OS 的机器码。最后运行机器码。
1. 开发HelloWorld
武技:使用 Nodepad3 开发 HelloWorld 程序
- 编写源代码:比如开发 D:\HelloWorld.java 文件:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello 周航宇!");
}
}
- 编译源代码:每次改动源代码后,都需要重新编译一次才可生效:
# 切换到D盘
d:
# 使用 `dir` 命令查看该位置下的文件
dir
# 编译HelloWorld.java文件
javac HelloWorld.java
- 运行字节码:
- 运行是指运行加载到 JVM 中的类,而不是字节码文件本身,所以不要添加 .class 后缀。
- 在 JDK11+ 的版本中,可以直接运行 Java 源文件,无需编译也不会产生字节码文件。
# 正确:运行 JVM 中的 HelloWorld 类
java HelloWorld
# 错误:运行 JVM 中 HelloWorld 包下的 class 类
java HelloWorld.class
2. 编码三大规矩
心法:编码三大规矩
- Java 代码中不会出现任何中文符号,但字符串中可以。
- Java 代码中的小括号,中括号,大括号,单引号,双引号都是成对儿出现的。
- Java 代码中,行尾遇到左大括号,则下一行必须缩格(按一次 Tab 键)。
3. 详解class类
心法:Java 类是 Java 封装的最小单位。
public:表示该类可以被公开访问,且一个 Java 文件中只能存在一个被 public 修饰的类。
class:该关键字用来标识后面的 HelloWorld 是一个类:
- 一个 Java 文件中可以存在多个 class 关键字。
- 一个 Java 文件可以编译成多个字节码文件。
HelloWorld:类名必须和文件名一致且不能重复,必须使用大驼峰单词,建议使用英文名词。
{}:类体中只能包含属性和方法。
4. 详解main方法
心法:main 方法是程序主入口,只能写在 public class {} 中才可以被调用。
public:表示该方法可以被公开访问,以保证 JVM 在任何情况下都可以访问到这个入口。
static:表示该方法共享且先行,为了让 JVM 调用起来更方便。
void:表示 main 方法不返回任何值,因为 main 方法结束即表示整个程序结束,无需返回值。
main:JVM 只认 main 为入口方法的名字,所以该名称是固定的。
(String[] args):形参列表,可使用 java HelloWorld aa bb
来向 main 方法传递参数。
{}:方法体中只能包含逻辑代码。
5. 详解输出语句
心法:输出语句用于在控制台输出指定的内容。
System.out:系统标准输出,默认输出位置为 Console 控制台。
.println(“HelloWorld!”):换行输出方法,括号中的内容就是输出的内容。
;:Java 中的每条语句后,只要不以花括号结尾,就必须要以英文分号结尾。
S03. 集成开发工具
心法:集成开发环境 Integrated Development Environment(IDE),是一款集成了代码编写,分析,编译,调试等功能的一体化软件。
集成开发环境目前比较火热的产品有 IntelliJ IDEA 和 Eclipse 两款,个人推荐前者。
- IntelliJ IDEA Ultimate:IDEA 最终版,功能完整,允许试用 30 天,试用结束后需要付费。
- IntelliJ IDEA Community Edition:IDEA 社区版,免费但功能有阉割,不建议使用。
E01. 安装IDEA工具
1. 卸载IDEA
心法:若之前安装的是免安装版 IDEA,直接删除安装目录即可,否则需要在控制面板处卸载。
第一步:删除注册表相关信息:
- 键入 windows + R,然后输入 regedit 进入注册表。
- 找到并删除
计算机\HKEY_CURRENT_USER\SOFTWARE\JavaSoft\Prefs\jetbrains
目录。
第二步:删除残留文件:
- 删除
C:\users\用户名\ideaProjects\
目录(若有)。 - 删除
C:\users\用户名\AppData\Roaming\JetBrains
目录(若有)。 - 删除
C:\users\用户名\AppData\Local\JetBrains
目录(若有)。 - 删除
C:\Program Files\JetBrains
目录(若有)。 - 删除
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\JetBrains
目录(若有)。
2. 安装IDEA
- 自行购买 IDEA 并激活 IDEA,购买后可通过点击 IDEA 中的 Help -> About 查看 IDEA 版本信息和激活情况。
3. 创建Java项目
武技:使用 IDEA 创建 HelloWorld 项目
- 使用管理员方式启动
@/bin/idea64.exe
程序,建议发送桌面快捷方式,并修改双击启动权限:
- 点击 New Project 创建新的项目:
- 在 name 栏填写项目名,尽量不要使用中文和特殊符号。
- 在 location 栏填写项目地址,目录不存在会自动创建。
- 在 JDK 栏选择 Add JDK 添加 JDK 家目录(忘记了可以参考 JAVA_HOME 变量)。
- 点击 create 完成项目创建。
- 开发 HelloWorld 源代码:
- 建包:在 src 目录中创建 com.joezhou.start 包,要求域名倒置 + 功能名格式,全小写。
- 建类:在包中创建 HelloWorld 类: 要求类名大驼峰,默认使用 .java 后缀。
- 方法:在类体中编写 main() 方法: 可使用 main + Tab 键 快捷生成。
- 语句:在 main() 方法中编写输出语句: 可使用 sout + Tab 键 快捷生成。
- 运行 HelloWorld 源代码:
- 编译:IDEA 在运行代码之前,会自动帮我们进行编译工作,无需手动操作。
- 运行:点击 main() 方法左侧的播放按钮,使用 Debug 方式运行该方法,在控制台查看结果。
E02. 配置IDEA工具
心法:IDEA 当前项目常用的配置项入口为
File -> Settings
页面。
IDEA 后续项目常用的配置项入口为 File -> New Projects Setup -> Settings for New Projects..
页面。
1. 禁用自动更新
武技:禁用 IDEA 自动更新
进入 File -> Settings -> Appearance & Behavior -> System Settings -> Updates
界面:
- 取勾
Check IDE updates for ..
选项。 - 取勾
Check for plugin updates
选项。 - 取勾
Show What's New in the editor after an IDE update
选项。
2. 设置字体大小
武技:设置调整 IDEA 字体大小的快捷键
进入 File -> Keymap
界面,展开 Editor Actions
栏,在右上角搜索栏中输入 font
关键字:
- 选择
Increase Font Size
,设置快捷键为Ctrl + Wheel up
,即Ctrl
加鼠标上滑轮。 - 选择
Decrease Font Size
,设置快捷键为Ctrl + Wheel down
,即Ctrl
加鼠标下滑轮。 - 选择
Reset Font Size
,设置快捷键为Ctrl + Middle-Clidk
,即Ctrl
加鼠标中键。
3. 设置字符编码
武技:设置 IDEA 字符编码(需要再次设置其他项目)
进入 File -> Settings -> Editor -> File Encodings
界面:
- 修改
Global Encoding
为UTF-8
编码。 - 修改
Project Encoding
为UTF-8
编码。 - 修改
Default encoding for properties files
为UTF-8
编码。 - 勾选
Transparent native-to-ascii conversion
项。
4. 设置代码模板
武技:设置 IDEA 代码模板,设置后每次新建类,接口等文件时候,会自动添加作者名(阿里规约推荐每个类都要添加作者名)。
进入 File -> Settings -> Editor -> File and Code Templates
界面:
- 修改
Class
的定义上方添加文档注释以及@author 周航宇
作者名。 - 修改
Interface
的定义上方添加文档注释以及@author 周航宇
作者名。 - 修改
Enum
的定义上方添加文档注释以及@author 周航宇
作者名。 - 修改
AnnotationType
的定义上方添加文档注释以及@author 周航宇
作者名。 - 修改
Record
的定义上方添加文档注释以及@author 周航宇
作者名。
5. 隐藏指定目录
武技:隐藏 IDEA 文件目录,比如 *.idea 和 *.iml 文件可以隐藏(防止误操作)但不推荐直接删除。
进入 File -> Settings -> Editor -> File Types
界面,并切到 Ignored Files and Folders
选项卡:
- 添加
*.idea
以隐藏 Project 视图中的*.idea
目录,按回车确认。 - 添加
*.iml
以隐藏 Project 视图中的*.iml
文件,按回车确认。
6. 启用自动导包
武技:启用 IDEA 自动导包
进入 File -> Settings -> Editor -> General - Auto Import
界面:
- 勾选
Add unambiguous imports on the fly
: 动态添加明确的导入。 - 勾选
Optimize imports on the fly
: 优化导入,即删除多余的包。
7. 展示方法分隔线
武技:展示方法分隔线
进入 File -> Settings -> Editor -> General - Appearance
界面:勾选 Show method separators
选项。
8. 配置终端工具
武技:修改 IDEA 终端
进入 File -> Settings -> Tools -> Terminal
界面,选择 Shell path
为 C:\Windows\system32\cmd.exe
即可。
9. 安装三方插件
心法:IDEA 插件推荐
插件名称 | 功能 |
---|---|
Translation | 翻译工具,快捷键 ctrl + shift + y |
Gitee | 托管中心工具 |
GenerateAllSetter | 快速生成 Set 默认值 |
maven-search | 搜索 Maven 依赖 |
Maven Helper | 查看 Maven 依赖关系图 |
jclasslib Bytecode Viewer | 查看字节码 |
Vue | Vue 支持 |
WeChat weapp Support | 微信小程序支持 |
Wechat mini program support | 微信小程序支持 |
Redis Helper | Redis 客户端 |
Mongo DB Browser | MongoDB 客户端 |
武技:安装 IDEA 插件
- 进入插件市场
File -> Settings -> plugins -> Marketplace
:网络不好可点击小齿轮设置代理为http://plugins.jetbrains.com
地址。 - 在 Marketplace 中搜索常用插件,点击 install 进行下载常用插件。
- 点击
File -> Invalidate Caches... -> just Restart IDE..
重启 IDEA,否则插件暂不生效。
S04. 项目管理工具
心法:Maven 是 Apache 下的一个纯 Java 开发的免费开源的项目管理工具,因其依赖管理和一键构建两大优势而备受好评。
依赖管理:Maven 在项目的 POM 文件中以坐标的方式引入和集中管理项目的依赖,自动下载,安全便捷。
一键构建:Maven 自带一些命令用于快速的对项目进行清理,编译,测试,打包,部署等工作。
E01. 安装Maven工具
1. 下载安装工具
武技:安装 Maven 工具的前提是 JDK1.7+ 环境,且正确配置了 JAVA_HOME 环境变量。
下载 apache-maven-3.9.9-bin.zip 并直接解压缩即可。
2. 配置环境变量
- 配置环境变量 MAVEN_HOME,值为 Maven 家目录:
- 添加环境变量 Path,值为
%MAVEN_HOME%\bin
以满足归一原则:
- 在 CMD 窗口,使用
mvn -version
查看 Maven 版本:
# 查看 Maven 版本
mvn -version
E02. 搭建Maven仓库
心法:Maven 项目在引入某依赖时,会依次在本地仓库,远程仓库(若有)和中央仓库寻找,寻到时依次向前备份,Maven 依赖的坐标可以在 MvnRepository 网查询。
本地仓库:计算机本地某个文件夹,如 D:\repository
等,需自行在 setting.xml 中进行配置。
远程仓库:一般用于多地团队开发,可以内网配置或外网配置。
中央仓库:中央仓库 是Maven 团队维护的仓库,服务于外网,若官网挂了,可以参考 Maven Central 网站。
Maven 获取依赖的流程:
1. 配置Maven仓库
- 新建
D:\maven\repository
仓库目录,位置和取名随意。 - 在配置文件
@/conf/settings.xml
的<settings>
中配置本地仓库地址:
<!--Maven 本地仓库位置-->
<localRepository>D:\maven\repository</localRepository>
2. 配置阿里云镜像
心法:为 Maven 配置第三方镜像可以提升依赖的下载的速度。
武技:在
conf/settings.xml
文件的<mirrors>
标签中,为 Maven 配置阿里云镜像。
<!--阿里云私服镜像-->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
3. 初始化Maven工具
武技:初始化 Maven 工具,包括确认环境变量,确认配置文件,检查仓库,下载基础的 help 插件等。
# 初始化Maven工具: 提示 `BUILD SUCCESS` 表示完成
mvn help:system
E03. 整合Maven工具
武技:将 Maven 工具整合到 IDEA 中
进入 File -> Settings -> Build, Execution, Deployment -> Build Tools -> Maven
页面:
- 在
Maven home directory
栏选择 Maven 的根目录,即 MAVEN_HOME 的值。 - 在
User settings file
栏选择 Maven 的主配文件,提前勾选后方 Override 选项。 - 在
Local repository
栏选择 Maven 的本地仓库目录,提前勾选后方 Override 选项。
进入 File -> New Projects Setup -> Settings for New Projects -> Build, Execution, Deployment -> Build Tools -> Maven
页面,配置同上。
重启 IDEA,否则配置不生效。
1. 创建Maven父项目
心法:Maven 父子项目的意义
Maven 父项目一般用于统一管理所有子项目依赖的版本,而 Maven 子项目负责具体的工程开发。
武技:创建 Maven 父项目 v1-1-basic-rookie
- 点击
File -> New -> Project -> Maven
: 选择JDK,填写项目坐标。 - 创建好父项目后,删除父项目的 src 目录,因为父项目不用于开发和测试,仅用于描述项目结构。
- 检查 IDEA 的 Maven 配置和 IDEA 的编码配置。
- 在父项目的 POM 文件中锁定依赖版本(标签名可以自定义):
<!--全局属性-->
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<junit.version>4.13.2</junit.version>
<lombok.version>1.18.24</lombok.version>
<hutool-all.version>5.8.25</hutool-all.version>
</properties>
- 在父项目的 POM 文件中管理依赖坐标:
<!--依赖管理-->
<dependencyManagement>
<dependencies>
<!--junit-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
<!--hutool-all-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>${hutool-all.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
2. 创建Maven子项目
武技:创建 Jar 包 Maven 子项目 helloworld
- 右键父项目
New -> Module -> Maven
: 选择 JDK,填写项目坐标。 - 检查 IDEA 的 Maven 配置和 IDEA 的编码配置。
- 在子项目中开发 HelloWorld 入门程序:
- 在 src/main/java 中开发 com.joezhou.app 包。
- 在 com.joezhou.app 包中开发 HelloWorld 类。
package com.joezhou.app;
/** @author 周航宇 */
public class HelloWorld {
public static void main(String[] args) {
System.out.println("HelloWorld!!!");
}
}
3. 常用Maven命令
心法:Maven 常用命令
Maven 一键构建流程:
武技:测试常用 Maven 项目构建命令
右键项目 Open In -> Terminal
: IDEA 要以管理员方式运行,终端的权限才足够:
# 清理命令: 清理 `out/target` 文件夹下的 `classpath` 文件
mvn clean
# 编译命令: 将Java文件编译成 `classpath` 文件
mvn compile
# 测试命令: 先执行编译命令,再执行单元测试方法
mvn test
# 打包命令: 先依次执行编译和测试命令,然后将Java项目打Jar包,Web项目打War包
mvn package
# 打包命令: 跳过测试环节打包
mvn clean -Dmaven.test.skip=true package
# 安装命令: 先依次执行编译,测试和打包命令,然后将项目安装到Maven本地仓库
mvn install
S05. 项目测试工具
E01. Maven依赖配置
相关标签 | 描述 | 示例 |
---|---|---|
<dependencies> | 划分依赖配置区 | |
<dependency> | 用于定义一条依赖 | |
<groupId> | 依赖的横坐标 | org.projectlombok:项目包名 |
<artifactId> | 依赖的纵坐标 | lombok:项目名 |
<version> | 依赖的版本 | 1.18.24 |
<scope> | 依赖的生效范围 | compile:编译、测试、运行,打包时生效,默认值。 test:仅编译(测试),运行(测试)时生效。 provided:仅编译、测试时生效,运行环境包含时不被打包。 runtime:仅测试,运行,打包时生效。 |
<optional> | 依赖是否可传递 | true:不向调用方传递此依赖。 false:向调用方传递此依赖,默认值。 |
E02. Junit单元测试
1. Junit测试规范
心法:Junit 测试类需要在
src/test/java
包中进行编写和开发,其余规范如下:
测试类 public class UserTest
:命名建议使用 Test 后缀。
测试方法 testInsert(){}
:方法名必须为 public 修饰,返回值必须为 void 描述,方法必须无参数。
运行注解 @Test testInsert(){}
:需要在测试方法上标记 @Test 注解,否则无法运行该方法。
前置注解 @Before before(){}
:标记 @Before 注解的方法会在每个 Junit 测试方法执行前执行。
后置注解 @After after(){}
:标记 @After 注解的方法会在每个 Junit 测试方法执行后执行。
2. 添加Junit依赖
武技:在项目的 POM 文件中引入 Junit 依赖。
若子项目不指定 <version>/<scope>
,则使用父项目管理的依赖。
若子项目指定了 <version>/<scope>
,则使用子项目自己的依赖,表示覆盖父项目管理的对应内容。
<!--三方依赖-->
<dependencies>
<!--junit-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
</dependencies>
3. 测试Junit功能
package junit;
/** @author 周航宇 */
public class JunitTest {
@Before
public void before() {
System.out.println("学习");
}
@Test
public void testJavaSE() {
System.out.println("JavaSE");
}
@Test
public void testJavaEE() {
System.out.println("JavaEE");
}
@After
public void after() {
System.out.println("使我快乐");
}
}
S06. 项目协同工具
心法:Git 是一个分布式的版本控制工具,可以帮助我们在团队开发中多人并行地修改服务器端的同一个文件。
Git 支持记录何时,何地,何人对文件进行何种操作,且每次操作时,版本号都会递增。
为避免提交过程发生冲突,必须遵守 推前必拉 的原则。
Git 的分区存储:
E01. 安装Git服务端
1. 服务端搭建
武技:Windows 安装 Git 服务端
- 下载 Git-2.28.0-64-bit.exe,然后傻瓜式安装。
- 配置 Git 服务端:
# 查看Git版本
git --version
# 设置全局开发人员标识,否则某些命令会失效,用户名和邮箱自定义
git config --global user.name joezhou
git config --global user.email yy06200210@163.com
# 查看全局开发人员标识
git config --list
- 在目录中右键 Git Bash Here 可直接开启 Git 命令行。
- 若 OS 系统更新了 Win11 之后,鼠标右键的 Git Bash Here 不见了:
- 使用
Win+R -> regedit
打开注册表。 - 进入注册表的
\HKEY_CLASSES_ROOT\Directory\Background\
目录:- 选中 shell,右键新建项 Git Bash Here。
- 选中 Git Bash Here ,右键新建项 command。
- 选中 command,双击右侧的 (默认) 项,输入 git-bash.exe 的位置,如
"D:\Git\git-bash.exe" "--cd=%v."
等。 - 选中 Git Bash Here,双击右侧的 (默认) 项,输入 git-bash.exe 的位置。如
D:\Git\git-bash.exe
等,不用加双引号。
- 使用
2. IDEA整合
武技:在 IDEA 中整合 GIT 服务端
- 在 IDEA 中配置 Git 服务:
- 进入
File -> Settings -> Version Control -> Git
界面。 - 在 Path to Git executable 栏填写
@/bin/git.exe
地址。 - 点击 Test 按钮测试,出现 Git 版本即视为配置成功。
- 进入
- 从 IDEA 中断连 Git 服务:
- 进入
File -> Settings -> Version Control -> Directory Mappings
界面,点击减号删除指定项目的 Git 连接。 - 若永久不想恢复,则去项目所在文件系统中删除 .git 目录即可。
- 进入
3. 注册远程库
- 注册并登录 GitEE官网,右上角绑定邮箱,否则无法整合到 IDEA 中。
- 进入
File -> Settings -> Version Control -> Gitee
界面,点击加号,填入 GitEE 绑定的邮箱和登录密码。 - 在 Connection timeout 栏增加超时时间,以避免网络不佳的情况。
E02. 新建APP项目
1. 分享项目
武技:赵四分享项目到 GitEE 远程仓库
- 新建 Maven 项目,开发 HelloWorld 代码,建议在项目根目录下开发一个 README.md 说明文件。
- 将项目首次 Share 到 GitEE 远程库:
- 点击
VCS -> Share Project on Gitee
进入 Share 界面。 - 选择要 Share 的目录和文件,建议将 target 目录取勾。
- 点击 Share 按钮,完成操作。
- 点击
- 在 GitEE 中查看本次 Share 操作是否成功:
- Share 成功后,项目中会多出一个 .git 目录,用于存放 Git 相关配置。
- Share 失败时,可尝试在 GitEE 中手动创建项目后再进行 Share 操作。
2. 邀请队友
心法:仓库成员权限
权限 | 游客 | 报告者 | 观察者 | 开发者 | 管理员 |
---|---|---|---|---|---|
在 公开仓库 克隆代码 | 支持 | 支持 | 支持 | 支持 | 支持 |
在 公开仓库 下载代码 | 支持 | 支持 | 支持 | 支持 | 支持 |
在 公开仓库 拉取代码 | 支持 | 支持 | 支持 | 支持 | 支持 |
在 公开仓库 评论代码 | 支持 | 支持 | 支持 | 支持 | 支持 |
在 公开仓库 下载附件 | 支持 | 支持 | 支持 | 支持 | 支持 |
在 私有仓库 下载附件 | 支持 | 支持 | 支持 | 支持 | |
在 私有仓库 克隆代码 | 支持 | 支持 | 支持 | ||
在 私有仓库 下载代码 | 支持 | 支持 | 支持 | ||
在 私有仓库 拉取代码 | 支持 | 支持 | 支持 | ||
推送代码 | 支持 | 支持 | |||
上传附件 | 支持 | 支持 | |||
删除自己的附件 | 支持 | 支持 | |||
删除他人的附件 | 支持 | ||||
添加仓库成员 | 支持 | ||||
编辑仓库属性 | 支持 |
武技:赵四将刘能设置为自己的队友
- 在 GitEE 中进入指定仓库,点击
管理 -> 仓库成员管理 -> 开发者
。 - 点击右上角添加仓库成员,点击邀请用户,建议使用复制链接的方式。
E03. 克隆APP项目
1. IDEA克隆项目
武技:刘能使用 IDEA 克隆项目到本地
- 点击
VCS -> Git -> Clone...
进入克隆界面:- 输入远程库 URL 地址和项目存放位置。
- 一直 Next 直到 Finish 结束,完成 Clone 操作。
- 若克隆下来的项目残缺不全,则删除 .idea 文件并重启 IDEA 即可。
- 若克隆下来的项目中,src 目录不是蓝色,则需要手动设置:
- 如右键 src 目录,选择
Mark Directory As -> Source Root
。 - 如右键 resources 目录,选择
Mark Directory As -> Resources Root
。 - 若是 Maven 项目,直接在 Maven 窗口刷新 Maven 配置即可恢复。
- 如右键 src 目录,选择
2. GIT克隆项目
武技:刘能使用 Git 命令克隆项目到本地
- 在本地新建一个空白目录
D:\git-project
。 - 在目录中右键
Git Bash Here
开启 Git 命令行。
# 完整地将远程项目拷贝到本地
git clone https://gitee.com/coder-joezhou/javabook.git
E04. 推送APP项目
1. IDEA推送代码
武技:刘能使用 IDEA 推送修改后的内容
- 新增一个文件 Hello.java,点击文件右键
Git -> Add
,表示将该文件 Add 到版本库暂存区。 - 编写内容后,使用
Ctrl + k
: 将该文件 Commit 到版本库分支。 - 使用
Ctrl + T
拉取项目最新版本,避免冲突。 - 使用
Ctrl + Shift + K
将代码 Push 到远程库。 - 在 GitEE 中查看本次 Push 操作是否成功。
2. GIT推送代码
武技:刘能使用 Git 命令推送修改后的内容
在项目目录新建文件 start.txt,右键 Git Bash Here
开启命令行。
# 查看文件位置,红色表示文件在工作区,绿色表示文件在版本库暂存区
git status
# 将文件添加到版本库暂存区
# 后悔可用 `git rm --cached start.txt` 撤回
git add start.txt
# 将文件提交到版本库分支
# 后悔可用 `rm start.txt` 撤回
git commit -m "信息" start.txt
# 绑定远程仓库: 克隆下来的项目不需要此步骤
git remote add origin https://gitee.com/coder-joezhou/javabook.git
# 查看当前绑定的远程仓库
git remote -v
# 从远程获取项目最新版本,弹日志直接 `:wq` 跳过
git pull origin master --allow-unrelated-histories
# 3条命令强制拉取项目最新版本到本地
git fetch --all;
git reset --hard origin/master;
git pull
# 将文件push到远程库 `origin` 的 `master` 分支上
# 需要填写GitEE邮箱和登录密码
git push -u origin master
Java道经第1卷 - 第1阶 - 新手村(一)