IDEA介绍
IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境(集成开发环境IDE(Integrated Development Environment):把开发,运行,编译集成在一起)。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA属于JetBrains这个公司,旗下的知名软件还有:PyCharm-智能 Python 集成开发工具,WebStorm - 最智能的 JavaScript IDE。
在刚接触java的时候,跟着视频下载了eclipse,白色的界面,很有教科书的感觉。当时看到一些博主,微信公众号的推送的代码示例截图,编写代码的工具都是黑色的,感觉很像命令行的风格,以为很高大上,就很羡慕(其实只是界面皮肤的问题)。后来才接触到了idea,默认的一种黑色的界面给了我逼格很高的感觉,想着终于拥有了大佬一样的开发工具,我也算是大佬了,hhhh。就像是长江后浪推前浪,有的人认为eclipse也是在不断完善,认为新兴的idea始终无法替代eclipse;也有的人自从接触了idea就爱不释手,毫不犹豫的抛弃了eclipse。说到底这也只是个工具而已,能够帮助我们更高效、简洁、方便的开发代码,达到我们的目的,使用什么工具又有什么所谓呢。
常用快捷键
目前常用
快捷键 | 介绍 |
---|---|
Ctrl + D | 复制光标所在行 或 复制选择内容,并把复制内容插入光标位置下面 |
Ctrl + / | 注释光标所在行代码,会根据当前不同文件类型使用不同的注释符号 |
ctrl+shif+/ | 注释一段代码 |
Ctrl + F | 在当前文件进行文本查找 |
ctrl+shift+f | 在全局搜索 |
Ctrl + Z | 撤销 |
Ctrl + Shift + Z | 取消撤销 |
Alt + F7 | 查找光标所在的方法 / 变量 / 类被调用的地方 |
Ctrl + Alt + 鼠标左键 | 在某个调用的方法名上使用会跳到具体的实现处,可以跳过接口 |
Ctrl + Alt + ← | 跳到上次浏览的位置 |
alt+shift+上下键 | 将某一行或选中的区域整体上下移动 |
ctrl + alt + u | 显示类之间的关系 |
sout | System.out.println(); |
fori | for(int i=0;i< ;i++) |
itar | Iterate elements of array |
Shift + F6 | 对文件 / 文件夹 重命名(变量,类名,方法名都可以) |
ctrl+r | 替换本页内容 |
ctrl+shift+r | 在多个文件中替换内容 |
ctrl
快捷键 | 介绍 |
---|---|
Ctrl + R | 在当前文件进行文本替换 (必备) |
Ctrl + O | 选择可重写的方法 |
Ctrl + W | 递进式选择代码块。可选中光标所在的单词或段落,连续按会在原有选中的基础上再扩展选中范围 (必备) |
Ctrl + Y | 删除光标所在行 或 删除选中的行 (必备) |
Ctrl + E | 显示最近打开的文件记录列表 |
Ctrl + U | 前往当前光标所在的方法的父类的方法 / 接口定义 |
Ctrl + N | 根据输入的 类名 查找类文件 |
Ctrl + H | 显示当前类的层次结构 |
Ctrl + I | 选择可继承的方法 |
Ctrl + G | 在当前文件跳转到指定行处 |
Ctrl + J | 插入自定义动态代码模板 |
Ctrl + P | 方法参数提示显示 |
Ctrl + Q | 光标所在的变量 / 类名 / 方法名等上面(也可以在提示补充的时候按),显示文档内容 |
Ctrl + B | 进入光标所在的方法/变量的接口或是定义出,等效于 Ctrl + 左键单击 |
Ctrl + K | 版本控制提交项目,需要此项目有加入到版本控制才可用 |
Ctrl + T | 版本控制更新项目,需要此项目有加入到版本控制才可用 |
Ctrl + + | 展开代码 |
Ctrl + - | 折叠代码 |
Ctrl + [ | 移动光标到当前所在代码的花括号开始位置 |
Ctrl + ] | 移动光标到当前所在代码的花括号结束位置 |
Ctrl + Space | 基础代码补全,默认在 Windows 系统上被输入法占用,需要进行修改,建议修改为 Ctrl + 逗号 (必备) |
Ctrl + Delete | 删除光标后面的单词或是中文句 |
Ctrl + BackSpace | 删除光标前面的单词或是中文句 |
Ctrl + F1 | 在光标所在的错误代码出显示错误信息 |
Ctrl + F3 | 调转到所选中的词的下一个引用位置 |
Ctrl + F4 | 关闭当前编辑文件 |
Ctrl + F8 | 在 Debug 模式下,设置光标当前行为断点,如果当前已经是断点则去掉断点 |
Ctrl + F9 | 执行 Make Project 操作 |
Ctrl + F11 | 选中文件 / 文件夹,使用助记符设定 / 取消书签 |
Ctrl + F12 | 弹出当前文件结构层,可以在弹出的层上直接输入,进行筛选 |
Ctrl + Tab | 编辑窗口切换,如果在切换的过程又加按上delete,则是关闭对应选中的窗口 |
Ctrl + Enter | 智能分隔行 |
Ctrl + End | 跳到文件尾 |
Ctrl + Home | 跳到文件头 |
Ctrl + 1,2,3…9 | 定位到对应数值的书签位置 |
Ctrl + 左键单击 | 在打开的文件标题上,弹出该文件路径 |
Ctrl + 光标定位 | 按 Ctrl 不要松开,会显示光标所在的类信息摘要 |
Ctrl + 左方向键 | 光标跳转到当前单词 / 中文句的左侧开头位置 |
Ctrl + 右方向键 | 光标跳转到当前单词 / 中文句的右侧开头位置 |
Ctrl + 前方向键 | 等效于鼠标滚轮向前效果 |
Ctrl + 后方向键 | 等效于鼠标滚轮向后效果 |
alt
快捷键 | 介绍 |
---|---|
Alt + Enter | IntelliJ IDEA 根据光标所在问题,提供快速修复选择,光标放在的位置不同提示的结果也不同 (必备) |
Alt + Insert | 代码自动生成,如生成对象的 set / get 方法,构造函数,toString() 等 |
Alt + Q | 弹出一个提示,显示当前类的声明 / 上下文信息 |
Alt + ` | 显示版本控制常用操作菜单弹出层 |
Alt + F1 | 显示当前文件选择目标弹出层,弹出层中有很多目标可以进行选择 |
Alt + F2 | 对于前面页面,显示各类浏览器打开目标选择弹出层 |
Alt + F3 | 选中文本,逐个往下查找相同文本,并高亮显示 |
Alt + F8 | 在 Debug 的状态下,选中对象,弹出可输入计算表达式调试框,查看该输入内容的调试结果 |
Alt + Home | 定位 / 显示到当前文件的 Navigation Bar |
Alt + 左方向键 | 按左方向切换当前已打开的文件视图 |
Alt + 右方向键 | 按右方向切换当前已打开的文件视图 |
Alt + 前方向键 | 当前光标跳转到当前文件的前一个方法名位置 |
Alt + 后方向键 | 当前光标跳转到当前文件的后一个方法名位置 |
Alt + 1,2,3…9 | 显示对应数值的选项卡,其中 1 是 Project 用得最多 |
shift
快捷键 | 介绍 |
---|---|
Shift + 滚轮前后滚动 | 当前文件的横向滚动轴滚动 |
Shift + F1 | 如果有外部文档可以连接外部文档 |
Shift + F2 | 跳转到上一个高亮错误 或 警告位置 |
Shift + F3 | 在查找模式下,查找匹配上一个 |
Shift + F4 | 对当前打开的文件,使用新Windows窗口打开,旧窗口保留 |
Shift + F7 | 在 Debug 模式下,智能步入。断点所在行上有多个方法调用,会弹出进入哪个方法 |
Shift + F8 | 在 Debug 模式下,跳出,表现出来的效果跟 F9 一样 |
Shift + F9 | 等效于点击工具栏的 Debug 按钮 |
Shift + F10 | 等效于点击工具栏的 Run 按钮 |
Shift + F11 | 弹出书签显示层 |
Shift + Tab | 取消缩进 |
Shift + ESC | 隐藏当前 或 最后一个激活的工具窗口 |
Shift + End | 选中光标到当前行尾位置 |
Shift + Home | 选中光标到当前行头位置 |
Shift + Enter | 开始新一行。光标所在行下空出一行,光标定位到新行位置 |
Shift + 左键单击 | 在打开的文件名上按此快捷键,可以关闭当前打开文件 |
ctrl+alt
快捷键 | 介绍 |
---|---|
Ctrl + Alt + L | 格式化代码,可以对当前文件和整个包目录使用 (必备) |
Ctrl + Alt + T | 对选中的代码弹出环绕选项弹出层 |
Ctrl + Alt + V | 快速引进变量 |
Ctrl + Alt + O | 优化导入的类,可以对当前文件和整个包目录使用 (必备) |
Ctrl + Alt + I | 光标所在行 或 选中部分进行自动代码缩进,有点类似格式化 |
Ctrl + Alt + J | 弹出模板选择窗口,讲选定的代码加入动态模板中 |
Ctrl + Alt + H | 调用层次 |
Ctrl + Alt + Y | 同步、刷新 |
Ctrl + Alt + S | 打开 IntelliJ IDEA 系统设置 |
Ctrl + Alt + F7 | 显示使用的地方。寻找被该类或是变量被调用的地方,用弹出框的方式找出来 |
Ctrl + Alt + F11 | 切换全屏模式 |
Ctrl + Alt + Enter | 光标所在行上空出一行,光标定位到新行 |
Ctrl + Alt + Home | 弹出跟当前文件有关联的文件弹出层 |
Ctrl + Alt + Space | 类名自动完成 |
Ctrl + Shift
快捷键 | 介绍 |
---|---|
Ctrl + Shift + U | 对选中的代码进行大 / 小写轮流转换 (必备) |
Ctrl + Shift + F | 根据输入内容查找整个项目 或 指定目录内文件 (必备) |
Ctrl + Shift + / | 代码块注释 (必备) |
Ctrl + Shift + Space | 智能代码提示 |
Ctrl + Shift + Enter | 自动结束代码,行末自动添加分号 (必备) |
Ctrl + Shift + Backspace | 退回到上次修改的地方 |
Ctrl + Shift + J | 自动将下一行合并到当前行末尾 (必备) |
Ctrl + Shift + R | 根据输入内容替换对应内容,范围为整个项目 或 指定目录内文件 (必备) |
Ctrl + Shift + W | 递进式取消选择代码块。可选中光标所在的单词或段落,连续按会在原有选中的基础上再扩展取消选中范围 (必备) |
Ctrl + Shift + N | 通过文件名定位 / 打开文件 / 目录,打开目录需要在输入的内容后面多加一个正斜杠 (必备) |
Ctrl + Shift + I | 快速查看光标所在的方法 或 类的定义 |
Ctrl + Shift + E | 显示最近修改的文件列表的弹出层 |
Ctrl + Shift + T | 对当前类生成单元测试类,如果已经存在的单元测试类则可以进行选择 |
Ctrl + Shift + C | 复制当前文件磁盘路径到剪贴板 |
Ctrl + Shift + V | 弹出缓存的最近拷贝的内容管理器弹出层 |
Ctrl + Shift + H | 显示方法层次结构 |
Ctrl + Shift + B | 跳转到类型声明处 |
Ctrl + Shift + A | 查找动作 / 设置 |
Ctrl + Shift + [ | 选中从光标所在位置到它的顶部中括号位置 |
Ctrl + Shift + ] | 选中从光标所在位置到它的底部中括号位置 |
Ctrl + Shift + + | 展开所有代码 |
Ctrl + Shift + - | 折叠所有代码 |
Ctrl + Shift + F7 | 高亮显示所有该选中文本,按Esc高亮消失 |
Ctrl + Shift + F8 | 在 Debug 模式下,指定断点进入条件 |
Ctrl + Shift + F9 | 编译选中的文件 / 包 / Module |
Ctrl + Shift + F12 | 编辑器最大化 |
Ctrl + Shift + 1,2,3…9 | 快速添加指定数值的书签 |
Ctrl + Shift + 左方向键 | 在代码文件上,光标跳转到当前单词 / 中文句的左侧开头位置,同时选中该单词 / 中文句 |
Ctrl + Shift + 右方向键 | 在代码文件上,光标跳转到当前单词 / 中文句的右侧开头位置,同时选中该单词 / 中文句 |
Ctrl + Shift + 左方向键 | 在光标焦点是在工具选项卡上,缩小选项卡区域 |
Ctrl + Shift + 右方向键 | 在光标焦点是在工具选项卡上,扩大选项卡区域 |
Ctrl + Shift + 前方向键 | 光标放在方法名上,将方法移动到上一个方法前面,调整方法排序 |
Ctrl + Shift + 后方向键 | 光标放在方法名上,将方法移动到下一个方法前面,调整方法排序 |
Alt + Shift
快捷键 | 介绍 |
---|---|
Alt + Shift + F7 | 在 Debug 模式下,下一步,进入当前方法体内,如果方法体还有方法,则会进入该内嵌的方法中,依此循环进入 |
Alt + Shift + N | 选择 / 添加 task |
Alt + Shift + F | 显示添加到收藏夹弹出层 |
Alt + Shift + C | 查看最近操作项目的变化情况列表 |
Alt + Shift + F | 添加到收藏夹 |
Alt + Shift + I | 查看项目当前文件 |
Alt + Shift + F9 | 弹出 Debug 的可选择菜单 |
Alt + Shift + F10 | 弹出 Run 的可选择菜单 |
Alt + Shift + 左键双击 | 选择被双击的单词 / 中文句,按住不放,可以同时选择其他单词 / 中文句 |
Alt + Shift + 前方向键 | 移动光标所在行向上移动 |
Alt + Shift + 后方向键 | 移动光标所在行向下移动 |
Ctrl + Shift + Alt
快捷键 | 介绍 |
---|---|
Ctrl + Shift + Alt + V | 无格式黏贴 |
Ctrl + Shift + Alt + N | 前往指定的变量 / 方法 |
Ctrl + Shift + Alt + S | 打开当前项目设置 |
Ctrl + Shift + Alt + C | 复制参考信息 |
其他
快捷键 | 介绍 |
---|---|
F2 | 跳转到下一个高亮错误 或 警告位置 (必备) |
F3 | 在查找模式下,定位到下一个匹配处 |
F4 | 编辑源 |
F7 | 在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果该方法体还有方法,则不会进入该内嵌的方法中 |
F8 | 在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则不进入当前方法体内 |
F9 | 在 Debug 模式下,恢复程序运行,但是如果该断点下面代码还有断点则停在下一个断点上 |
F11 | 添加书签 |
F12 | 回到前一个工具窗口 |
Tab | 缩进 |
ESC | 从工具窗口进入代码文件窗口 |
连按两次Shift | 弹出 Search Everywhere 弹出层 |
使用IDEA读取底层源码的快捷键集合
自己常用的两种方式:
如果是看接口的底层,就用ctrl+alt
如果是看其他的底层,就双击锁定,然后两下shift即可.
如果看继承树,ctrl+h
感觉通常都是ctrl+键
是主要功能,shift是全选,alt
快捷键 | 说明 |
---|---|
Alt+回车 |
导入包,自动修正 |
Ctrl+Alt+L |
格式化代码 |
Alt+Insert |
生成代码(如get,set方法,构造函数等) |
Ctrl+F |
查找文本 |
Ctrl+N |
查找类 |
Ctrl+Shift+N |
查找文件 |
Ctrl+Shift+Alt+N |
查找类中的方法或变量 |
Ctrl+R |
在当前文件进行文本替换 |
Ctrl+Y |
删除光标所在行 或 删除选中的行 |
Ctrl+Space |
代码提示 |
Ctrl+Shift+Space |
自动补全代码(常用) |
Ctrl+P |
方法参数提示 |
Ctrl+/ 或Ctrl+Shift+/ |
注释(//或者/…./) |
Ctrl+D |
复制光标所在行 或 复制选择内容,并把复制内容插入光标位置下面 |
Ctrl+Shift+Up/Down |
代码向上/下移动 |
Alt+ Up/Down |
在方法间快速移动定位 |
Ctrl + U |
前往当前光标所在的方法的父类的方法 / 接口定义 |
Ctrl+Alt+left/right |
返回至上次浏览的位置 |
F2 或Shift+F2 |
高亮错误或警告快速定位 |
选中文本,按Alt+F3 |
逐个往下查找相同文本,并高亮显示 |
IDEA出现的问题
1.idea查看源码时会显示/*compiled code*/
,一般新版的idea会自带反编译功能,如果出现了表示反编译没有成功。
解决方案:
File->setting->Plugins,然后下拉,找到Java Bytecode Decompiler 打钩 应用保存 重启
如果发现已经打过勾仍出现这种情况,可能是因为用了 java decompiler Intellij Plugin这个插件,取消打勾之后重启也可。
IDEA个人配置
1.Java文件统一添加固定Header,通过IDE统一配置(code templates) File and Code Templates
1 | /** |
2.Auto Import
可以帮助我们自动删除无用的包Import(未被引用),以及自动Import填充尚未导入的包。完全智能化地帮助我们在开发程序时,省略了导包的操作,大大优化了开发的效率。并且,当你移动某个类改变其路径的时候,这个功能会相应的改变关联的文件中包的路径
Settings→Editor→General→Auto Import
然后勾选Add unambiguous imports on the fly以及Optimize imports on the fly
Add unambiguous imports on the fly:快速添加明确的导入。
Optimize imports on the fly:快速优化导入,优化的意思即自动帮助删除无用的导入。
IDEA插件
JRebel
是一款JVM插件,它使得Java代码修改后不用重启系统,立即生效
1.搜索并安装插件jrebel
2.在线GUID地址:在线生成GUID
3.ctrl+shift+s 打开settings设置,找到jrebel 面板,选择Connect to online licensing service
https://jrebel.qekang.com/+生成的GUID
自己的邮箱地址
4.打开jrebel面板,把JRebel设置为offline模式 点一下work offline
5.设置项目自动编译
settings下找到build,Execution,deployment下的compiler,勾选build project automaticlly
6.设置 compiler.automake.allow.when.app.running
ctrl+shift+A 或者 help->find action…打开并搜索registry或者按快捷键 Ctrl+Shift+Alt+/ ,选择 Registry
找到 compiler.automake.allow.when.app.running 并✔
开始使用:
左下角有一个Jrebel,点击打开的窗口,选择你所需要进行热部署的项目。勾选后会在resource下生成一个rebel.xml文件,此文件可以忽略
这样设置之后就可以通过JRebel的图标启动项目。这样修改完Java代码后,就可以通过快捷键 Ctrl+shift+F9(更多的用ctrl+F9编译) 而不再需要重启站点这样繁琐浪费时间的操作了
修改快捷键,可以利用宏设置:
edit—>macros—>start macro recording
右下角会出现一个提示
然后点击ctrl+F9,此时右下角会有提示,点击红色停止
会弹出一个窗口,在窗口中输入宏的名字build
打开设置,找到kaymap,找到宏下面会出现刚刚设置的名字,可以设置快捷键,以后就可以用新的快捷键
Jrebel不适用于resources包下面的文件,修改此包下面的必须重启,否则不生效
创建项目
创建新项目
- 启动 IntelliJ IDEA。
如果打开欢迎屏幕,请单击“新建项目”。否则,从主菜单中选择 File | New | Project。
在 New Project 向导中,从左侧的列表中选择 Java。
要在 intellijidea 中开发 Java 应用程序,您需要 javasdk (JDK)。
如果所需的 JDK 已经在 IntelliJ IDEA 中定义,那么从 Project SDK 列表中选择它。
如果 JDK 安装在您的计算机上,但是没有在 IDE 中定义,那么选择 Add JDK 并指定 JDK home 目录的路径(例如,/library/java/javavialmachines/JDK-13.0.1)。
如果您的计算机上没有必要的 JDK,选择 Download JDK。在下一个对话框中,指定 JDK 供应商(例如 OpenJDK)、版本,如果需要则更改安装路径,然后单击 Download。
在本教程中,我们不打算使用任何其他库或框架,因此请单击“下一步”。不要从模板创建项目。
为项目命名,例如:HelloWorld。 如有必要,请更改默认项目位置并单击“完成”。
创建 package 和 class
包用于将属于同一类别或提供类似功能的类组合在一起,用于构造和组织具有数百个类的大型应用程序。
在 Project 工具窗口中,选择 src 文件夹,按 Alt + Insert,然后选择 Java Class
在 Name 字段中,键入 com.example.HelloWorld. HelloWorld 并单击 OK. IntelliJ IDEA 创建 com.example.HelloWorld 包和 HelloWorld 类。
与该文件一起,IntelliJ IDEA 自动为您的类生成了一些内容。在这种情况下,IDE 插入了包语句和类声明。这是通过文件模板来完成的。根据您创建的文件的类型,IDE 插入初始代码和预期在该类型的所有文件中存在的格式。有关如何使用和配置模板的详细信息,请参阅文件模板。
开始编码
通过动态模板增加 main 方法
输出 print 方法
运行方法
将工程打包为 Jar 包
如果你能看到 out/artifacts
文件夹,那么你将能看到 Jar 包
运行打包的应用程序,执行 Jar
基础操作
在相同内容后生成光标,一个一个选择 :
具体什么意思可以看下面这个动图就行了,需要配合快捷键使用,可以在相同的关键字后面生成光标,这样删除、修改添加新的代码不就方便了吗?
- Windows:
Alt + J
- Mac:
Ctrl + G
在所有的相同的内容后添加光标,一步到位:
使用快捷键就能在所有的 word 后生成光标
- Windows:
Ctrl + Shift + Alt + J
- Mac:
Ctrl + Command + G
数列光标:
方法:alt + 按住鼠标左键拖动就能达到下面动图的效果了,效率 max!
行尾添加光标
alt + 按住鼠标左键拖动,从左侧拖动到右侧。
在指定位置添加光标操作
格式批量调整
将上方左侧的代码批量变为右侧代码
alt+shift+鼠标选中多个光标,ctrl+w扩大选中范围,ctrl+c复制,ctrl + alt + enter 将光标移动到当前行的上一行
批量添加 Swagger 属性注释
将上图左侧只有注释的类,添加上 swagger 信息
ctrl+shift+鼠标点击多个选中,复制,回车,输入,粘贴
在多个相同结构 Json 中提取某字段信息
提取左侧 Json 中所有的 role 字段
IDEA常用快捷键
上面介绍了一些配合鼠标使用的快捷键,还有一些常用快捷键。
方法参数提示ctrl + p
非常实用的快捷键, 有的时候我们自己写的方法, 或者在看一些源码时, 都非常有用
文本大小写转换
ctrl + shift + U
折叠代码/展开代码
ctrl + - / ctrl + +
快速查找和打开最近使用过的文件码
ctrl + E
自动代码片
ctrl + j
实现接口方法
ctrl + i
查看当前类的子类
ctrl + h
将当前行和下一行进行合并
ctrl + shfit + j
将光标跳到当前行的上一行
有时候在写完一行代码的时候需要添加注释, 或者为类属性添加注释的时候需要跳到当前行的上一行, 这个快捷键就非常方便
ctrl + alt + enter
idea git 提交
ctrl + k
删除当前行
ctrl + y
重写 或者 实现接口或父类方法
ctrl + o
删除类中没有用到的 package
ctrl + alt + o
进入设置界面
ctrl + alt + s
在当前光标在的这样一行的下一行添加一行
ctrl + shfit + enter
弹出, 当前类中的方法集合
ctrl + F12
最常用的快捷键之一, 快速的查找方法
添加书签
ctrl + F11
快速生成 try, if
等语句
alt + shift + t
当你试用了之后, 你会爱上这个快捷键的
抽取局部变量
ctrl + alt + v
将当前选中的代码抽取为一个局部变量
进入到实现子类中
ctrl + alt + b
在使用
mvc
框架的时候, 往往我们只有一个接口的实例 这个快捷键可以直接到实现类中
格式化代码
让代码变得优美, 是每个程序员都应该注意的事, 方便自己和他人阅读, 利人利己
idea 多光标选择
按下滚轮上下拖动鼠标即可
ctrl + alt + L
idea 批量修改相同内容
ctrl + alt + shift + j
有的时候数据需要批量处理, 比如, 正常来说我们的实体类, 在使用
mybatis
等逆向工程进行生成的时候, 一般属性是有注释的, 但是在针对如果我们使用了swagger
等插件需要来显示传递实体所代表的含义的时候, 就需要我们自己一个个的去写, 就会显得异常麻烦
运行当前类
ctrl + shift + F10
在写一些测试代码的时候 这个快捷键就显得特别方便
从多项目中启动一个 debug 模式
alt + shfit + F9
在微服务中 多个工程在一个项目中的时候, 这个方法就比较的好用, 这样就不用自己一个一个的去点省去很多没必要的操作
从多项目中启动一个 正常模式
alt + shfit + F10
重新编译当前项目
ctrl + shift + F9
当你发现有的问题 特别的奇怪, 命名表面上没问题, 但就是项目运行不了的时候, 重新编译一下获取就好了
查看当前类在哪些地方被使用过
快速的查看选中类, 选中方法的定义
有的时候我们不想进入方法内部, 或者进入类的内部查看细节, 想要在外面就探查清楚, 就可以使用此种方法
ctrl + shift + i
比较强大的几个快捷键之一 Ctrl + ~
(感叹号旁边的按键)
共有五种可供选择的操作
Switch Code Formatter (切换代码格式化程序)
1. Color Scheme (配色方案)
可以设置一些常用的配色, 字体样式, 可以一键切换
2.
Code Style Scheme
3. Keymap
(快捷键列表)
4. View Mode (显示模式)
5. Look and Feel (设置软件主题)
idea 调出版本控制操作
alt + ~
\4. IDEA常用设置
IDEA 以新窗口的形式打开多个项目
File - Settings - Appearance & Behavior - System Settings
修改 IDEA 默认编码 -> UTF-8
File - Settings - Editor - File Encodings
设置统一编译器和编译版本
File - Setting - Build - Compiler - Java Compiler
设置类注释
File - Editor- File and Code Templates
$$end$$
可以设置光标结束的位置
自动导包
File - Editor- General - Auto Import
内存使用量展示
由于日常开发时都是在公司的办公电脑上进行的,所以内存总是不够用,但是又不清楚 IDEA 具体实时的占用了多少内存。这个时候对于一些内存并不是太够的开发人员来说能看到实时的内存使用量还是比较好的
File - Settings - Appearance & Behavior
开启悬浮提示
有时候在看代码的时候,不清楚一个类具体是干什么的,就会点进去看这个类的注释,但是强大的 IDEA 是支持不用点进去就可以看到注释的以及类的相关信息的。
File - Settings - Editor - General
Ctrl+鼠标滚轴修改字体大小
IDEA 也支持向浏览器那样按住 Ctrl+鼠标滚轴来改变编辑区的字体的大小
File–>Settings–>Editor–>General。
显示多行 Tab
当我们打开的标签页多了的时候,默认的会隐藏在右侧,当我们需要的时候在右侧找到后再打开。IDEA 是支持多行显示的,这样在大屏幕的显示器上也不用总去点击右侧的去找刚才打开过的文件了
File - Settings - Editor - General - Editor Tabs
设置字体, 行距 让代码看着更舒服
File - Settings - Editor - Font
IDEA GIT 配置
File - Settings - Version Control - Git
IDEA MAVEN 配置
File - Settings - Build - Build Tools - Maven
maven 阿里镜像配置
1 | <mirror> |
自动编译
具体步骤:顶部工具栏 File ->Other Settings -> Default Settings -> Auto Import
说明:开启自动编译之后,结合Ctrl+Shift+F9 会有热更新效果。
具体步骤:敲击 Ctrl + Shift + Alt + / 然后双击Shift搜索进入Registry ,找到compiler.automake.allow.when.app.running ,然后勾选上。
最后 如果想知道SpringBoot如何具体实现热部署的请点击SpringBoot+IDEA实现热部署教程:
https://www.jianshu.com/p/f658fed35786
取消大小写敏感
具体步骤:
File | Settings | Editor | General | Code Completion Case | Sensitive Completion = None
取消大小敏感,在编写代码的时候,代码的自动提示将更加全面和丰富。
调整字体类型和字体大小
默认的白色背景和细小的字体会影响大家的编码体验,这里特意提供了调整代码窗的快捷配置。打开配置,搜索Font,然后再Font可以调整字体类型,Size可以调整字体大小,如图:
将快捷键设置为跟Eclipse一样
很多人可能并不习惯IDEA的快捷键,为了方便,这里我们将快捷键设置为跟 Eclipse一样。
具体步骤: File -> Settings -> Keymap - > 选择Eclipse .
从Eclipse转过来的小伙伴 可以放心使用
打开常用工具栏
具体步骤:顶部导航栏 - View -> 勾选 Toolbar & Tool Buttons
\5. IDEA 常用插件
AlibabaCloudToolkit自动部署
这个插件更加适用于小型项目,或者在测试环境开发。生产环境 个人感觉不太适用。
个人经常会有这样的需求,每次自己更新完测试环境之后, 就需要 Maven
打包clean install
, 然后copy
jar
包, 利用ftp
工具上传jar
包到测试服务器, 然后kill
服务, 在启动服务 java -jar
, 有时更新频繁 这就是一件非常麻烦的事
Cloud Toolkit
是本地 IDE
插件,帮助开发者更高效地开发、测试、诊断并部署应用。通过插件,您可以将本地应用一键部署到云端(ECS、EDAS 和 Kubernetes 等
)和任意服务器;并且它还内置了 Arthas
程序诊断、Dubbo工具
、Terminal Shell
终端和 MySQL
执行器等工具。
官方链接:https://www.aliyun.com/product/cloudtoolkit
简单的说, 安装了这个插件之后,Idea 就具备了一些 Jenkins 的自动部署的功能
1 安装
在 Idea 工具中 Plugins 直接搜索安装
2 使用
在安装完成之后, 在工具栏中就会出现阿里云的按钮, 点击按钮
然后点击 Deploy to Host
, 然后下方就会出现添加主机页面
点击 Add Host
以我自己的博客为例, 输入完配置之后, 点击 Test Connection
, 出现 Succeeded
, 点击 add
, 代表添加成功
然后再点击 Deploy to Host
点击Run
, idea
便会, 先使用maven
打包, 后发送到服务器的指定位置
后续还可以 监听启动日志, 很简单, 就是 Advanced
里面, 大家看看就知道了,
IDEA 插件 Git Flow
插件作用:集成 Git Flow 让我们更加专注在 开发 这件事上。
Git Flow:
https://medium.com/@rafavinnce/gitflow-branch-guide-8a523360c053
安装
使用
最开始还没有初始化的时候,点击右下脚 GitFlow init
直接 默认 设置就好,点击 Ok 之后,就可以开始使用了。
按照最规范的流程走,可以避免在未来某个阶段掉坑里。
Git 版本管理规范:
master:永远处于production-ready状态
- 主分支,产品的功能全部实现后,最终在master分支对外发布;
- 只读分支,只能从release或hotfix分支合并,不能修改;
- 所有在master分支的推送应该做标签记录,方便追溯。
develop:最新的下次发布的开发状态
- 主开发分支,基于master分支克隆,发布到下一个release;
- 只读分支,feature功能分支完成,合并到develop(不推送);
- develop拉取release分支,提测;
- release/hotfix分支上线完毕,合并到develop并推送。
feature:开发新功能都从develop分支出来,完成后merge回develop
- 功能开发分支,基于develop分支克隆,用于新需求的开发;
- 功能开发完毕后合并到develop分支(未正式上线之前不能推送到远程中央仓库)
- feature可以同时存在多个,用于团队多功能同步开发,属于临时分支,开发完毕后可以删除。
release:准备要release的版本,只修bug。从develop出来,完成后merge回master和develop
- 测试分支,feature分支合并到develop分支之后,从develop分支克隆;
- 只要用于提交给测试人员进行功能测试,测试过程中如果发现BUG在release分支修复,修复完成上线后合并到
- develop/master分支并推送完成,做标签记录;
- 临时分支,上线后可删除。
hotfix:等不及release版本就必须马上修复master上线。从master出来,完成后merge回master和develop
- 补丁分支,基于master分支克隆,主要用于对线上的版本进行BUG修复;
- 修复完毕后合并到develop/master分支并推送,做标签记录;
- 所有hotfix分支的修改会进入到下一个release;
- 临时分支,补丁修复上线后可以删除;
IDEA 插件 PlantUML
1. 背景
之前介绍过 使用 Vscode 画 UML,实际上 idea 中也有类似的插件 可以画 UML 图。
PlantUML 语法:https://plantuml.com/zh/component-diagram
安装插件安装地址:
https://plugins.jetbrains.com/plugin/7017-plantuml-integration
在安装完官方的插件之后,还需要额外安装一个 graphviz ,不然有的复杂的用例图就没办法展示了。
graphviz:https://graphviz.org/download/
2. windows 安装
choco install graphviz
使用
新建文件 - PlantUML File - 选择想要创建的类型
流程图
流程图 CODE
用例图
用例图 Code
1 | @startuml |
类图
彩虹括号 🌈 Rainbow Brackets
由于很多人没有养成好的编码风格,没有随手 format 代码的习惯,甚至有些同事会写代码超过几百行,阅读起来将非常痛苦。
痛苦的原因之一就是找到上下文,由于括号太多,不确定当前代码行是否属于某个代码块,此时这个插件就会帮上大忙.
界面效果
动图
阿里巴巴编码规范:Alibaba Java Coding Guidelines
实时监测代码的规范性, 从代码层面减少空指针等异常的出现,阿里巴巴出品的Java代码
规范插件, 可以扫描整个项目找到不规范的地方 并且大部分可以自动修复。
虽说检测功能没有 findbugs
强大,但是可以自动修复, 阿里巴巴 Java 编码指南插件支持。
让代码变得更规范, 是我们每一位程序员都应该记在心中的事。
变量驼峰命名规范
当鼠标移到变量上时, 就会自动提示 不符合 lowerCamelCase
命名风格
字符串比较提示 equals
1 | public static void main(String[] args) { |
WARNING
当我们初学 Java
时, 很有可能会犯这样的错误, 这里很明显会报空指针异常, 而在编辑器中
安装插件之后, 编辑器已经给出详细提示,"test“
应该做为 equals
方法的调用方, 并给出了原因, 应为这样很容易导致空指针异常, 并给出了例子
当你的类命名不规范时
比如我创建了一个测试类 test.java
,就会出现如下提示
类名,首字母需要大写。缺少作者注释。
mybatis 插件:Free Mybatis plugin
安装此插件后可以节约很多的开发时间, 在
mapper
层接口可以直接进入xml
文件中
IntelliJ Lombok plugin
Lombok pom.xml 文件配置
1 | <dependency> |
生命很宝贵, 没有必要浪费在这个重复的工作上, 尤其是如果我们使用传统的 get set 方法, 在实体类进行变更的时候, 或多添加了列, 或减少了列, 又要重新生成对应的 get set 这难道不就是浪费时间浪费生命吗?
还不熟悉使用的可以看这篇文章,Java 开发之 Lombok 必知必会:
juejin.im/post/5cf3edf7e51d454f71439c79
GenAllSetter
在 Java 方法中, 根据 new 关键词, 为 Java Bean 生成所有Setter方法。按 GenAllSetter 键两次, 会为 Setter 方法生成默认值。
GenDaoCode
一键生成 dao xml service
CodeGlance
在右侧生成代码地图
RestfulToolkit
一套 Restful 服务开发辅助工具
- 1.根据 URL 直接跳转到对应的方法定义 ( Ctrl \ or Ctrl Alt N );
- 2.提供了一个 Services tree 的显示窗口;
- 3.一个简单的 http 请求工具;
- 4.在请求方法上添加了有用功能: 复制生成 URL;,复制方法参数…
- 5.其他功能: java 类上添加 Convert to JSON 功能,格式化 json 数据 ( Windows: Ctrl + Enter; Mac: Command + Enter )。
Grep Console
高亮log不同级别日志,看日志的时候一目了然。
MyBatis Log Plugin
把 Mybatis 输出的sql日志还原成完整的sql语句,看起来更直观。
GsonFormat
快速的讲一个 json转换为一个实体 安装完插件后 alt + s 放入正确的 json格式
VisualVm Launcher
运行java程序的时候启动visualvm,方便查看jvm的情况 比如堆内存大小的分配
某个对象占用了多大的内存,jvm调优必备工具
jclasslib bytecode viewer
一款可视化的字节码查看插件
Codota
支持智能代码自动提示,该功能可以增强 IDEA 的代码提示功能。
支持 JDK 和知名第三方库的函数的使用方法搜索,可以看到其他知名开源项目对该函数的用法。当我们第一次使用某个类,对某个函数不够熟悉时,可以通过该插件搜索相关用法,快速模仿学习。
Auto filling Java call arguments
开发中,我们通常会调用其它已经编写好的函数,调用后需要填充参数,但是绝大多数情况下,传入的变量名称和该函数的参数名一致,当参数较多时,手动单个填充参数非常浪费时间。
该插件就可以帮你解决这个问题。安装完该插件以后,调用一个函数,使用 Alt+Enter 组合键,调出 “Auto fill call parameters” 自动使用该函数定义的参数名填充。
Rainbow Brackets
由于很多人没有养成好的编码风格,没有随手 format 代码的习惯,甚至有些同事会写代码超过几百行,阅读起来将非常痛苦。
痛苦的原因之一就是找到上下文,由于括号太多,不确定当前代码行是否属于某个代码块,此时这个插件就会帮上大忙。
SequenceDiagram
SequenceDiagram 可以根据代码调用链路自动生成时序图,超级赞,超级推荐!
这对研究源码,梳理工作中的业务代码有极大的帮助,堪称神器。
安装完成后,在某个类的某个函数中,右键 –> Sequence Diagaram 即可调出。
Java Stream Debugger
Stream 非常好用,可以灵活对数据进行操作,但是对很多刚接触的人来说,不好理解。
那么 Java Stream Debugger 这款神器的 IDEA 就可以帮到你。它可以将 Stream 的操作步骤可视化,非常有助于我们的学习。
下面是刚刚介绍的这些插件的名字。
- AlibabaCloudToolkit
- Git Flow
- PlantUML
- Rainbow Brackets
- Alibaba Java Coding Guidelines
- 翻译插件
- mybatis 插件
- IntelliJ Lombok plugin
- GenAllSetter
- GenDaoCode
- CodeGlance
- RestfulToolkit
- Grep Console
- MyBatis Log Plugin
- GsonFormat
- VisualVm Launcher
- jclasslib bytecode viewer
- Codota
- Auto filling Java call arguments
- Rainbow Brackets
- SequenceDiagram
- Java Stream Debugger
- Ace Jump
\6. 好看字体
最近JetBrains公司推出了一款优雅美观的字体:JetBrainsMono。
对比 Consolas
对比之前一直在使用 Consolas
字体
下载字体
官网下载:https://www.jetbrains.com/lp/mono/
坚果云下载:jianguoyun.com/p/DRPh-GkQ_7eJCBiv2uMC
Windows 安装
- 下载后,解压文件
- 直接双击扩展名为
tff
后缀的文件 - 重启
IDEA
Perferences/Setting -> Editor -> Font
,选择 JetBrains Mono 确认即可
\7. 版本控制
这里主要盘点一下在 IDEA 中进行版本控制时,大部分人没注意到的一些细节吧,主要包括下面这写。
- 查看每一行代码的条件人, 提交时间(大部分人不知道)
- 克隆远程代码
- 拉取远程代码
- 将暂存区代码提交到本地库
- 将本地库 提交到远程库
- 切换分支, 或拉取远程分支
- 查看当前打开类 历史记录
- Stash
- Check Out
查看每一行代码的条件人, 提交时间(大部分人不知道)
选择后入下图所示
鼠标移动上去还能看到提交详细信息
克隆远程代码
git clone origin url
常规操作
装逼操作
拉取远程代码
git pull
快捷方式
ctrl + t
将暂存区代码提交到本地库
git commit -m ‘message’
将本地库 提交到远程库
git push
快捷键
ctrl + shif 或 alt + 1 + 8
1 | 切换分支, 或拉取远程分支 |
以下提供几种快捷方式
1 | ctrl + shift + ` 或 alt + ~ + 7 或 |
查看当前打开类 历史记录
1 | alt + ~ + 4查看项目工程历史记录 |
选中工程后
1 | alt + ~ + 4 |
或 alt + 9
切换到 Version Control
面板 选择log
Stash
应用场景
我在本地修改好后,发现远程分支已经被改动了,此时我本地也被改动了就造成了冲突,无法push或者pull。此时可以使用git stash
1 | git stash //把本地的改动暂存起来 |
不小心改动了其他分支,例如忘记切换,直接在master分支上做改动,这里假设我的分支是test分支
1 | git stash //把本地当前改动暂存起来,此时master分支就恢复到了上次拉取时的状态 |
Idea 将现在本地的修改存储在 Stash 中alt + ~
加 9
将 Stash 中的代码还原
Check Out
将本地修改的代码还原对应命令 git checkout <file>
\8. Terminal 配置
将 Idea 的 Terminal 改为 Git Bash。使用体验翻倍
以前用着这么恶心的 CMD Terminal 我居然没有想法去修改。设置看图
调试功能
1.设置断点
选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可。
2.开启调试会话
点击红色箭头指向的小虫子,开始进入调试。
IDE下方出现 Debug 视图,红色的箭头指向的是现在调试程序停留的代码行,方法 f2() 中,程序的第11行。红色箭头悬停的区域是程序的方法调用栈区。在这个区域中显示了程序执行到断点处所调用过的所用方法,越下面的方法被调用的越早。
3.单步调试
3.1 step over
点击红色箭头指向的按钮,程序向下执行一行(如果当前行有方法调用,这个方法将被执行完毕返回,然后到下一行)
3.2 step into
点击红色箭头指向的按钮,程序向下执行一行。如果该行有自定义方法,则运行进入自定义方法(不会进入官方类库的方法)。具体步骤如下:
在自定义方法发f1()处设置断点,执行调试
点击
3.3 Force step into
该按钮在调试的时候能进入任何方法。
3.4 step out
如果在调试的时候你进入了一个方法(如f2()),并觉得该方法没有问题,你就可以使用stepout跳出该方法,返回到该方法被调用处的下一行语句。值得注意的是,该方法已执行完毕。
3.5 Drop frame
点击该按钮后,你将返回到当前方法的调用处(如上图,程序会回到main()中)重新执行,并且所有上下文变量的值也回到那个时候。只要调用链中还有上级方法,可以跳到其中的任何一个方法。
3.6 run to cursor
运行到光标处
4. 高级调试
4.1 跨断点调试
设置多个断点,开启调试。
想移动到下一个断点,点击如下图:
程序将运行一个断点到下一个断点之间需要执行的代码。如果后面代码没有断点,再次点击该按钮将会执行完程序。
4.2 查看断点
点击箭头指向的按钮,可以查看你曾经设置过的断点并可设置断点的一些属性。
箭头1指向的是你曾经设置过的断点,箭头2可以设置条件断点(满足某个条件的时候,暂停程序的执行,如 c==97)。结束调试后,应该在箭头1处把所设的断点删除(选择要删除的断点后,点击上方的红色减号)。
4.3 设置变量值
调试开始后,在红箭头指向的区域可以给指定的变量赋值(鼠标左键选择变量,右键弹出菜单选择setValue…)。这个功能可以更加快速的检测你的条件语句和循环语句。
idea插件将jar包反编译的命令
1 | java -cp "D:\swx\IntelliJ IDEA 2020.1.2\plugins\java-decompiler\lib" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true yxtl1.jar data D:\yxtl |