Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 宅宅午夜亚洲精品,日本高清久久,国产精品久久免费

          整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          用了這么久 IDEA,你竟然不知道 Live Tem

          用了這么久 IDEA,你竟然不知道 Live Templates ?

          ive Templates 是什么,聽上去感覺挺玄乎的。有的同學(xué)用過(guò)之后覺得簡(jiǎn)直太好用了,不能說(shuō)大大提高了開發(fā)效率吧,至少也是小小的提高一下,節(jié)省了很多敲重復(fù)代碼的時(shí)間。有的同學(xué)用過(guò)之后說(shuō):沒什么用,奇技淫巧罷了。

          就算你沒聽過(guò)這個(gè)概念,但是或多或少你可能都用到過(guò)一點(diǎn),就算沒有用過(guò)的話,也可能見到過(guò)一些,沒吃過(guò)豬肉可能也見過(guò)豬跑,就像下面這樣的操作。

          總結(jié)一下呢,它就類似于一種快捷指令(神奇代碼),只要你在 IDEA 中輸入特定的字母組合,IDEA 就會(huì)幫你在當(dāng)前輸入的位置插入一段預(yù)先定義好的代碼,代碼可以是固定的,也可以定義一些上下文變量,適用于那些常用的、使用頻率較高的聲明或重復(fù)代碼段。

          比如聲明靜態(tài) finalString,在不用 Live Tmeplates 的情況下,我們會(huì)手動(dòng)在 IDEA 中依次敲出 "public static final String" 這一行代碼,當(dāng)然可能借助 IDEA 的只能提示,每個(gè)單詞只需要敲前兩個(gè)字母。在使用了 Live Tmeplates 的情況下, 我們只需要敲出 psfs這四個(gè)字母,然后按回車鍵,IDEA 就會(huì)幫我們?cè)?psfs這個(gè)位置插入 "public static final String" 這一行。

          沒用過(guò)的同學(xué)是不是趕緊打開 IDEA 試一下呢?在設(shè)置界面,輸入 Live Templates,然后找到右側(cè)的 Java就可以看到內(nèi)置的模板。不光有 Java 的,對(duì)于多種文件類型都有支持,比如 SQL 、JavaScript、JSP 、Kotlin 等。

          下面介紹幾個(gè) IDEA 內(nèi)置的、常用的模板。

          常用的 Live Templates

          main 和 psvm

          main 方法插入,雖然我們已經(jīng)可以很熟練的盲打出下面這一段代碼,但是只敲四個(gè)字母是不是會(huì)更快呢。

          public static void main(String[] args){
          }
          

          變量聲明

          下面一些是常用的變量聲明

          psfs

          public static final String 
          

          psfi

          public static final int 
          

          prsf

          private static final 
          

          St

          String 
          

          控制臺(tái)輸出

          下面是控制臺(tái)輸出,還有一些,不一一列舉了。

          sout

          文本輸出,最常用到的。

          System.out.println();
          

          souf

          帶格式化的文本輸出。

          System.out.printf();
          

          循環(huán)迭代

          fori

          輸入完,按回車后,光標(biāo)會(huì)在 i<的位置,等待輸入臨界值。

              for (int i=0; i < ; i++) {
          
              }
          

          iter

          用 forEach 的方式循環(huán),在一個(gè)數(shù)組或者列表變量下方使用。

          List<String> array=new ArrayList<>();
          for (String s1 : array) {
          
          }
          

          itco

          用迭代器的方式迭代,同樣是在一個(gè)列表變量下方使用。

          List<String> array=new ArrayList<>();
          for (Iterator<String> iterator=array.iterator(); iterator.hasNext(); ) {
            String next=iterator.next();
          }
          

          Surround Templates

          這種模板是在選中一段代碼后,然后使用快捷鍵 option+command+j調(diào)出提示框,然后選擇一個(gè)模板類型。

          這個(gè)快捷鍵是 MAC 系統(tǒng)下的,如果你用的是 windows,可以通過(guò)點(diǎn)擊 code菜單項(xiàng),找到 Sorround With,看看快捷鍵是什么。

          C

          實(shí)現(xiàn)一個(gè) Callable

          Callable<Object> callable=new Callable<Object>() {
            public Object call() throws Exception {
              System.out.println("hello");
            }
          };
          

          RL 和 WL

          插入一段讀鎖或?qū)戞i加解鎖代碼。

          // 要先聲明一個(gè)讀寫鎖實(shí)例
          ReadWriteLock readWriteLock=new ReentrantReadWriteLock();
          readWriteLock.readLock().lock();
          try {
            System.out.println("hello");
          } finally {
            readWriteLock.readLock().unlock();
          }
          

          自定義 Template

          有時(shí)候我們經(jīng)常會(huì)高頻詞的使用一段相似的代碼, 比如做網(wǎng)絡(luò)開發(fā)的同學(xué),會(huì)經(jīng)常用到 Socket 相關(guān)的初始化代碼。

          對(duì)于這種我們自己經(jīng)常要寫的某些類似的代碼段,就可以抽取出一個(gè) Template 出來(lái),方便我們使用。

          下面我就實(shí)現(xiàn)一個(gè)自定的 Template,來(lái)看一下是不是大大簡(jiǎn)化了重復(fù)性勞動(dòng)。有的同學(xué)可能覺得無(wú)所謂的事兒,復(fù)制、粘貼也挺省事兒。見仁見智吧,覺得有用的可以嘗試一下,覺得雞肋的也無(wú)所謂,反正也不影響最后的功能實(shí)現(xiàn)。

          比如我最新在做一些系統(tǒng)優(yōu)化的工作,這個(gè)過(guò)程中,我會(huì)頻繁的用 commons-lang3StopWatch來(lái)看某些方法或者某些代碼段的執(zhí)行時(shí)間。比如下面的代碼段:

          StopWatch stopWatch=new StopWatch("代碼段");
          stopWatch.start();
          try {
            Thread.sleep(1000);
          } catch (InterruptedException e) {
            throw new RuntimeException(e);
          }
          stopWatch.stop();
          System.out.printf("執(zhí)行時(shí)間 %s%n",stopWatch.toString());
          

          由于我比較懶,所以我不想每次都敲重復(fù)的內(nèi)容,連粘貼復(fù)制都不想。所以就想到了 Live Template。

          1、打開 IDEA 的設(shè)置窗口,找到 Editor 下的 Live Templates,在右側(cè)找到 Java,點(diǎn)擊最右側(cè)的加號(hào)。

          2、輸入這個(gè) Template 的名字,到時(shí)候可以在編輯器中通過(guò)輸入這個(gè)名字來(lái)插入這個(gè)模板。

          輸入描述,幫助我們記憶。

          最后輸入模板的內(nèi)容。

          我給這個(gè)模板起名為 watch,模板內(nèi)容如下:

          StopWatch stopWatch=new StopWatch("$MESSAGE$");
          stopWatch.start();
          $SELECTION$
          stopWatch.stop();
          System.out.printf("執(zhí)行時(shí)間 %s%n",stopWatch.toString());
          

          $SELECTION$表示選中的部分,我們要監(jiān)控的正好是某個(gè)方法或者某個(gè)代碼段,所以正好可以用 Surround Templates,并且在內(nèi)容中用了 $SELECTION$,模板就默認(rèn)為 Surround Templates了。

          $MESSAGE$就是一個(gè)占位符的作用,當(dāng)我們插入這個(gè)模板后,光標(biāo)會(huì)定位到這個(gè)占位符,我們就可以在需要定制的地方輸入我們想要的內(nèi)容了。在這里呢,由于我的一個(gè)方法中可能用到多個(gè) StopWatch,所以正好在這兒占位,給不同的 StopWatch 賦予不同的名字。

          可以通過(guò)下面的演示看一下效果。

          Live Template 支持的變量

          有一些情況下,我們希望插入的內(nèi)容不只是固定不變的代碼段,而是希望加入一些上下文相關(guān)的內(nèi)容,比如當(dāng)前方法的入?yún)ⅲ热绠?dāng)前類名,比如當(dāng)前方法名等。用下面這個(gè)例子說(shuō)明一下。

          有一個(gè)內(nèi)置的模板叫做 soutm,它的描述是這樣的:Prints current class and method names to System.out,打印當(dāng)前類和方法名,我們看一下效果,直接將當(dāng)前類和方法名 Study.main填充到了println參數(shù)位置上。

          模板內(nèi)容是這樣的,其中用到了兩個(gè)變量是表示當(dāng)前類名的 $CLASS_NAME$和表示當(dāng)前方法名的$METHOD_NAME$。

          System.out.println("$CLASS_NAME$.$METHOD_NAME$");
          

          更多的可用變量可以到 IDEA 官網(wǎng)查看,看到這些變量后,可能會(huì)打開你的思路,更近一步的為你提高開發(fā)效率。不過(guò)不用這些變量也沒關(guān)系,上面這寫其實(shí)差不多也夠用了。

          官網(wǎng)地址:https://www.jetbrains.com/help/idea/template-variables.html#predefined_functions

          文主要介紹Java程序員學(xué)習(xí)的一些基本和高級(jí)工具。如果你是一位經(jīng)驗(yàn)豐富的Java開發(fā)人員,擁有5到10年的經(jīng)驗(yàn),你可能對(duì)這些工具很熟悉,但如果不是,現(xiàn)在就是是開始學(xué)習(xí)這些工具的好時(shí)機(jī)。

          Java世界中存在許多工具,從Eclipse,NetBeans和IntelliJ IDEA等著名的IDE開始到Java開發(fā)人員應(yīng)該知道的JVM分析和監(jiān)視工具,如JConsole,VisualVM,Eclipse Memory Analyzer等。

          盡管如此,在本文中,我將重點(diǎn)介紹適用于各種Java開發(fā)人員的通用工具,例如核心Java 開發(fā)人員和Web開發(fā)人員。

          1. JIRA

          Atlassian的JIRA是當(dāng)前敏捷開發(fā)領(lǐng)域最重要的工具之一。它用于錯(cuò)誤跟蹤,問(wèn)題跟蹤和項(xiàng)目管理。如果你遵循敏捷開發(fā)方法,例如Sprint和Scrum,那么你必須了解JIRA。它允許您創(chuàng)建Spring循環(huán)并跟蹤軟件開發(fā)的進(jìn)度。




          JIRA 是目前比較流行的基于Java架構(gòu)的管理系統(tǒng),由于Atlassian公 司對(duì)很多開源項(xiàng)目實(shí)行免費(fèi)提供缺陷跟蹤服務(wù),因此在開源領(lǐng)域,其認(rèn)知度比其他的產(chǎn)品要高得多,而且易用性也好一些。


          2. Git

          Git是Java程序員的另一個(gè)必備工具,它是一個(gè)免費(fèi)的開源分布式版本控制系統(tǒng),旨在快速高效地處理從很小到非常大的項(xiàng)目版本管理。Git易于學(xué)習(xí),占用空間小,具有超強(qiáng)的性能。

          最初 Git 的開發(fā)是為了輔助 Linux 內(nèi)核開發(fā)的過(guò)程,但是發(fā)現(xiàn)已經(jīng)在很多其他自由軟件項(xiàng)目中也使用了 Git。


          3. Jenkins

          Jenkins是一個(gè)用Java編寫的開源自動(dòng)化服務(wù)器。它有助于自動(dòng)化軟件開發(fā),例如編譯項(xiàng)目,運(yùn)行單元測(cè)試,集成測(cè)試,生成文檔以及在本地和遠(yuǎn)程存儲(chǔ)庫(kù)上載工件。主要用于:

          ● 持續(xù)、自動(dòng)地構(gòu)建/測(cè)試軟件項(xiàng)目,如CruiseControl與DamageControl。

          ● 監(jiān)控一些定時(shí)執(zhí)行的任務(wù)。

          它是在項(xiàng)目中持續(xù)集成中最流行的工具之一。如果你還沒有開始使用Jenkins,那就從現(xiàn)在開始吧。


          4. Selenium

          Selenium是Web應(yīng)用程序最好的軟件測(cè)試框架之一。它提供了一種用于創(chuàng)作測(cè)試的回放工具,而無(wú)需學(xué)習(xí)測(cè)試腳本語(yǔ)言。Java開發(fā)人員可以使用Selenium來(lái)測(cè)試他們的HTML和JSP文件。

          它還為Web瀏覽器自動(dòng)化提供了各種工具和庫(kù)。Selenium 現(xiàn)在存在2個(gè)版本,一個(gè)叫 selenium-core, 一個(gè)叫selenium-rc 。


          5. Groovy

          Groovy 是一種基于 JVM 的敏捷開發(fā)語(yǔ)言,它結(jié)合了 Python、Ruby 和 Smalltalk 的許多強(qiáng)大的特性。你可以使用它編寫構(gòu)建腳本,測(cè)試腳本,甚至可以使用像Gradle和Spock這樣的流行框架。


          6、Spock

          Spock 是適合 Java 和 Groovy 應(yīng)用程序的一個(gè)測(cè)試框架。由于其JUnit運(yùn)行程序,Spock與大多數(shù)IDE,構(gòu)建工具和持續(xù)集成服務(wù)器兼容。如果你想提高你的單元測(cè)試技能,那么多花點(diǎn)時(shí)間在學(xué)習(xí)Spock上總是沒錯(cuò)的。


          7. Maven

          如果你是一位經(jīng)驗(yàn)豐富的Java開發(fā)人員,那么你一定非常了解Maven了,Apache Maven是一個(gè)構(gòu)建和項(xiàng)目管理工具,基于項(xiàng)目對(duì)象模型(POM)的概念,Maven可用于管理項(xiàng)目的生成、報(bào)告和文檔記錄。

          Maven的另一個(gè)有用特性是依賴關(guān)系管理,由于我們?cè)贘ava項(xiàng)目中使用了大量第三方庫(kù),因此手動(dòng)管理每個(gè)JAR及其依賴項(xiàng)可能非常麻煩,Maven通過(guò)自動(dòng)為你下載正確的JAR來(lái)幫助你解決問(wèn)題


          8. Gradle

          Gradle 是一個(gè)基于 Apache Ant 和 Apache Maven 概念的項(xiàng)目自動(dòng)化構(gòu)建工具。它也是Android的默認(rèn)構(gòu)建工具。

          它引入了基于Groovy的特定于域的語(yǔ)言(DSL),而不是Apache Maven用于聲明項(xiàng)目配置的XML,這樣有利于配置項(xiàng)目依賴關(guān)系以及用戶的項(xiàng)目自定義

          為什么選擇Gradle在Ant或Maven?因?yàn)樗Y(jié)合了其他構(gòu)建工具的最佳特性,例如它具有Ant的靈活性和控制,Ivy的依賴管理,Maven的配置和插件的約定,以及可以在Ant上使用Groovy DSL。這使它成為Java項(xiàng)目的最佳構(gòu)建工具。


          9. Docker

          Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,也可以實(shí)現(xiàn)虛擬化。

          容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口(類似 iPhone 的 app)。幾乎沒有性能開銷,可以很容易地在機(jī)器和數(shù)據(jù)中心中運(yùn)行。最重要的是,他們不依賴于任何語(yǔ)言、框架或包裝系統(tǒng)。


          10. Linux

          初學(xué)Linux最好從Linux命令行基礎(chǔ)知識(shí)開始,Linux是一種自由和開放源碼的類Unix操作系統(tǒng),在你的職業(yè)生涯中起到重要的作用,每一個(gè)Java開發(fā)者都應(yīng)該學(xué)Linux。

          如果以上工具還有你沒學(xué)會(huì)的,那就不要再錯(cuò)過(guò)了趕緊學(xué)起來(lái)。

          來(lái)源:開源最前線(ID:OpenSourceTop)

          文主要介紹Java程序員應(yīng)該在2019年學(xué)習(xí)的一些基本和高級(jí)工具。如果你是一位經(jīng)驗(yàn)豐富的Java開發(fā)人員,你可能對(duì)這些工具很熟悉,但如果不是,現(xiàn)在就是是開始學(xué)習(xí)這些工具的好時(shí)機(jī)。

          Java世界中存在許多工具,從Eclipse,NetBeans和IntelliJ IDEA等著名的IDE開始到Java開發(fā)人員應(yīng)該知道的JVM分析和監(jiān)視工具,如JConsole,VisualVM,Eclipse Memory Analyzer等。

          盡管如此,在本文中,我將重點(diǎn)介紹適用于各種Java開發(fā)人員的通用工具,例如核心Java 開發(fā)人員和Web開發(fā)人員。

          1. JIRA

          Atlassian的JIRA是當(dāng)前敏捷開發(fā)領(lǐng)域最重要的工具之一。它用于錯(cuò)誤跟蹤,問(wèn)題跟蹤和項(xiàng)目管理。如果你遵循敏捷開發(fā)方法,例如Sprint和Scrum,那么你必須了解JIRA。它允許您創(chuàng)建Spring循環(huán)并跟蹤軟件開發(fā)的進(jìn)度。

          JIRA 是目前比較流行的基于Java架構(gòu)的管理系統(tǒng),由于Atlassian公 司對(duì)很多開源項(xiàng)目實(shí)行免費(fèi)提供缺陷跟蹤服務(wù),因此在開源領(lǐng)域,其認(rèn)知度比其他的產(chǎn)品要高得多,而且易用性也好一些。

          2. Git

          Git是Java程序員的另一個(gè)必備工具,它是一個(gè)免費(fèi)的開源分布式版本控制系統(tǒng),旨在快速高效地處理從很小到非常大的項(xiàng)目版本管理。Git易于學(xué)習(xí),占用空間小,具有超強(qiáng)的性能。

          最初 Git 的開發(fā)是為了輔助 Linux 內(nèi)核開發(fā)的過(guò)程,但是發(fā)現(xiàn)已經(jīng)在很多其他自由軟件項(xiàng)目中也使用了 Git。

          3. Jenkins

          Jenkins是一個(gè)用Java編寫的開源自動(dòng)化服務(wù)器。它有助于自動(dòng)化軟件開發(fā),例如編譯項(xiàng)目,運(yùn)行單元測(cè)試,集成測(cè)試,生成文檔以及在本地和遠(yuǎn)程存儲(chǔ)庫(kù)上載工件。主要用于:

          ● 持續(xù)、自動(dòng)地構(gòu)建/測(cè)試軟件項(xiàng)目,如CruiseControl與DamageControl。

          ● 監(jiān)控一些定時(shí)執(zhí)行的任務(wù)。

          它是在項(xiàng)目中持續(xù)集成中最流行的工具之一。如果你還沒有開始使用Jenkins,那就從現(xiàn)在開始吧。

          4. Selenium

          Selenium是Web應(yīng)用程序最好的軟件測(cè)試框架之一。它提供了一種用于創(chuàng)作測(cè)試的回放工具,而無(wú)需學(xué)習(xí)測(cè)試腳本語(yǔ)言。Java開發(fā)人員可以使用Selenium來(lái)測(cè)試他們的HTML和JSP文件。

          它還為Web瀏覽器自動(dòng)化提供了各種工具和庫(kù)。Selenium 現(xiàn)在存在2個(gè)版本,一個(gè)叫 selenium-core, 一個(gè)叫selenium-rc 。

          5. Groovy

          Groovy 是一種基于 JVM 的敏捷開發(fā)語(yǔ)言,它結(jié)合了 Python、Ruby 和 Smalltalk 的許多強(qiáng)大的特性。你可以使用它編寫構(gòu)建腳本,測(cè)試腳本,甚至可以使用像Gradle和Spock這樣的流行框架。

          6、Spock

          Spock 是適合 Java 和 Groovy 應(yīng)用程序的一個(gè)測(cè)試框架。由于其JUnit運(yùn)行程序,Spock與大多數(shù)IDE,構(gòu)建工具和持續(xù)集成服務(wù)器兼容。如果你想提高你的單元測(cè)試技能,那么多花點(diǎn)時(shí)間在學(xué)習(xí)Spock上總是沒錯(cuò)的。

          7. Maven

          如果你是一位經(jīng)驗(yàn)豐富的Java開發(fā)人員,那么你一定非常了解Maven了,Apache Maven是一個(gè)構(gòu)建和項(xiàng)目管理工具,基于項(xiàng)目對(duì)象模型(POM)的概念,Maven可用于管理項(xiàng)目的生成、報(bào)告和文檔記錄。

          Maven的另一個(gè)有用特性是依賴關(guān)系管理,由于我們?cè)贘ava項(xiàng)目中使用了大量第三方庫(kù),因此手動(dòng)管理每個(gè)JAR及其依賴項(xiàng)可能非常麻煩,Maven通過(guò)自動(dòng)為你下載正確的JAR來(lái)幫助你解決問(wèn)題

          8. Gradle

          Gradle 是一個(gè)基于 Apache Ant 和 Apache Maven 概念的項(xiàng)目自動(dòng)化構(gòu)建工具。它也是Android的默認(rèn)構(gòu)建工具。

          它引入了基于Groovy的特定于域的語(yǔ)言(DSL),而不是Apache Maven用于聲明項(xiàng)目配置的XML,這樣有利于配置項(xiàng)目依賴關(guān)系以及用戶的項(xiàng)目自定義

          為什么選擇Gradle在Ant或Maven?因?yàn)樗Y(jié)合了其他構(gòu)建工具的最佳特性,例如它具有Ant的靈活性和控制,Ivy的依賴管理,Maven的配置和插件的約定,以及可以在Ant上使用Groovy DSL。這使它成為Java項(xiàng)目的最佳構(gòu)建工具。

          9. Docker

          Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,也可以實(shí)現(xiàn)虛擬化。

          容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口(類似 iPhone 的 app)。幾乎沒有性能開銷,可以很容易地在機(jī)器和數(shù)據(jù)中心中運(yùn)行。最重要的是,他們不依賴于任何語(yǔ)言、框架或包裝系統(tǒng)。

          10. Linux

          初學(xué)Linux最好從Linux命令行基礎(chǔ)知識(shí)開始,Linux是一種自由和開放源碼的類Unix操作系統(tǒng),在你的職業(yè)生涯中起到重要的作用,每一個(gè)Java開發(fā)者都應(yīng)該學(xué)Linux。

          如果以上工具還有你沒學(xué)會(huì)的,那就不要再錯(cuò)過(guò)了趕緊學(xué)起來(lái)。


          主站蜘蛛池模板: 精品人无码一区二区三区| 国产成人一区二区三区| 国产一区二区三区影院| 色婷婷一区二区三区四区成人网| 国产波霸爆乳一区二区| 亚洲字幕AV一区二区三区四区 | 亚洲Av无码国产一区二区| 国产在线一区二区三区在线| 久久精品一区二区国产| 午夜视频在线观看一区二区| 农村人乱弄一区二区| 中文字幕日韩精品一区二区三区| 一区二区高清在线| 日韩精品一区二区三区老鸭窝| 一区二区三区在线视频播放| 99精品一区二区三区| 国模无码人体一区二区| 国产成人免费一区二区三区| 精品视频无码一区二区三区| 一级特黄性色生活片一区二区| 国产精品久久久久久麻豆一区| 中文字幕一区二区在线播放| 日韩美一区二区三区| 色婷婷亚洲一区二区三区| 无码一区二区三区爆白浆| 91久久精品无码一区二区毛片| 秋霞午夜一区二区| 久久久久无码国产精品一区| 午夜精品一区二区三区免费视频| 麻豆精品人妻一区二区三区蜜桃| 亚洲综合一区二区精品久久| 亚洲综合一区二区三区四区五区| 人妻免费一区二区三区最新| 女女同性一区二区三区四区| 国产区精品一区二区不卡中文| 国产情侣一区二区| 熟女精品视频一区二区三区| 一区二区三区波多野结衣| 色一情一乱一区二区三区啪啪高| 三上悠亚日韩精品一区在线 | 中文字幕在线播放一区|