1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-20 22:17:09 +08:00

[docs improve]IDEA相关图片压缩

This commit is contained in:
guide 2022-02-08 14:54:01 +08:00
parent b70d172801
commit 69ab23c21b
51 changed files with 45 additions and 127 deletions

View File

@ -6,11 +6,11 @@ tag:
- IDEA插件
---
非常有用这个插件可以实现包含6种常见命名格式之间的切换。并且你还可以对转换格式进行相关配置转换格式,如下图所示:
非常有用这个插件可以实现包含6种常见命名格式之间的切换。并且你还可以对转换格式进行相关配置转换格式 *Preferences / Settings | Camel Case*
![img](./pictures/camel-case/camel-case1.png)
![](./pictures/camel-case/camel-case1.png)
有了这个插件之后,你只需要使用快捷键 `shift+option+u(mac)` / `shift+alt+u` 对准你要修改的变量或者方法名字,就能实现在多种格式之间切换了,如下图所示:
有了这个插件之后,点击你想要修改的变量或者方法名使用快捷键 `shift+option+u(mac)` / `shift+alt+u` 即可实现在多种命名格式之间切换。
![](./pictures/camel-case/camel-case2.gif)
@ -24,4 +24,3 @@ tag:
如果我们不用这个插件,而是手动去一个一个改的话,工作量想必会很大,而且正确率也会因为手工的原因降低。
>

View File

@ -10,13 +10,15 @@ GsonFormat 这个插件可以根据Gson库使用的要求,将JSONObject格式的
> 说明2021.x 版本以上的 IDEA 可以使用GsonFormatPlus
这个插件使用起来非常简单,我们新建一个类,然后在类中使用快捷键 `option + s`(Mac)或`alt + s` (win)调出操作窗口(**必须在类中使用快捷键才有效**),如下图所示。
使用起来非常简单,我们新建一个类,然后在类中使用快捷键 `option + s`(Mac)或`alt + s` (win)调出操作窗口(**必须在类中使用快捷键才有效**),如下图所示。
![](./pictures/GsonFormat2.gif)
![](./pictures/gson-format/gson-format2.png)
![](./pictures/gson-format/gson-format3.png)
这个插件是一个国人几年前写的不过已经很久没有更新了可能会因为IDEA的版本问题有一些小Bug。而且这个插件无法将JSON转换为Kotlin这个其实无关痛痒IDEA自带的就有Java转Kotlin的功能
![](./pictures/GsonFormat1.png)
![](./pictures/gson-format/gson-format1.png)
另外一个与之相似的插件是 **RoboPOJOGenerator** ,这个插件的更新频率比较快。

View File

@ -19,16 +19,21 @@ tag:
</dependency>
```
使用 Lombok 能够帮助我们少写很多代码比如 Getter/Setter、Constructor等等。
关于Lombok的使用可以查看这篇文章[《十分钟搞懂Java效率工具Lombok使用与原理》](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247485385&idx=2&sn=a7c3fb4485ffd8c019e5541e9b1580cd&chksm=cea24802f9d5c1144eee0da52cfc0cc5e8ee3590990de3bb642df4d4b2a8cd07f12dd54947b9&token=1667678311&lang=zh_CN#rd)。
使用 Lombok 能够帮助我们少写很多代码比如 Getter/Setter、Constructor 等等。
关于 Lombok 的使用,可以查看这篇文章:[《十分钟搞懂 Java 效率工具 Lombok 使用与原理》](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247485385&idx=2&sn=a7c3fb4485ffd8c019e5541e9b1580cd&chksm=cea24802f9d5c1144eee0da52cfc0cc5e8ee3590990de3bb642df4d4b2a8cd07f12dd54947b9&token=1667678311&lang=zh_CN#rd)。
## Codota代码智能提示
我一直在用的一个插件,可以说非常好用了(*我身边的很多大佬平时写代码也会用这个插件*
> 目前的话Codota 已经更名为 **Tabnine**
Codota 这个插件用于智能代码补全它基于数百万Java程序能够根据程序上下文提示补全代码。相比于IDEA自带的智能提示来说Codota 的提示更加全面一些。
我一直在用的一个插件可以说非常好用了_我身边的很多大佬平时写代码也会用这个插件_
Codota 这个插件用于智能代码补全,它基于数百万 Java 程序,能够根据程序上下文提示补全代码。相比于 IDEA 自带的智能提示来说Codota 的提示更加全面一些。
除了代码补全之外Codota 还支持代码智能搜索,直接选中对应的类或者方法即可搜索相关的代码示例。
![](./pictures/Codota2.png)
如果你觉得 IDEA 插件安装的太多比较卡顿的话不用担心Codota 插件还有一个对应的在线网站([https://www.codota.com/code](https://www.codota.com/code)),在这个网站上你可以根据代码关键字搜索相关代码示例,非常不错!
@ -38,29 +43,11 @@ Codota 这个插件用于智能代码补全它基于数百万Java程序
另外Codota 插件的基础功能都是免费的。你的代码也不会被泄露,这点你不用担心。
简单来看看 Codota 插件的骚操作吧!
### 代码智能补全
我们使用`HttpUrlConnection ` 建立一个网络连接是真的样的:
![](./pictures/Codota1.gif)
我们创建线程池现在变成下面这样:
![](./pictures/Codota4.gif)
上面只是为了演示这个插件的强大,实际上创建线程池不推荐使用这种方式, 推荐使用 `ThreadPoolExecutor` 构造函数创建线程池。我下面要介绍的一个阿里巴巴的插件-**Alibaba Java Code Guidelines** 就检测出来了这个问题,所以,`Executors`下面用波浪线标记了出来。
### 代码智能搜索
除了,在写代码的时候智能提示之外。你还可以直接选中代码然后搜索相关代码示例。
![](./pictures/Codota2.png)
类似的插件还有阿里云智能编码插件 **Cosy**(Alibaba Cloud AI Coding Assistant) ,关于 Cosy 的详细介绍,可以看一下我写的 [阿里云 Java 智能编码插件 Cosy 诞生!](https://zhuanlan.zhihu.com/p/464874603)这篇文章。
## Alibaba Java Code Guidelines阿里巴巴 Java 代码规范
阿里巴巴 Java 代码规范对应的Github地址为[https://github.com/alibaba/p3c](https://github.com/alibaba/p3c ) 。非常推荐安装!
阿里巴巴 Java 代码规范,对应的 Github 地址为:[https://github.com/alibaba/p3c](https://github.com/alibaba/p3c) 。非常推荐安装!
安装完成之后建议将与语言替换成中文,提示更加友好一点。
@ -68,13 +55,13 @@ Codota 这个插件用于智能代码补全它基于数百万Java程序
根据官方描述:
> 目前这个插件实现了开发手册中的的53条规则大部分基于PMD实现其中有4条规则基于IDEA实现并且基于IDEA [Inspection](https://www.jetbrains.com/help/idea/code-inspection.html)实现了实时检测功能。部分规则实现了Quick Fix功能对于可以提供Quick Fix但没有提供的我们会尽快实现也欢迎有兴趣的同学加入进来一起努力。 目前插件检测有两种模式:实时检测、手动触发。
> 目前这个插件实现了开发手册中的的 53 条规则,大部分基于 PMD 实现,其中有 4 条规则基于 IDEA 实现,并且基于 IDEA [Inspection](https://www.jetbrains.com/help/idea/code-inspection.html)实现了实时检测功能。部分规则实现了 Quick Fix 功能,对于可以提供 Quick Fix 但没有提供的,我们会尽快实现,也欢迎有兴趣的同学加入进来一起努力。 目前插件检测有两种模式:实时检测、手动触发。
上述提到的开发手册也就是在Java开发领域赫赫有名的《阿里巴巴Java开发手册》。
上述提到的开发手册也就是在 Java 开发领域赫赫有名的《阿里巴巴 Java 开发手册》。
### 手动配置检测规则
你还可以手动配置相关 inspection规则
你还可以手动配置相关 inspection 规则:
![](./pictures/p3c/Alibaba-Java-Code-Guidelines3.png)
@ -84,13 +71,13 @@ Codota 这个插件用于智能代码补全它基于数百万Java程序
![](./pictures/p3c/Alibaba-Java-Code-Guidelines1.png)
这个可以对应上 《阿里巴巴Java开发手册》 这本书关于创建线程池的方式说明。
这个可以对应上 《阿里巴巴 Java 开发手册》 这本书关于创建线程池的方式说明。
![](./pictures/p3c/阿里巴巴开发手册-线程池创建.png)
## CheckStyle: Java代码格式规范
## CheckStyle: Java 代码格式规范
### 为何需要CheckStyle插件
### 为何需要 CheckStyle 插件?
**CheckStyle 几乎是 Java 项目开发必备的一个插件了,它会帮助我们检查 Java 代码的格式是否有问题比如变量命名格式是否有问题、某一行代码的长度是否过长等等。**
@ -98,27 +85,27 @@ Codota 这个插件用于智能代码补全它基于数百万Java程序
如果你看过我写的轮子的话,可以发现我为每一个项目都集成了 CheckStyle并且设置了 **Git Commit 钩子**,保证在提交代码之前代码格式没有问题。
> **Guide哥造的轮子***代码简洁,结构清晰,欢迎学习,欢迎一起完善*
> **Guide 哥造的轮子**_代码简洁结构清晰欢迎学习欢迎一起完善_
>
> 1. [guide-rpc-framework](https://github.com/Snailclimb/guide-rpc-framework) A custom RPC framework implemented by Netty+Kyro+Zookeeper.(一款基于 Netty+Kyro+Zookeeper 实现的自定义 RPC 框架-附详细实现过程和相关教程)
> 2. [jsoncat](https://github.com/Snailclimb/jsoncat) :仿 Spring Boot 但不同于 Spring Boot 的一个轻量级的 HTTP 框架
>
> **Git 钩子** Git 能在特定的重要动作比如commit、push发生时触发自定义脚本。 钩子都被存储在 Git 目录下的 `hooks` 子目录中。 也即绝大部分项目中的 `.git/hooks`
> **Git 钩子** Git 能在特定的重要动作比如 commit、push 发生时触发自定义脚本。 钩子都被存储在 Git 目录下的 `hooks` 子目录中。 也即绝大部分项目中的 `.git/hooks`
### 如何在Maven/Gradle项目中集成 Checksytle?
### 如何在 Maven/Gradle 项目中集成 Checksytle?
一般情况下,我们都是将其集成在项目中,并设置相应的 Git 钩子。网上有相应的介绍文章,这里就不多提了。
如果你觉得网上的文章不直观的话,可以参考我上面提到了两个轮子:
1. [guide-rpc-framework](https://github.com/Snailclimb/guide-rpc-framework) Maven项目集成 Checksytle。
2. [jsoncat](https://github.com/Snailclimb/jsoncat) Gradle项目集成 Checksytle。
1. [guide-rpc-framework](https://github.com/Snailclimb/guide-rpc-framework) Maven 项目集成 Checksytle。
2. [jsoncat](https://github.com/Snailclimb/jsoncat) Gradle 项目集成 Checksytle。
如果你在项目中集成了 Checksytle 的话,每次检测会生成一个 HTML格式的文件告诉你哪里的代码格式不对这样看着非常不直观。通过 Checksytle插件的话可以非常直观的将项目中存在格式问题的地方显示出来。
如果你在项目中集成了 Checksytle 的话,每次检测会生成一个 HTML 格式的文件告诉你哪里的代码格式不对,这样看着非常不直观。通过 Checksytle 插件的话可以非常直观的将项目中存在格式问题的地方显示出来。
![](https://cdn.jsdelivr.net/gh/javaguide-tech/blog-images/IDEA%E6%8F%92%E4%BB%B6/image-20201013135044410.png)
如果你只是自己在本地使用,并不想在项目中集成 Checksytle 的话也可以,只需要下载一个 Checksytle插件就足够了。
如果你只是自己在本地使用,并不想在项目中集成 Checksytle 的话也可以,只需要下载一个 Checksytle 插件就足够了。
### 如何安装?

View File

@ -9,7 +9,7 @@ tag:
由于后面要分享的一篇文章中用到了这篇文章要推荐的一个插件,所以这里分享一下。非常实用!你会爱上它的!
![](https://cdn.jsdelivr.net/gh/javaguide-tech/blog-images/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%B8%93%E4%B8%9A%E5%AD%A6%E4%B9%A0%E6%8C%87%E5%8D%97/image-20201013084919965.png)
![](./pictures/jclasslib/image-20201013084919965.png)
**开始推荐 IDEA 字节码查看神器之前,先来回顾一下 Java 字节码是啥。**
@ -55,11 +55,11 @@ public class Main {
> 需要注意的是:**查看某个类对应的字节码文件之前确保它已经被编译过。**
![使用IDEA自带功能查看Java字节码](https://cdn.jsdelivr.net/gh/javaguide-tech/blog-images/IDEA%E6%8F%92%E4%BB%B6/image-20201012143530226.png)
![使用IDEA自带功能查看Java字节码](./pictures/jclasslib/image-20201012143530226.png)
稍等几秒钟之后,你就可以直观到看到对应的类的字节码内容了。
![](https://cdn.jsdelivr.net/gh/javaguide-tech/blog-images/2020-10/image-20201012145127465.png)
![](./pictures/jclasslib/image-20201012145127465.png)
从字节码中可以看出,我圈出来的位置发生了 **拆箱操作**
@ -82,12 +82,12 @@ System.out.println(flag ? 0 : i);
**使用 `jclasslib` 不光可以直观地查看某个类对应的字节码文件,还可以查看类的基本信息、常量池、接口、属性、函数等信息。**
![](https://cdn.jsdelivr.net/gh/javaguide-tech/blog-images/2020-10/image-20201012145646086.png)
![](./pictures/jclasslib/image-20201012145646086.png)
我们直接在 IDEA 的插件市场即可找到这个插件。我这里已经安装好了。
![](https://cdn.jsdelivr.net/gh/javaguide-tech/blog-images/2020-10-12/image-20201012145900911.png)
![](./pictures/jclasslib/image-20201012145900911.png)
安装完成之后,重启 IDEA。点击`View -> Show Bytecode With jclasslib` 即可通过`jclasslib` 查看某个类对应的字节码文件。
![使用IDEA插件jclasslib查看类的字节码](https://cdn.jsdelivr.net/gh/javaguide-tech/blog-images/%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%B8%93%E4%B8%9A%E5%AD%A6%E4%B9%A0%E6%8C%87%E5%8D%97/image-20201012150252106.png)
![使用IDEA插件jclasslib查看类的字节码](./pictures/jclasslib/image-20201012150252106.png)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 174 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 611 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 998 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 711 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 224 KiB

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 180 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 577 KiB

After

Width:  |  Height:  |  Size: 264 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 157 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 390 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 205 KiB

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 KiB

After

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 748 KiB

After

Width:  |  Height:  |  Size: 546 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 KiB

After

Width:  |  Height:  |  Size: 122 KiB

View File

@ -47,7 +47,7 @@ tag:
举个例子。我使用快捷键 `command+9`打开 Version Control ,使用了这个插件之后的效果如下图所示。
![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/idea/Presentation-Assistant.gif)
![](./pictures/Presentation-Assistant.png)
从上图可以很清晰地看到IDEA 的底部中间的位置将我刚刚所使用的快捷键给展示了出来。

View File

@ -5,83 +5,13 @@ category: IDEA指南
# IntelliJ IDEA 使用指南 | 必备插件推荐 | 插件开发入门 | 重构小技巧 | 源码阅读技巧
![](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2020-8/2a2423cd-68bc-4c39-ae8f-1ba9915c5404.png)
在这里,我会分享一下自己使用 IDEA 的一些经验,希望对大家有帮助(欢迎 star
**项目地址**
- Github 地址:[https://github.com/CodingDocs/awesome-idea-tutorial](https://github.com/CodingDocs/awesome-idea-tutorial)
- 码云地址:[https://gitee.com/SnailClimb/awesome-idea-tutorial](https://gitee.com/SnailClimb/awesome-idea-tutorial ) Github 无法访问或者访问速度比较慢的小伙伴可以看码云上的对应内容)
- Gitee 地址:[https://gitee.com/SnailClimb/awesome-idea-tutorial](https://gitee.com/SnailClimb/awesome-idea-tutorial ) Github 无法访问或者访问速度比较慢的小伙伴可以看码云上的对应内容)
大学的时候,我一直在用 Eclipse ,说实话用习惯了,占内存也比较小,最主要的是还免费使用。我当时一直没有换 IntelliJ IDEA后面会简称为 IDEA 的很大一部分原因是切换到 IDEA 需要很长时间去适应,有点跳出舒适区的感觉。
**常见问题**
不过,说实话,我现在用 IDEA 这么久了,还是感觉很香的!俗话说:**工欲善其事,必先利其器 ,就我个人而言 IDEA 是最适合 Java 开发者的 IDE 。** 如果你没有用过的 IDEA 就随便评判两者的话,我建议你不妨挑出自己的舒适区,尝试着去使用一段时间。**如果你觉得 Eclipse 更适合你的话,我觉得也没忙病,萝卜白菜各有所爱,我们也要尊重别人的想法 💡。**
- [选择IDEA还是Eclipse - JavaGuide的回答 - 知乎](https://www.zhihu.com/question/305591091/answer/2259316801)
- [IntelliJ IDEA 中有什么让你相见恨晚的技巧? - JavaGuide的回答 - 知乎](https://www.zhihu.com/question/300830746/answer/2255262082)
IDEA 是 JetBrains 在 2001 年发布的,主要用来支持 Java 编程,不过也支持 Kotlin由 JetBrains 开发GroovyClojureScala 等编程语言。
JetBrains 真的是很厉害的一家公司,这家公司推出的很多 IDE 基本都是工程师编程首选比如 PyCharm、WebStorm 等等。这家公司做出来的东西为什么好?我觉得主要就一个词总结:**智能** IntelliJ->intelligent)
![Intelligent Agents Lab](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2020-8/cover.png)
下面 Guide 会简单对比一下它们,方便大家更好地去了解这个 IDE。
### 易用程度
#### IDEA 提供了更多人性化的功能
个人感觉 IDEA 更加易用,因为 IDEA 内置了太多人性的话的功能比如对 Git 功能的支持、代码检查等等。
如下图示,这个是 IDEA 自带的版本控制功能,非常好用,清晰地展示了提交记录,便于查阅别人的提交以及项目组进行 Code Review。
![版本控制](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2020-8/0538df6c-4043-4894-8b75-9bee97fec64a.png)
#### IDEA 智能上下文提示
另外,**IDEA 比 Eclipse 更好的一点是它的智能代码提示,这个确实好用,而且还是根据你当前上下文来提示提示的(基于快速索引技术)。**
![](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2020-8/8173c155-2b90-41c0-9f2d-76270262f06d.png)
#### 使用 IDEA 更加智能的进行重构
IDEA 对重构的支持更加友好以及安全,你可以更加方便地去进行重构比如使用快捷键提取方法、抽取变量等等。
下图对应地地址在这里:[https://www.jetbrains.com/help/idea/refactoring-source-code.html](https://www.jetbrains.com/help/idea/refactoring-source-code.html) 。
![](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2020-8/bf928840-043e-4607-a0fe-f57133458fa0.png)
### 是否免费
IDEA 社区版和 Eclipse IDE 均可免费下载和使用,不过 IDEA 还提供了一个功能更多地称为 Ultimate Edition最终版本的版本不过作为 Java 初学者来说 IntelliJ IDEA 社区版就完全够用了。
IDEA 的付费商业版本和免费版本的主要区别如下图所示,可以看出商业版的 IDEA 提供了更多功能的支持比如帮你找到你的项目中找到重复的代码块、提供数据库管理工具等等。
![](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2020-8/81e432ec-79d0-465c-811f-7bf706eab6b7.png)
### 系统占用和内存管理
不得不承认, IDEA 的系统占用更大,平稳运行至少需要 4g 以上的闲置内存。而 Eclipse 只需要 1g 的内存就组足够平稳运行了(项目过大的情况可能需要更多地运行内存支持)。
另外内存管理方面的话Eclipse 做的也更好,之前我的电脑是 8 g 内存,不过,它足以流畅运行 Eclipse 。我现在的电脑是 16 g 内存,某些时候运行 IDEA 甚至会比较卡顿。
**如果你的电脑真的没办法支持 IDEA 运行的话,我的建议是:“你要换电脑了”。**
### 插件
相比于 Eclipse 来说IDEA 里面有太多太多宝藏插件了,真的非常棒 👍!
> 最近我也在整理一些使用 IDEA 开发必备的插件,可能只需要 30s 就能收走你们的再看。下一篇文章我就会分享到,大家期待一波吧!
很多插件都会优先支持 IDEA毕竟 IDEA 的使用占比率还是比较大的。
![](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2020-8/1156a113-4370-4e8d-bd81-f95732a8cda6.png)
### 受欢迎程度
就现在来看IDEA 的使用占比和受欢迎程度比 Eclipse 更高,并且大有远超之势。
下图是国外的一个网站的一个统计报告!
![](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2020-8/b4639707-ad60-4aae-8ee8-35408939b413.png)
最后再分享一下国外一个网站关于 “ Java 编程最好的 IDE 是哪一个?”的数据,可以看出 IDEA 还是略胜一筹的。
![](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2020-8/dfa0db1b-66c9-41bc-91ce-880094e6c9fc.png)