【IDEA】使用技巧

idea使用技巧


分层结构

Config:所有的配置。用于存放Spring Boot相关的配置类,包括启动类。

Controller:请求入口。所有请求的入口,前后端交互的入口。

Service:逻辑层。负责所有的业务逻辑。

Mapper:持久层。或叫Dao,负责Java和数据库交互。包括interface和xml两类文件。

Domain(Po):表映射实体。用一个Java类来映射数据库表,类名就相当于表名,类的属性就相当于表的字段。

Dto:数据传输对象(Data Transfer Object),用于前后端数据交互。

Domain和Dto的区别

Domain类的属性完全和表的字段一致;Dto类的属性一般和表一致,但会根据不同的业务场景适当增加、减少属性。

Domain类用于Java数据和数据库表记录的映射;用在Service层和Mapper层。

Dtoy类用于前后端数据传输;用在Conteoller层和Service层。

Service层介于Controller和Mapper直接按,也是Domain和Dto的转换层。

高效的代码编辑技能

复制一行:光标放任意位置,ctrl+c 复制历史:ctrl+shift+v,双击记录后,可在当前光标处粘贴

普通粘贴后,会自动格式化:ctrl+v

简单粘贴,不会格式化,但是会保留空格:ctrl+alt+shift+v

alt+鼠标左键并拖动:纵向选择多行文本

ctrl+alt+l:格式化代码

剪切光标所在行,并删除改行:ctrl+x

复制多行:ctrl+d

快速移动某行:Alt+shift+上/下

shift+上/下:选中上下对应的行数,然后再进行:Alt+shift+上/下移动

快速跳转

行内跳转和选中:

Home键跳到行首,End键跳到行尾

ctrl+左/右:跳过一个词

ctrl+shift+左/右:选中一个词

根据行号定位:

Ctrl+G:跳到指定行

tabs快速切换:

alt+左/右:左/右切换Tabs

查看浏览过的文件:

ctrl+e:查看浏览过的文件列表

快速查找和替换

1,ctrl+f:当前文件查找

ctrl+r:当前文件替换

ctrl+shift+f:全局查找

ctrl+shift+r:全局替换

2,查找文件:Ctrl+Shif+N(按文件名字查找),再比如自己设置的就是双击Shift

3,查找操作和菜单:Ctrl+Shift+A(查找所有的菜单或操作)

4,万能查找:两次shift, 仅限文件东西,文件内的东西不能查找

万能快捷键

Alt+Enter( 智能辅助提示。给出的提示与当前光标所在位置有关系)

1,见到红色报错就按

2,见到波浪线警告就按

3,没有报错没有警告也可以按

键盘鼠标的配合

1、纵向选择:按住alt不放,鼠标点击拖动

2、选中一大段代码

鼠标点击开始的位置

找到尾行的位置

按住shift+鼠标点击结尾位置

3、快速移动/复制代码

纯键盘移动多行:

按住shift+上/下选中多行

按住shift+alt+上/下移动多行

(不适合移动的行数过多,移动的距离过远,或者跨文件移动)

键盘鼠标配合

鼠标点击开始的位置、找到尾行的位置、按住shift+鼠标点击结尾位置

光标定位到目标位置的上一行结尾

ctrl+v粘贴

4、类或方法的跳转

进入:按住ctrl+鼠标左键,进入方法

跳回:ctrl+alt+方向键左

调试项目

1、基本断点调试功能

启动debug

在这里插入图片描述
在编辑区左边空白位置点一下,就加了一个断点
在这里插入图片描述
通过浏览器访问地址后,页面出不来,打了断点的那一行显示深蓝色,表示程序走到这里暂停了,没有继续往下执行在这里插入图片描述
此时就可以看到这些变量里面的值在这里插入图片描述这一排又是啥意思呢?在这里插入图片描述

Step Over(F8):执行到当前方法的下一句

Step Into(F7):进入当前行调用的方法体里,可以进到第三方jar包(再执行下F8就会跳回来)

Force Step Into(alt+shift+F7):可以进到第三方jar包方法里面或jdk自带的方法里面

Step out(shift+F8):执行完当前的方法

Run to Cursor(alt+F9):运行到光标所在处

当你不想继续调试时,按下这个三角形就表示跳到下一个断点,如果没有断点则表示程序会一直运行完

在这里插入图片描述
2、断点管理

在实际调试时,可能会加了很多个断点,为了方便管理,这里有这么个菜单:

快捷键:ctrl+shift+f8
在这里插入图片描述
弹出如下窗口,在这里你就可以管理你的那些断点了
在这里插入图片描述
还有一种情况,如果加了很多断点,但这次调试时不需要用到它,但也不想删掉,

这时就可以鼠标移到那个断点上,右击,去掉Enabled。
在这里插入图片描述
也可以在断点管理里面把勾去掉,效果是一样的
在这里插入图片描述
还有一种情况,我调试完了,但是之前打的断点太多,一个个取消掉太费时间,这时候就可以点下这个:
在这里插入图片描述
再点一下,断点即可恢复
3、条件断点

假设有这么个循环,现在里面某个值出了问题,需要针对它进行断点调试
在这里插入图片描述
因为是针对循环里面的,所以断点要在这个位置,这样变量i才有值
在这里插入图片描述
接着对着这个断点右击,弹出如下框

在这里插入图片描述
在这个位置,设下条件,例如:i == 2,当循环遍历到i为2时,就会触发断点

(框里面填的是java代码)
在这里插入图片描述
此时该断点多了一个问号,表明是条件断点
在这里插入图片描述
另一种情况就是不知道是第几行出了问题,但知道user为test1这个用户才出错时,可以这样:
在这里插入图片描述
(一定是要在定义user的下一行加入断点,否则取不到值)

在这里插入图片描述
4、异常断点

有一个for循环,当循环到某一行时,就出现异常,但你又不知道是哪行,也不知道那一行的属性值是多少,这时候就要用异常断点

先确定是什么异常(如NullPointerException)

来到断点管理这里
在这里插入图片描述
点击加号后,选择下面这个
在这里插入图片描述
在弹出的框里面,填入NullPointerException
在这里插入图片描述
此时就会多一个打了勾的异常断点
在这里插入图片描述
这个断点不用你去点,在程序运行时,只要哪里出现这个异常,它就会自动打上断点

在这里插入图片描述5、添加变量监控

idea中,断点的变量值都会在右边展示
在这里插入图片描述
同时下面也能看到
在这里插入图片描述
还可以自己添加变量,进行观察
在这里插入图片描述
加完回车

在这里插入图片描述
这时候就会把值打印出来

在这里插入图片描述

代码生成

代码生成Generate

1、生成set/get

alt+insert,或者右键——》Generate
在这里插入图片描述
这时会提示要生成哪个,可以ctrl+a全选
在这里插入图片描述
这样就生成了set/get

2、生成构造函数

光标在任意位置按下alt+insert,弹出如下
在这里插入图片描述
弹出的框里面,选择构造方法的参数,ctrl+a就是全选

在这里插入图片描述
在这里插入图片描述3、生成toString

把光标放在要生成的地方
在这里插入图片描述
之后按alt+insert,选择如图
在这里插入图片描述

在弹出的框里面,链接方式默认是+号

在这里插入图片描述
这里选择StringBuffer方式,性能比+号好

在这里插入图片描述
4、生成hashCode和equals

alt+insert,选择如图
在这里插入图片描述
选择要参与equals的字段,默认全选

在这里插入图片描述
这时候就会自动生成equals和hashCode
在这里插入图片描述

重构代码

重命名快捷键:Shift+F6

用法一:重命名局部变量

用法二:重命名方法,所有调用到的地方会同步修改。(回车后会弹出当前操作会影响到的地方。若不需要修改的地方,右键-exclude,排除当前行,如果某个包下都不想改,可以在包上右键-exclude,统一排除)

用法三:重命名类名

撤销:Ctrl+Z

抽取方法:选中要抽取成一个方法的代码->右键Refactor->Extract抽取->Method方法->弹出Extract Method->修改成自己想要的属性

原则:一个方法只负责一个功能
在这里插入图片描述
生成变量

自动生成返回值:Ctrl+Alt+V

在这里插入图片描述

代码模板

psvm:生成主函数

sout:System.out.println();

fori:for循环

fore:foreach循环

Live Templates 可以自定义

自定义live template

在设置菜单->搜live T自行添加->点击绿色的“+”创建组2.Template Group->选中包再带你再添加模板1.live Template

注意:

图中“logf”可以自定义,和现有的重复也不要紧,在使用的时候,可以看描述选中自己的logf。

描述里尽量不要和现有的重复,否则在使用时会迷茫。

变量用"$ $"包含,变量名“CLASSNAME”可以自己定义。

添加变量后点击右方Edit variables,弹框中expression是内置的方法列表
在这里插入图片描述

postfix:先打变量或表达式,再打.快捷键 不能自定义

例如user.null就是if(user ==null){}

userlist.fori就是for(int i=0;i<userlist.size();i++){}

i1.if就是 if(i1){}

user.sout就是system.out.println(user);

常用窗口

project窗口:比较好用的选项有,Packages显示包,Problems显示报错文件,Changed Files有修改过的文件

structure窗口:快速查看类中的方法和属性,熟悉代码的时候打开用上

tudo窗口:可以理解为待办事项

用法:添加注释,在注释中写todo,如“// todo 调用service方法”,就能在todo界面看到待办事项。(在任务开发完后,把注释里的“todo”删除,任务就会从“TODO”窗口自动删除)

favorites窗口:相当于收藏夹,可将文件直接拖动加入收藏夹中的分组

用法一,将项目中的一些独立的文件加入收藏夹,如pom.xml,application.propertis等。

用法二,把当前正在开发的几个文件加入某个分组,方便开发时查找,开发完在删除分组。

termimal窗口:默认是用了系统的cmd窗口,可以运行cmd窗口的命令。一般该窗口是配合git使用(需要修改使用git的bash.exe,在设置菜单搜terminal,然后在Shell path中选择Git\bin\bash.exe)
在这里插入图片描述

更多使用技巧

查看方法调用情况ctrl+alt+H
在这里插入图片描述
看图,怎样同时选中aa/bbb/cccc/ddddd字符串然后修改

1.先ctrl+shift+alt+J 选中前面的相同的字符串,再右键移动到"后,再用 ctrl+shift+右 选中一个词修改
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
\t\t可以将地址变成链接

git操作

需要先安装git for windows,git客户端工具。

平时开发中,git的使用都是用可视化界面。git命令需要不是复习,以备不时之需。

蓝色文件:这次修改过,但还没有提交代码

绿色文件:修增的文件

黑色文件:这次代码没有修改过。
在这里插入图片描述
集成git方法:在设置界面,找到Git,然后在Path to Git executable中添加系统中\Git\bin\git.exe

集成完git后,项目文件夹会出现.git的隐藏文件夹。
在这里插入图片描述
git提交:Ctrl+K

小提示:每个人开发环境的配置不一样,本地开发环境相关的文件不要提交。包括build,target,class等编译后生成的文件夹和文件。(如.iml后缀,.idea文件夹)
在这里插入图片描述
自动识别不需提交到git的文件,需要将.gitignore文件放到工程根目录。
在这里插入图片描述
revert,要取消某个文件的修改,回到修改前的版本,在local Changes页面,文件右键,选择revert
在这里插入图片描述

在Git上建议新建项目的时候,README文件和.gitignore文件都不要,这样会得到一组初始化命令。

在这里插入图片描述
git初始化,将项目交给git来管理

在这里插入图片描述
将代码交给git来管理,相当于git add:操作如图

在这里插入图片描述
点击commit相当于git commit:提交刚才git add的文件,到git本地仓库。

一般提交需要将图中右方的Perform code analysis和Check TODO(Show ALL)打勾。

在这里插入图片描述
git remote add:关联远程仓库,origin是默认远程仓库名称。可关联多个远程仓库。
在这里插入图片描述
git push:将本地仓库中(已执行git commit)的代码提交到远程仓库

在这里插入图片描述
在github可以修改/新增文件,github实际上帮你执行了git add,git commit,git push等命令
在这里插入图片描述拉取远程仓库代码到本地,相当于git pull:Ctrl+T

在这里插入图片描述
补充:当本地没有代码,要从远程仓库拉取时,可以用git clone

追加上一次提交:在commit Changes界面的Amend commit打勾,如图。
在这里插入图片描述

如果通过ssl授权就不用每次都输入密码了

SSH Key方法:

在工程目录上右键点击Git GUI Here

在弹出的Git Gui界面上点击Help

Show SSH Key->点Generate生成密钥(弹框什么都不输直接OK )

点Copy To Clipboard复制

打开gitHub网页,点击右上方头像下的Settings

点击SSH and GPG keys

点New SSH key,将复制好的Key粘贴进去

点Add SSH key即可
在这里插入图片描述

mybatis插件

用于代码跟踪

在Plugins插件安装界面,搜free mybatis plugin,点Install安装
在这里插入图片描述
常见面试题:maven出现jar包冲突,怎么解决?

答:点击界面右方的Maven Projects,点击Show Dependencies的图标打开依赖树,将出现红线且确定不需要的jar,右键Exclude,点Import Changes即可。

在这里插入图片描述
maven出现jar包冲突如何解决?

首先打开pom检查依赖关系,通过依赖图查看jar包冲突位置,找到起冲突的jar,不需要的jar

将其exclusion排除掉,保留适用的版本在这里插入图片描述

总结

ctrl+左/右

ctrl+shift+左/右

ctrl+G

alt+左/右

ctrl+E

ctrl+shift+A:查找菜单操作

按两次shift:万能查找

万能快捷键alt+enter

见红色报错就按

见警告波浪线

没报错没警告也可以按

ctrl+鼠标左键:跳转

ctrl+alt+键盘左键:返回刚才跳转的位置

alt+insert:代码生成器

ctrl+alt+v:自动生成返回值

第1组:通用型
说明 快捷键

复制代码-copy ctrl + c
粘贴-paste ctrl + v
剪切-cut ctrl + x
撤销-undo ctrl + z
反撤销-redo ctrl + shift + z
保存-save all ctrl + s
全选-select all ctrl + a

第2组:提高编写速度(上)
说明 快捷键

智能提示-edit alt + enter
提示代码模板-insert live template ctrl+j
使用xx块环绕-surround with … ctrl+alt+t
调出生成getter/setter/构造器等结构-generate … alt+insert
自动生成返回值变量-introduce variable … ctrl+alt+v
复制指定行的代码-duplicate line or selection ctrl+d
删除指定行的代码-delete line ctrl+y
切换到下一行代码空位-start new line shift + enter
切换到上一行代码空位-start new line before current ctrl +alt+ enter
向上移动代码-move statement up ctrl+shift+↑
向下移动代码-move statement down ctrl+shift+↓
向上移动一行-move line up alt+shift+↑
向下移动一行-move line down alt+shift+↓
方法的形参列表提醒-parameter info ctrl+p

第3组:提高编写速度(下)
说明 快捷键

批量修改指定的变量名、方法名、类名等-rename shift+f6
抽取代码重构方法-extract method … ctrl+alt+m
重写父类的方法-override methods … ctrl+o
实现接口的方法-implements methods … ctrl+i
选中的结构的大小写的切换-toggle case ctrl+shift+u
批量导包-optimize imports ctrl+alt+o

第4组:类结构、查找和查看源码
说明 快捷键

如何查看源码-go to class… ctrl + 选中指定的结构 或 ctrl+n
显示当前类结构,支持搜索指定的方法、属性等-file structure ctrl+f12
退回到前一个编辑的页面-back ctrl+alt+←
进入到下一个编辑的页面-forward ctrl+alt+→
打开的类文件之间切换-select previous/next tab alt+←/→
光标选中指定的类,查看继承树结构-Type Hierarchy ctrl+h
查看方法文档-quick documentation ctrl+q
类的UML关系图-show uml popup ctrl+alt+u
定位某行-go to line/column ctrl+g
回溯变量或方法的来源-go to implementation(s) ctrl+alt+b
折叠方法实现-collapse all ctrl+shift+ -
展开方法实现-expand all ctrl+shift+ +

第5组:查找、替换与关闭
说明 快捷键

查找指定的结构 ctrl+f
查找与替换-replace ctrl+r
直接定位到当前行的首位-move caret to line start home
直接定位到当前行的末位 -move caret to line end end
全项目搜索文本-find in path … ctrl+shift+f

第6组:调整格式
说明 快捷键

格式化代码-reformat code ctrl+alt+l
使用单行注释-comment with line comment ctrl + /
使用/取消多行注释-comment with block comment ctrl + shift + /
选中数行,整体往后移动-tab tab
选中数行,整体往前移动-prev tab shift + tab

  • 19
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值