性能文章>这样使用 IDEA ,效率提升10倍!| IDEA 高效使用指南>

这样使用 IDEA ,效率提升10倍!| IDEA 高效使用指南原创

4月前
1645127

大家好,我是 Guide!

昨晚刷到一篇知乎 370 多点赞的 IDEA 高效使用教程,带着好奇心,点击去一看,好家伙,又是盗用别人原创为自己引流的恶心行为。

让我纳闷的是,这篇文章的内容质量非常差,而且内容已经过时了(原文是 2018 年写的),竟然还能获得 370 多点赞。我自己非常多文章别人盗发几百点赞,我自己发个位数的点赞,就很奇葩,说多了都是泪......

于是,我利用昨天晚上和早起的这会时间总结了这篇 IDEA 高效使用教程 。希望对大家有帮助!

本文分为下面 4 部分内容:

  1. IDEA 高效设置指南
  2. 必备的一些插件推荐
  3. 主题优化
  4. IDEA 源码阅读技巧

01 高效设置

我们先来讲讲有哪些设置调整之后 IDEA 会更好用。先说明一点:这里只是根据我个人喜好和习惯的建议,IDEA 的默认配置已经很好用了,具体要不要修改还是要看个人喜好和习惯了。

调整窗口字体显示大小

巨好用的一个功能!强烈安利!

勾选上 Preferences / Settings | Editor | General 下的 Change font size with Command + Mouse Wheel 选项之后,我们就可以直接使用 ⌘+鼠标滚轮(Mac)/ Ctrl+鼠标滚轮(Windows&Linux)来更改窗口字体的大小

开启更改所有选项卡的字体大小功能

字体设置

修改 Preferences / Settings | Editor | Font 选项下的字体设置,字体推荐使用 JetBrains Mono ,字体大小建议 16/18,根据个人需要选择是否需要开启连字。

字体设置

连字开启之后,代码可读性会更强。

开启连字之前&之后

配置类注释模板

修改 Preferences / Settings | Editor | File adn Code Templates 下的 Class 和 Enum 的模板。

配置类注释模板.

我的日常项目的类注释模板配置为:

/**
 * 微信搜 JavaGuide 回复"面试突击"即可免费领取个人原创的 Java 面试手册
 * @author Guide哥
 * @date ${YEAR}/${MONTH}/${DAY} ${HOUR}:${MINUTE}
 **/
public class ${NAME} {
}

优化 Live Templates

IDEA 自带的编码模板我们平时在编码的时候就会经常用到,不知道大家有没有注意。就比如说你输入一个 sout 就可以直接输出一行输出语句 System.out.println(); 。

配置LiveTemplates

你可以根据自己的习惯对 IDEA 自带的编码模板进行修改,并且,你还可以添加新的编码模板来提高编码速度。非常使用!

全局设置 SDK

修改 File -> New Projects Setup -> Structure...| Project 下的 Project SDK 选项,将其更改为你最常用的 Java 版本。

全局jdk配置

这样的话,你新导入的项目或者新建的项目都会默认使用这个版本的 SDK。

自动导包&删除无用包

勾选上 Preferences / Settings | Editor | General | Auto Import 下的指定选项即可!

自动导包&删除无用包

这样设置之后,IDEA 会自动帮你导包(唯一确定的时候才会生效)以及删除代码中没用到的包。

显示方法分割线

勾选上 Preferences / Settings | Editor | General | Appearance 下的 Show method separators 选项之后,方法分割线就有了,这会小幅提高代码的可读性。

显示方法分割线

02 必备插件

好用的插件太多了,我这里只推荐 6 个我最常用的 IDEA 插件。更多插件推荐可以看我写的《IDEA专题》

jclasslib :字节码查看神器

使用 jclasslib 不光可以直观地查看某个类对应的字节码文件,还可以查看类的基本信息、常量池、接口、属性、函数等信息。

字节码查看神器

Tabnine:基于 AI 的代码提示

Tabnine 的前身是大名鼎鼎的 Codota。我一直在用的一个插件,可以说非常好用了。

Tabnine 这个插件用于智能代码补全,它基于数百万 Java 程序,能够根据程序上下文提示补全代码。Tabnine 和 IDEA 自带的智能提示两者互补。

如果你觉得 IDEA 插件安装的太多比较卡顿的话,不用担心!Tabnine 插件还有一个对应的在线网站,在这个网站上你可以根据代码关键字搜索相关代码示例,非常不错!网站地址:https://www.tabnine.com/ 。

Tabnine网页版示意图

Key Promoter X:快捷键提示

这个插件的功能主要是在你本可以使用快捷键操作的地方提醒你用快捷键操作。

举个例子。我直接点击 tab 栏下的菜单打开 Version Control(版本控制) 的话,这个插件就会提示你可以用快捷键 command+9或者shift+command+9打开。如下图所示。

快捷键提示

它还可以展示出哪些快捷键你忘记使用的次数最多!

遗忘的快捷键次数统计

Alibaba Java Code Guidelines:阿里巴巴 Java 代码规范

阿里巴巴 Java 代码规范,对应的 Github 地址为:https://github.com/alibaba/p3c (opens new window) 。非常推荐安装!

安装完成之后建议将与语言替换成中文,提示更加友好一点。

阿里巴巴 Java 代码规范

根据官方描述:

目前这个插件实现了开发手册中的的 53 条规则,大部分基于 PMD 实现,其中有 4 条规则基于 IDEA 实现,并且基于 IDEA Inspection (opens new window)实现了实时检测功能。部分规则实现了 Quick Fix 功能,对于可以提供 Quick Fix 但没有提供的,我们会尽快实现,也欢迎有兴趣的同学加入进来一起努力。 目前插件检测有两种模式:实时检测、手动触发。

上述提到的开发手册也就是在 Java 开发领域赫赫有名的《阿里巴巴 Java 开发手册》。

这个插件会实时检测出我们的代码不匹配它的规则的地方,并且会给出修改建议。比如我们按照下面的方式去创建线程池的话,这个插件就会帮我们检测出来,如下图所示。

SequenceDiagram:一键生成时序图

通过 SequenceDiagram 这个插件,我们一键可以生成时序图。 并且,你还可以:

  1. 点击时序图中的类/方法即可跳转到对应的地方。
  2. 从时序图中删除对应的类或者方法。
  3. 将生成的时序图导出为 PNG 图片格式。

一键生成时序图

Save Actions:优化文件保存

这个插件可以帮助我们在保存文件的时候:

  1. 优化导入;
  2. 格式化代码;
  3. 执行一些 quick fix
  4. ......

Rainbow Brackets : 彩虹括号

使用各种鲜明的颜色来展示你的括号,效果图如下。可以看出代码层级变得更加清晰了,可以说非常实用友好了!

彩虹括号

03 主题优化

这几款 IDEA 主题也太好看了吧!!这篇文章中,我精选了几个比较适合 Java 编码的 IDEA 主题供小伙伴们选择(我自己用的是 One Dark theme 这款)。

One Dark theme

挺难受的,本着一片好意发这篇文章,结果还被喷了,很多小伙伴说我审美不行,还有一些小伙伴说花里胡哨的,没有原本自带的主题好看。

萝卜白菜各有所爱吧!保持一个包容的心态不是很难吧?你可以不装任何插件,但不要认为别人装插件就是多余,IDEA 的插件就是 IDEA 的一大灵魂所在,这点事无法否认的事实。

04 IDEA 源码阅读技巧

在 真香!用 IDEA 神器看源码,效率真高! 这篇文章中,我介绍了自己平时看源码的时候常用的快捷键/小技巧!非常好用!

IDEA源码阅读技巧

掌握这些快捷键/小技巧,使用 IDEA 看源码的效率提升一个等级!

分类:
标签:
请先登录,再评论

这篇必须收藏!

4月前

为你推荐

字符串字面量长度是有限制的
前言 偶然在一次单元测试中写了一个非常长的字符串字面量。 正文 在一次单元测试中,我写了一个很长的字符串字面量,大概10万个字符左右,编译时,编译器给出了异常告警 `java: constant
多次字符串相加一定要用StringBuilder而不用-吗?
今天在写一个读取Java class File并进行分析的Demo时,偶然发现了下面这个场景(基于oracle jdk 1.8.0_144): ``` package test; public c
如何通过反射获得方法的真实参数名(以及扩展研究)
前段时间,在做一个小的工程时,遇到了需要通过反射获得方法真实参数名的场景,在这里我遇到了一些小小的问题,后来在部门老大的指导下,我解决了这个问题。通过解决这个问题,附带着我了解到了很多新的知识,我觉得
高吞吐、低延迟 Java 应用的 GC 优化实践
本篇原文作者是 LinkedIn 的 Swapnil Ghike,这篇文章讲述了 LinkedIn 的 Feed 产品的 GC 优化过程,虽然文章写作于 April 8, 2014,但其中的很多内容和
「每日五分钟,玩转 JVM」:久识你名,初居我心
聊聊 JVMJVM,一个熟悉又陌生的名词,从认识Java的第一天起,我们就会听到这个名字,在参加工作的前一两年,面试的时候还会经常被问到JDK,JRE,JVM这三者的区别。JVM可以说和我们是老朋友了
据说99.99%的人都会答错的类加载的问题
概述首先还是把问题抛给大家,这个问题也是我厂同学在做一个性能分析产品的时候碰到的一个问题。 同一个类加载器对象是否可以加载同一个类文件多次并且得到多个Class对象而都可以被java层使用吗请仔细注意
Java多线程——并发测试
编写并发程序时候,可以采取和串行程序相同的编程方式。唯一的难点在于,并发程序存在不确定性,这种不确定性会令程序出错的地方远比串行程序多,出现的方式也没有固定规则。那么如何在测试中,尽可能的暴露出这些问
Java多线程知识小抄集(一)
本文主要整理笔者遇到的Java多线程的相关知识点,适合速记,故命名为“小抄集”。本文没有特别重点,每一项针对一个多线程知识做一个概要性总结,也有一些会带一点例子,习题方便理解和记忆。 1.interr