IDEA
一、IDEA概述
- IDEA全程IntelliJ IDEA,是用于Java语言开发的集成环境,它是业界公认的目前用于Java程序开发最好的工具。
- 集成环境:把代码编写、编译、执行、调试等多种功能综合到一起的开发工具
- 工欲善其事必先利其器,总得找个好的地方写代码
IDEA中的工具栏
-
在View下的Appearance出勾选
-
structure可以查看类结构,例如查看源码
-
TODO为代办事项
- Terminal终端窗口,可输入终端命令
- Database显示数据库相关信息
IDEA中的项目结构
- project(项目、工程)
淘宝、京东网站都属于一个个项目,IDEA中就是一个个的Project
- module(模块)
一个项目中可以存在多个模块,多个模块中,存放项目不同的业务功能代码
- package(包)
一个模块当中可以存放多个包,使用包来管理类文件(class)
- class(类)
注:
- 层级关系project-module-package-class
- 这些结构的划分,是为了方便管理类文件的。模块之间彼此可以相互依赖。这些Module之间都是处于同一个项目业务下的模块,彼此之间是有不可分割的业务关系的。
- Eclipse中的Workspace相当于IDEA中的Project;Eclipse中的Project相当于IDEA中的Module;
IDEA项目的文件结构
-
找到存放项目的目录,可以命名为idea_workspace或任意,这里我随便起的
-
Module1、Module2为创建的模块目录
-
out目录:存放编译后的字节码文件
-
src为项目下的源码目录
-
.idea文件夹是存储IntelliJ IDEA项目的配置信息,包括历史记录,版本控制信息等。
-
.iml文件是idea 对module 配置信息之意, infomation of module
iml是 intellij idea的工程配置文件,里面是当前project的一些配置信息。
二、IDEA中操作模块
创建新模块和导入
-
法一:打开项目结构,选中模块后打开或导入
-
法二,直接选择项目右击新建
删除模块
- remove删除磁盘依然存在,对应模块的蓝色标号呈灰色
- 后可再次右击delete删除,此时会从磁盘中删除
打开关闭项目以及rename
-
打开/关闭项目
-
重命名
导入jar包
-
进入项目结构
-
选择libraries后新建
三、IDEA常用设置
进入设置
设置主题
用鼠标调节字体大小
设置悬浮快速提示
自动导包和优化包
同一个包下的类,超过指定个数的时候,导包合并为*
设置行号和方法分隔符
忽略大小写给出提示,取消Match case
设置最多同时打开多少个文件以及关闭的默认策略
- 取消在仅一行显示
设置字体,字号和行间距(编辑区和控制台都会变化)
修改代码中注释的颜色
修改类头的文档注释信息
/**
* @ClassName: ${NAME}
* @Description: ${PACKAGE_NAME}
* @Create by: ${USER}
* @Date: ${DATE} ${TIME}
*/
设置文件字符编码为UTF-8
设置自动编译
取消省电模式
生成序列化版本号
注:虽然多,但是属于一劳永逸的,一步步设置就行了
四、IDEA常用快捷键
- 不用强行记忆,多用就熟练了
/*
创建内容:Alt + insert
psvm + 回车:快速生成main方法
sout + 回车:快速生成输出语句
Alt + 1 打开\隐藏 工程目录结构(Project)
Alt + 4 打开\隐藏 控制台(Run)
Alt + 7 显示代码结构(Structure)
Alt + Enter:代码修正提示
Alt + insert: 生成代码,如构造函数等
Ctrl + Alt + l 格式化代码
Ctrl + d 向下复制一行
Ctrl + y 删除一行
Ctrl + X 剪切当前行
Ctrl + n 搜索类
Ctrl + z 撤回
Ctrl + / 批量加入单行注释,再按一次就是取消
Ctrl + Shift + / 批量加入多行注释,再按一次就是取消
Ctrl + Alt + t 代码块包围,如try...catch,if,while等
Ctrl + 鼠标点击 追踪调用的上一层源码
Tab / Shift Tab 缩进/取消缩进
Shift + f6: 重命名
Alt +Shift + ↑ 上移当前行
Alt +Shift + ↓ 下移当前行
*/
五、IDEA代码模板
什么是代码模板
- 代码模板的原理就是配置一些常用代码的字母缩写,在输入简写时可以出现预定义的固定模式的代码。
- 可以提高开发效率,增强个性化设置。
- 例如输入sout会出现
System.out.println();
两种代码模板
- Live Templates
- 直接输入使用
- 可以做用户的个性化定制
- Postfix Completion
- 通过后缀使用
- 只能使用,不能修改
常用的代码模板
main方法
- psvm或main:用于生成
public static void main(String[] args) {}
输出模板
- sout或.sout:最基本的输出语句,用于生成 System.out.println();
- soutp:打印当前方法的形参
- soutm:打印当前方法的名字
- soutv:打印距离最近的变量
public class Test1 {
// psvm或main
public static void main(String[] args) {
// sout
System.out.println();
// .sout
int age = 18;
System.out.println(age);
// (str+var).sout =>"age="+age.sout
System.out.println("age=" + age);
//soutp
System.out.println("args = " + Arrays.deepToString(args));
//soutm
System.out.println("Test1.main");
//soutv
int num = 19;
System.out.println("num = " + num);
}
}
循环模板
- fori :用于生成最基本的 for 循环:
- iter:用于生成增强for循环:
- list.for:用于生成遍历指定List集合的增强for循环:
- list.fori:用于生成容器的普通的for i循环。
- list.forr:用于生成容器的倒序(i 递减) for 循环。
public class ForTest2 {
public static void main(String[] args) {
// fori
for (int i = 0; i <; i++) {
}
// iter
for (String arg : args) {
}
// list.fori/list.forr
int[] arr = {1, 2, 3, 4, 5};
// arr.fori
for (int i = 0; i < arr.length; i++) {
}
// arr.forr
for (int i = arr.length - 1; i >= 0; i--) {
}
// arr.iter
for (int i : arr) {
}
}
}
条件模板
- ifn:用于生成空值判断
- inn:用于生成不为空值判断
- xxx.null:用于生成空值判断
- xxx.nn:用于生成不为空值判断
public class IfTest3 {
public static void main(String[] args) {
// ifn
if (args == null) {
}
// inn
if (args != null) {
}
// xx.null xx.nn
ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add("b");
// list.null
if (list == null) {
}
// list.nn
if (list != null) {
}
}
}
常量模板/属性修饰符
- psf:用于生成 public static final
- prsf :用于生成 private static final
- psfs :直接生成 public static final String
- psfi :直接生成 public static final int
public class ConstTest4 {
// psf
public static final
// prsf
private static final
// psfs
public static final String
// psfi
public static final int
}