禅与计算机 禅与计算机
首页
  • Java基础

    • JavaScript
  • Java并发编程

    • 《JavaScript教程》
    • 浅谈Java并发安全发布技术
    • 浅谈Java线程池中拒绝策略与流控的艺术
    • 深入源码解析synchronized关键字
    • 浅谈Java并发编程中断的哲学
    • 深入理解Java中的final关键字
    • 深入剖析Java并发编程中的死锁问题
    • 浅谈池化技术的优雅关闭
    • synchronized关键字使用指南
    • 浅谈并发编程等待通知模型
    • 浅谈传统并发编程的优化思路
    • JS设计模式总结
  • JVM相关

    • 从零开始理解JVM的JIT编译机制
    • 简明的Arthas配置及基础运维教程
    • 基于Arthas Idea的JVM故障排查与指令生成
    • 基于arthas量化监控诊断java应用方法论与实践
    • 深入剖析arthas技术原理
  • 计算机组成原理

    • 浅谈CPU流水线的艺术
  • 操作系统

    • Linux性能问题排查最佳实践
    • Linux上IO性能问题的故障排除实践
    • 浅谈Linux权限管理
    • 从操作系统底层浅谈程序栈的高效性
  • 编码最佳实践

    • 浅谈现代软件工程TDD最佳实践
    • 浅谈TDD模式下并发程序设计与实现
    • 面向AI编程新范式Trae后端开发环境搭建与实践
    • 基于提示词工程的Redis签到功能开发实践
    • 基于Vibe Coding的Redis分页查询实现
    • 告别AI无效对话:资深工程师的提示词设计最佳实践
  • 实用技巧与配置

    • Mac常用快捷键与效率插件指南
    • Keynote技术科普短视频制作全攻略
  • 写作

    • 写好技术博客的5大核心原则:从认知科学到AI工具的全流程指南
  • 开发工具

    • IDEA配置详解与高效使用指南
  • Nodejs
  • 博客搭建
  • Spring AI Alibaba

    • Spring AI Alibaba深度实战:一文掌握智能体开发全流程
    • Spring AI Alibaba最佳实践-jvm监控诊断agent开发教程
  • Nodejs
  • 博客搭建
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

sharkchili

计算机禅修者
首页
  • Java基础

    • JavaScript
  • Java并发编程

    • 《JavaScript教程》
    • 浅谈Java并发安全发布技术
    • 浅谈Java线程池中拒绝策略与流控的艺术
    • 深入源码解析synchronized关键字
    • 浅谈Java并发编程中断的哲学
    • 深入理解Java中的final关键字
    • 深入剖析Java并发编程中的死锁问题
    • 浅谈池化技术的优雅关闭
    • synchronized关键字使用指南
    • 浅谈并发编程等待通知模型
    • 浅谈传统并发编程的优化思路
    • JS设计模式总结
  • JVM相关

    • 从零开始理解JVM的JIT编译机制
    • 简明的Arthas配置及基础运维教程
    • 基于Arthas Idea的JVM故障排查与指令生成
    • 基于arthas量化监控诊断java应用方法论与实践
    • 深入剖析arthas技术原理
  • 计算机组成原理

    • 浅谈CPU流水线的艺术
  • 操作系统

    • Linux性能问题排查最佳实践
    • Linux上IO性能问题的故障排除实践
    • 浅谈Linux权限管理
    • 从操作系统底层浅谈程序栈的高效性
  • 编码最佳实践

    • 浅谈现代软件工程TDD最佳实践
    • 浅谈TDD模式下并发程序设计与实现
    • 面向AI编程新范式Trae后端开发环境搭建与实践
    • 基于提示词工程的Redis签到功能开发实践
    • 基于Vibe Coding的Redis分页查询实现
    • 告别AI无效对话:资深工程师的提示词设计最佳实践
  • 实用技巧与配置

    • Mac常用快捷键与效率插件指南
    • Keynote技术科普短视频制作全攻略
  • 写作

    • 写好技术博客的5大核心原则:从认知科学到AI工具的全流程指南
  • 开发工具

    • IDEA配置详解与高效使用指南
  • Nodejs
  • 博客搭建
  • Spring AI Alibaba

    • Spring AI Alibaba深度实战:一文掌握智能体开发全流程
    • Spring AI Alibaba最佳实践-jvm监控诊断agent开发教程
  • Nodejs
  • 博客搭建
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 技术文档

    • IDEA配置详解与高效使用指南
      • 写在文章开头
      • 前置铺垫
      • 基础配置
        • win系统重命名冲突问题
        • 背景色设置与护眼插件集成
        • 取消默认打开上次项目
        • 设置鼠标调整字体大小
        • 项目编码以及全局编码配置
        • JDK版本配置
        • 设置自动导包
        • 设置显示TAB栏文件数量
        • 过长或自适应屏幕的换行
        • 侧边栏跟随点击的代码
        • maven全局配置
        • 调大编译内存
        • 调整运行堆内存
      • 实用快捷键
        • 快速生成变量名
        • 批量赋值
        • 复制类名
        • 粘贴复制历史
        • 简单粘贴
        • 格式化代码
        • 偷懒删除
        • 复制当前行到下一行
        • 选定多行
        • 行首行尾跳转
        • 单词间跳转
        • 选中当行指定数量单词
        • 下划线转驼峰、全大写等
        • 快速查找当前文件变量
        • 快速替换当前文件变量
        • 创建测试用例快捷键
        • 解决报错问题
        • 导入指定包
        • 生成构造方法或者get set方法
        • 多行删除
        • 多行复制(组合操作)
        • 移动多行(组合操作)
        • 函数或方法间的来回跳转
        • 查看todo代办事项窗口
        • 查看当前类的方法列表等
        • 在曾经停留过的地方来回跳转
      • 后缀补全
        • for循环
        • 判空或者非空判断
        • 布尔值判断
        • 格式化字符串
        • 将变量设置为同步锁
        • 异常捕获
        • 强制转换
      • 快速导航
        • 定位最近访问文件列表
        • 查找文件
      • 源码检索
        • 查看字节码
        • 文件搜索
        • 长函数快速定位
        • 查看变量调用
        • 查看方法或者变量调用详细路径
        • 查看todo项
      • 代码调试
        • 使用IDEA进行JDK源码debug
        • 进入下一行
        • 进入方法
        • 结束运行或进入下一断点
        • 跳转至光标所在处
        • 跳转至jdk包方法或自带方法中
        • 查看函数或者变量的被调用处
        • 快速跳到下一断点
        • watch观察变量的变化
        • 调试时赋值
      • 断点调试
        • 取消在某断点停止
        • 取消所有断点
        • 条件断点
        • 设置异常断点
        • 设置条件监控
        • 分析
        • 方法断点
        • 接口断点
        • 属性断点
        • 强制返回
        • 快速回到断点停顿处
        • 流式编程调试
        • 其他注意事项
        • 免重启调试
        • 调试多线程
      • 调试时不进入流操作细节
      • 开发技巧
        • 配置远程连接客户端
        • 调整Git提交时的检查
        • 添加File mask
        • 修复GitLab提示输入token的问题
      • 集成GIT
        • 展示版本控制历史
        • 将项目交给git管理
        • 查看版本变化
        • 与远程仓库关联
        • 追加提交
        • Code review
      • live template
        • live template简介
        • 自制代码模板
      • IDEA插件推荐
        • lombok
        • maven helper
        • 日志插件
        • 时序图插件
        • 翻译插件
        • Rainbow Brackets
      • 小结
      • 参考
    • npm常用命令
    • npm packageJson属性详解
    • yaml语言教程
    • Git修改分支名
  • GitHub技巧

  • Nodejs

  • 博客搭建

  • 编程工具
  • 技术文档
sharkchili
2026-01-27
目录

IDEA配置详解与高效使用指南

# 写在文章开头

这是笔者一直以来维护的一篇关于IDEA配置和快捷键操作的教程指南,长期维护和更新一些不错的配置和实践,希望通过这篇介绍,能让读者对IDEA的各种配置和操作都能够熟练掌握和运用。

你好,我是 zhangshiyu ,禅与计算机程序设计艺术布道者,希望我的理念对您有所启发。

📝 我的公众号:写代码的SharkChili
在这里,我会分享技术干货、编程思考与开源项目实践。

🚀 我的开源项目:mini-redis
一个用于教学理解的 Redis 精简实现,欢迎 Star & Contribute:
https://github.com/shark-ctrl/mini-redis (opens new window)

👥 欢迎加入读者群
关注公众号,回复 【加群】 即可获取联系方式,期待与你交流技术、共同成长!

# 前置铺垫

需要提前补充一下,笔者后续大量的配置操作都会涉及设置界面,这里介绍一下IDEA的设置快捷键为CTRL+Alt+s键,后文介绍IDEA常见配置就不再赘述这一点了:

# 基础配置

# win系统重命名冲突问题

很多读者反馈在系统升级win11之后idea文件重命名快捷键shift+F6失灵,原因是与win11的输入法快捷键和idea冲突了,对此我们需要进行一下简单的设置,首先找到输入法点击设置:

找到兼容性设置,将以前版本的输入法打开即可:

此时我们的IDEA的重命名功能就恢复了:

# 背景色设置与护眼插件集成

完成idea安装后,笔者都会习惯性调整适合的配色,idea调整配色的修改步骤为:

  1. 左上方依次选择File | Settings | Appearance & Behavior | Appearance
  2. 找到Theme选择Light with light header
  3. 完成此项配置后整个界面背景色就是白色了

按照笔者的个人开发习惯,因为需要长时间盯着大屏进行编码工作,所以对于idea配色优先选择护眼且颜色搭配不会对视力造成冲击的主题,这里笔者推荐安装Falcon Relaxing-Eyes Islands Themes for JetBrains IDE,该插件内置了各种护眼的主题配色提供选择。

我们完成安装后可直接通过主题设置增加护眼配色可选项,此时我们就可以按需选择自己中意的配色:

以笔者为例,一般会选择偏亮色且护眼的relax light grey:

# 取消默认打开上次项目

日常开发都会打开不同的项目,初次安装IDEA之后,每次打开IDEA都会开启上一次启动的项目,所以我们需要进入设置找到File | Settings | Appearance & Behavior | System Settings,然后取消勾选Reopen last project on startup。

# 设置鼠标调整字体大小

在开发过程中可能需要放大或者缩小界面,需要选择File | Settings | Editor | General,然后勾选 Change font size (Zoom) with Ctrl+Mouse Wheel即可,因为笔者的屏幕足够大所以就没有设置这个选项,读者可按需取用。

# 项目编码以及全局编码配置

24版本默认编码会跟随系统走,所以我们每次初始化项目时,需要记得随手修改编码格式,通过File | Settings | Editor | File Encodings找到编码选项即可完成配置:

当然为了方便后续项目的使用,我们也可以通过全局设置的方式设置统一编码格式,即通过File | New Projects Setup| Settings for New Projects..进入新项目的通用设置:

再通过File | Settings | Editor | File Encodings将全局编码格式统一设置为UTF8,这样一来后续的项目就统一采用UTF8格式打开编码了:

# JDK版本配置

默认情况下最新版的IDEA的language level直接从JDK22开始,所以我们日常打开项目时需要记得将JDK版本设置为8(笔者现在默认版本为11),同样的我们通过File |Project Structure|Project找到JDK的所有配置将其设置为JDK8版本即可:

# 设置自动导包

进入设置界面然后通过File | Settings | Editor | General | Auto Import即可找到自动引包的配置界面,勾选Optimize imports on the fly (for current project)

# 设置显示TAB栏文件数量

设置界面选择File | Settings | Editor | General | Editor Tabs,按照笔者的个人使用建议,在大屏面板进行开发的读者可按照如下方式进行设置:

  1. 通过Tab Limit选项即可设置tab栏大小
  2. Tab栏溢出,则换行显示

需要注意的是超过这个数量后IDEA就会将前面未使用的文件进行销毁,具体选项可通过tabs exceed the limit调整为关闭未修改或者关闭未使用:

在这里插入图片描述

# 过长或自适应屏幕的换行

如果希望编码过程中代码对那些溢出屏幕的代码换行显示的话,可以通过File | Settings | Editor | General勾选Use soft wraps in editor即可,可以看到笔者的在换行的文件中仅仅指定了一些配置文件和md,对应编码文件笔者不建议换行(具备代码洁癖的开发者知道如何保持代码的优雅):

在这里插入图片描述

可以看到我们输入长字符串的时候它就会自动换行了

# 侧边栏跟随点击的代码

初始情况下,我们打开IDEA点击Tab栏上的文件,左侧是不会跟随打开的,所以我们可以找到侧边栏的behavior设置勾选下述三个选项确保文件点击跟随

IDEA自动跟随文件

如果希望点击tab栏上的一个文件时,左侧的项目文件结构会跟随移动,我们可以勾选下图所示的选项:

注意IDEA2019是选择这个选项。

可以看到我们选择了UserDto后,左边导航栏也跟随导航栏移动了

# maven全局配置

我们日常调试项目需要查看源码的时候会通过download source进行源码下载阅读,24版本默认情况下使用的是3.9版本,所以我们需要通过File | Settings | Build, Execution, Deployment | Build Tools | Maven将maven修改为我们当前使用的maven版本,以笔者为例,对应设置的maven版本设置为3.5.4:

同时我们也建议去掉Work offline这个选项,关闭离线模式:

mac系统配置操作有类似,唯一区别就是设置需要通过File选项依次定位Setting for new project: Settings | Build, Execution, Deployment | Build Tools | Mavenidea配置初期通过settings for new project选项设置默认maven home:

在这里插入图片描述

如下图,将对应maven home和配置文件设置为自己的版本和路径即可:

# 调大编译内存

基本现在大部分人的笔记本都是配备32G的开发内存且现代企业级项目编译都需要大量内存,一般情况下,笔者建议初次安装idea后启用一下增量编译,通过Settings | Build, Execution, Deployment | Compiler找到对应选项,将共享编译进程堆的大小设置调大一些(默认是700m,笔者这里直接设置为2G):

# 调整运行堆内存

对于新版本的IDEA来说,由于增加了很多的新功能和新特性,所以我们需要分配更大的堆内存来避免频繁GC导致IDEA操作的卡顿感。

对应配置步骤比较简单,我们可以通过Edit Custom VM Options配置参数,也可以通过下图所示的方式即在Help一栏找到Change Memory Settings采用UI配置的方式调整堆内存大小:

以笔者为例,直接设置最大堆内存为8G,完成后选择save或者save and restart使之生效即可:

# 实用快捷键

# 快速生成变量名

在idea生成快捷键的方式有两种,一种是通过live template的var表达式,即在创建的变量后面键入.var,但是这种快捷操作始终需要经历如下三个步骤,影响编码的连贯性(尽管现在基本都是让AI写):

  1. 连续键入4个按键
  2. 选择变量名
  3. 回车

所以笔者更推荐使用快速生成变量的组合快捷键对应不同系统分别是:

  1. mac系统:Command+Option+V
  2. windows系统:Ctrl + Alt + V

这套快捷键相较于前者,不仅键位距离较近,且只需经历:

  1. 组合3个快捷键键入
  2. 选择变量名
  3. 回车

整体节奏的操作体验相较于前者更简单明快,推荐使用。

# 批量赋值

有时候我们在开发中会遇到一个对象需要set多个值,我们就可以安装generateAllSetter这个插件:

安装完成并重启IDEA后,对着需要进行set的对象键入alt+enter即可根据需要完成set,以笔者为例,我们要设置默认值,所以我们就选择with default value选项,当然这也是笔者早期的一些配置,在ai编程的时代下这些操作基本上都是AI辅助生成:

它就会帮我们自动生成相应的set:

# 复制类名

在IDEA中我们可以直接对着类名Ctrl+C,即可将类名粘贴到我们的代码中:

# 粘贴复制历史

在开发过程中你可能会复制无数个代码,或者在其他应用中复制过各种数据,如果你希望粘贴曾经复制过的数据,你可能会再次到达被复制的要用中复制在粘贴到当前文件中。 在IDEA强大的支持下,我们完全可以通过ctrl+shift+v,找到自己的复制历史,如下图所示,例如我们想复制修改配置这个文本,只需键盘键入1即可:

# 简单粘贴

常规cv代码,不管任何位置,IDEA都会自动格式化。 如下情况,当你查阅网上一些代码时,可能会复制到如下代码

若用常规CV操作则会出现下图情况:

这时候就可以使用ctrl+alt+shift+v的简单粘贴,配合alt以及按住滚轮清除行号了,如下图所示

# 格式化代码

无论是古法编程还是AI编程,我们都需要时不时将代码格式化确保代码整洁,对应不同的系统有着不同的快捷方式:

  • windows系统:CTRL+Alt+L
  • Mac系统:command+option+L

# 偷懒删除

这是逼着工程化时间多年后的一套伪删除快捷键,隐文Ctrl+X(Mac为command+X)为剪切快捷键,这里我们可以在指定行任意位置使用快捷键作为删除使用。

# 复制当前行到下一行

当你编码的时候常遇到setname,setage等情况,我们可以CTRL+D第一个set语句复制多句进行修改,它的复制位置将会出现在所复制的行的下方

# 选定多行

古法编程中我们会遇到需要选定多行代码进行剪切/复制操作,windows系统快捷键为shift+方向键选定需要的代码行 (多行选中即可,无需覆盖到每一个关键字,粘贴结果照样为整行)

Mac系统操快捷键相对简洁一些,直接通过shift+方向键即可:

在这里插入图片描述

# 行首行尾跳转

使用键盘的home或者end键即可在当前代码首位来回跳转,对应Mac系统则是command+左右方向键:

# 单词间跳转

有时候我们希望在每个单词之间来回跳转,不同操作系统快捷按键为:

  • windows系统:Ctrl+左右方向键即可实现
  • Mac系统:⌥+左右方向键

# 选中当行指定数量单词

ctrl+shift+左/右即可实现选定当前行中指定数量的单词,如下图,我们希望选定指定行到达Executors之前的单词,我们可以键入Ctrl+shift+右逐步选中:

Mac系统则是option+shift+左右方向键:

在这里插入图片描述

# 下划线转驼峰、全大写等

找到插件市场安装CamelCase并完成安装:

完成后键入shift+alt+u(Mac系统为option+shift+U)即可实现各种格式的变量转换。

# 快速查找当前文件变量

键入ctrl+f即可完成对应变量的查找,同时IDEA还支持匹配大小写,仅仅匹配查结果和仅仅匹配单词、匹配正则等选项:

# 快速替换当前文件变量

输入ctrl+r(Mac系统为command+r)即可配合replace或者replaceAll即可实现逐个替换或者批量替换:

# 创建测试用例快捷键

有时候我们编写完代码需要建立测试用例,过去我们可能是在Test目录手动创建XXXTest,使用IDEA我们只需Ctrl+shift+T(Mac系统为command+shift+T),即可快速生成对当前类的某个方法生成测试方法,如下图选择create new Test

再勾选对应的方法即可

这时候我们就会生成这个方法的测试用例了

# 解决报错问题

对准错误的代码键入alt+enter(同理Mac系统为option+enter)找到错误的处理方式按回车键:

# 导入指定包

使用Alt+enter就可以手动选择需要的包了。

# 生成构造方法或者get set方法

对准代码类点击alt+enter按照提示回车选择constructor:

然后按需选择字段即可:

可以看到指定参数的构造方法就生成了:

生成get和set方法同理:

# 多行删除

按住Alt +鼠标左键,再使用del或者back按钮即可

# 多行复制(组合操作)

多行复制即选中多行之后再进行复制的组合操作,对应如下如下:

  1. 光标点击复制的起始位置, shift+左右上下选择行(对应Mac则是shift+方向键选中多行)

在这里插入图片描述

  1. 点击复制,再到指定位置粘贴即可。

# 移动多行(组合操作)

有时我们希望将多行代码进行移动的组合操作,对应步骤为:

  1. Ctrl+shift+方向键(mac为shift+方向键)选定行
  2. alt+shift+方向键(mac为option+shift+方向键)移动行

如下图,首先选中多行:

然后键入移动快捷键即可完成代码批量上下移动了:

# 函数或方法间的来回跳转

找到对应的方法键入ctrl+b(Mac为command+b)或者鼠标左键

# 查看todo代办事项窗口

如下图点击todo一栏即可看到代码中出现todo字样的代码

# 查看当前类的方法列表等

我们在查看源码的时候需要查看某些函数,但是忘记了函数名是什么,这时候我们就可以使用structure界面来查看java文件的函数列表

在对应java文件下,使用快捷键 Alt+7 (注:需要使用键盘左边的数字键,右边不起作用,具体原因不详)

# 在曾经停留过的地方来回跳转

先Ctrl+B查看函数具体实现

ctrl+alt+左 回到刚刚查看方法调用处的位置

ctrl+alt+右 再次跳转回去查看方法的具体实现

# 后缀补全

# for循环

输入.for选择第一个选项,同理原生for循环用fori,方向循环用forr即可

可以看到代码直接生成了循环的代码

# 判空或者非空判断

如下图,输入.null或者.notnull即可

更多后缀表达式点击到下图所示位置查阅

# 布尔值判断

输入.if,如果要使用!flag的话,我们可以首先.not一下生成!flag,再.if代码就会生成if(!flag){}

# 格式化字符串

在String类后面.format即可,如下图选择第2个选项

# 将变量设置为同步锁

在变量后面输入.sync就可以看到了

于是就会生成这样的代码

# 异常捕获

在对应代码后面.try即可

可以看到代码就这样生成了

# 强制转换

输入.cast或者.castvar即可实现强制转换

可以看到代码最终生成这样

# 快速导航

# 定位最近访问文件列表

当你写在业务层和控制层来回切换时,可以使用ctrl+e(Mac为command+E) 配合回车实现来回切换

# 查找文件

这是笔者最常用的快捷键,双击shift输入关键字即可查找需要的文件,如下所示

# 源码检索

# 查看字节码

24版本依然支持查看字节码文件,我们只需将文件编译之后,找到View下的show Bytecode即可看到需要的字节码文件:

然后我们就可以看到对应的代码对应编译后的字节码了:

# 文件搜索

IDEA24版本相较于之前笔者所使用版本,搜索功能变得更加强大,所以对于文件的检索范围会更广一些,这里笔者以搜索hashmap为例演示一下这个操作,如下图所示,可以看到笔者双击shift唤醒快捷搜索,然后输入关键字hashmap,针对all即可看到所有的选项,此时我们可以点击下图所示的logo展开选中搜索项对应所有文件类型的结果:

如果我们希望仅仅搜索类结果可以包含源码,可以勾选include non-project items获取:

当然我们也可以直接通过点击右边的tab栏进行个性化筛选(仅查询项目中的类或者项目和类库中的),这一点读者可以按照个人习惯使用:

# 长函数快速定位

有时候我们会阅读一个很长的方法,阅读这样的长方法时可能会忘了这个函数的定义,此时我们又不得不回头看看,24版IDEA对此进行了优化,如下对于FutureTask的源码阅读,可以看到无论我们怎么滚动代码,这个方法以及类的定义始终浮在上方。

更神奇的是我们点击这个方法又可以快速回到方法顶部:

# 查看变量调用

众所周知我们查看成员变量的调用处可以通过CTRL+B快速检索所有用到的地方,对应2024版本的IDEA对此快捷键的搜索范围进行了更进一步的优化。

我们还是以FutureTask源码阅读为例,此时笔者希望查看status变量的调用处,于是我们键入快捷键CTRL+B查看,结果如下图所示,它会提示当前项目中并没有用到这个变量,我们可以通过快捷键Ctrl+Alt+F7进行更进一步的范围检索。

以笔者的习惯,笔者会点击右上角的设置扩展检索范围:

这里笔者通常会选择项目或者类库:

完成后点击Find最终所有的调用就都出来了:

# 查看方法或者变量调用详细路径

这里再介绍一种更实用的检索字段或者方法调用详情的检索快捷键,我们将光标停在方法或者字段上,然后键入Alt+F7,即可看到当前要查看的字段或者方法的调用路径。

以笔者为例,可以看到对于run方法的调用处检索,通过左边即可定位到调用,然后右边即可查看调用详情:

# 查看todo项

我们日常进行code review的时候会进行代码走查和todo项的检索,这时候我们就可以通过view找到Tool Windows找到TODO的配置并点击:

随后我们就可以在todo栏看到我们项目中所有的todo注释,需要查看详情我们直接点击即可,这里就不多做赘述了:

# 代码调试

# 使用IDEA进行JDK源码debug

找到下图位置,将相关勾选去掉即可

# 进入下一行

点击文中图标或者键入F8即可调试下一行

# 进入方法

点击下图图标或者键入F7进入当前代码具体执行的方法中进行调试

# 结束运行或进入下一断点

点击下图按键或者键F9结束运行或进入下一断点

# 跳转至光标所在处

点击图中所示按键,或者键入Alt+F9即可跳到光标所在处的代码了

可以看到代码已经跳转到光标所在处了

# 跳转至jdk包方法或自带方法中

# 查看函数或者变量的被调用处

这也是个蛮实用的技巧,以笔者最近阅读的Netty源码为例,笔者希望查看group方法被那些类所调用,对着该方法键入ALT+F7

于是在左下角就会看到所有的调用类以及调用的详情信息:

# 快速跳到下一断点

项目开发最重要的就是调试,24版本对IDEA的调试也做了许多人性化的调整,如下所示,如果笔者希望从这个跳过这几个函数到达最后一行输出,我们只需点击这个游标:

最终代码就会落到我们希望的位置上:

# watch观察变量的变化

IDEA是支持对于变量进行个性化计算和观察的,如下代码所示,如果笔者希望每次看到i+1的变化,我们则可以通过配置watch做到这一点。

public static void main(String[] args) {
        int i=3;
        i++;
        i=i<<2;
        System.out.println(i);
    }
1
2
3
4
5
6

操作步骤如下图所示,在变量监控一栏键入i+1即你的个性化监控逻辑,然后点击add:

可以看到我们的watch显示的是个性运算结果,这对于很多业务场景变量的监控还是很有帮助的,例如我们希望观察Order类的pay数值,我们就可以通过watch键入order.getPay()即可实时观察这个变量的走向和变化:

# 调试时赋值

这是笔者日常开发时的技巧,如果我们希望调试时改变变量的值,可以同通过Alt+F8的变量分析做到这一点。 一下图的代码为例,可以看到i的值按照正常的数据流向会变为16,此时如果

于是我们键入快捷键,在分析栏进行赋值,可以看到,我们改变的数据:

# 断点调试

# 取消在某断点停止

如下图所示,当去掉enable的时候,断点下次将不会被打到:

# 取消所有断点

选择mute breakpoint会将所有的断点置黑,开启调试模式也不会在断点停下:

# 条件断点

如下图,我们希望在第35次循环停下,只需在对应位置插个断点,右键鼠标设置条件即可

可以看到断点在对应条件时停止下来了,其余的情况都不会停在断点上

# 设置异常断点

有时候我们代码会在运行到某一处报错,如下图

这时候我们就可以设置一个异常断点,让代码在报错的位置停止下来,首先我们从控制台中复制错误的类型,然后找到debug设置

添加一个java错误断点

添加我们刚刚复制的错误类型,并点击OK,这时候该断点就设置完成了

再次运行代码,就会发现,代码在运行报错的地方停止下来了,这时候我们就可以分析代码查看报错的原因了

# 设置条件监控

我们希望在debug的控制台可以实时看到变量的变化,我们就可以如下图所示点击加号,添加要监控的数据

如下图,这样我们就可以在调试过程中看到代码的不断变化了

# 分析

我们希望debug时可以看到当前变量的值,就可以使用alt+f8进行查看和计算

可以看到我们还可以进行各种运算或者判断等:

可以看到对应的分析结果会在下方输出:

# 方法断点

在方法上插入断点,直接按下F9,方法执行结束后就会在return语句中停下,方便我们调试整个代码

# 接口断点

我们在接口定义处插上断点:

调试调用接口方法时,IDEA就会在接口实现类处停顿,如下图2所示:

# 属性断点

在属性处打上断点,idea就会在外部代码对其进行set的时候停留在set处

可以看到在程序进行set设置时,方法在这个属性的set上停住了:

# 强制返回

有时候我们希望调试过程中已经知道了bug所在,希望代码不在继续执行去操作资源,例如下面这段代码就会操作redis数据,有些读者可能会用强制停止应用的方式结束,某些情况下这种方式还是会操作资源

正确的方法在下图所示位置,点击强制返回并设置返回值

# 快速回到断点停顿处

点击下图所示按钮即可看到断点停在那个位置

# 流式编程调试

在流终端处插上一个普通断点,点击图中所示按钮即可按需查看流的变化了

# 其他注意事项

有时候我们调试会看不到代码的堆栈信息,很多时候其实都是我们手抖导致了,如果读者又发现问题可以参考这篇文章即可解决问题:https://blog.csdn.net/qq_20597727/article/details/84870076 (opens new window)

# 免重启调试

我们希望修改的代码不需要重启服务器就能生效,在idea中无需任何插件即可实现这一点,首先我们以debug模式启动项目

完成后,我们修改代码,可以看到此时代码灰的代表不会执行。我们使用Ctrl+F9编译一下:

可以看到,代码更新了

# 调试多线程

我们有这样一段代码,有一个继承Runnable的的类

public class Task implements Runnable {
    @Override
    public void run() {
        System.out.println("当前线程名 "+Thread.currentThread().getName());
    }
}
1
2
3
4
5
6

还有4个执行该方法的线程

 @Test
    void test() {
        Runnable r = () -> System.out.println(Thread.currentThread().getName());
        Thread t1 = new Thread(new Task(), "t1");
        Thread t2 = new Thread(new Task(), "t2");
        Thread t3 = new Thread(new Task(), "t3");
        Thread t4 = new Thread(new Task(), "t4");
        t1.start();
        t2.start();
        t3.start();
        t4.start();

		 t1.join();
        t2.join();
        t3.join();
        t4.join();
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

在task上插断点,断到t2线程:

我们手动将调整为t3,结果当前执行线程没有发生任何变化:

我们将debug改为按照thread进行debug:

再次进行调试就可以按需切换线程:

而且,我们按f9也不会一口气执行完,而是一个个线程经过断点再结束:

# 调试时不进入流操作细节

如下代码,我们日常为了方便调试,在配置IDEA的时候可能会放行所有java.*的源码包,这使得我们在调试流操作时可能就会步入繁杂的流式转换的源码中:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6);
        list = list.stream()
                .map(x -> x * x)
                .filter(x -> x % 2 == 0)
                .collect(Collectors.toList());

        System.out.println(list);
1
2
3
4
5
6
7

例如我们在上述代码的map映射流操作中打了个断点,调试时就会不断在stream包下游走,影响调试的效率:

所以我们可以通过File | Settings | Build, Execution, Deployment | Debugger | Stepping找到断点步进调试配置,点击+号添加配置选择ADD Pattern添加调试时不步进的源码包:

输入java.util.stream.*点击确定,由此后续进行流调试时就不会步入流操作源码细节:

# 开发技巧

# 配置远程连接客户端

新版本的IDEA支持直接在terminal上连接WSL和配置SSH远程连接,我们只需点击终端旁边的箭头即可进行配置了:

以笔者为例,因为本机已经安装了WSL,所以直接点击WSL之后即可直接操作Linux子系统了:

# 调整Git提交时的检查

最后一点算是一个日常操作归档吧,每次提交GIT时都要等好一段时间,这是因为IDEA默认提交代码时会对代码进行分析,如果我们希望取消代码分析和todo检查可以直接点击左边Tab栏的右下角

然后去掉这两个选项即可:

# 添加File mask

IDEA 2024版进行全局搜索的时候不支持根据文件类型进行过滤,对此笔者查阅网上的方案找到了配置方案,首先我们要到C:\xxx\xxxx\AppData\Roaming\JetBrains\IntelliJIdea2024.2\options找到一个名为find.xml的文件,默认情况下我们看到的配置如下,可以看到没有任何文件后缀的配置:

对此我们按照添加mask标签,并指明需要进行过滤的文件后缀,以笔者为例,对应的配置如下所示:

	<application>
  <component name="FindSettings">
    <option name="customScope" value="Project Files" />
    <option name="defaultScopeName" value="Project Files" />
    <option name="SEARCH_SCOPE" value="Project Files" />
    <mask>*.java</mask>
	<mask>*.xml</mask>
	<mask>*.yml</mask>
	<mask>*.properties</mask>
	<mask>*.html</mask>
	<mask>*.css</mask>
	<mask>*.js</mask>
	<mask>*.jsp</mask>
	<mask>*.vue</mask>
	<mask>*.md</mask>
	<mask>*.json</mask>
  </component>
</application>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

完成后我们将IDEA重启,此时我们的全局搜索CTRL+shift+F就可以按照格式文件后缀进行过滤了:

# 修复GitLab提示输入token的问题

新版本IDEA在使用gitLab拉取项目时存在要求配置token的情况,对此我们也需要在安装后对GitLab插件进行配置规避该问题:

解决方式也很简单,通过File | Settings | Plugins找到gitlab插件,将其disable即可,完成配置后Gitlab插件就如下图所示:

# 集成GIT

# 展示版本控制历史

如下图,找到version control即可

# 将项目交给git管理

点击下图选项就会初始化git,此时代码就可以进行版本管理了:

# 查看版本变化

对着版本控制中现实变化的文件Ctrl+D即可

这时候就会有个弹窗出来现实我们本次修改对之前版本做了那些修改

# 与远程仓库关联

github上远程创建仓库不要创建readme和ignore会给与远程仓库关联的命令

# 追加提交

有时候我们上次提交会遗漏一些东西,我们可以勾选图中的选项,提交代码即可对上次提交做追加 (注:这个操作仅对未push到远程仓库的提交有效)

# Code review

用点一个版本按住shift键再点击一个版本就可以查看这两个版本之间项目的变化

选择user就可以查看筛选指定人对项目的改动

# live template

# live template简介

如下图所示,打出勾选的字母就会弹出白色框中的代码段,所以如果我们有希望可以快捷输出的代码也可以自己制作一个代码模板。

# 自制代码模板

  1. 创建代码模板组

  2. 编写下方代码段,需要注意的是可变的表达式要放在$$符号中

  3. 设置代码类型为java代码

  4. 是设置可变变量值对应的变量,这里CLASSNAME为当前类文件的类名

  1. 测试

# IDEA插件推荐

# lombok

Lombok是一个Java库,能自动插入编辑器并构建工具,简化Java开发。通过添加注解的方式,不需要为类编写getter或eques方法,同时可以自动化日志变量。需要的读者推荐安装该插件简化开发:

# maven helper

解决日常maven依赖冲突问题必备神器:

# 日志插件

通过File | Settings | Plugins找到grep console并安装,即可实现不同等级日志显示不同颜色,增加日志的可读性:

安装完成后可以发现不同级别的日志显示的颜色是不同的:

# 时序图插件

某些业务场景需要通过时序图追踪流程的场景,我们建议安装时序图插件:

安装完成后,即可通过右键生成时序图,便于我们阅读源码

# 翻译插件

打开插件市场选择translation,完成后对着单词按ctrl+shift+y 即可翻译成中文。这里建议读者使用百度的翻译,步骤很简单,点击下方申请一个,登录一下即可获取,然后复制粘贴到应用id和密钥中就行了。

# Rainbow Brackets

Java 开发过程中,我们在使用Intellij IDEA开发工具时经常会出现编码过程中出现,缺失各种括号的情况,总是排查半天时间。所以我们推荐安装一个Rainbow Brackets,可以很清晰明了的看清括号的位置和范围,方便大家尽快找到确实括号的位置,更能方便大家查看括号中代码的范围:

# 小结

以上便是笔者对于IDEA配置、日常快捷操作以及几个插件的推荐,建议读者熟练了解并刻意练习使用,长期积累可大大提升个人生产力。

你好,我是 zhangshiyu ,禅与计算机程序设计艺术布道者,希望我的理念对您有所启发。

📝 我的公众号:写代码的SharkChili
在这里,我会分享技术干货、编程思考与开源项目实践。

🚀 我的开源项目:mini-redis
一个用于教学理解的 Redis 精简实现,欢迎 Star & Contribute:
https://github.com/shark-ctrl/mini-redis (opens new window)

👥 欢迎加入读者群
关注公众号,回复 【加群】 即可获取联系方式,期待与你交流技术、共同成长!

# 参考

关于调试HashMap源码的小心得(这篇是我耗费了断断续续两天才得出来的):https://blog.csdn.net/vigoss77/article/details/103109715 (opens new window)

Intellij IDEA 默认打开上次项目设置与取消设置:https://blog.csdn.net/u011442726/article/details/95168880 (opens new window)

解决win11中快捷键不能使用的问题(shift+F6):https://blog.csdn.net/tianjiliuhen/article/details/131706669 (opens new window)

Smart Input Pro (Chinese):https://plugins.jetbrains.com/plugin/25280-smart-input-pro-chinese (opens new window)

Lombok简介、使用、工作原理、优缺点:https://blog.csdn.net/ThinkWon/article/details/101392808 (opens new window)

idea 实用插件分享之Rainbow Brackets(彩虹括号) :https://blog.csdn.net/weixin_46375120/article/details/137507430 (opens new window)

IDEA编译时报错OOM的解决方案 :https://jishuzhan.net/article/1977632714959421441 (opens new window)

IDEA查看所有的todo:https://blog.csdn.net/weixin_34241036/article/details/92455768 (opens new window)

IDEA 设置内存大小,让 IDEA 更流畅:https://www.quanxiaoha.com/idea/idea-set-memory.html (opens new window)

编辑 (opens new window)
上次更新: 2026/02/03, 09:15:24
npm常用命令

npm常用命令→

最近更新
01
Spring AI alibaba最佳实践-jvm监控诊断agent开发教程
03-05
02
Spring AI Alibaba深度实战:一文掌握智能体开发全流程
03-04
03
告别AI无效对话:资深工程师的提示词设计最佳实践
02-07
更多文章>
Theme by Vdoing | Copyright © 2025-2026 Evan Xu | MIT License | 桂ICP备2024034950号 | 桂公网安备45142202000030
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×
×