idea
2022-04-10 17:24:36 0 举报
AI智能生成
登录查看完整内容
idea相关的操作详解
作者其他创作
大纲/内容
1.maven仓库默认配置:C:\\Users\\Administrator\\.m2\epository
D:\\software\\apache-maven-3.8.2\\conf\\settings.xml
2.设置settings文件
D:\\software\\apache-maven-3.8.2\epository
3.设置repository文件位置
1、设置maven仓库
maven项目在pom.xml中设置
2、设置编译版本
File | Settings | Editor | Font
3、设置外观和字体大小
File | Settings | Editor | File Encodings
4、设置字符编码
file->setting->editor->file encodings 把transparent native-to-ascll conversion勾选上就行了。
5、当idea中properties配置文件中文显示utf8编码乱码
分支主题
进入setting→inspections→serialization issues→选择图中的选项。serializable class without ‘serialVersionUID’
类继承了Serializable接口之后,使用alt+enter快捷键自动创建序列化id
6、Intellij idea用快捷键自动生成序列化id
File | Settings | Editor | File and Code Templates
设置类注释模板
新建组
新建模板:命名为*
注意第一行,只有一个*而不是/*
新增模板内容
设置模板的应用场景
设置参数的获取方式
/*+模板名+Enter-->/**+Enter
测试
File-->Settings-->Editor-->Live Templates
设置方法注释模板
7、设置注释模板
settings → editor → general → code completion
8、代码提示设置是否区分大小写
settings → languages&frameworks → javascript
9、设置javasript的版本
XX:ReservedCodeCacheSize预留代码缓存的大小
一:help→ edit custom vm options
C:\\Users\\Administrator\\.IntelliJIdea2018.3\\config\\idea64.exe.vmoptions
二:找到安装的位置
10、设置idea的内存
idea常用设置
提炼方法(抽取方法)
1、ctrl+alt+M
全局搜索类及文件
2、ctrl+shif + N
格式化代码
3、ctrl+shift +L
全局搜索和替换
4、ctrl+shift+R(replace)
可以把代码包在一个块内,例如:try/catch
5、ctrl+alt+T
复制本行代码
6、CTRL+D
删除本行代码
7、CTRL+Y
子主题 1
查找类中的方法或变量
8、Ctrl+Shift+Alt+N
返回至上次浏览的位置
9、Ctrl+Alt+left/right
find usages:查询在什么地方使用到
10、ctrl+F7
去除无用的导入
11、ctrl+alt+O
获取类的结构
12、ctrl+alt+shift+u
查看一个类中所有的方法
13、alt+7
可以显示当前文件的结构
14、ctrl+f12
查看调用层次
15、ctrl+alt+H
idea快捷键
1、添加多个项目到一个工程中,就可以不用开多个窗口
设置显示tab数量:Setting -> Editor -> General -> Editor Tabs
显示效果
tab多行显示:默认单行显示
使用
效果
多页面显示
2、idea控制标签页多行/单行显示
1、ctrl+w选中要修改的内容
2、依次使用n次alt+j快捷键,逐个选中要修改的内容
选中
批量修改
3、举例:
3、批量修改相同的内容
子主题
alt+7
view--->Tool Windows --->Structure--->点击
Ctrl + F12
4、显示类中的方法名
mvn package -Dmaven.test.skip=true
1.进入工程目录打成jar包
2.上传到服务器
3.设置idea远程调试
4.命令行启动
5.idea远程调试
6.测试
5、远程调试
选择
结果
find usages: alt+f7
6、查询某个方法在什么地方使用
debug模式下如下图
进入断点即进入debug模式
idea底部显示工具栏
在菜单栏Run里有调试对应的功能,同时可以查看对应的快捷键。
debug设置
① 以Debug模式启动服务,左边的一个按钮则是以Run模式启动
② 断点:在左边行号栏单击左键,或者快捷键Ctrl+F8 打上/取消断点,断点行的颜色可自己去设置。
③服务按钮:可以在这里关闭/启动服务,设置断点等。
④ 调试按钮:一共有8个按钮,调试的主要功能就对应着这几个按钮,鼠标悬停在按钮上可以查看对应的快捷键。在菜单栏Run里可以找到同样的对应的功能
⑤方法调用栈:这里显示了该线程调试所经过的所有方法,勾选右上角的[Show All Frames]按钮,就不会显示其它类库的方法了,否则这里会有一大堆的方法。
⑥Variables:在变量区可以查看当前断点之前的当前方法内的变量。
⑦Watches:查看变量,可以将Variables区中的变量拖到Watches中查看
解释
一、Debug开篇
> Rerun 'xxxx':重新运行程序,会关闭服务后重新启动程序。
> Update 'tech' application (Ctrl + F5):更新程序,一般在你的代码有改动后可执行这个功能。而这个功能对应的操作则是在服务配置里,如图2.3。
> Resume Program (F9):恢复程序,比如,你在第20行和25行有两个断点,当前运行至第20行,按F9,则运行到下一个断点(即第25行),再按F9,则运行完整个流程,因为后面已经没有断点了。
> Pause Program:暂停程序,启用Debug。目前没发现具体用法。
> Stop 'xxx' (Ctrl + F2):连续按两下,关闭程序。有时候你会发现关闭服务再启动时,报端口被占用,这是因为没完全关闭服务的原因,你就需要查杀所有JVM进程了。
> View Breakpoints (Ctrl + Shift + F8):查看所有断点,后面章节会涉及到。
> Mute Breakpoints:哑的断点,选择这个后,所有断点变为灰色,断点失效,按F9则可以直接运行完程序。再次点击,断点变为红色,有效。如果只想使某一个断点失效,可以在断点上右键取消Enabled,则该行断点失效。
图3详解
> Show Execution Point (Alt + F10):如果你的光标在其它行或其它页面,点击这个按钮可跳转到当前代码执行的行。
> Step Over (F8):步过,一行一行地往下走,如果这一行上有方法不会进入方法。
> Step Into (F7):步入,如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,不会进入官方类库的方法,如第25行的put方法。
> Force Step Into (Alt + Shift + F7):强制步入,能进入任何方法,查看底层源码的时候可以用这个进入官方类库的方法。
> Step Out (Shift + F8):步出,从步入的方法内退出到方法调用处,此时方法已执行完毕,只是还没有完成赋值。
> Drop Frame (默认无):回退断点,后面章节详细说明。
> Run to Cursor (Alt + F9):运行到光标处,你可以将光标定位到你需要查看的那一行,然后使用这个功能,代码会运行至光标行,而不需要打断点。
> Evaluate Expression (Alt + F8):计算表达式
图4详解
二、基本用法&快捷键
参数所在行后面会显示当前变量的值
光标悬停到参数上,显示当前变量信息
在Variables里查看,这里显示当前方法里的所有变量
在Watches里,点击New Watch,输入需要查看的变量。或者可以从Variables里拖到Watche里查看
三、变量查看
选择计算的表达式,alt+F8 ,弹框点击计算
设置变量,在计算表达式的框里,可以改变变量的值,这样有时候就能很方便我们去调试各种值的情况
四、计算表达式
如果只有一个方法,则直接进入,类似Force Step Into。
一行有多个方法,可以选择某个方法进入
五、智能步入
1、在断点上右键直接设置当前断点的条件(点击测试即可),注意:条件为boolean值
2、点击View Breakpoints (Ctrl + Shift + F8),查看所有断点。
通过设置断点条件,在满足条件时,才停在断点处,否则直接运行。(一般循环时使用)
六、断点条件设置
代码改造成多线程
设置线程模式
主线程跑完才跑子线程
切换线程
调试
IDEA在Debug时默认阻塞级别是ALL,会阻塞其它线程,只有在当前调试线程走完时才会走其它线程。可以在View Breakpoints里选择Thread,然后点击Make Default设置为默认选项。
七、多线程调试
Drop Frame
在调用栈方法上选择要回退的方法,右键选择Drop Frame
就是回退到上一个方法调用的开始处,在IDEA里测试无法一行一行地回退或回到到上一个断点处,而是回到上一个方法。
八、回退断点
debug查询调用栈
设置返回值
查看结果
确切的说,我也没发现可以直接中断请求的方式(除了关闭服务),但可以通过Force Return,即强制返回来避免后续的流程
九、中断Debug
十、附:JRebel激活
7、关于debug
本地jar安装
仓库安装
8、安装插件
点击勾选 allow parallel run
点击edit configurations
9、一个项目使用多实例运行
右下角弹框显示是否显示run dashboard
选中某个应用复制,然后点击ok
10、idea run dashboard显示
可以对类名进行修改,并应用到所有使用到该类的地方,方法名修改也可以使用
11、refactor
12、IDEA 中如何查看一个类的所有继承关系
https://github.com/alibaba/p3c/tree/master/p3c-formatter
https://github.com/vipshop/vjtools/tree/master/standard/formatter
github地址
导入
点击确定导入
midea.xml
模板文件
xiaoyong3.xml
模板文件2
ctrl + alt + L 格式化
ctrl + alt + O 优化import 包
File | Settings | Editor | Code Style
13、idea中导入格式化模板
设置
general
File | Settings | Editor | Inspections
14、重复代码设置提醒
file->other settings->settings for new project
15、设置idea中maven的默认配置
步骤
settings.zip
文件
美的
博智林
File->Manage IDE Settings ->Export Settings
导出
File->Manage IDE Settings ->Import Settings
16、导入导出idea中的配置
17、在DEBUG模式下如何不执行后续代码直接停止程序
idea使用方法
使用:实时检测功能一般关闭,耗内存
效果:检测出需要进行修复的缺陷
说明一:如果在 lock 方法与 try 代码块之间的方法调用抛出异常,那么无法解锁,造成其它线程无法成功获取锁。
说明二:如果 lock 方法在 try 代码块之内,可能由于其它方法抛出异常,导致在 finally 代码块中,unlock 对未加锁的对象解锁,它会调用 AQS 的 tryRelease 方法(取决于具体实现类),抛出IllegalMonitorStateException 异常
说明三:在 Lock 对象的 lock 方法实现中可能抛出 unchecked 异常,产生的后果与说明二相同。
正例
1、在使用阻塞等待获取锁的方式中,必须在 try 代码块之外,并且在加锁方法与 try 代码块之间没有任何可能抛出异常的方法调用,避免加锁成功后,在 finally 中无法解锁
反例
2、在if/else/for/while/do语句中必须使用大括号。即使只有一行代码,避免采用单行的编码方式:if (condition) statements;
多线程并行处理定时任务时,Timer运行多个TimeTask时,只要其中之一没有捕获抛出的异常,其它任务便会自动终止运行,使用ScheduledExecutorService则没有这个问题。
6、所有的包装类对象之间值的比较,全部使用equals方法比较
1. Pattern 表达式要提前定义,不要再需要的地方临时定义;
2. Pattern 表达式要定义为 static final 静态变量,以避免执行多次预编译。
正确用法
错误用法
3、在使用正则表达式时,利用好其预编译功能,可以有效加快正则匹配速度。
getObject()与get0bject()的问题。一个是字母的O,一个是数字的0,加@Override可以准确判断是否覆盖成功。另外,如果在抽象类中对方法签名进行修改,其实现类会马上编译报错
4、所有的覆写方法,必须加@Override注解
1)FixedThreadPool和SingleThreadPool: 允许的请求队列长度为Integer.MAX_VALUE,可能会堆积大量的请求,从而导致OOM。
2)CachedThreadPool: 允许的创建线程数量为Integer.MAX_VALUE,可能会创建大量的线程,从而导致OOM。
创建弊端
例子
线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。
获取当前毫秒数:System.currentTimeMillis(); 而不是new Date().getTime();
5、避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名来访问即可。
Block
Object的equals方法容易抛空指针异常,应使用常量或确定有值的对象来调用equals。
1) 只要重写equals,就必须重写hashCode。
2) 因为Set存储的是不重复的对象,依据hashCode和equals进行判断,所以Set存储的对象必须重写这两个方法。
3) 如果自定义对象做为Map的键,那么必须重写hashCode和equals
Map/Set的key为自定义对象时,必须重写hashCode和equals。
POJO类中的任何布尔类型的变量,都不要加is,否则部分框架解析会引起序列化错误
SimpleDateFormat 是线程不安全的类,一般不要定义为static变量,如果定义为static,必须加锁,或者使用DateUtils工具类。
不能使用过时的类或方法
在一个switch块内,每个case要么通过break/return等来终止,要么注释说明程序将继续执行到哪一个case为止;在一个switch块内,都必须包含一个default语句并且放在最后,即使它什么代码也没有。
对于Service和DAO类,基于SOA的理念,暴露出来的服务一定是接口,内部的实现类用Impl的后缀与接口区别
1、常量命名应该全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。
异常类命名使用Exception结尾
必须回收自定义的ThreadLocal变量,尤其在线程池场景下,线程经常会被复用,如果不清理自定义的 ThreadLocal变量,可能会影响后续业务逻辑和造成内存泄露等问题。尽量在代理中使用try-finally块进行回收。
2、所有的枚举类型字段必须要有注释,说明每个数据项的用途
所有编程相关的命名均不能以下划线_或美元符号$开始
3、抽象类命名使用Abstract或Base开头
4、方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase,必须遵从驼峰形式。
线程资源必须通过线程池提供,不允许在应用中自行显式创建线程。
Critical
1、禁止使用魔法数字,即未定义的常量直接出现在代码中
1) 所有的POJO类属性必须使用包装数据类型。
2) RPC方法的返回值和参数必须使用包装数据类型。
3) 所有的局部变量推荐使用基本数据类型。
说明:POJO类属性没有初值是提醒使用者在需要使用时,必须自己显式地进行赋值,任何NPE问题,或者入库检查,都由使用者来保证。
关于基本数据类型与包装数据类型的使用标准
2、中括号是数组类型的一部分,数组定义如下:String[] args
3、事务场景中,抛出异常被catch后,如果需要回滚,一定要手动回滚事务
4、包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,类名如果有复数含义,可以使用复数形式
单个方法的行数不要超过80行
5、及时清理不再使用的代码段或配置信息
6、定义DO/DTO/VO等pojo类时,不要加任何属性默认值
循环体内,字符串的联接方式,使用StringBuilder的append方法进行扩展。
7、所有的抽象方法(包括接口中的方法)必须要用javadoc注释,除了返回值、参数、异常说明外,还必须指出该方法做什么事情,实现什么功能。
8、所有的类都必须添加创建者信息
9、方法内部单行注释,在被注释语句上方另起一行,使用//注释。方法内部多行注释使用/**/注释。注意与代码对齐。
10、类、类属性、类方法的注释必须使用javadoc规范,使用/**内容**/格式,不得使用//xxx方式和/*xxx*/格式
11、类名使用UpperCamelCase风格,必须遵从驼峰形O式,但以下情形除外(领域模型的相关命名):BO/DTO/DO/VO/DAO
返回类型为基本数据类型,return包装数据类型的对象时,自动拆箱有可能产生NPE
12、除常用方法(getXxx/isXxx)等外,不要在条件判断中执行复杂的语句,将复杂逻辑判断的结果赋值给一个有意义的布尔变量,以提高可读性。
13、集合初始化时,指定集合初始值大小。
15、避免使用反逻辑操作符
Major
检测标准
Alibaba Java Coding Guidelines alibaba
1、p3c插件:代码审查
接口
xml文件
Free Mybatis plugin
2、Mapper接口和XML文件之间跳转
rainbow brackets
3、彩虹括号插件:区分层次,括号显示不同的颜色
使用(ctrl+shift+y)
translate
4、翻译插件
如:转换大小写,定义常量的时候
ctr+shift+u
idea自带功能
String Manipulation
5、字符串处理插件
git tool box
6、git工具箱
Conflicts(查看冲突)
All Dependencies as List(列表形式查看所有依赖)
All Dependencies as Tree(树形式查看所有依赖)
功能
1.找到pom.xml文件
3.显示依赖列表
4.显示依赖树
maven helper
7、maven显示依赖树
安装插件
pom中引入依赖
在类上直接添加注解即可
@Data : 注在类上,提供类的get、set、equals、hashCode、canEqual、toString方法
@AllArgsConstructor : 注在类上,提供类的全参构造
@NoArgsConstructor : 注在类上,提供类的无参构造
@Setter : 注在属性上,提供 set 方法
@Getter : 注在属性上,提供 get 方法
@EqualsAndHashCode : 注在类上,提供对应的 equals 和 hashCode 方法
@Log4j/@Slf4j : 注在类上,提供对应的 Logger 对象,变量名为 log
常用注解
lombok
8、自动生成get set方法
1、在plugins搜索:sonarlint 进行安装
2、在tools中找到sonarlint进行
http://sonar.midea.com
3、设置地址
4、sonarlint检测规则列表
5、使用sonarlint进行扫描
SonarLint
9、自动代码扫描工具
默认位置:C:\\Users\\Administrator\\.IntelliJIdea2018.3\\config\\plugins
10、idea已安装插件存放位置
Restore mybatis sql log to original whole executable sql.
Plugin generate sql statements with replace ? to the really param value.
1、配置打印日志参数
2、安装完成之后,有插件显示
3、测试:有sql打印
4、选择含有sql语句的日志,右键点击restore sql for selection即可
5、点击接口,自动显示sql
plugin.intellij.assistant.mybaitslog-2020.1-1.0.3.jar
MyBatis Log Plugin(收费)
11、显示mybatis中的sql语句
反编译employee.class
显示字节码
jclasslib-bytecode-viewer
12、反编译class文件
Statistic
13、统计整体代码量
google-java-format
14、代码格式化
SequenceDiagram
15、根据方法的调用关系,自动生成执行时序图
https://mp.baomidou.com/guide/mybatisx-idea-plugin.html#%E5%8A%9F%E8%83%BD
官网
xml跳转
连接数据库
选择数据库
显示所有的库
选择对应的表
设置表生成属性
生成代码
生成新增
生成查询
生成修改
生成删除
JPA提示
mybatisX
16、自动生成mapper代码
easycode
17、自动生成代码
leetcode editor
18、刷算法
.ignore
19、git提交代码忽略不需要的文件提交
在新建java文件中右键->Generate ->GsonFormat
输入json串
ok
可以调整实体属性的类型
virgo model
GsonFormat
GsonFormatPlus
20、JSON字符串自动转换成Java实体类
SwaggerGenerate.jar
插件
属性需要有注释
限制
在新建java文件中右键->Generate ->swagger generation
选择属性,点击ok即可
SwaggerGenerate
21、生成swagger实体注解
idea 2021已经集成在idea内部
模式切换
java stream debugger
22、java8中的stream中的每一步做断点处理
Properties to YAML Converter
23、将Properties 配置文件一键转换成YAML 文件
ctrl+alt+N
Restfultookit
24、根据url地址定位到controller中的方法
idea插件
问题
idea中快捷键与输入法快捷键冲突:crtl+shift+f
原因
修改输入法的简繁切换快捷键的设置,crtl+shift+f切换回简体输入方式
解决
1、idea中输入中文变成繁体字
java.lang.OutOfMemoryError:GC overhead limit exceeded
于IDEA里为Maven的importer设置的JVM最大堆内存(-Xmx)过小而导致的
2、导入springboot项目报错
在logback使用了<springProfile>标签,获取到项目所处的环境是线上还是线下,根据这个来指定部分日志是否记录
官方文档解释
logback.mxl修改成logback-spring.xml
3、springboot项目启动报错:日志logback
引入jaxb-api依赖
报错1
引入jaxb-impl依赖
报错2
4、采用jdk12运行sharding-jdbc-demo报错:类找不到
项目的名称由sharding-jdbc-level-table修改成sharding-jdbc-level-database,却出现了中括号。现在中括号里的sharding-jdbc-level-table其实是model的名字,而sharding-jdbc-level-database是文件的名字。要去掉中括号就必须使model名和文件名一致
原来
解决后
修改model的名字和文件名一致
Project structure |modules
5、IDEA修改项目名称出现中括号
项目是由另一个项目拷贝而来,需要把之前的源文件目录删除
6、The root already belongs to module \"sharding-jdbc-level-database\"
依赖
报错
依赖冲突
排除日志相关的依赖
7、springboot启动zookeeper 项目报错
springBoot与springCloud的版本不一样导致的。
替换版本
8、springboot启动集成hystrix 报错
9、idea中 run debug中的设置断点按钮不见了
project module中含有此项目,删除即可
删除project module对应的项目
①建子类工程的时候,建子类module的时候没有一次性建成功,而是删除后重建
②在工程的xml 文件中会存在子module的信息
--右方显示子类项目结构 --点击没有变化的文件夹(选择上方对应正确的文件夹)
--右上方可以选择java resources
idea --File --ProjectStructure --modules(点击中间子类module)
操作
11、Idea 在建父子类工程,子类java和resources 文件夹没有对应变化颜色
maven ignore 中忽略了maven模块
在idea中maven的setting中找到ignored files,看看是不是有勾选的。去掉就好了
12、idea项目在maven projects中显示灰色
idea 默认的properties文件是GBK,当有中文时,不同的客户端配置的编码不同时,可能产生中文乱码。
修改properties的默认编码,统一为utf8。
Default encoding for properties file -> GBK
File | Settings | Editor | File Encodings
13、idea中properties文件中文显示乱码
通过postman,发送一个post请求,导致该异常的,是因为该目录不存在导致的
目录不存在
c盘创建目录即可
请求之后,文件保存的目录
14、org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.RuntimeException: java.nio.file.NoSuchFileException: C:\\data\\tmp\\undertow8501484023270216088upload
方法一:重启idea
方法二:在idea中settings下的version control中先删除版本控制之后再加入版本控制
解决方法
15、idea使用git的时候,修改后文件变蓝后马上就变白,没有要提交的文件
idea 常见问题
JetbrainsIdesCrack-4.2-release-enc.jar
下载破解所需的jar包
D:\\developSoftware\\idea\\idea2018\\IntelliJ IDEA 2018.3.6\\bin\\JetbrainsIdesCrack-4.2-release-enc.jar
将下载后的jar包放入到 idea安装目录的bin目录下
-javaagent:D:\\developSoftware\\idea\\idea2018\\IntelliJ IDEA 2018.3.6\\bin\\JetbrainsIdesCrack-4.2-release-enc.jar
修改bin目录下的 idea.exe.vmoptions 和 idea64.exe.vmoptions配置文件
激活码
打开idea。初始会显示选择主题,安装插件等,默认先不安装就行,然后出现激活界面
idea2018.3.6破解
ide-eval-resetter-2.2.3.zip
ide-eval-resetter.zip
https://laowangblog.com/ide-eval-resetter-jetbrains-trial.html
参考地址
ideaa 2021.3
idea破解
idea
0 条评论
回复 删除
下一页