IDEA 全称IntelliJ IDEA,是用于java语言开发的集成环境IDE(Integrated Development Environment),也可用于其他语言。IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、 创新的GUI设计等方面的功能可以说是超常的。
☀1.概念
☀1.1 IDE
集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。如微软的Visual Studio系列,Borland的C++ Builder、Delphi系列等。该程序可以独立运行,也可以和其它程序并用。IDE多被用于开发HTML应用软件。例如,许多人在设计网站时使用IDE(如HomeSite、DreamWeaver等),因为很多项任务会自动生成。编程开发软件将编辑、编译、调试等功能集成在一个桌面环境中,这样就大大方便了用户。
❀优点
节省时间和精力。IDE的目的就是要让开发更加快捷方便,通过提供工具和各种性能来帮助开发者组织资源,减少失误,提供捷径。
建立统一标准。当一组程序员使用同一个开发环境时,就建立了统一的工作标准,当IDE提供预设的模板,或者不同团队分享代码库时,这一效果就更加明显了。
管理开发工作。首先,IDE提供文档工具,可以自动输入开发者评论,或者迫使开发者在不同区域编写评论。其次,IDE可以展示资源,更便于发现应用所处位置,无需在文件系统里面艰难的搜索。❀缺点
学习曲线问题。IDE基本上是比较复杂的工具,为了更好的熟练使用,需要一定的时间和耐心。
初学者的困难。对初学者来说,使用IDE来学习开发有相当的难度,不适合学习一种新语言时使用。
无法修复坏代码或设计。开发者不能完全依赖工具的便捷,还是必须保持专业水准和熟练度,开发的成果好坏主要还是看开发员的技术。
☀1.2 JetBrains公司介绍
IntelliJ IDEA就是Java的IDE。
市场占有率竹节攀升,超过了Eclipse。
JetBrains公司介绍:
JetBrains是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄罗斯的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是Java编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA。公司旗下还有其它产品,比如:- WebStorm: 用于开发JavaScript、HTML5、 CS3等前端技术;
- PyCharm: 用于开发python(python语言热度排行榜排名第一,在人工智能大数据领域应用)
- PhpStorm: 用于开发PHP
- RubyMine: 用于开发Ruby/Rails
- AppCode: 用于开发Objective - C/Swift,替换xcode的
- CLion: 用于开发C/C++
- DataGrip: 用于开发数据库和SQL
- Rider: 用于开发.NET
- GoLand: 用于开发Go(区块链主流开发语言就是Go语言)
☀1.3 IntelliJ IDEA介绍
【1】IDEA 全称IntelliJ IDEA,是用于java语言开发的集成环境IDE(Integrated Development Environment),也可用于其他语言。
IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、 创新的GUI设计等方面的功能可以说是超常的。
IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。
【2】IDEA的支持:
【3】IDEA的优势(相对于Eclipse)
- 强大的整合能力。比如: Git、 Maven、 Spring 等
- 提示功能的快速、便捷
- 提示功能的范围广
- 好用的快捷键和代码模板
- 精准搜索
☀2.安装相关
☀2.1 IntelliJ IDEA的下载和安装的准备
【1】官网:https://www.jetbrains.com/idea/download/#section=windows
【2】安装的准备:
- 硬件环境:
内存8G以上
CPU i5以上
安装在固态硬盘下 - 软件环境:
需要安装JDK
☀2.2 IDEA的卸载
对于免安装的idea:
(1)删除安装文件
(2)到用户下将idea的缓存,配置的目录删除掉即可
对于安装的idea:
- 可以用控制面板–》程序。
- 检查用户下将idea的缓存,配置的目录,如果有删除掉即可 。
☀2.3 IDEA的安装和破解
☀方式一:(破解已失效)
【1】将安装包进行解压–》选择固态盘符
【2】发送到桌面快捷方式,生成一个快捷方式
【3】打开:
选择主题:
先进入再说,免费试用:
创建一个项目:
选择JDK:
找到jetbrains-agent.jar 文件,然后放入合适的文件夹内(我一般直接放入idea的安装位置了,你随意,不建议有中文路径)
点击IDEA的菜单,找到: Help—》Edit Custom VM Options
然后在文件中最后一行填入:
-javaagent:D:\soft_setup\IDEA\ideaIU-2019.2.3.win\jetbrains-agent.jar
注意这个jetbrains-agent.jar的路径要是你自己的真实的路径。
关闭IDEA
再次打开IDEA,点击菜单 ,Help—》Register:
填写address地址:https://fls.jetbrains-agent.com。
关闭IDEA
重启IDEA
看到带Licenseed to…字样的 证明激活成功
☀方式二:
官网下载最新IDEA。
获取Avtivation code注册码获取网站: http://vrg123.com/
获取注册码后,使用Avtivation code注册码激活即可。
☀3.IDEA页面展示
- 项目下内容:
- 工程下的src类似于Eclipse下的src目录,用于存放代码。。
- 工程下的.idea 和TestProject.iml文件都是IDEA工程特有的。类似于Eclipse 工程下的settings、.classpath、.project 等。
- 配置:
☀4.Module的概念和使用
【1】在Eclipse中我们有Workspace (工作空间)和Project (工程)的概念,在IDEA中只有Project (工程)和Module (模块)的概念。
这里的对应关系为:
IDEA官网说明:
An Eclipse workspace is similar to a project in IntelliJ IDEA
An Eclipse project maps to a module in IntelliJ IDEA
翻译:
Eclipse中 workspace 相当于 IDEA中的Project
Eclipse中 Project 相当于 IDEA中的Module
在IntelliJ IDEA中Project(工程) 是最顶级的级别,次级别是Module(模块)。
一个Project下可以有多个Module。
【2】从Eclipse 转过来的人总是下意识地要在同一个窗口管理n个项目,这在Intellij IDEA是无法做到的。Intellij IDEA提供的解决方案是打开多个项目实例,即打开多个项目窗口。即:一个Project 打开一个Window窗口。
【3】IDEA这样设置的原因:
目前主流的大型项目都是分布式部署的,结构都是类似这种多Module的。
这类项目一般是这样划分的,比如: 积分模块、任务模块、活动模块等等,模块之间彼此可以相互依赖。这些Module之间都是处于同一个项目业务下的模块,彼此之间是有不可分割的业务关系的。
【4】out目录的说明:里面存放的是编译后的字节码文件
【5】删除模块:
☀5.常用设置
☀5.1进入设置:
☀5.2设置主题:
☀5.3编辑区的字体变大或者变小:
通过ctrl+鼠标滚轮改变编辑区字体大小。
☀5.4鼠标悬浮在代码上有提示:
☀5.5自动导包和优化多余的包:
手动导包:快捷键:alt+enter
两个选项对应自动导包和优化多余的包:
☀5.6同一个包下的类,超过指定个数的时候,导包合并为*
☀5.7显示行号 , 方法和方法间的分隔符:
☀5.8忽略大小写,进行提示:
☀5.9多个类不隐藏,多行显示:
☀5.10设置默认的字体,字体大小,字体行间距:(编辑区和控制台都会变化)
☀5.11修改代码中注释的字体颜色:
☀5.12修改类头的文档注释信息:—》注意:对新建的类才有效
1 | /** |
☀5.13设置项目文件编码:
文件右下角可以调节编码格式:
☀5.14自动编译:
二、Registry
ctrl+alt+shift+’/’
弹出框选择如下,勾选即可。
☀5.15省电模式:
代码检查、代码提示没有肯能进入省电模式。
☀5.16代码显示结构:
☀5.17导入jar包:
☀5.18生成序列化版本号:
凡是一个类实现了Serializable接口,建议给该类提供一个固定不变的序列化版本号。以后这个类即使代码修改了,但是版本号不变,java虚拟机认为是同一个类。(区分类的)
IDEA设置自动生成序列化版本号
检查代码时会出现添加seriaID提示。
☀5.19设置控制台输出日志解码格式
导航Help——>Edit Custom VM Options
添加文本设置:-Dfile.encoding=UTF-8
☀5.20.开启Lambda表达式显示.
settings->Editor->Gutter icons->Lambda 勾选即可.
☀6.常用快捷键
快捷键 | 功能 | |
---|---|---|
double shift | 全局搜索(集合下方的一些搜索功能) | |
Ctrl+N | 按照文件名称查找java文件 | |
Ctrl+Shift+N | 按照文件名称查找所有文件 | |
Ctrl+Shift+F | 在所有文件中查找指定内容。 | |
Ctrl+F | 在当前文件中查找指定内容。 | |
Ctrl+E | 列出最近使用过的文件 | |
Ctrl+Shift+Alt+N | 查找类中的方法或变量 | |
Ctrl + Alt + v | 自动补全变量名称 | |
Ctrl + Alt + f | 自动补全属性名称 | |
Shift + Esc | 关闭打开的小窗口 | |
Tab/Enter | 将提示内容自动补全 | |
Alt+Enter | 代码检查提示,放在类名,对象,变量。 | |
alt+insert | 创建内容(项目中,包中,类中,文本中) | |
psvm | main方法 | |
sout | 输出语句的简写,sout/str.sout | |
ctrl+d | 复制行(单行/多行) | |
ctrl+y | 删除行 | |
Ctrl + Shift + Up / Down | 代码向上/下移动 | |
Ctrl + / 或 Ctrl + Shift + / | 单行注释或多行注释 | |
shift+f6 | 重命名 | |
Ctrl+O | 重写父类方法 | |
fori | for循环 | |
ctrl+alt+t | 代码块包围:try-catch,if,while等 | |
Ctrl+空格 | 手动显示代码自动补全提示 | keymap->code->completion->basic可修改。 |
ctrl+鼠标滚轮 | idea代码字体大小放大和缩小的快捷键 | keymap->搜索font-size |
alt+方向上/下 | 类中方法之间跳跃 | |
alt+方向左/右 | 已打开的类中左右切换 | |
ctrl+方向上/下 | 光标不动,下拉页面(鼠标滚轮功能) | |
ctrl+方向左/右 | 光标不在窗口中,将窗口移动到光标范围中。光标在窗口中,则进行字符串之间跳跃。 | |
ctrl+鼠标悬浮在代码上+点进去即可 | 代码一层一层调用的快捷键: 点进源码 | |
ctrl+alt+方向左/右 | 切换查看代码的导航,前进/后退 | keymap->搜索navigate |
alt+7 | 显示代码结构 | |
alt+1 | 显示project工程结构导航 | |
ctrl+z | 撤回 | |
ctrl+shift+z | redo(重做) | |
tab | 缩进/提示内容自动补全 | |
shift+tab | 取消缩进 | |
shift+enter | 新建下一行并跳转到下一行。 | |
ctrl+shift+F9 | 编译当前文件 | |
ctrl+F9 | 编译工程 | |
ctrl+shift+F10 | 运行当前文件main方法 | |
shift+F10 | 运行文件(优先选择之前运行过的/web项目目标为Tomcat,在工具中选择。) | ![]() |
shift+F9 | debug文件(优先选择之前debug过的)/web项目目标为Tomcat | |
alt+shift+F10 | 不跳转窗口,选择已打开的文件运行。 | |
alt+shift+F9 | 不跳转窗口,选择已打开的文件编译。 | |
alt+F8 | 查看表达式的值。 | |
ctrl+B | 查看方法哪里被调用 | |
Ctrl+Shift+回车 | 语句自动补全添加; | |
Ctrl+Alt+L | 代码格式化。 | |
Ctrl+Shift+J | 代码去空格。搜压缩。 |
☀7.常用操作:
☀7.1多文件并联展示
文件名,右键Split Vertically 垂直展示
文件名,右键Split Horizontally 水平展示
☀7.2导入jar包
☀7.3代码模板使用
☀7.3.1代码模板是什么
它的原理就是配置一些==常用代码字母缩写==,在输入简写时可以出现你预定义的固定模式的代码,使得开发效率大大提高,同时也可以增加个性化。最简单的例子就是在Java中输入sout会出现System.out.println();
(一)所处位置:
(1)Live Templates
(2)Postfix Completion
(二)区别:
【1】
Live Templates中可以做用户的个性化定制。
Postfix Completion中只能用,不能修改。
【2】使用方式不同
☀7.3.2常用的代码模板
【1】模板1: main方法:
main 或者 psvm
【2】模板2:输出语句:
sout 或者 .sout
一些变型:
soutp:打印方法的形参
soutm:打印方法的名字
soutv:打印变量
【3】模板3: 循环
普通for循环: fori(正向) 或者 .fori (正向) . forr(逆向)
增强for循环: iter 或者 .for
(可以用于数组的遍历,集合的遍历)
【4】模板4: 条件判断
ifn 或者 .null :判断是否为null (if null)
inn 或者 .nn :判断不等于null (if not null)
【5】模板5: 属性修饰符:
prsf : private static final
psf :public static final
后缀多用于指定,非后缀多用于就近。
【6】 模板6:生成变量
.var:在调用有返回的方法上,使用,自动生成变量。
☀7.3.3修改现有模板
【1】案例1:改main方法: psvm
【2】案例2:修饰属性的修饰符:
$VAR1$
$VAR2$
表示占位符,光标会落到占位符上。
☀7.3.4自定义模板
【1】测试方法:
【2】常用属性:($$中的内容其实就是在定义光标的位置,光标可以切换,用回车切换)
【3】方法注释模板:
1 | /** |
/** 回车补全和默认方法注释冲突,设定使用tab补全提示。
☀7.4 IDEA中的断点调试
☀7.4.1常用断点调试快捷键
调试在开发中大量应用:
【1】Debug的优化设置:更加节省内存空间:
设置Debug连接方式,默认是Socket。 Shared memory是Windows 特有的一个属性,一般在Windows系统下建议使用此设置,
内存占用相对较少。
【2】常用断点调试快捷键:
一步一步的向下运行代码,不会走入任何方法中。
一步一步的向下运行代码,不会走入系统类库的方法中,但是会走入自定义的方法中。
一步一步的向下运行代码,会走入系统类库的方法中,也会走入自定义的方法中。
跳出方法
结束程序
进入到下一个断点,如果没有下一个断点了,就直接运行到程序结束。
在当前次取消行的断点。
☀7.4.2条件判断,查看表达式的值
【1】条件判断:
说明:
调试的时候,在循环里增加条件判断,可以极大的提高效率,心情也能惧悦。
具体操作:
在断点处右击调出条件断点。可以在满足某个条件下,实施断点。
【2】查看表达式的值:
选择行,alt+f8。
☀7.5创建Java Web项目
创建Java Web的模块:
☀7.6在IDEA中添加Tomcat的镜像
启动项目:
☀7.7 ToolBar中显示和隐藏一些插件选项
隐藏:右键->remove from sidebar
显示:view->tool window
☀7.8.为新工程添加框架文件支持.
使用Maven自带web模板创建web工程:
使用创建Maven自带的模板创建web工程,没有java,resource资源文件夹。
⛵️ 解决办法:先创建一个标准的Maven工程,使用idea的Framework support功能
创建出来的工程比较标准:
☀8.插件
插件官网
注意:在网站中所搜的插件需要和idea版本对应上。在idea内部搜索安装不用担心版本问题。
☀8.1 Gist
插件名 | 评价说明 |
---|---|
Gist Templates | idea2019无法使用 |
Get gist (Beta) | idea2019无法使用 |
Use Gists | 目前只有2018可使用与MAGist类似没有搜索功能 |
Gist Snippet | 没有搜索功能,新版支持。 |
MAGist | 没有搜索功能,新版支持。 |
☀8.2 JRebel
dea热部署插件」 Rebel
当开始开发web项目的时候,需要频繁的修改web页面,此时如果频繁的重启变得很麻烦,因此,可以在idea
中集成Rebe插件,改动代码之后不需要重新启动应用程序。
服务器地址监听服务器地址:
GUID生成器:
http://jrebel.cicoding.cn/guid
监听配置格式:
http://jrebel.cicoding.cn/GUID
生成的如下:
http://jrebel.cicoding.cn/4B068EB5-0941-4645-1E98-FC077D530A61
打开IDEA中Settings如下:
找到File -> Settings -> JRebel & XRebel 点击Chanage license,填写URL和邮箱地址
点击Chanage license!
就监听成功激活成功了!鼓掌!
然后就可以启动使用了!
☀9.遇到问题解决
☀1.performing vcs refresh时间过长
解决方案:重建项目
I also found that rebuilding the project (Build --> Rebuild project) did the trick. At the end of that task it says… saving cashes. Immediately thereafter I can commit with no delay.
☀2.Error:java: 无效的源发行版: 11/Error:java: Compilation failed: internal java compiler error
因在于模块的target bytecode version和实际的编译器版本不一致所导致的错误。
不管三七二十一,把所有jdk版本统统改成一样的,首先按下快捷键ctrl+shift+alt+s:
查看项目的jdk
File ->Project Structure->Project Settings ->Project或使用快捷键Ctrl+Alt+shift+S打开项目的jdk配置:
查看工程的jdk
点击上图中Modules查看对应jdk版本:
查看java编译器版本
导入java项目时此处处问题的概率比较多。
针对此问题,重新打开或修改pom文件(maven项目)中的内容很可能导致jdk版本重新变为1.5。如果是maven项目,可在pom文件中指定jdk相关信息:
1
2
3
4
5
6
7
8
9
10
11
12 <build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
☀3.class类按名称搜索不到
将编译主目录取消Exclusion。Exclusion的思想类似于git中的.gitignore被标记的文件不会被跟踪搜索到。
Exclusion方式一:
Exclusion方式二:
☀4.Github登录不上
☀4.1使用用户名:
❀测试结果:
idea2018 和2019版本均无法登录。
❀测试报错:
- Invalid authentication data. Operation canceled
Incorrect credentials
- Incorrect credentials. Request response:401 Unautghorized
☀4.2使用token:
❀测试结果:
2019版本可以登录
2018登录报错。
❀测试报错:
Can’t get input stream from URL!
Connect to api.github.com:443 [api.github.com/192.30.255.117] faild:Read time out
Request response:401 Unauthorized - Bad credentials
尝试解决:
- 用邮箱账号登录
- 在地址前面,手动添加 https://github.com
- 在【Windwos 凭据】删除保存的账号密码 ,重启Android Studio,再次登录就可
- 如果忘记密码 ,在Github【Settings】->【Deveployer settings】->【Personal access token】获取new token ,使用new token登录。
- file->setting->system settings去掉代理,HTTP Proxy ->No proxy
- 将github上的token全部删除,再次通过github登录github。
☀5.使用本地Tomcat,运行时缺少,添加第三方jar。
在工程的配置文件中添加,Artifacts。
☀6.本地Tomcat解决控制台输出乱码
1、外置Tomcat解决办法:
1)Tomcat控制台启动乱码:Tomcat->Edit Configurations
2)Tomcat->-Dfile.encoding=UTF-8
3)重启Tomcat查看控制台
2、若未解决使用以下方法进行idea设置:
1)Help->Edit Custom VM options
2)增加:-Dfile.encoding=UTF-8
3、若还是有乱码继续设置:
1)Settins->Editor->File Encodings
2)Build,Execution,Deployment->java compiler
4、get请求查询mysql数据控制台显示乱码:
解决办法:设置字符格式为utf-8 -> VM options: -Dfile.encoding=UTF-8
☀7.本地Tomcat,静态资源未实时部署。
使用rebuild。
使用update项目:Ctrl+F10
或者Shift+F10