idea分为Ultimate Edition旗舰版和Community Editon社区版。
欢迎界面:
Create New Project:创建新的项目
Inport Project:导入已有的旧项目
Open:打开现有的一个项目/文件
Check out from Version Control:从版本控制系统中检出项目。
高亮度对比模式是给色盲设计的。
idea右下角的锁代表编辑器的文件是自读模式。
监视IDEA的性能:
help—>Activity Monitor
设置字体:
File—>Settings—>Editor—>Font
自定义菜单栏:
File—>Settings—>Appearance&Behavior—>Menus and Toolbars
增加内存堆:
Help—>Change Memory Settings
清理无效缓存:
File—>Invalidate Caches/Restart
Idea运行main方法后的第一行是运行此方法的命令;
模块modules:
在idea中,模块是任何项目的重要组成部分,与项目一起自动创建。项目可以包含很多模块,可以添加新模块,也可以卸载当前不需要的模块。
模块由内容根目录和模块文件组成。内容根目录是一个存储代码的文件夹,通常包含源代码,测试单元,资源文件等。
模块文件(*.iml文件)用于保持模块配置。
模块依赖:
JARs or directory(Jar或目录):从计算机的文件中选择jar包或目录
Libary(库):选择现有的库或创建一个新库,然后将其添加到依赖的列表中。
Module Dependency(模块依赖性):在项目中选择另外一个模块。
添加移除模块:
选择项目右击—>load/unload modules
使用idea从maven中下载jar包:
Project Structure—>Libraries—>±–>From Maven
最大化编辑器:
ctrl + shift + f12
返回默认布局:
shift + f12
跳到上一个活动窗口:
F12
设置快捷键:
File—>Setting—>keymap
编辑器配置:(ctrl+alt+s)
File—>Settings—>Editor
快速跟踪类:
编辑器左侧装订栏的 I↑ I↓ o↓ o↑
导航到超级方法: ctrl + u
导航到实现:ctrl + alt + B
打开结构视图:
ctrl + f12
ctrl + shift + r
ctrl + shift + f
格式化代码:
ctrl + alt + L
快速文档:
选择一个类名,然后 ctrl + q
查看一个方法的参数信息:
ctrl + p
UML类图:
选择项目右击—>Diagrams—>
Run/Debug configurations对话框
Logs选项卡:指定程序运行时日志的输出选项。
调试:
调试的目的是干扰程序的执行,并提供有关幕后的情况信息,有助于检查和修改程序中的错误过程。
断点:
行断点:
方法断点:进入或退出指定方法时起作用。
字段观察点:读取或写入字段时起作用。12
异常断点:
配置断点:
Run—>view BreakPoints复选框:
1,Enabled(已启用)
清除复选框可以临时禁用断点而不将其从项目中删除,在调试过程中会跳过禁用的断点。
2,Suspend(暂停)
指定在命中断点时是否暂停执行程序,有一下两个策略:
1,全部
2,线程:仅挂起到达断点的线程
3,condition(条件):
每次命中断点时都要检查条件,如果评估结果为true,执行选中的操作,否则忽略断点,表达式的结果取自return语句,若没有return语句,结果取自代码的最后一行。
3.1:可以使用多个语句,包括声明,循环,匿名类
3.2:this(在非静态上下文中),例如引用当前异常 !(this instanceof IOException)
4,Logging options(记录选项)
遇到断点时,可以将以下选项记录到控制台。
4.1:"Break hit"message:类似的日志消息
4.2:stack trace(堆栈跟踪):当前帧的堆栈跟踪,如果在不中断的情况下检查导致该点的路径很有用。
5,Remove once hit(命中即删除)
指定在被击中一次之后是否应该从项目中删除该点。
6,disable until hitting the following breakpoint :在命中一下断点之前禁用当前断点
debug窗口:
选项卡:
Frame框架:在线程的调用堆栈中导航。
Variables变量:列出当前上下文可用的变量。并且提供了一下工具可以分析和修改变量。
watches观察:在变量选项卡上
console:
Threads:显示活动线程列表,并且可以切换线程
Memory内存:提供有关堆上的可以对象信息,并允许监视可分析它的生存期。
overhead开销:监视特定调试器功能消耗的资源。
逐步执行代码:
1,Step over 下一步 或按 F8
直接进行当前视图中的下一行
2,Step into 步入 shift + f7
逐步介绍该方法中发生的事情。
3,Step out 步出 shift + f8
退出当前方法,然后转到调用者方法,
4,Run to Cursor按钮 alt + f9
跳的光标所在的地方
5,Force Step Into 强制进入 shift + alt + f7
比如进入 System.out.println()方法
6,Force Step Over 强制越过 shift + alt + f8
若当前行的方法中有断点,强制跳过
分析JVM堆中的对象:在Memory视图中进行分析:
对于检查内存泄漏及其原因很有用,例如内部类可能会阻止外部进行垃圾回收,最终导致 OutOfMemoryError
Class:类名称
Count:堆中对象(实例)的个数
Diff:两个执行点之间的实例数之差。
分析java Stream操作:选择 Trace Current Stream Chain
list.stream() //在此行打断点
.skip(1)
.filter(temp -> temp.contains(“a”)).forEach(System.out::println);
显示类的结构层次:
ctrl + H
方法的结构层次:
ctrl + shift + H
查看调用层次结构:
ctrl + alt + H
显示源码的结构层次:
alt + f7
分析数据流:
作用:
1,查看分配给变量的值从何而来
2,找到变量具有的所有可能值
3,找出一个表达式,变量,方法参数可能流入的地方
4,揭示可能产生 NullPointExceptioin的地方
Analyze--->Dateflow to here 分析数据流到的地方
Analyze--->Dateflow to from 分析来自处的数据流。