版权声明:本文为CSDN博主「李阿昀」的原创文章

原文链接:https://blog.csdn.net/yerenyuan_pku/article/details/115691429

大家好,我是你们的李阿昀,今天开始,我来给大家讲解一下IntelliJ IDEA的安装、配置与使用。

那IntelliJ IDEA是什么呢?应该说看到这篇文章的小伙伴,应该都知道了,否则的话,你也不会打开我这篇文章来学习IntelliJ IDEA这样的一个工具。如果用最简单的语言来介绍IntelliJ IDEA,那就是Java的集成开发环境,通俗来讲,就是使用IntelliJ IDEA去开发我们的Java应用程序。

我们为什么要了解IntelliJ IDEA?

为什么我们要了解IntelliJ IDEA呢?应该说基于如下的几个原因。

其一,进行Java开发或者大数据开发,乃至于说做移动端、安卓开发的小伙伴,应该都知道一个叫做Eclipse的工具,或者之前的话,主体都在用Eclipse进行开发,它和从今天开始我要为大家讲解的IntelliJ IDEA是竞争关系,原先主流大家都在用Eclipse,但是现在IntelliJ IDEA的市场占有率节节攀升,应该说非常高了,我没有具体去看这样的一个比例,你要说到不了一半的话,它也应该对Eclipse的冲击是很大的,所以,虽然它俩现在都是比较主流的Java集成开发环境,但是如果你之前使用的是Eclipse,那么建议你尽快迁移到IntelliJ IDEA中。

其二,很多自学Java的小伙伴,在看书或者教程的时候,依然还是主体在用Eclipse,但是一旦进入公司以后,发现公司主体在用IntelliJ IDEA,由于对这个Java集成开发环境不熟悉,心里难免打退堂鼓,所以内心迫切希望能有一套关于IntelliJ IDEA使用的系列教程,引领自己快速熟悉一下IntelliJ IDEA。

其三,笔者也发现身边的一些朋友,尤其是在大公司的,比如滴滴、百度、阿里等,他们现在开发也确实很多都在用IntelliJ IDEA,说明IntelliJ IDEA在这些一线的互联网公司里面,还是非常被认可的。

好,基于上面这样的几个原因,我就有必要来为大家讲述一下IntelliJ IDEA的安装、配置与使用了。

笔者在这里花费了极大的心血为大家一个字一个字写出了这套关于IntelliJ IDEA使用的系列教程,而且还亲身试验,不可谓不细心,这套系列教程我总共写了38篇文章,应该说我写的是非常详细了,大家按照我这套系列教程来进行学习IntelliJ IDEA就可以了。这套系列教程基本上涵盖了IntelliJ IDEA使用的方方面面,当然了,除此之外,还有一些边边角角的内容我是没写到的,其实,你也没必要把IntelliJ IDEA这个工具的全部使用细节全方位地、立体化地都关注到,就像我们Java里面,有很多类库你是自始至终也用不着的,对吧!

JetBrains公司介绍

在介绍IntelliJ IDEA之前,咱们得来介绍一下做出这个产品的公司,即JetBrains。IntelliJ IDEA这个产品就是JetBrains公司开发出来的,相应地,大家应该都知道Eclipse是IBM公司开发出来的吧

JetBrains是捷克的一家公司,我想,大家应该都知道中欧或者东欧的程序员是以思维严谨著称的。该公司的官网地址是https://www.jetbrains.com,我们不妨去访问一下该公司的官网,如下图所示。

intellijidea入门(你不会还不知道IntelliJ)(1)

当然了,毫无疑问,其官网是纯英文的,没有中文哟。将光标放在官网首页中的Developer Tools上,你就会看到罗列出来IntelliJ IDEA这个产品了。

intellijidea入门(你不会还不知道IntelliJ)(2)

同时,你也会发现这个公司不光开发了Java的集成开发环境(即IntelliJ IDEA),还开发了其他的一些产品,下面我来为大家简单介绍一下这些产品。

AppCode:用于开发Objective-C/Swift。也就是,它是用来开发Mac以及苹果手机IOS应用程序的集成开发环境,它可以替换掉Xcode哟~

CLion:用于开发C/C

DataGrip:用于开发数据库和SQL

GoLand:用于开发Go。不知道你听说过区块链没,现在区块链还是蛮火爆的,区块链的主流开发语言就是Go语言

IntelliJ IDEA:用于开发Java,也就是从今天开始我们要学习的

PhpStorm:用于开发PHP

PyCharm:用于开发Python。Python现在非常火爆,最新的市场排名应该是超过了Java,在语言热度排行榜上也是名列第一,可见它的市场之大,而且它非常适合目前大数据以及人工智能的开发,尤其是在数据分析、数据挖掘这些领域

Rider:用于开发.NET

RubyMine:用于开发Ruby/Rails

WebStorm:用于开发JavaScript、HTML5以及CSS3等前端技术。前端开发的小伙伴们,应该对WebStorm并不陌生

看我写的这套系列教程的同学,主体应该是做Java开发的,对于其他语言具体开发的小伙伴们来说,JetBrains公司基本上也会推出相应的一些产品,而且在相关语言的开发工具方面地位也是数一数二的,可见JetBrains公司的强大。

最后,我还得说一嘴,不知道你听说过Android Studio这个开发工具没,它是进行安卓开发的一个集成开发环境,注意它不是JetBrains公司开发的,而是谷歌公司开发的,当然了,谷歌也是基于IntelliJ IDEA社区版进行迭代的,所以,它也可以说跟这个JetBrains公司是息息相关的。

一句话,现在主流的各种开发语言,JetBrains公司都提供了相应的集成开发环境,而且在相关领域里面都是非常有竞争力的。

IntelliJ IDEA介绍

IntelliJ IDEA(简称IDEA),是Java语言开发的集成环境,IDEA在业界被公认为是最好的Java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(Git、SVN、GitHub等)、JUnit、CVS整合、代码分析和创新的GUI设计等方面的功能都值得称道。

上面也说了,IntelliJ IDEA在业界被公认为是最好的Java开发工具之一,这儿已经够谦虚了啊,还之一,你知道之前IntelliJ IDEA官网中它是怎么自己夸自己的吗?在之前的IntelliJ IDEA官网中,有非常简洁的一句话介绍,即:

The most intelligent Java IDE

这句话透漏出了两个信息,其一,IntelliJ IDEA是一个Java的集成开发环境,其二,它称自己是最智能、最人性化的Java集成开发环境(The most intelligent)。像这种字眼的话,我不知道那个时候国际审核时是怎么通过的,按说应该比国内要严格一些啊,但是竟然没有把The most这样的字眼去掉。大家知道现在咱们中国工商局监督一些个别的字眼是非常严格的,公司官网中是绝对不能出现像The most(最)这样的字眼的,因为工商总局一直在盯着呢。就像当初罗永浩推出锤子手机的时候,他一开始也只能说自己家手机是东半球最好的手机,结果就招来了群殴,包括工商局也开始查他,最后,逼不得已才改成了是全球第二好用的手机,对吧,我不是最好的,我是第二的,第一你们就自己去意淫吧。在之前的IntelliJ IDEA官网中,它称自己是The most,应该说还是非常自信的,或者说没有被查也是一个幸运。不过,现在它也改了,它称自己是:

Capable and Ergonomic IDE for JVM

翻译过来,就是适用于JVM的功能强大且符合人体工程学的IDE,如下图所示。

intellijidea入门(你不会还不知道IntelliJ)(3)

还有,上面我也说了,IntelliJ IDEA在某某(省略了)方面的功能可以说是超常的,这个你只有在后续的学习与使用过程当中,才能够体会到,现在这样说,你是没有什么感觉的。

IntelliJ IDEA在2015年的官网上是这样介绍自己的:

Excel at enterprise, mobile and web development with Java, Scala and Groovy, with all the latest modern technologies and frameworks available out of the box.

简要翻译一下就是,IntelliJ IDEA主要用于支持Java、Scala、Groovy等语言的开发,同时具备支持目前主流的技术和框架,擅长于企业应用、移动应用和Web应用的开发。

Java不用多说,至于这个Scala的话,如果你是做大数据开发,那么相信你肯定对Scala并不陌生,Spark底层源码就是使用Scala来写的,可见,Scala适合用于大数据开发。至于Groovy的话,它也是一门语言,它跟Scala一样都可以使用Java中的类库,大家应该知道,之所以好多人选择学Java,其中一个最主要的原因就是Java有非常强大的类库支持。为什么Scala和Groovy这两个语言可以支持Java的类库呢?因为它俩都是使用Java虚拟机进行解释运行的。

应该说IntelliJ IDEA对自己的定位是非常清晰的,对于新人来讲,可能不太理解,他会认为IntelliJ IDEA博而不精,当然,对于老用户来讲,对它这样的描述应该还是比较认可的。

IntelliJ IDEA的主要功能介绍

下面咱们从语言层面支持上简单地对IntelliJ IDEA进行一个了解。

intellijidea入门(你不会还不知道IntelliJ)(4)

事实上,我们看到主流的开发语言IntelliJ IDEA都可以支持,安装插件之后就能支持相关的一些语言了,另外,它还支持主流的数据库,例如MySQL、Oracle等,除此之外,它还支持Java(这不是废话嘛)、Groovy以及Scala等语言。

我们看一下IntelliJ IDEA还能支持些什么?如下表所示。

intellijidea入门(你不会还不知道IntelliJ)(5)

可以看到IntelliJ IDEA还支持主流的框架、代码提示(关于这一点,我们待会也会提到,这是IntelliJ IDEA中非常好的一点)以及主流的服务器。

IntelliJ IDEA的主要优势(相较于Eclipse而言)

如果单纯地要讲IntelliJ IDEA的优势,那么我们可能要说很久才能说完,就好比是我们要谈手机的优势是什么,我们要谈的话,可能一百个都打不住,但是如果我们要说苹果手机和小米手机比,小米手机的优势是什么,这样的话,就不多了,因为我们把它们共性的那些优势都干掉了。

同理,我们这里来讲IntelliJ IDEA的优势,也是相较于Eclipse来讲的,如果你之前没有接触过Eclipse,那这块,你就听一听好了,如果你之前接触过Eclipse的话,那最好了,这块可能会引起你的一些共鸣,通过两相对比,你就能够知道为什么现在很多人都从Eclipse迁移到IntelliJ IDEA中了。

很多自学Java的小伙伴,在看书或者教程的时候,依然还是主体在用Eclipse,但是一旦进入公司以后,发现公司主体在用IntelliJ IDEA,刚开始肯定会非常不适应,等用一段时间之后,会发现特别好用。这个时候,如果我问你你觉得IntelliJ IDEA跟Eclipse相比,好处都有哪些呢?你有可能哔哔哔说了一大堆,比如你说了10个IntelliJ IDEA的好处,结果其中5个Eclipse都可以做,那么这就暴露出你的一个问题了,不是说你对IntelliJ IDEA有多熟悉,反而是暴露了你对Eclipse有多么的不熟悉。其实,这也是面试的一个小技巧,就是有的时候吧,你说的多,并不一定是一件好事,对吧

废话不多说,下面我们来看看相较于Eclipse而言,IntelliJ IDEA的主要优势,这几个主要优势,也算是以小见大吧!

强大的整合能力

对于Git、Maven、Spring等这样的一些框架或者版本控制工具,IntelliJ IDEA的支持度是非常高的,而且,IntelliJ IDEA本身也已经集成了相关的一些插件,至于你用不用,这是另外一说了。

提示功能的快速、便捷

我们在Eclipse当中,肯定也要用提示了,通常的话,我们执行一个.的操作就会出来提示了,或者在我们写某一个类时,写出该类的前几个字符,相关的提示也就出来了。在IntelliJ IDEA中,你会发现它提示的速度非常快,而且使用的范围也非常广,真正用起来以后,你会发现跟Eclipse相比,它确实要好一些。

提示功能的范围广

这里,我们就要吐槽一下Eclipse了,Eclipse的版本有很多,按照Luna、Mars、Neon以及Oxygen这样的顺序一直往下排,之前我用的比较多的是Mars这个版本,在我使用Eclipse的过程中,经常会碰到一个问题,那就是写一些前端代码的时候,比如HTML、JS,包括JSP、XML,会发现这个版本的Eclipse支持JSP的提示,换成下个版本,它又支持JS提示了,就没有一个版本对这些语言都支持,这就非常令人恶心了,你会在心里犯嘀咕,到底用哪个版本最好呢,这其实取决于你对哪个版本更熟悉,哪个提示功能你用的比较多,那你就用哪个版本的。

而IntelliJ IDEA就不是这样子的了,它的各个版本对我们以上提到的不管是HTML也好,还是XML也好,还是JS也好,都是可以提示的。同时,我这里也截了一张图,如下所示。

intellijidea入门(你不会还不知道IntelliJ)(6)

我这里是要说明什么呢?等咱们后续在IntelliJ IDEA中关联好数据库以后,当你在框架里面编写一条查询数据库表的SQL语句时,你会发现在写FROM后面表名的时候,IntelliJ IDEA也给我们做出了一个提示,这样就很好地规避了SQL语句编写时出现的一些错误。其实,不只是表名会给我们提示出来,当我们去查询一些具体的列名时,IntelliJ IDEA也会给我们提示,这点就非常好,因为它提示的范围足够广。

好用的快捷键和代码模板

我们不管是做Java开发也好,还是做其他语言的开发也好,快捷键是我们必须要用的,因为这能够增加我们的开发效率。在这套系列教程里面,我也会讲到快捷键的使用,在IntelliJ IDEA中,其快捷键也是非常丰富的。

这一点,老实说,其实还不是IntelliJ IDEA主要的优势,因为Eclipse也都有啊。这里,我想说的是,如果大家是首次使用IntelliJ IDEA,那么不建议你去跟Eclipse的那套快捷键做对比,直接就用IntelliJ IDEA中的这套快捷键就哦了,但是如果你之前是用Eclipse做开发的,现在要切换到IntelliJ IDEA中,或者现在公司当中既有使用Eclipse开发的项目也有使用IntelliJ IDEA开发的项目,还都需要你来参与,那么建议你最好是将快捷键设置成一套的,否则的话,你的大脑肯定是要分裂的,脑子就一团浆糊了,唉,怎么这个快捷键不好使,好家伙,原来它是另外一个集成开发环境中的。

在这套系列教程中,讲解快捷键的时候我也提到这个事了,即怎么把IntelliJ IDEA中的快捷键改成Eclipse那一套。

代码模板也会在我这套系列教程中详细讲到。我们在开发当中,经常会写一些比如for循环、if条件判断等等这样一些固定结构的代码,甚至包括我们声明一个private static final的变量,这些都是属于一些固定格式,那么我们就可以把常写的这样一些代码编辑成一些模板,例如,我可以直接通过写prsf这几个字符的方式把private static final这样的三个关键字的声明给调出来,从而极大提高我们的开发效率。

精准搜索

搜索也是我们实际开发当中难以避免的,我们也需要经常使用。在代码或者文件当中,如果我们要搜索任意的类、文件、符号(符号主要就是方法、属性等等)或者字符串,那么你会发现在IntelliJ IDEA中的体验会非常好,非常的精准,而且速度也快,最终的搜索结果也很全面。

,