IDEA最好用插件推荐

1 背景

  俗话说:“工欲善其事必先利其器”,本问介绍几款强大实用的 IDEA 插件,助力大家开发。

  希望大家做一个聪明又努力的人,而不只是一个努力的人。

  以下插件大都可以通过 IDEA 自带的插件管理中心安装,如果搜不到可以去 IDEA 插件官网下载本地导入。

  具体安装界面不同版本 IDEA略有差异,请自行研究。

  如果连插件安装都不愿意学、学不会的话,很难成为一名合格的 Java 开发工程师。

2 插件推荐

2.1 Alibaba Java Coding Guidelines

  首先要推荐的是和《手册》配套的阿里巴巴 Java代码规范插件。

  安装该插件后,代码超过 80 行、手动创建线程池等,这些和《手册》中的规约不符时,IDEA中会给出警告提示。

  建议大家一定一定一定要安装该插件,它会帮助你检查出很多隐患,督促你写更规范的代码。

2.2 jclasslib bytecode viewer

  下面要隆重介绍的是一款可视化的字节码查看插件:jclasslib 。

  大家可以直接在 IDEA 插件管理中安装(安装步骤略)。

  使用方法:

  1. 在 IDEA 打开想研究的类。
  2. 编译该类或者直接编译整个项目( 如果想研究的类在 jar 包中,此步可略过)。
  3. 打开“view” 菜单,选择“Show Bytecode With jclasslib” 选项。
  4. 选择上述菜单项后 IDEA 中会弹出 jclasslib 工具窗口。

  那么有自带的强大的反汇编工具 javap 还有必要用这个插件吗?

  这个插件的强大之处在于:

  1. 不需要敲命令,简单直接,在右侧方便和源代码进行对比学习。
  2. 字节码命令支持超链接,点击其中的虚拟机指令即可跳转到 jvms 相关章节,超级方便。

  该插件对我们学习虚拟机指令有极大的帮助。

  详细安装和介绍参考另外一篇手记:https://www.imooc.com/article/296257

2.3 Codota

  另外一个不得不说的就是专栏中提到的辅助开发神器: Codota。

  可以点击下图所示“Add Codota to you IDEA” 了解安装步骤。

  该插件的强大之处在于:

  1. 支持智能代码自动提示,该功能可以增强 IDEA 的代码提示功能。
  2. 支持 JDK 和知名第三方库的函数的使用方法搜索,可以看到其他知名开源项目对该函数的用法。

  当我们第一次使用某个类,对某个函数不够熟悉时,可以通过该插件搜索相关用法,快速模仿学习。

  如上图所示,我们想了解 Stream 类中 flatMap 函数的用法,可以使用该插件查看知名开源项目的用法。

  插件窗口顶部还给出了该类最常用的函数,可以点击查看相关用法案例,每个案例右侧的 "view source"可以跳转到该片段对应的开源项目的源码中。

2.4 Auto filling Java call arguments

  开发中,我们通常会调用其他已经编写好的函数,调用后需要填充参数,但是绝大多数情况下,传入的变量名称和该函数的参数名一致,当参数较多时,手动单个填充参数非常浪费时间。

  该插件就可以帮你解决这个问题。

  安装完该插件以后,调用一个函数,使用 Alt+Enter 组合键,调出 "Auto fill call parameters" 自动使用该函数定义的参数名填充。

2.5 GenerateO2O、GenerateAllSetter

  我们定义好从 A 类转换到 B 类的函数转换函数后,使用这两个插件可以自动调用 Getter 和 Setter 函数实行自动转换。

  实际开发中还有一个非常常见的场景: 我们创建一个对象后,想依次调用 Setter 函数对属性赋值,如果属性较多很容易遗漏或者重复。

  可以使用这 GenerateAllSetter 提供的功能,自动调用所有 Setter 函数(可填充默认值),然后自己再跟进实际需求设置属性值。

2.6 Material Theme UI

  对于很多人而言,写代码时略显枯燥的,如果能够安装自己喜欢的主题将为开发工作带来些许乐趣。

  IDEA 支持各种主题插件,其中最出名的当属 Material Theme UI。

  安装后,可以从该插件内置的各种风格个选择自己最喜欢的一种。

2.7 Rainbow Brackets

  由于很多人没有养成好的编码风格,没有随手 format 代码的习惯,甚至有些同事会写代码超过几百行,阅读起来将非常痛苦。

  痛苦的原因之一就是找到上下文,由于括号太多,不确定当前代码行是否属于某个代码块,此时这个插件就会帮上大忙。

  插件 github 地址:https://github.com/izhangzhihao/intellij-rainbow-brackets

  大家可以观看其 github 首页的动图体会和学习其强大功能。

2.8 Maven Helper

  现在 Java 项目通常会使用 maven 或者 gradle 构建,对于maven 项目来说, jar 包冲突非常常见。

  那么如何更容易地查看和解决 jar 包冲突呢?

  大家可以安装该插件,安装后 IDEA 中打开 pom.xml 文件时,就会多出一个 "Dependency Analyzer" 选项卡。

  如上图所示,该插件支持值插件冲突的 jar 包,可以选择冲突的 jar 包将其 exclude 掉。

2.9 FindBugs

  程序员总是想尽可能地避免写 BUG, FindBugs 作为静态代码检查插件,可以检查你代码中的隐患,并给出原因。

  当然还有很多类似的静态代码检查插件,大家可以自行了解安装。

2.10 SequenceDiagram

  SequenceDiagram 可以根据代码调用链路自动生成时序图,超级赞,超级推荐!

  这对研究源码,梳理工作中的业务代码有极大的帮助,堪称神器。

  安装完成后,在某个类的某个函数中,右键 --> Sequence Diagaram 即可调出。

  如下图是 Netty 的源码,可以通过该插件绘制出当前函数的调用链路。

  双击顶部的类名可以跳转到对应类的源码中,双击调用的函数名可以直接调入某个函数的源码,总之非常强大。

2.11 Stack trace to UML

  Stack trace to UML 支持根据 JVM 异常堆栈画 UML时序图和通信图。

  打开方式 Analyze > Open Stack trace to UML plugin + Generate UML diagrams from stacktrace from debug

2.12 Java Stream Debugger

  Stream 非常好用,可以灵活对数据进行操作,但是对很多刚接触的人来说,不好理解。

  那么 Java Stream Debugger 这款神器的 IDEA 就可以帮到你。它可以将 Stream 的操作步骤可视化,非常有助于我们的学习。

2.13 JOL Java Object Layout

  https://plugins.jetbrains.com/plugin/10953-jol-java-object-layout

  查看对象布局和大小的插件,非常赞。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/2838.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

恶补《操作系统》2_1——王道学习笔记

2操作系统-进程 2.1_1 进程的定义、组成、组织方式、特征 组成:PCB(进程存在唯一的标志),程序段,数据段 组织方式:链接方式,指针指向不同的队列;索引方式,索引表 特征…

Uptime Kuma 使用指南:一款简单易用的站点监控工具

我平时的工作会涉及到监控,而站点是一个很重要的监控项。项目上线后,我们通常会将站点监控配置到云平台上,以检测各站点的连通性。但随着项目不断增多,云平台上的配额就有点捉急了。针对这个情况,我们可以试试这个开源…

设计模式——状态模式19

状态模式是一种行为设计模式, 允许一个对象在其内部状态改变时改变它的行为,对象看起来好像修改了它的类。状态模式的核心是状态与行为绑定,不同的状态对应不同的行为。 设计模式,一定要敲代码理解 状态行为抽象 //在某种状态下&…

【网安小白成长之路】9.sql注入操作

🐮博主syst1m 带你 acquire knowledge! ✨博客首页——syst1m的博客💘 🔞 《网安小白成长之路(我要变成大佬😎!!)》真实小白学习历程,手把手带你一起从入门到入狱🚭 &…

SpringBoot整合七牛云实现图片的上传管理

唠嗑部分 各位小伙伴大家好,我是全栈小白,今天我们来分享一下SpringBoot如何整合七牛云存储实现图片的上传与存储 首先我们来说说图片存储,在项目中图片几乎是必不可少的,那么大家会选择怎样存储呢,当然有几种方案 …

Science Robotics 美国斯坦福大学研制了外行星洞穴探测机器人

月球和火星上的悬崖、洞穴和熔岩管已被确定为具有地质和天体生物学研究理想地点。由于其隔绝特性,这些洞穴提供了相对稳定的条件,可以促进矿物质沉淀和微生物生长。在火星上,这些古老的地下环境与火星表面可能适合居住时几乎没有变化&#xf…

JSP合同信息管理系统

毕业设计(论文) 题 目: JSP合同信息管理系统 学 校: 专 业: 年 级: 姓 名…

Day16-Java进阶-线程通信线程生命周期线程池单例设计模式

1. 线程通信 1.1 线程通信介绍 1.2 两条线程通信 package com.itheima.correspondence;public class CorrespondenceDemo1 {/*两条线程通信*/public static void main(String[] args) {Printer1 p new Printer1();new Thread(new Runnable() {Overridepublic void run() {syn…

【亲测有用】idea2024.1中前进后退按钮图标添加

idea更新后,前进后退按钮消失了,现在说下怎么设置 具体操作如下: 1、选择 File / Settings(windows版),或者Preferences(mac版) 2、打开 Appearance & Behavior 并选择 Menus and Toolbars 3、选择右侧的 “Main toolbar lef…

Python中pyside2出现的pyside2 qt platform plugin could be in错误及其解决方法

系统平台:Win10 64bit python版本: python 3.8 使用pip install pyside2安装 pyside2 这是找不到QT平台的插件,这是环境变量QT_QPA_PLATFORM_PLUGIN_PATH出现错误 具体解决方法: 我们可以在每一段程序开始之前设定环境变量&…

虚幻引擎5 Gameplay框架(一)

GamePlay概论与打包和批处理脚本 GamePlay简介与创建项目 GamePlay框架:用于设计游戏规则,组织和管理游戏核心逻辑、规则以及交互的一套结构化体系。 Default Pawn Class:定义角色行为逻辑,接收玩家控制器的输入,一般…

【R语言】组合图:散点图+箱线图+平滑曲线图+柱状图

用算数运算符轻松组合不同的ggplot图,如图: 具体代码如下: install.packages("devtools")#安装devtools包 devtools::install_github("thomasp85/patchwork")#安装patchwork包 library(ggplot2) library(patchwork) #p1是…

[ACTF2020 新生赛]Upload--BUUCTF

题: 第一步:上传php文件,他提示,只能上传jpg、png、gif 第二步:使用bp抓上传jpg文件的包,在修改文件后缀名为phtml 修改前 修改后 第三步:进行放过,在访问浏览器 得到:U…

第07-4章 网络层详解

7.1 网络层协议 IP协议ARP(地址解析协议)RARP(反向地址解析协议)ICMP(互联网控制消息协议) 7.2 IP协议详解 7.2.1 IP协议功能 寻址和路由传递服务(不可靠,尽最大努力&#xff0c…

线性代数基础1向量

1、向量是什么 1.1、向量的定义 在数学中,向量(也称为欧几里得向量、几何向量、矢量),指具有大小和方向的量。它可以形象化地表示为带箭头的线段。箭头所指:代表向量的方向;线段长度:代表向量的…

Rust腐蚀服务器定制地图开服

Rust腐蚀服务器定制地图开服 大家好我是艾西一个做服务器租用的网络架构师。Rust腐蚀这个游戏有很多的插件mod作者,在地图制作这一块也是一样,有些好玩的地图可能大家在map网站找到了但是不知道怎么操作设置那么今天艾西给大家说下特定定制地图怎么弄。…

嬴图| ISO/IEC-GQL国际图语言标准发布,图技术开启新纪元

GQL作为继SQL之后的第二个数据库查询语言国际标准,近日正式发布。这标志着图技术开启新纪元——图时代即将到来! 同时,这也预示着将有越来越多的组织采用“图”来解决各种复杂问题,更意味着SQL系统与负载将逐渐转向GQL&#xff0…

2024最新SSL证书在线申请系统源码 | 支持API接口 支持在线付费 二开优化版

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 2024最新SSL证书在线申请系统源码 | 支持API接口 支持在线付费 二开优化版 最新SSL证书在线申请系统源码 | 支持API接口 SSL证书保证网络安全的基本保障。向您介绍我们的在线生成SSL…

Ubuntu20.04安装 mysql8.0.32

检查删除原有的mysql(可以不做,自己记录) 1、 下载 MySQL :: Download MySQL Community Server (Archived Versions) wget https://cdn.mysql.com/archives/mysql-8.0/mysql-server_8.0.32-1ubuntu20.04_amd64.deb-bundle.tar 2、解压到指定目录下 tar xvf mysq…

GDPU Java 天码行空9

(一)实验目的 1、掌握JAVA中异常类型及其特点; 2、重点掌握异常的处理方法; 3、能创建自定义异常处理方法; 4、掌握文件操作方法。 (二)实验内容和步骤 1、try catch finally 如果catch里面有…