工欲善其事,必先利其器
想要愉快的coding,一个好的IDE肯定少不了。而对于Java开发者来说,IntelliJ IDEA绝对是Java-IDE的首屈一指的选择(eclipse党还请绕我一命)。

从我第一次下载IDEA到现在已经有一年半了,时间越久我发现我对这个超级智能的IDE爱的越深,尤其是其内置的很多小功能大大的提高了我的日常coding的效率。
下面呢,我就来逐一说说这款优秀的IDE的使用技巧吧(我罗列的估计也就是冰山一角)!
tip:由于我汉化了,所以截图的界面会包含很多中文,但是我会在文字说明处说明其英文

一、提高效率的必备配置

1、代码自动补全提示

设置路径:Settings -> Editor -> General -> Code Completion
如图所示:

2、ctrl+滑轮调整字体大小

设置路径Settings -> Editor -> General
如图所示:

3、自动导包

设置路径Settings -> Editor -> General -> Auto Import
如图所示:

4、显示行号

设置路径Settings -> Editor -> General -> Appearance
如图所示:

二、快乐编码的常用技巧

1、解决错误的万能快捷键alt+Enter

比如有多个可选择的导入的类的时候、比如继承了虚基类或实现了接口但是没有重写方法的时候、或者想使用的类没有在maven中添加依赖的时候……
诸如此类,你都可以先尝试将光标移动到代码标红处然后按下alt+Enter然后看看IDE自动给你推荐的修改代码的提示。
如图(包括但不限于这种情况):

2、妈妈再也不用担心我的代码对齐问题了

刚开始学C语言的时候,很多同学写代码的时候都不进行对齐,然后我们看到的效果如下:

没有IDE的时候,我们的做法是花上几分钟时间一点一点给它解决代码对齐问题。
都9012年了,我们的IDE已经很智能了,一键就可以解决代码对齐问题:
  • 第一种方式:选择导航栏的Code -> Reformat Code即可
  • 第二种方式:快捷键ctrl+alt+L

3、手残党的救命功能:全部重命名

有时候,包名、类名、方法名、变量名……这些我们可能要用到很多次的名字,在不经意间写错了,而且还到处引用了很多次(感谢IDE的代码提示功能,不然第二次使用变量名的时候就知道是错的了)。那么这种情况怎么解决呢?
教你一招:IDEA重命名全部的相同引用。下面是使用方法:
  1. 将光标移动到那个错误的单词
  2. 右键,选择Refactor -> Rename,然后你选择的那个单词会出现一个红框
  3. 在红框内输入重命名后的单词,输入完毕后按回车
  4. 可能会在IDE的某个窗口中有提示,这个看自己情况而行吧,我一般都是直接点确认
  5. 全部重命名成功
如下图:

这里有的同学可能有疑问,如果某些特殊情况,我在同一个文件里面,第一个方法的参数为List results第二个方法的参数为Map results,那执行完上面的重命名过后会不会两个都修改啊?当然不会。IDEA的智能在于它会检索相同引用的地方,一般就是用户想修改的地方,包括注释的地方

4、快速注释代码

很简单实用的一个功能,当某行或某块代码需要被注释的时候,选中这块代码,键入下面的快捷键即可:
  • ctrl + /会在代码前自动添加//,这个方式会注释掉所有被选中的行
  • ctrl + shift +/会在光标处或选择的代码块前后添加/**/,这个方式不能保证正确的注释,只能保证在选择的代码前后添加注释标志,即使未选择代码块,也会在光标所在处天剑/**/
取消注释的快捷键同上,只要在被注释的代码处键入上面的快捷键即可

5、小白最想用的快捷键ctrl + 鼠标单击

5.1 查看源码

不知道变量声明在哪里,不知道方法的源码是什么,不知道类的具体代码是什么……如果你正在饱受上述的煎熬,那么你可以尝试在你不知道的那个东西的地方使用快捷键ctrl + 鼠标单击,比如:
  • 你不知道某个变量实在哪里声明的,那就按住ctrl然后单击这个变量名,IDE自动将光标跳转到其声明处
  • 你想查看这个类的源码,那就按住ctrl然后单击这个类名,IDE自动跳转到这个类

5.2 快速查看使用

这个就是上面的逆过程


当你不知道这个类在哪里使用过,不知道某个定义的方法在哪里被调用过、某个声明的变量在哪里被使用过……还是尝试使用ctrl + 鼠标单击。
注意查看源码和查看使用的区别:查看源码是用在类名、方法、变量……的使用处,而查看使用是用在.java文件的类名、定义的方法名、变量声明……一类的定义处。

6、快速生成代码

编写POJO类的时候是不是被它的get和set方法逼疯了?编写构造方法的时候写参数类型和参数名是不是很烦?继承了父类但是想重写方法实现的时候是不是还要找到父类看看它的方法名?……
别傻了,IDEA早就考虑到你会有这种需求了,这里带给你一个相当厉害的快捷键alt + insert,这个insert就在键盘的多功能按键处,自己找找吧。
使用示例:
  1. 新建一个POJO类,写上基本的字段,然后再类文件的两个花括号之间的随便一处空白键入alt+insert,出现这个窗口。(因为我的IDEA已经汉化了,所以他有的功能已经一目了然了)

  1. 选择构造get和set,英文版的是getter and setter,出现下面的界面。IDEA生成的set方式有两种,一种是返回void的,另一种是返回当前对象的。具体区别呢,就是我们在set的过程可不可以使用链式结构。

3.选择确定,然后查看生成的代码:

7、最拉风的代码生成器

上面快速生成代码的方式还不够,下面来教给大家一个更加拉风的代码生成器。
for循环、判断空元素、输出到控制台、通过方法返回值生成变量……很多我们日常写代码的时候遇到的问题都在IDEA里面逐一解决了。怎么解决的?请看下面:
  • 快速生成for循环:
    • 在空的代码行输入foriforeach,然后根据提示按回车,则会自动生成for代码块
    • 对数组或集合类进行遍历,输入变量名,然后可以①输入.for生成增强型for循环代码块②输入.fori生成普通for循环代码块③输入forr生成普通for循环逆序的代码块
  • 快速判断空/非空:输入需要判断的变量名,然后可以①输入.null生成判断空的代码块②输入.nn.notnull生成判断非空的代码块
  • 快速生成输出语句:输入需要输出到控制台的变量名,然后输入.sout生成输出该变量的代码
  • 快速生成变量:首先输入要调用的方法,然后输入.var自动生成包含变量类型的变量
  • 快速生成主方法:在要生成主方法的地方输入psvm即可生成主方法,这四个字母代表了public static void main(String[] args)中的四个单词首字母
  • 快速上锁:输入要加锁的变量名,然后输入.synchronized即可直接对变量加锁,不要担心单词太长记不住,IDE还有代码提示功能呢
  • 快速生成try-catch代码块:在要生成try-catch代码块的语句或变量后面输入.try即可
  • 快速格式化字符串:在要格式化的字符串或字符串变量后面输入.format即可

三、忘掉那奇奇怪怪的指令

当然呢,只是一个标题党,所有的指令还是能记下来就记下来吧,万一哪天boss不让你用IDEA了呢。
然后这一节主要说一下IDEA对于maven和Git的集成工具的使用。

1、maven篇

maven自己的指令其实并不多,但是当我们添加了maven的插件以后,那maven的指令数量就变量不确定了。尤其是,maven的插件并不少,我们不可能把所有的插件的指令都背下来,也不可能每次都去谷歌一下吧。
IDEA为我们提供了很好的解决方式,下面我们来尝试一下:
  1. 首先,这一定要是一个maven工程
  2. 选择导航栏处View -> Tool Windows -> Maven即可弹出一个窗口,如下所示,这个窗口用户可以自定义其位置。我们可以看到,这个串口里面不但包含了基础的maven指令(Lifecycle里),还包含了maven插件的指令。

  1. 双击需要执行的指定即可。

2、Git篇

Git指令不多,但是Git指令使用起来的时候总有一种别扭的感觉。而且,Git如果用在命令行处的话,筛选文件什么的也是相当麻烦的,IDEA集成的Git工具可以帮助用户在可视化界面进行Git的相关操作。

2.1 git status

git status指令可以显示当前git项目的文件夹状态包括增删改的文件状态。该指令在IDEA里面直接映射为文件颜色,大概如下(可能每个人的都不一样):

  • 红色:该文件是新建的文件,且没有被git add
  • 绿色:该文件是新建的文件,且被git add
  • 蓝色:该文件是被修改过的文件
  • 白色:改文件没有被修改过
如图所示:

2.2 git add

git add指令在IDEA中可以通过在需要git add的文件或文件夹处右键,选择VCS -> Add

不过这个操作我一般不在IDEA中使用,因为还有更好的解决办法。

2.3 git commit

git commit指令在IDEA中可以通过选择VCS -> Commit File...来执行,下面是选择完Commit Files...后的弹出窗口:


2.4 git push


git push指令可以通过选择VCS -> push进行操作。如下:

2.5 git pull

刚刚选择push的时候应该看到了pull按钮了,即VCS -> pull.如下:


2.6 切换分支

  • 选择VCS -> Branches可以查看并选择分支
  • 可以通过点击窗口右下角的Git标签执行相同的操作

2.7 比较文件修改

在需要比较的文件处点击工具栏处该按钮

即可打开一个窗口进行文件修改比较。

从红可以看到,标了>>的是我们新添加的代码,可以通过点击那个>>符号来直接删除添加的代码

2.8 查看当前文件的修改记录

可以通过点击该按钮

打开一个窗口查看当前文件的修改记录。

四、最后再来点小动作(插件和其他)

1、书签

最近我阅读源码的时候经常遇到一个问题,就是执行到某一处代码,看了他的源码,然后跳了一下界面,再然后就不知道之前看到哪里了。spring的源码几乎每个类文件都有几百几千行代码,然后还有成千上万的类文件,想在找回去犹如大海捞针。
后台我发现,IDEA内置了一个书签功能,大概意思就是给代码行打个标签,然后在我们想回去的时候通过简单操作就可以返回到打标签的代码行了。
具体操作如下:
  1. 在需要打标签的代码行处按F11即可打上标签,打标签的代码行前面会有一个对勾标记
  2. 想跳回到打标签的代码时,按shift + F11即可打开书签窗口,选择要返回的标签即可
  3. 同时,我们也可以在书签窗口对我们打的书签进行备注,方便记忆
当然呢,书签还有一个更加牛逼更加方便的功能,就是打个临时标签,然后通过快捷键返回到标签标记处:
  1. 在需要打标签的代码行处按ctrl+shift+数字1234,然后这时候标记会变为1234(和按得按键相同)
  2. 需要返回的时候直接按ctrl+数字1234即可跳回

2、最骚气的快捷键ctrl + w

这个最骚气的快捷键我已经不知道怎么描述他的作用了,自行尝试吧

3、条件断点

在我们使用断点调试的时候,我们最害怕的就是遇到数组,尤其是数量极大的数组然后其中只有某一个或某一部分出问题了,然后我们调试的时候就不得不添加一个if语句来方便调试。不过我们的IDEA不愧为超级智能的IDE,我们可以通过IDEA直接添加条件断点来实现调试到特定的断点处。
使用办法:
  1. 打断点
  2. 在断点处右键
  3. 键入条件,该条件应该返回一个布尔值,断点会停到该条件为true的时候

4、插件

作为一个优秀的IDE,可能他的功能还不足以满足你的需求,那么功能不够,插件来凑,下面是我个人推荐的几款IDEA插件。
  • Translation:一款相当强大的翻译插件,支持划词翻译、中英互换等
  • RestfulToolkit:提供快速定位接口方法、简单的HTTP请求工具及一些其他的强大功能的工具
  • Mybatis Log Plugin:输出可执行的sql语句
  • Alibaba Java Coding Guidelines:阿里代码规约检测
有道无术,术可成;有术无道,止于术
欢迎大家关注Java之道公众号

好文章,我在看❤️

都9012年了,还有人说IntelliJ IDEA不好用?那是因为没掌握这些技巧。相关推荐

  1. IntelliJ IDEA不好用?那是因为没掌握这些技巧

    以下文章来源于Java之道 ,作者小胖儿 想要愉快的coding,一个好的IDE肯定少不了.而对于Java开发者来说,IntelliJ IDEA绝对是Java-IDE的首屈一指的选择(eclipse党 ...

  2. Win系统 - 都9012了,还想用WIN7怎么办?

    听说,现在的电脑都装不上WIN7了? 感觉,生无可恋? 不不不 我们可以将WIN7添加为虚拟机 让WIN10和其它系统并存 虚拟机(Virtual Machine)指: 通过软件模拟的.具有完整硬件系 ...

  3. 都9012年了,你还在手动部署代码吗(二)

    前言 在写完基于 Webhooks 的"第一篇<都9012年了,你还在手动部署代码吗>"之后,有同学评论到"至少你得用个 docker 啊"&quo ...

  4. gta5结局杀老崔我哭了_都已经2020年了,怎么还有人在买GTA5?

    点击上方"3367游戏"关注,每天为您呈现精彩游戏信息! 江湖上流传一句话,都XXXX年了,怎么还有人在买GTA5,用来形容GTA5持续将近7年的火爆.也同时用来吐槽R星为什么在G ...

  5. 都2021年了,不会还有人连深度学习还不了解吧(六)-- Padding篇

    导读 本篇文章主要介绍CNN中常见的填充方式Padding,Padding在CNN中用的很多,是CNN必不可少的组成部分,使用Padding的目的主要是为了调整输出的大小,是必须搞清楚的知识点.如果你 ...

  6. 都2021年了,不会还有人连深度学习都不了解吧(五)-- 下采样篇

    导读 该篇文章重点介绍CNN中下采样方式,下采样是CNN中必不可少的阶段之一,CNN中常用的下采样方式有平均池化和最大池化,同时平均池化和最大池化也是注意力机制的重要组件. 目前深度学习系列已经更新了 ...

  7. 都2021年了,不会还有人连深度学习都不了解吧(三)- 损失函数篇

    一.前言 深度学习系列文章陆陆续续已经发了两篇,分别是激活函数篇和卷积篇,纯干货分享,想要入门深度学习的童鞋不容错过噢!书接上文,该篇文章来给大家介绍" 选择对象的标准 "-- 损 ...

  8. 都2021年了,不会还有人连深度学习都不了解吧(一)- 激活函数篇

    一.前言 本人目前研一,研究方向为基于深度学习的医学图像分割,转眼间已接触深度学习快1年,研一生活也即将结束,期间看了大量的英文文献,做了大量的实验,也算是对深度学习有了一个初步的了解吧.接下来的一段 ...

  9. 都2021年了,不会还有人连深度学习都不了解吧(二)- 卷积篇

    一.前言 上篇文章详细阐述了激活函数是什么.常用的激活函数有哪些以及为什么要使用激活函数,相信大家对此有了一定的了解.在此基础上,我们趁热打铁,继续学习深度学习其它必须的知识.该篇文章讲述卷积操作及其 ...

最新文章

  1. CoordinatorLayout 和 AppBarLayout 实现折叠效果 底部带阴影的处理方法
  2. 你分库分表的姿势对么?——详谈水平分库分表
  3. java平衡二叉树,最全Java知识总结
  4. [HOW TO]-VirtualBox的虚拟机通过宿主机代理上网
  5. 用spring security设置用户jwt令牌和设置接口访问权限案例
  6. HTML5自定义播放器(简式)
  7. 【转】开发人员一定要加入收藏夹的网站
  8. top.location.href和localtion.href代码剖析
  9. 易流即时配送_即时大数据流处理=即时风暴
  10. tensorflow权重初始化
  11. Android之事件分发机制
  12. 广东 职称英语计算机,现在评职称英语和计算机都不用考了
  13. 有关cookie实现统计pv,uv的一些用法
  14. 分布式团队中沟通引发的问题, itest 解决之道
  15. MSCD software disk for win vista龙帝国vista 软件光盘合集
  16. 项目风险管理__常见题
  17. Errors occurred during the build. Errors running builder 'JavaScript Validator'
  18. 微信小程序-名片复制功能效果
  19. 求问R语言 分层抽样 合并两个数据框为什么出现了空集
  20. 犀浦某校一名计算机系大二男生,大学生恋爱的案例分析

热门文章

  1. 前后端分离html ssm,前后端分离请求ssm返回数据
  2. pc显示器分辨率 前端_2020电竞显示器推荐
  3. linux audio A2B
  4. php 用积分兑换_PHP积分兑换接口demo
  5. # android开发:4-1、Activity启动方式、生命周期、不同activity的数据传递
  6. (王道408考研数据结构)第三章栈和队列-第三节1:栈的应用之括号匹配问题和表达式问题(前缀、中缀和后缀)
  7. 3-6:常见任务和主要工具之正则表达式
  8. c++ winpcap开发(8)
  9. QT 线程池 + TCP 小试(一)线程池的简单实现
  10. Qt之模式、非模式、半模式对话框