第一篇:你不會還不知道IntelliJ IDEA吧!不要太low哦
版權(quán)聲明:本文為CSDN博主「李阿昀」的原創(chuàng)文章
原文鏈接:https://blog.csdn.net/yerenyuan_pku/article/details/115691429
大家好,我是你們的李阿昀,今天開始,我來給大家講解一下IntelliJ IDEA的安裝、配置與使用。
那IntelliJ IDEA是什么呢?應(yīng)該說看到這篇文章的小伙伴,應(yīng)該都知道了,否則的話,你也不會打開我這篇文章來學(xué)習(xí)IntelliJ IDEA這樣的一個工具。如果用最簡單的語言來介紹IntelliJ IDEA,那就是Java的集成開發(fā)環(huán)境,通俗來講,就是使用IntelliJ IDEA去開發(fā)我們的Java應(yīng)用程序。
我們?yōu)槭裁匆私釯ntelliJ IDEA?
為什么我們要了解IntelliJ IDEA呢?應(yīng)該說基于如下的幾個原因。
其一,進行Java開發(fā)或者大數(shù)據(jù)開發(fā),乃至于說做移動端、安卓開發(fā)的小伙伴,應(yīng)該都知道一個叫做Eclipse的工具,或者之前的話,主體都在用Eclipse進行開發(fā),它和從今天開始我要為大家講解的IntelliJ IDEA是競爭關(guān)系,原先主流大家都在用Eclipse,但是現(xiàn)在IntelliJ IDEA的市場占有率節(jié)節(jié)攀升,應(yīng)該說非常高了,我沒有具體去看這樣的一個比例,你要說到不了一半的話,它也應(yīng)該對Eclipse的沖擊是很大的,所以,雖然它倆現(xiàn)在都是比較主流的Java集成開發(fā)環(huán)境,但是如果你之前使用的是Eclipse,那么建議你盡快遷移到IntelliJ IDEA中。
其二,很多自學(xué)Java的小伙伴,在看書或者教程的時候,依然還是主體在用Eclipse,但是一旦進入公司以后,發(fā)現(xiàn)公司主體在用IntelliJ IDEA,由于對這個Java集成開發(fā)環(huán)境不熟悉,心里難免打退堂鼓,所以內(nèi)心迫切希望能有一套關(guān)于IntelliJ IDEA使用的系列教程,引領(lǐng)自己快速熟悉一下IntelliJ IDEA。
其三,筆者也發(fā)現(xiàn)身邊的一些朋友,尤其是在大公司的,比如滴滴、百度、阿里等,他們現(xiàn)在開發(fā)也確實很多都在用IntelliJ IDEA,說明IntelliJ IDEA在這些一線的互聯(lián)網(wǎng)公司里面,還是非常被認(rèn)可的。
好,基于上面這樣的幾個原因,我就有必要來為大家講述一下IntelliJ IDEA的安裝、配置與使用了。
筆者在這里花費了極大的心血為大家一個字一個字寫出了這套關(guān)于IntelliJ IDEA使用的系列教程,而且還親身試驗,不可謂不細(xì)心,這套系列教程我總共寫了38篇文章,應(yīng)該說我寫的是非常詳細(xì)了,大家按照我這套系列教程來進行學(xué)習(xí)IntelliJ IDEA就可以了。這套系列教程基本上涵蓋了IntelliJ IDEA使用的方方面面,當(dāng)然了,除此之外,還有一些邊邊角角的內(nèi)容我是沒寫到的,其實,你也沒必要把IntelliJ IDEA這個工具的全部使用細(xì)節(jié)全方位地、立體化地都關(guān)注到,就像我們Java里面,有很多類庫你是自始至終也用不著的,對吧!
JetBrains公司介紹
在介紹IntelliJ IDEA之前,咱們得來介紹一下做出這個產(chǎn)品的公司,即JetBrains。IntelliJ IDEA這個產(chǎn)品就是JetBrains公司開發(fā)出來的,相應(yīng)地,大家應(yīng)該都知道Eclipse是IBM公司開發(fā)出來的吧
JetBrains是捷克的一家公司,我想,大家應(yīng)該都知道中歐或者東歐的程序員是以思維嚴(yán)謹(jǐn)著稱的。該公司的官網(wǎng)地址是https://www.jetbrains.com,我們不妨去訪問一下該公司的官網(wǎng),如下圖所示。
當(dāng)然了,毫無疑問,其官網(wǎng)是純英文的,沒有中文喲。將光標(biāo)放在官網(wǎng)首頁中的Developer Tools上,你就會看到羅列出來IntelliJ IDEA這個產(chǎn)品了。
同時,你也會發(fā)現(xiàn)這個公司不光開發(fā)了Java的集成開發(fā)環(huán)境(即IntelliJ IDEA),還開發(fā)了其他的一些產(chǎn)品,下面我來為大家簡單介紹一下這些產(chǎn)品。
AppCode:用于開發(fā)Objective-C/Swift。也就是,它是用來開發(fā)Mac以及蘋果手機IOS應(yīng)用程序的集成開發(fā)環(huán)境,它可以替換掉Xcode喲~
CLion:用于開發(fā)C/C
DataGrip:用于開發(fā)數(shù)據(jù)庫和SQL
GoLand:用于開發(fā)Go。不知道你聽說過區(qū)塊鏈沒,現(xiàn)在區(qū)塊鏈還是蠻火爆的,區(qū)塊鏈的主流開發(fā)語言就是Go語言
IntelliJ IDEA:用于開發(fā)Java,也就是從今天開始我們要學(xué)習(xí)的
PhpStorm:用于開發(fā)PHP
PyCharm:用于開發(fā)Python。Python現(xiàn)在非?;鸨钚碌氖袌雠琶麘?yīng)該是超過了Java,在語言熱度排行榜上也是名列第一,可見它的市場之大,而且它非常適合目前大數(shù)據(jù)以及人工智能的開發(fā),尤其是在數(shù)據(jù)分析、數(shù)據(jù)挖掘這些領(lǐng)域
Rider:用于開發(fā).NET
RubyMine:用于開發(fā)Ruby/Rails
WebStorm:用于開發(fā)JavaScript、HTML5以及CSS3等前端技術(shù)。前端開發(fā)的小伙伴們,應(yīng)該對WebStorm并不陌生
看我寫的這套系列教程的同學(xué),主體應(yīng)該是做Java開發(fā)的,對于其他語言具體開發(fā)的小伙伴們來說,JetBrains公司基本上也會推出相應(yīng)的一些產(chǎn)品,而且在相關(guān)語言的開發(fā)工具方面地位也是數(shù)一數(shù)二的,可見JetBrains公司的強大。
最后,我還得說一嘴,不知道你聽說過Android Studio這個開發(fā)工具沒,它是進行安卓開發(fā)的一個集成開發(fā)環(huán)境,注意它不是JetBrains公司開發(fā)的,而是谷歌公司開發(fā)的,當(dāng)然了,谷歌也是基于IntelliJ IDEA社區(qū)版進行迭代的,所以,它也可以說跟這個JetBrains公司是息息相關(guān)的。
一句話,現(xiàn)在主流的各種開發(fā)語言,JetBrains公司都提供了相應(yīng)的集成開發(fā)環(huán)境,而且在相關(guān)領(lǐng)域里面都是非常有競爭力的。
IntelliJ IDEA介紹
IntelliJ IDEA(簡稱IDEA),是Java語言開發(fā)的集成環(huán)境,IDEA在業(yè)界被公認(rèn)為是最好的Java開發(fā)工具之一,尤其在智能代碼助手、代碼自動提示、重構(gòu)、J2EE支持、各類版本工具(Git、SVN、GitHub等)、JUnit、CVS整合、代碼分析和創(chuàng)新的GUI設(shè)計等方面的功能都值得稱道。
上面也說了,IntelliJ IDEA在業(yè)界被公認(rèn)為是最好的Java開發(fā)工具之一,這兒已經(jīng)夠謙虛了啊,還之一,你知道之前IntelliJ IDEA官網(wǎng)中它是怎么自己夸自己的嗎?在之前的IntelliJ IDEA官網(wǎng)中,有非常簡潔的一句話介紹,即:
The most intelligent Java IDE
這句話透漏出了兩個信息,其一,IntelliJ IDEA是一個Java的集成開發(fā)環(huán)境,其二,它稱自己是最智能、最人性化的Java集成開發(fā)環(huán)境(The most intelligent)。像這種字眼的話,我不知道那個時候國際審核時是怎么通過的,按說應(yīng)該比國內(nèi)要嚴(yán)格一些啊,但是竟然沒有把The most這樣的字眼去掉。大家知道現(xiàn)在咱們中國工商局監(jiān)督一些個別的字眼是非常嚴(yán)格的,公司官網(wǎng)中是絕對不能出現(xiàn)像The most(最)這樣的字眼的,因為工商總局一直在盯著呢。就像當(dāng)初羅永浩推出錘子手機的時候,他一開始也只能說自己家手機是東半球最好的手機,結(jié)果就招來了群毆,包括工商局也開始查他,最后,逼不得已才改成了是全球第二好用的手機,對吧,我不是最好的,我是第二的,第一你們就自己去意淫吧。在之前的IntelliJ IDEA官網(wǎng)中,它稱自己是The most,應(yīng)該說還是非常自信的,或者說沒有被查也是一個幸運。不過,現(xiàn)在它也改了,它稱自己是:
Capable and Ergonomic IDE for JVM
翻譯過來,就是適用于JVM的功能強大且符合人體工程學(xué)的IDE,如下圖所示。
還有,上面我也說了,IntelliJ IDEA在某某(省略了)方面的功能可以說是超常的,這個你只有在后續(xù)的學(xué)習(xí)與使用過程當(dāng)中,才能夠體會到,現(xiàn)在這樣說,你是沒有什么感覺的。
IntelliJ IDEA在2015年的官網(wǎng)上是這樣介紹自己的:
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等語言的開發(fā),同時具備支持目前主流的技術(shù)和框架,擅長于企業(yè)應(yīng)用、移動應(yīng)用和Web應(yīng)用的開發(fā)。
Java不用多說,至于這個Scala的話,如果你是做大數(shù)據(jù)開發(fā),那么相信你肯定對Scala并不陌生,Spark底層源碼就是使用Scala來寫的,可見,Scala適合用于大數(shù)據(jù)開發(fā)。至于Groovy的話,它也是一門語言,它跟Scala一樣都可以使用Java中的類庫,大家應(yīng)該知道,之所以好多人選擇學(xué)Java,其中一個最主要的原因就是Java有非常強大的類庫支持。為什么Scala和Groovy這兩個語言可以支持Java的類庫呢?因為它倆都是使用Java虛擬機進行解釋運行的。
應(yīng)該說IntelliJ IDEA對自己的定位是非常清晰的,對于新人來講,可能不太理解,他會認(rèn)為IntelliJ IDEA博而不精,當(dāng)然,對于老用戶來講,對它這樣的描述應(yīng)該還是比較認(rèn)可的。
IntelliJ IDEA的主要功能介紹
下面咱們從語言層面支持上簡單地對IntelliJ IDEA進行一個了解。
事實上,我們看到主流的開發(fā)語言IntelliJ IDEA都可以支持,安裝插件之后就能支持相關(guān)的一些語言了,另外,它還支持主流的數(shù)據(jù)庫,例如MySQL、Oracle等,除此之外,它還支持Java(這不是廢話嘛)、Groovy以及Scala等語言。
我們看一下IntelliJ IDEA還能支持些什么?如下表所示。
可以看到IntelliJ IDEA還支持主流的框架、代碼提示(關(guān)于這一點,我們待會也會提到,這是IntelliJ IDEA中非常好的一點)以及主流的服務(wù)器。
IntelliJ IDEA的主要優(yōu)勢(相較于Eclipse而言)
如果單純地要講IntelliJ IDEA的優(yōu)勢,那么我們可能要說很久才能說完,就好比是我們要談手機的優(yōu)勢是什么,我們要談的話,可能一百個都打不住,但是如果我們要說蘋果手機和小米手機比,小米手機的優(yōu)勢是什么,這樣的話,就不多了,因為我們把它們共性的那些優(yōu)勢都干掉了。
同理,我們這里來講IntelliJ IDEA的優(yōu)勢,也是相較于Eclipse來講的,如果你之前沒有接觸過Eclipse,那這塊,你就聽一聽好了,如果你之前接觸過Eclipse的話,那最好了,這塊可能會引起你的一些共鳴,通過兩相對比,你就能夠知道為什么現(xiàn)在很多人都從Eclipse遷移到IntelliJ IDEA中了。
很多自學(xué)Java的小伙伴,在看書或者教程的時候,依然還是主體在用Eclipse,但是一旦進入公司以后,發(fā)現(xiàn)公司主體在用IntelliJ IDEA,剛開始肯定會非常不適應(yīng),等用一段時間之后,會發(fā)現(xiàn)特別好用。這個時候,如果我問你你覺得IntelliJ IDEA跟Eclipse相比,好處都有哪些呢?你有可能嗶嗶嗶說了一大堆,比如你說了10個IntelliJ IDEA的好處,結(jié)果其中5個Eclipse都可以做,那么這就暴露出你的一個問題了,不是說你對IntelliJ IDEA有多熟悉,反而是暴露了你對Eclipse有多么的不熟悉。其實,這也是面試的一個小技巧,就是有的時候吧,你說的多,并不一定是一件好事,對吧
廢話不多說,下面我們來看看相較于Eclipse而言,IntelliJ IDEA的主要優(yōu)勢,這幾個主要優(yōu)勢,也算是以小見大吧!
強大的整合能力
對于Git、Maven、Spring等這樣的一些框架或者版本控制工具,IntelliJ IDEA的支持度是非常高的,而且,IntelliJ IDEA本身也已經(jīng)集成了相關(guān)的一些插件,至于你用不用,這是另外一說了。
提示功能的快速、便捷
我們在Eclipse當(dāng)中,肯定也要用提示了,通常的話,我們執(zhí)行一個.的操作就會出來提示了,或者在我們寫某一個類時,寫出該類的前幾個字符,相關(guān)的提示也就出來了。在IntelliJ IDEA中,你會發(fā)現(xiàn)它提示的速度非常快,而且使用的范圍也非常廣,真正用起來以后,你會發(fā)現(xiàn)跟Eclipse相比,它確實要好一些。
提示功能的范圍廣
這里,我們就要吐槽一下Eclipse了,Eclipse的版本有很多,按照Luna、Mars、Neon以及Oxygen這樣的順序一直往下排,之前我用的比較多的是Mars這個版本,在我使用Eclipse的過程中,經(jīng)常會碰到一個問題,那就是寫一些前端代碼的時候,比如HTML、JS,包括JSP、XML,會發(fā)現(xiàn)這個版本的Eclipse支持JSP的提示,換成下個版本,它又支持JS提示了,就沒有一個版本對這些語言都支持,這就非常令人惡心了,你會在心里犯嘀咕,到底用哪個版本最好呢,這其實取決于你對哪個版本更熟悉,哪個提示功能你用的比較多,那你就用哪個版本的。
而IntelliJ IDEA就不是這樣子的了,它的各個版本對我們以上提到的不管是HTML也好,還是XML也好,還是JS也好,都是可以提示的。同時,我這里也截了一張圖,如下所示。
我這里是要說明什么呢?等咱們后續(xù)在IntelliJ IDEA中關(guān)聯(lián)好數(shù)據(jù)庫以后,當(dāng)你在框架里面編寫一條查詢數(shù)據(jù)庫表的SQL語句時,你會發(fā)現(xiàn)在寫FROM后面表名的時候,IntelliJ IDEA也給我們做出了一個提示,這樣就很好地規(guī)避了SQL語句編寫時出現(xiàn)的一些錯誤。其實,不只是表名會給我們提示出來,當(dāng)我們?nèi)ゲ樵円恍┚唧w的列名時,IntelliJ IDEA也會給我們提示,這點就非常好,因為它提示的范圍足夠廣。
好用的快捷鍵和代碼模板
我們不管是做Java開發(fā)也好,還是做其他語言的開發(fā)也好,快捷鍵是我們必須要用的,因為這能夠增加我們的開發(fā)效率。在這套系列教程里面,我也會講到快捷鍵的使用,在IntelliJ IDEA中,其快捷鍵也是非常豐富的。
這一點,老實說,其實還不是IntelliJ IDEA主要的優(yōu)勢,因為Eclipse也都有啊。這里,我想說的是,如果大家是首次使用IntelliJ IDEA,那么不建議你去跟Eclipse的那套快捷鍵做對比,直接就用IntelliJ IDEA中的這套快捷鍵就哦了,但是如果你之前是用Eclipse做開發(fā)的,現(xiàn)在要切換到IntelliJ IDEA中,或者現(xiàn)在公司當(dāng)中既有使用Eclipse開發(fā)的項目也有使用IntelliJ IDEA開發(fā)的項目,還都需要你來參與,那么建議你最好是將快捷鍵設(shè)置成一套的,否則的話,你的大腦肯定是要分裂的,腦子就一團漿糊了,唉,怎么這個快捷鍵不好使,好家伙,原來它是另外一個集成開發(fā)環(huán)境中的。
在這套系列教程中,講解快捷鍵的時候我也提到這個事了,即怎么把IntelliJ IDEA中的快捷鍵改成Eclipse那一套。
代碼模板也會在我這套系列教程中詳細(xì)講到。我們在開發(fā)當(dāng)中,經(jīng)常會寫一些比如for循環(huán)、if條件判斷等等這樣一些固定結(jié)構(gòu)的代碼,甚至包括我們聲明一個private static final的變量,這些都是屬于一些固定格式,那么我們就可以把常寫的這樣一些代碼編輯成一些模板,例如,我可以直接通過寫prsf這幾個字符的方式把private static final這樣的三個關(guān)鍵字的聲明給調(diào)出來,從而極大提高我們的開發(fā)效率。
精準(zhǔn)搜索
搜索也是我們實際開發(fā)當(dāng)中難以避免的,我們也需要經(jīng)常使用。在代碼或者文件當(dāng)中,如果我們要搜索任意的類、文件、符號(符號主要就是方法、屬性等等)或者字符串,那么你會發(fā)現(xiàn)在IntelliJ IDEA中的體驗會非常好,非常的精準(zhǔn),而且速度也快,最終的搜索結(jié)果也很全面。