2023版IDEA的下载、安装、配置、快捷键、模板、插件与使用

news2024/11/13 9:56:17

🎉 为什么会有这篇教程:熟悉 IDEA 并能灵活熟练使用 IDEA 能极大提高您的开发效率!!!

📍 本文教程基于当前 idea 的最新版本 2023.2.2

📍 本文教程的所有操作图片均是实操测试截图或 gif 动态演示,合计 314 张图片,呈现的截图使用的 IDEA 的 Dark 主题。

📍 您的任何设置在配置后记得点击 ApplyOk 进行保存。

📍 本文教程更适用于 IDEA 2023 及以上版本,如果您的 IDEA 版本是 2022 及以下,由于不同版本 IDEA 操作可能存在一定差异,请参考我的另一篇教程:2022版IDEA的下载、安装、配置、快捷键与使用。当然,如果您的 IDEA 版本是 2022 及以下,建议您阅读完 2022 版 IDEA 教程后再来看这篇文章,因为相较于 2022 版肯定是增加了更多的实用操作并对内容进一步优化完善。

文章目录

  • 1.认识 IntelliJ IDEA
    • 1.1 JetBrains 公司介绍
    • 1.2 IntelliJ IDEA 介绍
    • 1.3 IDEA 的主要优势:(vs Eclipse)
      • 🍀 功能强大
      • 🍀 符合人体工程学
    • 1.4 IDEA 的下载
  • 2.IDEA 卸载与安装
    • 2.1 卸载过程
    • 2.2 安装前的准备(系统要求)
    • 2.3 安装过程
    • 2.4 运行 IDEA
  • 3.Hello World 的实现
    • 3.1 新建 Project - Class
    • 3.2 编写代码
    • 3.3 运行
  • 4.JDK 相关设置
    • 4.1 项目的 JDK 设置
    • 4.2 out 目录和编译版本
  • 5.详细设置
    • 5.1 如何打开详细配置界面
      • 🍀 显示工具栏
      • 🍀 选择详细配置菜单或按钮
    • 5.2 系统设置
      • 🍀 默认启动项目配置
      • 🍀 取消自动更新
    • 5.3 设置整体主题
      • 🍀 选择主题
      • 🍀 设置菜单和窗口字体和大小
      • 🍀 设置 IDEA 背景图
    • 5.4 设置编辑器主题样式
      • 🍀 编辑器主题
      • 🍀 字体大小
      • 🍀 注释的字体颜色
    • 5.5 显示行号与方法分隔符
    • 5.6 代码智能提示功能
    • 5.7 自动导包配置
      • 🍀 Java 类自动导入
      • 🍀 maven 依赖自动导入
    • 5.8 设置项目文件编码(必须改)
    • 5.9 设置控制台的字符编码
    • 5.10 修改类头的文档注释信息
    • 5.11 设置自动编译
    • 5.12 设置为省电模式
    • 5.13 取消双击 shift 搜索
    • 5.14 是否在单行显式编辑器选项卡与最多打开的标签数
    • 5.15 设置 import 显示 * 时的个数
    • 5.16 设置 Java 文件注释位置适当代码缩进
    • 5.17 设置 XML 文件注释位置适当代码缩进
  • 6.工程与模块管理
    • 6.1 IDEA 项目结构
    • 6.2 Project 和 Module 的概念
    • 6.3 创建 Module
    • 6.4 删除模块
    • 6.5 导入其他人模块到自己项目
    • 6.6 同时打开两个 IDEA 项目工程
      • 🍀 在已经打开一个 Project 情况下打开新工程的方式
      • 🍀 设置打开方式
  • 7.代码模板的使用
    • 7.1 查看 Postfix Completion 模板(后缀补全)
    • 7.2 查看 Live Templates 模板(实时代码模板)
    • 7.3 常用代码模板
    • 7.4 自定义代码模板
      • 🍀 自定义后缀补全模板
      • 🍀 自定义 Live Templates
      • 🍀 其它自定义 Live Templates 模板
        • 📌 单元测试模板
        • 📌 创建多线程
        • 📌 冒泡排序
  • 8.快捷键的使用
    • 8.1 常用的默认快捷键
      • 🍀 日常快捷键
        • 📌 通用型
        • 📌 提高编写速度
        • 📌 类结构、查找和查看源码
        • 📌 查找、替换与关闭
        • 📌 调整格式
      • 🍀 Debug 快捷键
    • 8.2 查看快捷键
      • 🍀 已知快捷键操作名,未知快捷键
      • 🍀 已知快捷键,不知道对应的操作名
    • 8.3 自定义快捷键
      • 🍀 修改运行程序的快捷键
      • 🍀 修改多行注释的快捷键
      • ⚠️ 注意事项
    • 8.4 使用其它平台快捷键
  • 9.IDEA 断点调试(Debug)
    • 9.1 为什么需要 Debug
    • 9.2 设置 Debug 连接方式
    • 9.3 Debug 的步骤
      • 🍀 添加断点
      • 🍀 启动调试
      • 🍀 单步调试工具介绍
    • 9.4 多种 Debug 情况介绍
      • 🍀 行断点
      • 🍀 方法断点
      • 🍀 字段断点
      • 🍀 条件断点
      • 🍀 异常断点
      • 🍀 线程调试
      • 🍀 强制结束
    • 9.5 自定义调试数据视图
    • 9.6 计算表达式
    • 9.7 常见问题
  • 10.创建不同类型的工程
    • 10.1 创建多模块 Java 工程
    • 10.2 创建 Java Web 工程
      • 🍀 IDEA 中配置 Tomcat
      • 🍀 创建 Web 工程
      • 🍀 配置 web 工程
      • 🍀 运行服务
      • 🍀 乱码的解决
    • 10.3 创建 Maven Java 工程
      • 🍀 Maven 的介绍
      • 🍀 Maven 的配置
      • 🍀 Maven Java 工程的创建
      • 🍀 基本的 Maven 命令
    • 10.4 创建 Maven Web 工程
      • 🍀 创建 Maven 的 Web 工程步骤
      • 🍀 开发 jsp 依赖 jar 包
        • 📌 找不到 HttpServlet 错误
        • 📌 EL 表达式没有提示问题
  • 11.关联数据库
    • 11.1 关联方式
    • 11.2 常用操作
  • 12.版本控制(Version Control)
    • 12.1 提前安装好 Git 的客户端
    • 12.2 关联 git.exe
    • 12.3 关联 GitHub 上的账户,并测试连接
    • 12.4 演示使用
      • 🍀 在 GitHub 上创建账户下的一个新的仓库作为测试
      • 🍀 支持从当前登录的 Github 账号上直接 Checkout 项目
      • 🍀 在 IDEA 中 clone GitHub 上的仓库
      • 🍀 本地代码分享到 GitHub
    • 12.5 推送代码到远程仓库
  • 13.IDEA 推荐/常用插件
    • 13.1 Alibaba Java Coding Guidelines
    • 13.2 jclasslib bytecode viewer
    • 13.3 Translation
    • 13.4 GenerateAllSetter
    • 13.5 Rainbow Brackets Lite - Free and OpenSource
    • 13.6 CodeGlance Pro
    • 13.7 Statistic
    • 13.8 Presentation Assistant
    • 13.9 Key Promoter X
    • 13.10 JavaDoc
    • 13.11 LeetCode Editor
    • 13.12 GsonFormatPlus
    • 13.13 Material Theme UI
    • 13.14 MyBatisX
    • 13.15 Chinese (Simplified) Language Pack / 中文语言包
  • 14.实用操作
    • 14.1 缓存和索引的清理
    • 14.2 本地历史记录的查看
    • 14.3 IDEA 中打开文件或文件夹在文件资源管理器中位置
    • 14.4 包折叠与分层显示
    • 14.5 设置代码界面水平或垂直显示(界面分屏显示)
    • 14.6 获取 java 类的各种路径
    • 14.7 定位类在项目或 jar 中的位置

1.认识 IntelliJ IDEA

1.1 JetBrains 公司介绍

IDEA 是 JetBrains 公司的产品,该公司成立于 2000 年,总部位于捷克的布拉格,致力于为开发者打造最高效智能的开发工具。

image-20231005164851357

公司旗下还有其它产品,比如:

  • WebStorm:用于开发 JavaScript、HTML5、CSS3 等前端技术
  • PyCharm:用于开发 python
  • PhpStorm:用于开发 PHP
  • RubyMine:用于开发 Ruby/Rails
  • AppCode:用于开发 Objective - C/Swift
  • CLion:用于开发 C/C++
  • DataGrip:用于开发数据库和 SQL
  • Rider:用于开发 .NET
  • GoLand:用于开发 Go

用于开发 Android 的 Android Studio,也是 Google 基于 IDEA 社区版进行迭代的。

1.2 IntelliJ IDEA 介绍

IDEA,全称 IntelliJ IDEA ,是 Java 语言的集成开发环境,目前已经(基本)代替了 Eclipse 的使用。IDEA 在业界被公认为是最好的 Java 开发工具(之一),因其功能强悍、设置人性化,而深受 Java、大数据、移动端 程序员的喜爱。尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS 整合、代码审查、创新的 GUI 设计 等方面的功能可以说是超常的。

IntelliJ IDEA 在 2015 年的官网上这样介绍自己:

Excel at enterprise, mobile and web development with Java, Scala and Groovy,with all the latest modern technologies and frameworks available out of thebox.

IntelliJ IDEA 主要用于支持 Java、Scala、Groovy 等语言的开发工具,同时具备支持目前主流的技术和框架,擅长于企业应用、移动应用和 Web 应用的开发。

image-20231005165303496

1.3 IDEA 的主要优势:(vs Eclipse)

🍀 功能强大

  1. 强大的整合能力。比如:Git、Maven、Spring 等;

    image-20231005170111882

  2. 开箱即用的体验(集成版本控制系统、多语言支持的框架随时可用,无需额外安装插件)。

🍀 符合人体工程学

  1. 高度智能(快速的智能代码补全、实时代码分析、可靠的重构工具);
  2. 提示功能的快速、便捷、范围广;
  3. 好用的快捷键和代码模板;
  4. 精准搜索。

1.4 IDEA 的下载

🏠 下载网址: https://www.jetbrains.com.cn/idea/download/?section=windows

IDEA 分为两个版本:**旗舰版(Ultimate)**和 社区版(Community)。两个不同版本的详细对比,可以参照官网文档。

IDEA 的大版本每年迭代一次,大版本下的小版本(如:2023.x)迭代时间不固定,一般每年 3 个小版本。

同时,JetBrains 官网也提供了 IDEA 的详细使用文档。

2.IDEA 卸载与安装

2.1 卸载过程

在本机的『设置』找到『应用』,搜索『idea』,进行卸载即可。

image-20231005171339401

如果需要保留下述数据,就不要打 √。如果想彻底删除 IDEA 所有数据,那就打上 √。

image-20231005171845122

软件卸载完以后,还需要删除其它几个位置的残留:

  • 路径:C:\Users\【本机用户名】\AppData\Local\JetBrains

    image-20231005172126132

  • 路径:C:\Users\【本机用户名】\AppData\Roaming\JetBrains

    image-20231005172439113

2.2 安装前的准备(系统要求)

image-20231005172623881

  • 64 位 Windows 10 1809 及更高版本,或 Windows Server 2019 及更高版本;
  • 最低 2 GB 可用 RAM,推荐 8 GB 系统总 RAM;
  • 3.5 GB 硬盘空间,推荐 SSD;
  • 最低屏幕分辨率 1024 x 768。

从安装上来看,IntelliJ IDEA 对硬件的要求似乎不是很高。可是在实际开发中并不是这样的,因为 IntelliJ IDEA 执行时会有大量的缓存、索引文件。所以如果你正在使用 Eclipse / MyEclipse,想通过 IntelliJ IDEA来解决计算机的卡、慢等问题,这基本上是不可能的,本质上你应该对自己的硬件设备进行升级。

2.3 安装过程

  1. 下载完安装包,双击 exe 文件直接安装。

  2. 欢迎安装。

    image-20231005172804982

  3. 是否删除电脑上低版本的 IDEA(如果有,可以选择忽略。如果电脑上没有了低版本的 IDEA,则不会出现该步骤)。

    image-20231005172857172

  4. 选择安装目录,默认 C 盘,尽量更改安装目录,改放到 D 盘。

    image-20231005173158611

  5. 设置 IDEA。

    image-20231005173343299

    • Create Desktop Shortcut:创建桌面快捷方式图标,建议勾选;
    • Update context menu:是否将从文件夹打开项目添加至鼠标右键,根据需要勾选;
    • Create Associations:idea 关联文件格式,不推荐勾选,由于 idea 是重量级的软件,因此打开单个文件一般都是使用如 Sublime Text、EditPlus 等轻量级文本编辑器打开;
    • Update PATH variable (restart needed):是否将 IDEA 启动目录添加到环境变量中,即可以从命令行中启动 IDEA,根据需要勾选。但是我们一般都用自己的,即我们在安装 JDK 时都会自己配置好与下载的 JDK 相关联的环境变量。
  6. 使用默认的 JetBrains 来管理 IDEA 的相关内容。

    image-20231005173548354

  7. 安装中。

    image-20231005173630475

  8. 完成安装,重启电脑(在点击『Finish』前保证你没有未保存的文件或任务)。

    image-20231005174304709

2.4 运行 IDEA

双击 IDEA 运行,初次点击会弹出“是否导入设置文件”。

image-20231005174753664

是否同意发送用户数据(特性、使用的插件、硬件与软件配置等),以便于 JetBrains 官方对 IDEA 的继续改进。这里建议选择:不发送

image-20231005174952812

选择『Accept』以信任服务器的证书。

image-20231005175028825

这里由于我有学生教育邮箱并在 JetBrains 进行了申请,因此可以直接 JetBrains Accout

如果你现在是大学生,则可以通过申请教育邮箱来获取 IDEA 的免费使用,教程参考:中南林注册教育邮箱加获取JetBrains个人许可证,续订许可证

当然,如果你没有教育邮箱,则需要参考其它途径获取使用。

image-20231005175849933

image-20231005175911361

image-20231005175925237

image-20231005175936661

3.Hello World 的实现

3.1 新建 Project - Class

image-20231005180230238

打开项目的三种方式:

  • New Project:创建一个新项目;
  • Open:打开一个已有的项目;
  • Get from VCS:通过版本控制工具可以将 git 托管服务器上的项目拉取到本地并打开。

这里我们选择“New Project”:

image-20231005180400937

image-20231005180725678

image-20231005180802017

接着创建 Java 类:

image-20231005180907439

image-20231005181114539

3.2 编写代码

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

在 IDEA 中写完代码后,不用手动保存。因为 IDEA 会进行实时代码保存。

3.3 运行

  1. 方式一

    image-20231005181328486

  2. 方式二

    image-20231005181412247

  3. 方式三:使用快捷键 『Ctrl + Shift + F10』

image-20231005181514655

4.JDK 相关设置

4.1 项目的 JDK 设置

🏠 File --> Project Structure --> Platform Settings --> SDKs

image-20231005183036390

image-20231005181745034

image-20231005181950518

  • SDKs 全称是 Software Development Kit,即软件开发工具包。这里一定是选择 JDK 的安装根目录,不是 JRE 的目录。
  • 这里还可以从本地添加多个 JDK。使用“+”即可实现。

我们还有另一种方式来查看当前项目使用的 JDK 版本:

image-20231005182529495

4.2 out 目录和编译版本

🏠 File --> Project Structure --> Project Settings --> Project

image-20231005182350088

5.详细设置

5.1 如何打开详细配置界面

🍀 显示工具栏

image-20231005183036390

image-20231005183126390

未勾选与勾选的区别:

  • 未勾选的视图展示

    image-20231005183238005

  • 勾选的视图展示(建议勾选)

    image-20231005183337892

🍀 选择详细配置菜单或按钮

image-20231005183421559

image-20231005183740927

5.2 系统设置

🍀 默认启动项目配置

🏠 Settings --> Appearance & Behavior --> System Settings

image-20231005184306531

启动 IDEA 时,如果你是希望自动打开上次开发的项目,则勾选“Reopen last project on startup”,这是默认的设置。

如果你希望自己选择打开的项目,则取消勾选,那么每次启动 IDEA 就会出现如下界面:

image-20231005184518234

🍀 取消自动更新

🏠 Settings --> Appearance & Behavior --> System Settings --> Updates

image-20231005184800293

默认都打 √ 了,建议检查 IDE 更新的 √ 去掉,检查插件更新的 √ 选上。

5.3 设置整体主题

🍀 选择主题

🏠 Settings --> Appearance & Behavior --> Appearance

image-20231005184958343

🍀 设置菜单和窗口字体和大小

🏠 Settings --> Appearance & Behavior --> Appearance

image-20231005185521606

🍀 设置 IDEA 背景图

🏠 Settings --> Appearance & Behavior --> Appearance

image-20231005185702633

image-20231005185847909

效果:

image-20231005185926184

如果你不想再使用背景图片,则可以如下操作取消背景图:

image-20231005190016525

5.4 设置编辑器主题样式

🍀 编辑器主题

🏠 Settings --> Editor --> Color Scheme

image-20231005201145011

🍀 字体大小

🏠 Settings --> Editor --> General

image-20231005201521296

  • Active editor:只对当前代码视图页面生效,或者说只对当前所在的视图文件生效;
  • All editor:所有代码视图页面均会生效。

更详细的字体与颜色设置:

🏠 Settings --> Editor --> Color Scheme --> *

image-20231005201942990

⚠️ 注意:如果选择某个 font 字体,发生了中文乱码,可以在 fallback font(备选字体)中选择一个支持中文的字体。

🍀 注释的字体颜色

🏠 Settings --> Editor --> Color Scheme --> Language Defaults

image-20231005202827169

  • Block comment:修改多行注释的字体颜色;
  • Doc Comment --> Text:修改文档注释的字体颜色;
  • Line comment:修改单行注释的字体颜色。

5.5 显示行号与方法分隔符

🏠 Settings --> Editor --> General --> Appearance

image-20231005203113598

效果:

image-20231005211207677

5.6 代码智能提示功能

🏠 Settings --> Editor --> General --> Code Completion

image-20231005203419214

IntelliJ IDEA 的代码提示和补充功能有一个默认特性:区分大小写。

如果想不区分大小写的话,就把这个勾选去掉。我们建议不勾选。

5.7 自动导包配置

🍀 Java 类自动导入

默认需要自己手动导包,Alt+Enter 快捷键。

image-20231005203629162

自动导包设置:

  • 动态导入明确的包:Add unambiguous imports on the fly,该设置具有全局性;
  • 优化动态导入的包:Optimize imports on the fly,该设置只对当前项目有效。

🏠 Settings --> Editor --> General --> Auto Import

image-20231005203806607

🍀 maven 依赖自动导入

当我们在 maven 项目中添加或删除依赖时,默认需要我们手动刷新一下 pom.xml 的依赖配置进行依赖更新:

image-20231007141510506

Project、Module 新创建或 pom.xml 每次修改时都应该让 IDEA 重新加载 Maven 信息。这对 Maven 目录结构认定、Java 源程序编译、依赖 jar 包的导入都有非常关键的影响。这个过程对我们来说是比较繁琐和容易忘记的,因此我们建议开启自动导入,将这个过程交给 IDEA 来实时监控完成:

🏠 Settings --> Build, Execution, Deployment --> Build Tools

image-20231007142919723

此外,我们还可以关注一下以下两个设置:

🏠 Settings --> Build, Execution, Deployment --> Build Tools --> Maven --> Importing

image-20231007143136631

  • Automatically download:在 Maven 导入依赖包的时候是否自动下载源码和文档。默认是没有勾选的,也不建议勾选,原因是这样可以加快项目从外网导入依赖包的速度,如果我们需要源码和文档的时候我们到时候再针对某个依赖包进行联网下载即可。IntelliJ IDEA 支持直接从公网下载源码和文档的。
  • VM options for importer:可以设置导入的 VM 参数。一般这个都不需要主动改,除非项目真的导入太慢了我们再增大此参数。

5.8 设置项目文件编码(必须改)

🏠 Settings --> Editor --> File Encodings

image-20231005204020383

Transparent native-to-ascii conversion 主要用于转换 ascii,显式原生内容,一般都要勾选。否则像 Properties 文件中的注释显示的不会是中文。

5.9 设置控制台的字符编码

🏠 Settings --> Editor --> General --> Console

image-20231005204220914

5.10 修改类头的文档注释信息

🏠 Settings --> Editor --> File and Code Templates

/**
* Description:
* @Author 狐狸半面添
* @Create ${DATE} ${TIME}
* @Version 1.0
*/

image-20231005204607820

将以上配置保存后,新建一个 Java 文件,就会自动出现我们以上的文档注释:

image-20231005204958636

📍 常用的预设的变量:

${PACKAGE_NAME} - the name of the target package where the new class or interface will be created.
${PROJECT_NAME} - the name of the current project.
${FILE_NAME} - the name of the PHP file that will be created.
${NAME} - the name of the new file which you specify in the New File dialog box during the file creation.
${USER} - the login name of the current user.
${DATE} - the current system date.
${TIME} - the current system time.
${YEAR} - the current year.
${MONTH} - the current month.
${DAY} - the current day of the month.
${HOUR} - the current hour.
${MINUTE} - the current minute.
${PRODUCT_NAME} - the name of the IDE in which the file will be created.
${MONTH_NAME_SHORT} - the first 3 letters of the month name. Example: Jan, Feb, etc.
${MONTH_NAME_FULL} - full name of a month. Example: January, February, etc.

5.11 设置自动编译

🏠 Settings --> Build, Execution, Deployment --> Compiler

image-20231005205220831

5.12 设置为省电模式

🏠 File --> Power Save Mode

IntelliJ IDEA 有一种叫做 省电模式 的状态,开启这种模式之后 IntelliJ IDEA 会关掉 代码检查 和 代码提示 等功能。所以一般也可认为这是一种 阅读模式 ,如果你在开发过程中遇到突然代码文件不能进行检查和提示,可以来看看这里是否有开启该功能。在实际开发中,我们不推荐开启省电模式。当然,如果你是刚学习 Java 的小伙伴,可以开启省点模式来练习编写 Java 的能力。

image-20231005205417375

5.13 取消双击 shift 搜索

🏠 Settings --> Advanced Settings

因为我们按 shift 切换中英文输入方式,经常被按到,总是弹出搜索框,太麻烦了。因此建议勾选,可以取消它。(这个强烈推荐!!!)

image-20231005205706605

5.14 是否在单行显式编辑器选项卡与最多打开的标签数

🏠 Settings --> Editor --> General --> Editor Tabs

我们建议使用多行显示,即勾选 Multiple rows

image-20231005210111591

image-20231007140038736

5.15 设置 import 显示 * 时的个数

🏠 Settings --> Editor --> Code Style --> Java

image-20231005211401610

5.16 设置 Java 文件注释位置适当代码缩进

默认情况下,我们使用快捷键添加注释都是在行的首列进行添加:

image-20231005232501364

但很明显,这不是我们想要的。我们希望注释的格式是这样的:

image-20231007163346209

因此,我们需要设置 Java 文件注释位置适当代码缩进:

🏠 Settings --> Editor --> Code Style --> Java

image-20231007163319111

此时我们再使用快捷键来添加注释:

image-20231005232501365

5.17 设置 XML 文件注释位置适当代码缩进

默认情况下,我们使用快捷键添加注释都是在行的首列进行添加:

image-20231005232501366

但很明显,这不是我们想要的。我们希望注释的格式是这样的:

image-20231007164729525

因此,我们需要设置 Java 文件注释位置适当代码缩进:

🏠 Settings --> Editor --> Code Style --> XML

image-20231007164613131

此时我们再使用快捷键来添加注释:

image-20231005232501367

6.工程与模块管理

6.1 IDEA 项目结构

层级关系:project(工程) - module(模块) - package(包) - class(类)

具体的:

  • 一个 project 中可以创建多个 module;
  • 一个 module 中可以创建多个 package;
  • 一个 package 中可以创建多个 class。

这些结构的划分,是为了方便管理功能代码。

6.2 Project 和 Module 的概念

在 IntelliJ IDEA 中,提出了 ProjectModule 这两个概念。

image-20231005215739536

在 IntelliJ IDEA 中 Project最顶级的结构单元,然后就是 Module。目前,主流的大型项目结构基本都是多 Module 的结构,这类项目一般是按功能划分的,比如:user-core-module、user-facade-module 和 userhessian-module 等等,模块之间彼此可以相互依赖,有着不可分割的业务关系。因此,对于一个 Project 来说:

  • 当为单 Module 项目的时候,这个单独的 Module 实际上就是一个 Project;
  • 当为多 Module 项目的时候,多个模块处于同一个 Project 之中,此时彼此之间具有 互相依赖 的关联关系;
  • 当然多个模块没有建立依赖关系的话,也可以作为单独一个“小项目”运行。

6.3 创建 Module

建议创建“Empty空工程“,然后创建多模块,每一个模块可以独立运行,相当于一个小项目。JavaSE 阶段不涉及到模块之间的依赖。后期在 JAVAEE 中会学习到模块之间的依赖。

步骤:

  1. 创建一个空工程。

    image-20231005220122811

    image-20231005220213347

  2. 选择创建模块。

    image-20231005220319646

  3. 选择模块类型:这里选择创建 Java 模块,给模块命名,确定存放位置。

    image-20231005220516109

  4. 效果。

    image-20231005220608182

6.4 删除模块

  1. 移除模块:只是将模块从 Project 中移除,但并不是从物理磁盘上删除该 module01 文件夹。

    image-20231005220750663

    image-20231005220902803

  2. 彻底删除模块。

    image-20231005220937934

    image-20231005220950493

    image-20231005221024998

6.5 导入其他人模块到自己项目

为了方便演示,我们先创建一个空项目 OtherProject,在这个空项目中创建一个 other_module 模块,然后把这个模块拷贝到我们的 JavaCode 项目中,即将 other_module 文件夹拷贝到 JavaCode 文件夹。

image-20231005221445661

接着打开自己 IDEA 的项目,会在项目目录下看到拷贝过来的 other_module,只不过不是以模块的方式呈现,文件图标是“橙色咖啡”。即表示 other_module 还不是本项目的模块。

image-20231005221655473

查看 File --> Project Structure --> Project Settings --> Modules

image-20231005222002709

我们将 other_module 模块导入到本项目:

image-20231005222041689

image-20231005222113272

image-20231005222132673

image-20231005222150710

image-20231005222158994

image-20231005222204019

image-20231005222217078

image-20231005222226143

image-20231005222248097

此时再查看 other_module 下的 Hello.java,就呈现了正常的 Java 类图标:

image-20231005222334079

6.6 同时打开两个 IDEA 项目工程

🍀 在已经打开一个 Project 情况下打开新工程的方式

比如我们当前已经在 IDEA 中打开了 JavaCode 项目:

image-20231005222635962

这时候需要创建一个新项目或者打开一个已有项目,比如打开一个已有项目 OtherProject:

image-20231005222751128

image-20231005222913017

image-20231005223055109

我们看下选择“New Window”的效果:

image-20231005223153114

🍀 设置打开方式

🏠 Settings --> Appearance & Behavior --> System Settings

image-20231005225445855

7.代码模板的使用

7.1 查看 Postfix Completion 模板(后缀补全)

🏠 Settings --> Editor --> General --> Postfix Completion

image-20231005232200357

后缀补全模板的效果示例,以输入 .if 进行演示:

image-20231005232501341

7.2 查看 Live Templates 模板(实时代码模板)

实时代码模板的原理是配置一些常用代码字母缩写,在输入简写时可以出现你预定义的固定模式的代码,使得开发效率大大提高,同时也可以增加个性化。最简单的例子就是在 java 中输入 sout 会出现 System.out.println();

🏠 Settings --> Editor --> Live Templates

image-20231005232501340

实时模板的效果示例,以输入 mainsout 进行演示:

image-20231005232501342

7.3 常用代码模板

  1. 非空判断
    • 变量.null:if(变量 == null)
    • 变量.nn:if(变量 != null)
    • 变量.notnull:if(变量 != null)
    • ifn:if(xx == null)
    • inn:if(xx != null)
  2. 遍历数组和集合
    • 数组或集合变量.fori:for 循环
    • 数组或集合变量.for:增强 for 循环
    • 数组或集合变量.forr:反向 for 循环
    • 数组或集合变量.iter:增强 for 循环遍历数组或集合
  3. 输出语句
    • sout:相当于 System.out.println
    • soutm:打印当前方法的名称
    • soutp:打印当前方法的形参及形参对应的实参值
    • soutv:打印方法中声明的最近的变量的值
    • 变量.sout:打印当前变量值
    • 变量.soutv:打印当前变量名及变量值
  4. 对象操作
    • 创建对象
      • Xxx.new .var :创建 Xxx 类的对象,并赋给相应的变量
      • Xxx.new .field:会将方法内刚创建的 Xxx 对象抽取为一个属性
    • 强转
      • 对象.cast:将对象进行强转
      • 对象.castvar:将对象强转后,并赋给一个变量
  5. 静态常量声明
    • psf:public static final
    • psfi:public static final int
    • psfs:public static final String
    • prsf:private static final

7.4 自定义代码模板

🍀 自定义后缀补全模板

🏠 Settings --> Editor --> General --> Postfix Completion

image-20231006014054145

image-20231006025811639

例如,输入 String.list,回车后生成 List<String> = new ArrayList<>();,演示效果:

image-20231005232501343

🍀 自定义 Live Templates

🏠 Settings --> Editor --> Live Templates

例如:定义 say 代表 System.out.print(); 语句。

  1. 在 Live Templates 中增加模板,需要先定义一个模板的组,这样方便管理我们所有自定义的代码模板。

    image-20231006015607378

    image-20231006015708879

  2. 在模板组里新建模板。

    image-20231006015851363

  3. 定义模板生效的语言。

    image-20231006020610259

    image-20231006020711801

  4. 定义模板其它内容

    image-20231006020839654

    • Abbreviation:模板的缩略名称;
    • Description:模板的描述;
    • Template text:模板的代码片段;
    • 模板应用范围:比如点击 Define,选择应用在 java 代码中。
  5. 效果演示:

    image-20231005232501344

🍀 其它自定义 Live Templates 模板

📌 单元测试模板
@Test
public void test$var1$(){
    $var2$
}

image-20231006021524325

效果演示:

image-20231005232501345

📌 创建多线程
new Thread() {
    public void run() {
        $var$
    }
}

image-20231006021815934

效果演示:

image-20231005232501346

📌 冒泡排序
for(int $INDEX$ = 1; $INDEX$ < $ARRAY$.length; $INDEX$++) {
    for(int $INDEX2$ = 0; $INDEX2$ < $ARRAY$.length-$INDEX$; $INDEX2$++) {
        if($ARRAY$[$INDEX2$] > $ARRAY$[$INDEX2$+1]){
            $ELEMENT_TYPE$ temp = $ARRAY$[$INDEX2$];
            $ARRAY$[$INDEX2$] = $ARRAY$[$INDEX2$+1];
            $ARRAY$[$INDEX2$+1] = temp;
        }
    }
}

image-20231006022101626

效果演示:

image-20231005232501347

8.快捷键的使用

8.1 常用的默认快捷键

🍀 日常快捷键

📌 通用型
说明快捷键
复制代码-copyctrl + c
粘贴-pastectrl + v
剪切-cutctrl + x
撤销-undoctrl + z
反撤销-redoctrl + shift + z
保存-save allctrl + s
全选-select allctrl + a
📌 提高编写速度
说明快捷键
智能提示-editalt + enter
提示代码模板-insert live templatectrl + j
使用 xx 块环绕-surround with …ctrl + alt + t
调出生成 getter/setter/构造器 等结构-generate …alt + insert
自动生成返回值变量-introduce with …ctrl + alt + v
复制并拷贝指定行的代码-duplicate line or selectionctrl + d
删除指定行的代码-delete linectrl + y
切换到下一行代码空位-start new lineshift + enter
切换到上一行代码空位-start new line before currentctrl + alt + enter
向上移动代码-move statement upctrl + shift + ↑
向下移动代码-move statement downctrl + shift + ↓
向上移动一行-move line upalt + shift + ↑
向下移动一行-move line downalt + shift + ↓
方法的形参列表提醒-parameter infoctrl + p
批量修改指定的变量名、方法名、类名等-renameshift + f6
抽取代码重构方法-extract method …ctrl + alt + m
重写父类的方法-override methods …ctrl + o
实现接口的方法-implements methods …ctrl + i
选中的结构的大小写的切换-toggle casectrl + shift + u
批量导包-optimize importsctrl + alt + o
📌 类结构、查找和查看源码
说明快捷键
如何查看源码-go to class …ctrl + 选中指定的结构 或 ctrl + n 搜索
显示当前类结构,支持搜索指定的方法、属性等-file structurectrl + f12
退回到前一个编辑的页面-backctrl + alt + ←
进入到下一个编辑的页面-forwardctrl + alt + →
打开的类文件之间切换-select previous/next tabalt + ←/→
光标选中指定的类,查看继承树结构-Type Hierarchyctrl + h
查看方法文档-quick documentationctrl + q
类的 UML 关系图-show uml popupctrl + alt + u
定位某行-go to line/columnctrl + g
回溯变量或方法的来源-go to implementation(s)ctrl + alt + b
折叠方法实现-collapse allctrl + shift + -
展开方法实现-expand allctrl + shift + +
📌 查找、替换与关闭
说明快捷键
查找指定的结构ctrl + f
快速查找:选中的 Word 快速定位到下一个-find nextctrl + l
查找与替换-replacectrl + r
直接定位到当前行的首位-move caret to line startctrl + home
直接定位到当前行的末位-move caret to line endctrl + end
查询当前元素在当前文件中的引用,然后按 F3 可以选择ctrl + f7
全项目搜索文本-find in path …ctrl + shift + f
关闭当前窗口-closectrl + f4
📌 调整格式
说明快捷键
格式化代码-reformat codectrl + alt + l
使用单行注释-comment with line commentctrl + /
使用/取消多行注释-comment with block commentctrl + shift + /
选中数行,整体往后移动-tabtab
选中数行,整体往前移动-prev tabshift + tab

🍀 Debug 快捷键

说明快捷键
单步调试(不进入函数内部)-step overF8
单步调试(进入函数内部)-step intoF7
强制单步调试(进入函数内部)-force step intoalt + shift + f7
选择要进入的函数-smart step intoshift + F7
跳出函数-step outshift + F8
运行到断点-run to cursoralt + F9
继续执行,进入下一个断点或执行完程序-resume programF9
停止-stopctrl + F2
查看断点-view breakpointsctrl + shift + F8
关闭 - closectrl + F4

8.2 查看快捷键

🏠 Settings --> Keymap

🍀 已知快捷键操作名,未知快捷键

image-20231006133258025

🍀 已知快捷键,不知道对应的操作名

image-20231006133450111

8.3 自定义快捷键

🍀 修改运行程序的快捷键

我们先去观察下运行程序的默认快捷键:

image-20231006135836108

因此我们已知快捷键 ctrl + shift + f10 去搜索:

image-20231006135953239

image-20231006140111286

那么我们这里先添加新的快捷键 alt + r,再把把 ctrl + shift + f10 快捷键移除。

image-20231006140218366

image-20231006140305776
这是再观察提示的快捷键,就变成了 alt + r,并且可以生效:

image-20231006140354621

🍀 修改多行注释的快捷键

我们这次通过操作名 comment with block comment 进行搜索:

image-20231006140601692

直接添加快捷键 ctrl + alt + /,就不移除原来的了。

image-20231006140635074

选中一段代码,按 ctrl + alt + /,发现是可以生效的:

image-20231005232501349

⚠️ 注意事项

我们修改快捷键后,idea 会为我们生成一套基于 默认配置 + 自定义配置 的新配置方案,如下图:

image-20231006141613786

也就是说,我们所有的自定义配置需要在 windows copy 配置方案中进行修改,并将我们的配置方案切换到 windows copy,你的自定义配置才能生效。

你也可以对自己的新配置方案进行一系列其它操作:

image-20231006142213887

8.4 使用其它平台快捷键

苹果电脑或者是用惯 Eclipse、Visual Studio 等快捷的,可以选择其他快捷键插件。

image-20231006140940580

9.IDEA 断点调试(Debug)

9.1 为什么需要 Debug

编好的程序在执行过程中如果出现错误,该如何查找或定位错误呢?简单的代码直接就可以看出来,但如果代码比较复杂,就需要借助程序调试来查找错误了。

运行编写好的程序时,可能出现的几种情况:

  • 情况 1:没有任何 bug,程序执行正确;
  • 情况 2:运行以后,出现了错误或异常信息。但是通过日志文件或控制台,显示了异常信息的位置;
  • 情况 3:运行以后,得到了结果,但是结果不是我们想要的;
  • 情况 4:运行以后,得到了结果,结果大概率是我们想要的。但是多次运行的话,可能会出现不是我们想要的情况。比如:多线程情况下,处理线程安全问题。

如果出现了情况 2、3、4,都又必要使用 debug。

9.2 设置 Debug 连接方式

默认是 Socket。Shared memory 是 Windows 特有的一个属性,一般在 Windows 系统下建议使用此设置,内存占用相对较少

🏠 Settings --> Build, Execution, Deployment --> Debugger

image-20231007154731651

9.3 Debug 的步骤

Debug(调试)程序步骤如下:

  1. 添加断点;
  2. 启动调试;
  3. 单步执行;
  4. 观察变量和执行流程,找到并解决问题。

🍀 添加断点

在源代码文件中,在想要设置断点的代码行的前面的标记行处,单击鼠标左键就可以设置断点,在相同位置再次单击即可取消断点。

image-20231006150320091

添加与取消断点演示:

image-20231005232501350

🍀 启动调试

IDEA 提供多种方式来启动程序(Launch)的调试,分别是通过菜单(Run –> Debug)、图标(“绿色臭虫” image-20231006150437211 )等等。

image-20231006150603038

image-20231006150641857

🍀 单步调试工具介绍

在默认情况下,显示的调试工具并不全:

image-20231006151215658

我们可以先对调试工具栏做处理:

image-20231006151249696

image-20231006151309044

image-20231006151627909

image-20231006151723808

  • Step Over(F8):进入下一步,如果当前行断点是调用一个方法,则不进入当前方法体内;
  • Step Into(F7):进入下一步,如果当前行断点是调用一个自定义方法,则进入该方法体内;
  • Force Step Into(Alt + Shift + F7):进入下一步,如果当前行断点是调用一个核心类库方法,则进入该方法体内;
  • Step Out(Shift + F8):跳出当前方法体;
  • Run to Cursor(Alt + F9):直接跳到光标处继续调试;
  • Resume Program(F9):恢复程序运行,但如果该断点下面代码还有断点则停在下一个断点上;
  • Stop(Ctrl + F2):结束调试;
  • View Breakpoints(Ctrl + Shift + F8):查看所有断点;
  • Mute Breakpoints:使得当前代码后面所有的断点失效, 一下执行到底。

说明:在 Debug 过程中,可以动态的下断点。

9.4 多种 Debug 情况介绍

🍀 行断点

断点打在代码所在的行上。执行到此行时,会停下来。

image-20231005232501351

🍀 方法断点

断点设置在方法的签名上,默认当进入时,断点可以被唤醒;也可以设置在方法退出时,断点也被唤醒。

image-20231005232501352

在多态的场景下,在父类或接口的方法上打断点,会自动调入到子类或实现类的方法。

public class DebugDemo {

    public static void main(String[] args) {
        Person person = new Man();
        person.show();
    }

}

class Person {
    // 在此方法的签名处加断点
    public void show() {
        System.out.println("Person");
    }
}

class Man extends Person {
    @Override
    public void show() {
        System.out.println("man");
    }
}

image-20231005232501354

🍀 字段断点

在类的属性声明上打断点,默认对属性的修改操作进行监控(只有默认初始化不会被监控,显示初始化、构造器初始化、set 等都会被监控)。

image-20231005232501355

默认情况下是监听属性的修改,我们也可以去监听属性的调用(使用),只需要在“红色眼睛”处鼠标右击,弹出的编辑框中勾选“Field access”即可。

image-20231006155002450

🍀 条件断点

针对以下代码,在满足 i == 3 的条件下,执行断点。

image-20231006155249480

🍀 异常断点

对异常进行跟踪。如果程序出现指定异常,程序就会执行断点,自动停住。

📑 这里以监听 ArithmeticException 为例:

image-20231006155646663

添加异常断点:

image-20231006155736520

image-20231006155804988

image-20231006155826231

debug 演示:

image-20231005232501356

🍀 线程调试

public class DebugDemo {

    public static void main(String[] args) {
        test("thread1");
        test("thread2");
    }

    public static void test(String threadName) {
        new Thread(
                () -> {
                    // 在此处加断点
                    for (int i = 0; i < 100; i++) {
                        System.out.println(Thread.currentThread().getName() + ": " + i);
                    }
                },
                threadName
        );
    }

}

在断点处添加条件:“thread2”.equals(Thread.currentThread().getName())

image-20231006161024472

当 debug 执行程序时,thread1 线程会正常执行,但 thread2 会被卡住。

🍀 强制结束

image-20231006161347082

控制台打印:

获取请求的数据
调用写入数据库的方法
进入insert()方法
获取数据库连接
程序结束

可以看到,insert 方法强制结束执行(强制执行相当于方法 return 了),但 main 方法依旧会继续执行。

9.5 自定义调试数据视图

public class DebugDemo {

    public static void main(String[] args) {
        HashMap<Integer, String> map = new HashMap<>();
        map.put(1, "狐狸半面添");
        // 在此处加断点,此时已经将 "1-狐狸半面添" 加入了 map 中
        map.put(2, "https://www.zhulang.love");
        System.out.println(map);
    }

}

默认情况下 debug 的展示:

image-20231006162259241

我们也可以自定义展示的数据结构:

image-20231006162352203

image-20231006162535935

此时再看 map 结构,就是清晰的原始 map 数据结构:

image-20231006162608051

9.6 计算表达式

image-20231005232501357

9.7 常见问题

force step into 和 step into 的区别:step into 不会进入到 JDK 实现的方法中,而 force step into 会进入到 JDK 实现的方法中。force step into 可以进入到任何方法中单步执行。

那么使用 Step Into 时,会出现无法进入源码的情况。如何解决?

  • 方案1:使用 force step into 即可;

  • 方案2:点击 Setting -> Build,Execution,Deployment -> Debugger -> Stepping。把 Do not step into the classess 中的 java.*javax.* 取消勾选即可。

    image-20231006163155076

📍 初学者对于在哪里加断点,缺乏经验,这也是调试程序最麻烦的地方,需要一定的经验。简单来说,在可能发生错误的代码的前面加断点。如果不会判断,就在程序执行的起点处加断点。

10.创建不同类型的工程

10.1 创建多模块 Java 工程

在工程上,鼠标右击 - New - Module:

image-20231006165555562

指明 Java 工程的名称及使用的 JDK 版本:

image-20231006165655309

10.2 创建 Java Web 工程

⚠️ 注意:不同版本的 IDEA,创建 Java Web 工程的方式可能会有所不同。

🍀 IDEA 中配置 Tomcat

在 IDEA 中配置 Tomcat 之前,需要保证已经下载并解压了 Tomcat 到磁盘。

接下来,我们在 IDEA 中配置 Tomcat:

🏠 Settings --> Build, Execution, Deployment --> Application Servers

image-20231006170009426

配置 Tomcat Server 的位置(根据自己 Tomcat 在磁盘上的安装位置决定):

image-20231006170101162

image-20231006170123698

🍀 创建 Web 工程

我们先创建一个普通项目(或模块),命名为 javaweb02:

image-20231006170337333

为当前项目(或模块)添加模块支持:

🏠 Project Structure --> Project Settings --> Facets

image-20231006170513444

image-20231006170550139

image-20231006170610941

image-20231006170622471

此时我们再来看项目(或模块结构):

image-20231006170713344

为了稍后方便测试,我们在 web 文件夹下新增一个 index.jsp 文件:

image-20231006170803063

image-20231006170822830

<%--
  Created by IntelliJ IDEA.
  User: 狐狸半面添
  Date: 2023/10/6
  Time: 17:08
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>狐狸半面添的客栈</title>
</head>
<body>
欢迎来到<a href="https://www.zhulang.love" target="_blank">狐狸半面添的客栈</a>,持续的实战开发技术分享与编程指南。
</body>
</html>

🍀 配置 web 工程

image-20231006171202792

image-20231006171233415

image-20231006171419022

image-20231006171438984

🍀 运行服务

image-20231006171620500

🏠 浏览器访问:http://localhost:8080/javaweb02_Web_exploded/

image-20231006171728478

🍀 乱码的解决

如果 Tomcat 日志出现乱码:

image-20231006171920663

解决方案:

  1. 点击 Help --> Edit custom VM Options

    image-20231006172235335

  2. 在文件最后面添加:-Dfile.encoding=UTF-8

    image-20231006172317504

  3. 在当前 Tomcat 实例中配置 VM option,添加:-Dfile.encoding=UTF-8

    image-20231006172404613

  4. 在当前 Tomcat 实例配置界面的 Startup/Connection 页签的 Run 和 Debug 添加一个 key 为 JAVA_TOOL_OPTIONS,value 为 -Dfile.encoding=UTF-8 的环境变量。

    image-20231006172540553

    image-20231006172636645

  5. 重启 IDEA;

    image-20231006172707448

    image-20231006172726765

  6. 启动服务。

    image-20231006172817287

10.3 创建 Maven Java 工程

🍀 Maven 的介绍

image-20231006180021657

Maven 是一款自动化构建工具,专注服务于 Java 平台的 项目构建 和 依赖管理 。在 JavaEE 开发的历史上构建工具的发展也经历了一系列的演化和变迁:Make --> Ant --> Maven --> Gradle --> 其他……

构建环节:

image-20231006180034226

  1. 清理:删除以前的编译结果,为重新编译做好准备。
  2. 编译:将 Java 源程序编译为字节码文件。
  3. 测试:运行单元测试用例程序,确保项目在迭代开发过程中关键点的正确性。
  4. 报告:测试程序的结果。
  5. 打包:将 Java 项目打成 jar 包;将 Web 项目打成 war 包。
  6. 安装:将 jar 包或 war 包安装到本地仓库中。
  7. 部署:将 jar 或 war 从 Maven 仓库中部署到 Web 服务器上运行。

🍀 Maven 的配置

Maven 详细配置教程:maven配置阿里镜像与本地仓库,解决IDEA配置maven恢复默认配置问题-CSDN博客

🏠 Settings --> Build, Execution, Deployment --> Build Tools --> Maven

选择自己 Maven 的目录 和 settings 文件,然后配置自己的仓库 reposiroty。

image-20231006183238452

🍀 Maven Java 工程的创建

指明当前 maven 工程的名称、模板等信息。这里要求一个项目组的 jdk 版本必须一致。

通过坐标,就可以定位仓库中具体的 jar 包。如下:

image-20231006183649237

运行 App.java 即可。

image-20231006183812964

当然,我们还需要补全 test 文件夹 和 resources 文件夹,并将 resources 文件夹 mark Directory as 设置为 Resources Root

Maven 的 java 工程的目录结构:

src
----main
--------java
--------resources
----test
--------java
--------resources
pom.xml
  • main 目录用于存放主程序;
  • test 目录用于存放测试程序;
  • java 目录用于存放源代码文件;
  • resources 目录用于存放配置文件和资源文件;

🍀 基本的 Maven 命令

image-20231006184051550

目录下也会有对应的生命周期。其中常用的是:clean、compile、package、install。

比如这里 install,如果其他项目需要将这里的模块作为依赖使用,那就可以 install。安装到本地仓库的位置。

10.4 创建 Maven Web 工程

🍀 创建 Maven 的 Web 工程步骤

指明 Maven 的 web 工程的名称和模板。

image-20231006184302014

配置 Tomcat:

image-20231006184422224

image-20231006184453306

image-20231006184510215

image-20231006184703540

🍀 开发 jsp 依赖 jar 包

📌 找不到 HttpServlet 错误

如果看到 JSP 报错:The superclass “javax.servlet.http.HttpServlet” was not found onthe Java Build Path.

可以加入如下依赖解决。

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    <scope>provided</scope>
</dependency>
📌 EL 表达式没有提示问题

${pageContext} 这个EL表达式中通过 pageContext 对象访问 reuqest 属性时本身是应该有提示的,但如果没有的话加入下面依赖即可。

<dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.1.3-b06</version>
    <scope>provided</scope>
</dependency>

同时针对 index.jsp 文件,修改一下文件头信息为:

<%@page language="java" pageEncoding="utf-8" contentType="text/html;UTF-8" %>

11.关联数据库

前提说明:想要关联数据库,首先你需要在自己的本机电脑或服务器上有数据库系统,如果你还没有在本机上安装过 MySQL,可以参考:MySQL下载与安装、mysql服务启动与停止、mysql使用cmd命令行登录、SQLyog下载与安装,sqlyog登录与操作mysql_cmd命令启动sqlyog服务-CSDN博客

11.1 关联方式

添加指定数据库:

image-20231006201705044

配置 MySQL 数据库的详细信息:

image-20231006202143983

表面上很多人认为配置 Database 就是为了有一个 GUI 管理数据库功能,但是这并不是 IntelliJ IDEA 的 Database 最重要特性。数据库的 GUI 工具有很多,IntelliJ IDEA 的 Database 也没有太明显的优势。

IntelliJ IDEA 的 Database 最大特性就是对于 Java Web 项目来讲,常使用的 ORM 框架,如 Hibernate、Mybatis 有很好的支持,比如配置好了 Database 之后,IntelliJ IDEA 会自动识别 domain 对象与数据表的关系,也可以通过 Database 的数据表直接生成 domain 对象等。

11.2 常用操作

image-20231006202702787

  • 图标1:同步当前的数据库连接。这个是最重要的操作。配置好连接以后或通过其他工具操作数据库以后,需要及时同步;
  • 图标2:配置当前的连接;
  • 图标3:断开当前的连接;
  • 图标4:显示相应数据库对象的数据;
  • 图标5:编辑修改当前数据库对象。

展示 ER 图:

image-20231006202857218

支持将 ER 图导出为文件:

image-20231006202950401

12.版本控制(Version Control)

不管是个人开发还是团队开发,版本控制都会被使用。而 IDEA 也很好的集成了版本控制的相关结构。

很多人认为 IntelliJ IDEA 自带了 SVN 或是 Git 等版本控制工具,认为只要安装了 IntelliJ IDEA 就可以完全使用版本控制应有的功能。这完全是一种错误的解读,IntelliJ IDEA 是自带对这些版本控制工具的插件支持,但是该装什么版本控制客户端还是要照样装的。

IntelliJ IDEA 对版本控制的支持是以插件化的方式来实现的。旗舰版默认支持目前主流的版本控制软件:CVS、Subversion(SVN)、Git、Mercurial、Perforce、TFS。又因为目前太多人使用 Github 进行协同或是项目版本管理, 所以 IntelliJ IDEA 同时自带了 Github 插件,方便 Checkout 和管理你的 Github 项目。

在实际开发中,发现在 IDEA 中使用 SVN 的经历不算愉快,经常会遇到很多问题,比如紧急情况下 IDEA 无法更新、提交等。所以这里,谈下在 IDEA 中使用 Git。

12.1 提前安装好 Git 的客户端

🏠 Git下载与安装教程:git介绍,安装(手把手),命令与使用(包含IDEA操作,github,gitee的万字图文详述)_是谢添啊的博客-CSDN博客

12.2 关联 git.exe

🏠 Settings --> Version Control --> Git

image-20231007144358777

12.3 关联 GitHub 上的账户,并测试连接

🏠 Settings --> Version Control --> GitHub

image-20231007144524783

image-20231007144608810

进行登录:

image-20231007144654621

配置信息,将 Expiration 设置为 No expiration,并全部勾选:

image-20231007145016664

全部勾选后,点击 Generate token

image-20231007145145025

image-20231007145234606

image-20231007145334681

12.4 演示使用

🍀 在 GitHub 上创建账户下的一个新的仓库作为测试

image-20231007150303745

image-20231007150448889

创建成功:

image-20231007150506437

🍀 支持从当前登录的 Github 账号上直接 Checkout 项目

image-20231007150547006

image-20221116022457588

image-20231007150930691

🍀 在 IDEA 中 clone GitHub 上的仓库

image-20231007151116706

将上图复制得到的 url 粘贴至 idea 中:

image-20231007151252564

image-20231007151404864

image-20231007151422251

成功拉取到本地:

image-20231007151443615

🍀 本地代码分享到 GitHub

image-20231007151727374

此时会在 GitHub 上创建一个新的仓库,而非更新已经存在的仓库。

image-20231007152701060

image-20231007152839396

查看一下我们的 GitHub 仓库:

image-20231007153020169

12.5 推送代码到远程仓库

  • clone:拷贝远程仓库
  • commit:本地提交
  • push:远程提交
  • pull:更新到本地

例如我们在 IDEA 中更新了代码,想要推送到远程仓库,可进行如下仓库:

image-20231007153923012

image-20231007153954659

image-20231007154012085

13.IDEA 推荐/常用插件

IDEA 本身很多功能也都是通过插件的方式来实现的。IDEA 已经内置了许多默认的插件。

在国内的网络下,经常出现显示不了插件列表,或者显示了插件列表但无法完成下载安装的情况。这时候你需要自行打开 VPN,一般都可以得到解决。

13.1 Alibaba Java Coding Guidelines

image-20231006203201819

阿里巴巴 Java 编码规范检查插件,检测代码是否存在问题,以及是否符合规范。

使用:在类中,鼠标右键,选择编码规约扫描,在下方显示扫描规约和提示。根据提示规范代码,提高代码质量。

image-20231006204304994

遗憾的是,目前最新版本的阿里巴巴规范插件仍会时不时报错:

image-20231006205920207

所以我们先卸载刚才安装的阿里巴巴规范插件:

image-20231006210413479

再去安装并使用 Alibaba Java Coding Guidelines(Fix Some Bug)

image-20231006210153709

由于该插件只是对阿里巴巴规范插件进行了 bug 修复,因此使用方式是一样的。我们鼠标右击,点击“编码规范扫描”,可以看到更详细的规范说明:

image-20231006210845290

13.2 jclasslib bytecode viewer

image-20231006211254515

可视化的字节码查看器。

使用:

  1. 在 IDEA 打开想研究的类。

    image-20231006211456723

  2. 编译该类或者直接编译整个项目( 如果想研究的类在 jar 包中,此步可略过)。也可以选择运行一次该项目。目的是得到类的字节码文件给插件进行分析使用。

  3. 打开“view”菜单,选择“Show Bytecode With jclasslib” 选项。

    image-20231006211610959

  4. 选择上述菜单项后 IDEA 中会弹出 jclasslib 工具窗口。

    image-20231006211658260

英文设置:

  1. 打开 Help --> Edit Custom VM Options …

    image-20231006211852438

  2. 加上英文配置:-Duser.language=en

    image-20231006211936261

  3. 重启 IDEA,再次查看 jclasslib 工具窗口。

    image-20231006212026305

13.3 Translation

image-20231006212121705

插件生效步骤:

  1. 🏠 Settings --> Tools --> Translation

    image-20231006212659731

  2. 设置翻译服务商,这里以 Youdao Translate(有道翻译) 为例。注意不要使用 Google Translate,因为谷歌已经停止了对中国大陆的翻译服务。

    image-20231006212936327

  3. 注册翻译服务(有道智云、百度翻译开放平台、阿里云机器翻译)帐号,开通翻译服务并获取其应用 ID 和 密钥。

    image-20231006215346536

    image-20231006215514374

    image-20231006223433858

  4. 将 ID 与 密钥 配置到 IDEA。

    image-20231006214246756

使用:鼠标选中文本,点击右键即可自动翻译成多国语言。(想使用该插件进行翻译需要联网)

image-20231005232501358

13.4 GenerateAllSetter

image-20231006223848133

实际开发中还有一个非常常见的场景: 我们创建一个对象后,想依次调用 Setter 函数对属性赋值,如果属性较多很容易遗漏或者重复。

可以使用这 GenerateAllSetter 提供的功能,快速生成对象的所有 Setter 函数(可填充默认值)/ Getter 函数,然后自己再跟进实际需求设置属性值。

image-20231006224228603

image-20231005232501359

13.5 Rainbow Brackets Lite - Free and OpenSource

image-20231006224859724

给括号添加彩虹色,使开发者通过颜色区分括号嵌套层级,便于阅读。

image-20231006225222506

13.6 CodeGlance Pro

image-20231006225330108

在编辑器右侧生成代码小地图,可以拖拽小地图光标快速定位代码,阅读行数很多的代码文件时非常实用。

image-20231006225447566

13.7 Statistic

image-20231006225551032

代码统计工具。

image-20231006225738248

13.8 Presentation Assistant

image-20231006225846034

实时显示使用的快捷键操作的按键。(对开发者没有多大作用,主要适用于讲课人员)

image-20231005232501360

13.9 Key Promoter X

image-20231006230432524

快捷键提示插件。当你执行鼠标操作时,如果该操作可被快捷键代替,会在界面右下角提示,帮助你自然形成使用快捷键的习惯,告别死记硬背。(适用于 IDEA 新手)

image-20231005232501361

同时,我们在右边的工具栏可以看到快捷键提示历史:

image-20231006230830246

13.10 JavaDoc

image-20231006231234254

添加文档注释,按 alt+insert,执行操作:

image-20231005232501362

13.11 LeetCode Editor

image-20231006232226863

在 IDEA 里刷力扣算法题。

我们需要先配置一下 LeeCode 的用户信息:

🏠 Settings --> Tools --> LeeCode Plugin

image-20231007025521694

刷新题目:

image-20231006232424011

获取题目信息:

image-20231006232451853

账号登录(用户名和密码使用的是前几步在 Settings 中配置的,只有登录账号才能提交我们的代码):

image-20231006233448894

13.12 GsonFormatPlus

image-20231007005014350

根据 json 生成对象。

使用:快捷键 alt + salt + insert 调取。

image-20231007011004253

生成的字段设置:

image-20231007011122402

image-20231007011316862

将如下信息拷贝到 JSON 区域:

{
    "name": "狐狸半面添",
    "age": 20,
    "gender": '男',
    "hometown": {
        "province": "湖南省",
        "city": "湘潭市",
        "county": "湘潭县"
    }
}

image-20231007011628455

image-20231007011737181

效果:

image-20231007011836329

13.13 Material Theme UI

image-20231007005826302

对于很多人而言,写代码时略显枯燥的,如果能够安装自己喜欢的主题将为开发工作带来些许乐趣。IDEA 支持各种主题插件,其中最出名的当属 Material Theme UI。

image-20231007010510416

13.14 MyBatisX

image-20231007155004988

该插件配合 mybatis 框架进行使用。作用是将 xml 与 接口关联,可以快速开发、生成代码与进行跳转。

13.15 Chinese (Simplified) Language Pack / 中文语言包

image-20231007155301467

IDEA 默认是英文界面,安装此插件可以设置为中文界面。很多新手比较喜欢对 IDEA 进行汉化,但我们并不推荐。在开发者社区和官方文档中,大部分的学习资源和教程都是基于英文版本的 IntelliJ IDEA。如果使用汉化版本,可能会面临资源匮乏、文档不全或者难以获取帮助的问题。

因此,此插件建议不使用,程序员应该慢慢去适应英文界面。

14.实用操作

14.1 缓存和索引的清理

IntelliJ IDEA 首次加载项目的时候,都会创建索引,而创建索引的时间跟项目的文件多少成正比。在 IntelliJ IDEA 创建索引过程中即使你编辑了代码也是编译不了、运行不起来的,所以还是安安静静等 IntelliJ IDEA 创建索引完成。

IntelliJ IDEA 的缓存和索引主要是用来加快文件查询,从而加快各种查找、代码提示等操作的速度,所以 IntelliJ IDEA 的索引的重要性再强调一次也不为过。但是,IntelliJ IDEA 的索引和缓存并不是一直会良好地支持 IntelliJ IDEA 的, 某些特殊条件下,IntelliJ IDEA 的缓存和索引文件也是会损坏的,比如:断电、蓝屏引起的强制关机,当你重新打开 IntelliJ IDEA,很可能 IntelliJ IDEA 会报各种莫名其妙错误,甚至项目打不开,IntelliJ IDEA 主题还原成默认状态。即使没有断电、蓝屏,也会有莫名奇怪的问题的时候,也很有可能是 IntelliJ IDEA 缓存和索引出现了问题,这种情况还不少。遇到此类问题也不用过多担心。我们可以清理缓存和索引。如下:

image-20231007145621028

image-20231007145706700

清除缓存、索引本质也就是去删除 C 盘下的 system 目录下的对应的文件而已,所以如果你不用上述方法也可以删除整个 system。当 IntelliJ IDEA 再次启动项目的时候会重新创建新的 system 目录以及对应项目缓存和索引。

14.2 本地历史记录的查看

即使我们项目没有使用版本控制功能,IntelliJ IDEA 也给我们提供了本地文件历史记录。无论是文件夹还是单个文件,都具备查看操作历史的功能。

image-20231007154308510

image-20231007154327303

14.3 IDEA 中打开文件或文件夹在文件资源管理器中位置

image-20231007155916885

image-20231007160017931

14.4 包折叠与分层显示

包折叠实际指的是“Compact Middle Packages(紧凑型中间包)”结构,即:

image-20231007160621695

如果我们想让这几层包进行分层显示,就需要:

image-20231007160724280

image-20231007160831584

14.5 设置代码界面水平或垂直显示(界面分屏显示)

  • Split Right:将该标签页分离到右边,但在左边依旧会保留该标签页。
  • Split and Move Right:将该标签页分离到右边,在左边不会保留该标签页。
  • Split Down:将该标签页分离到下面,但在上面依旧会保留该标签页。
  • Split and Move Down:将该标签页分离到下面,在上面不会保留该标签页。

水平显示:

image-20231007161308959

image-20231007161400341

当然,你也可以手动进行分屏,例如:

image-20231005232501363

14.6 获取 java 类的各种路径

image-20231007165337260

image-20231007165516832

14.7 定位类在项目或 jar 中的位置

比如我想定位 Map 在 jar 包中的位置,我可以先进入到 Map 的源码文件,然后点击 Select Opened File 图标进行定位:

image-20231010022003309

image-20231010022142787

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1080901.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LSTM的预测算法 - 股票预测 天气预测 房价预测 计算机竞赛

0 简介 今天学长向大家介绍LSTM基础 基于LSTM的预测算法 - 股票预测 天气预测 房价预测 这是一个较为新颖的竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng-senior/postgraduate 1 基于 Ke…

中老年网红,下一个流量红海?丨小红书银发博主内容分析

有“中老年女性收割机”之称的短视频网红主播“秀才”&#xff0c;账号9月2日被封的消息一发出&#xff0c;便刷屏了各大社交平台的热榜。如果说“秀才”是行走的“中老年妇女收割机”&#xff0c;那么网红“一笑倾城”&#xff0c;则被称为“中老年男人心目中的易梦玲”。数据…

矩阵病态问题

病态&#xff08;ill-conditioned)矩阵病态&#xff08;ill-posed)方程 病态矩阵 矩阵的frobenius范数&#xff1a; 对每一个元素平方&#xff0c;求和再开平方 矩阵的条件数&#xff1a;矩阵的frobenius范数与该矩阵的逆的frobenius范数的乘积 对于同阶矩阵&#xff0c;矩阵的…

LayoutInflater.inflate的用法

LinearLayout ll findViewById(R.id.ll); LayoutInflater layoutInflater LayoutInflater.from(this); layoutInflater.inflate(R.layout.aa,ll); 把第一个参数的xml内容加到第二个参数viewgroup中。 如果第二个参数为null&#xff0c;就直接view xxxxxx.inflate();

Unity设计模式——模板模式

模板方法模式&#xff0c;定义一个操作中的算法的骨架&#xff0c;而将一些步骤延迟到子类中。模板方法使得 子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 Abstract Class 是抽象类&#xff0c;其实也就是一抽象模板&#xff0c;定义并实现了一个模版方法。这…

面试过不了?超全,高频接口测试面试题+答案,预判你的预判...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 面试题1&#xff…

Postgresql源码(115)LLVM JIT运行逻辑分析(上)

1 JIT入口开关 总入口&#xff1a;jit_enabled打开 且 生成计划成本超过jit_above_cost启动JIT。 计划成本超过jit_optimize_above_cost&#xff0c;执行PGJIT_OPT3使用O3对IR进行优化。计划成本超过jit_inline_above_cost&#xff0c;执行PGJIT_INLINE。jit_expressions开关如…

MES生产管理系统 MES系统

MES生产管理系统 MES系统 MES包括ERP及生产管理&#xff0c;主要有销售&#xff0c;采购&#xff0c;仓库&#xff0c;财务&#xff0c;设备管理&#xff0c;生产&#xff0c;报工&#xff0c;质量管理模块。适用于各行各业的生产情况。 1.销售模块&#xff08;销售订单&…

证件照如何自己换底色?快速证件照换底色方法

提交证件照信息的时候&#xff0c;通常需要满足一些规定&#xff0c;比如某一种背景底色&#xff0c;当不符合要求的时候&#xff0c;我们该怎么更换证件照底色呢&#xff1f;其实可以使用证件照换背景&#xff08;证件照换背景 证件照换颜色 照片换背景-压缩图&#xff09;工具…

Android Studio git 取消本地 commit(未Push)

操作比较简单 1.选中项目然后依次选择&#xff1a;Git->Repository->Reset HEAD 2.然后再to Commit中输入HEAD^&#xff0c;表示退回到上一个版本。

c++中什么时候用double?

c中什么时候用double? 在C中&#xff0c;通常使用double数据类型来表示浮点数&#xff0c;特别是当需要更高的精度时。以下是一些情况下可以考虑使用double的示例&#xff1a; 1. **需要高精度的计算**&#xff1a;当您需要进行精确的浮点数计算时&#xff0c;double通常比flo…

CANoe从零学习第2期课程,全新上线!

课程内容的视频解读 CANoe编程宝典课程内容介绍 课程内容的视频解读&#xff0c;复制链接&#xff0c;打开抖音查看 &#xff1a;CANoe编程宝典课程内容介绍 - 抖音

2023年中国划船机产量、销量及市场规模分析[图]

划船机是一种健身器材&#xff0c;它模拟了划船的运动&#xff0c;可以锻炼身体的肌肉力量和协调性。划船机通常由座椅、把手、脚踏板和传动装置组成&#xff0c;使用者可以通过拉动把手来模拟划船的动作&#xff0c;从而达到锻炼身体的目的。 划船机产业链 资料来源&#xff…

4+1视图与UML

目录 逻辑视图过程视图开发视图物理视图&#xff08;部署视图&#xff09;用例视图 41视图&#xff0c;即逻辑视图&#xff0c;过程视图&#xff0c;实现视图&#xff0c;部署视图&#xff0c;用例视图。 为什么不用一个视图&#xff1f; 针对多个用户&#xff0c;即终端用户&a…

史上最强,Jmeter接口测试-dubbo接口实战(超级详细)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、dubbo插件准备…

微信开发工具构建npm and git切换分支

目录 git切换分支NPM构建 git切换分支 案例&#xff1a; 再次查看分支就会发现自己的分支已切换&#xff0c;然后需要重新构建NPM一次 NPM构建 记得安装一下这个&#xff0c;然后在构建 如果未安装NPM&#xff0c;这时候需要打开命令端&#xff0c;安装操作&#xff0c;操作…

Logseq插件市场打不开问题处理

我的处理步骤: 1. 切换代理模式: 默认的system-> sockets: 按照下图所示 2. 再次切换, socks->system, 搞定

【计算机网络】-基础知识

1.计算机网络&#xff08;计算机技术通信技术&#xff09;的结合 ICTITCT 2.计算机分类1&#xff1a;通信子网&#xff08;通信节点、通信链路&#xff09;&#xff0c;资源子网&#xff08;PC、服务器&#xff0c;类似终端节点&#xff09; 分类2&#xff1a;网络的结构,例如…

typora、picgo与gitee配置

typora、picgo与gitee配置 typoragitee注册新建仓库配置仓库私人令牌右上角选择“设置”选择私人令牌后生成新令牌设置私人令牌描述与权限帐号安全验证 初始化readme picgo国内可下载链接插件设置图床设置picgo设置 typora偏好设置图库接入 处理以前笔记中的图片 一直以来用的w…

java线程池超详细解析

java线程池超详细解析 一、线程池主要核心原理二、线程池代码实现三、自定义线程池1、自定义线程池原理2、自定义线程池参数3、自定义线程池任务拒绝策略3、代码实现 四、线程池多大合适呢&#xff1f; 一、线程池主要核心原理 创建一个池子&#xff0c;池子中是空的提交任务时…