1.前言
首先下載ideaIU-2019.3.4.win.zip包激活,打開如下:
2.修改IDEA為eclipse快捷鍵方式
菜單File-》Settings中搜索keymap,設置eclipse快捷鍵操作
設置快捷鍵為eclipse之後,就可以使用eclipse的快捷鍵在IDEA中操作了
3.設置默認sdk(jdk)
菜單 File-》Other Settings-》Structure for New Projects 選好jdk如下:
4.設置maven倉庫配置文件和地址
菜單File-》Settings中搜索maven,設置maven倉庫配置文件和地址
5.安裝常用插件
菜單File-》Settings中搜索plugins,並安裝插件Free Mybatis plugin(mybatis dao方法直接定位到xml方法),JRebel(代碼熱部署),Maven Helper(maven依賴支持和eclipse maven依賴類似的樹形結構),statistic(代碼量統計),效果如下:
JRebel效果:(點擊窗口左下角的窗口圖標選中JRebel菜單打開勾選需要熱加載的module)
Maven Helper效果:
statistic效果:(點擊窗口左下角的窗口圖標選中statistic菜單打開)
6.設置IDEA 優化JVM參數
菜單Help-》Edit Custom VM Options 設置JVM參數如下:
-Xms4096m-Xmx4096m-XX:MetaspaceSize=1024m -XX:MaxMetaspaceSize=1024m-Xss256k-XX:MaxDirectMemorySize=100m-XX:ReservedCodeCacheSize=240m-XX:+UseConcMarkSweepGC-XX:SoftRefLRUPolicyMSPerMB=50-ea-XX:CICompilerCount=2-Dsun.io.useCanonPrefixCache=false-Djava.net.preferIPv4Stack=true-Djdk.http.auth.tunneling.disabledSchemes=""-XX:+HeapDumpOnOutOfMemoryError-XX:-OmitStackTraceInFastThrow-Djdk.attach.allowAttachSelf=true-Dkotlinx.coroutines.debug=off-Djdk.module.illegalAccess.silent=true-javaagent:E:\soft\ideaIU-2019.3.4.win\bin\jetbrains-agent.jar
參數說明:
-Xms : 堆內存大小,第一個是最小堆內存
-Xmx : 最大堆內存比較合適的數值是2-4g,再大就得考慮GC時間;Server端JVM最好將-Xms和-Xmx設為相同值,開發測試機JVM可以保留默認值;
-XX:MetaspaceSize: 元空間初始值
-XX:MaxMetaspaceSize: 元空間最大值,JDK8的永生代幾乎可用完機器的所有內存,為了保護伺服器不會因為內存佔用過大無法連接,需要設置一個初始值,和最大值保護一下。
-Xss:在堆之外,線程佔用棧內存,默認每條線程為1M。存放方法調用出參入參的棧、局部變量、標量替換後的局部變量等,有人喜歡設小點節約內存開更多線程。但反正內存夠也就不必要設小,有人喜歡再設大點,特別是有JSON解析之類的遞歸調用時不能設太小。
-XX:MaxDirectMemorySize:堆外內存/直接內存的大小,默認為堆內存減去一個Survivor區的大小。-XX:ReservedCodeCacheSize:JIT編譯後二進位代碼的存放區,滿了之後就不再編譯。默認開多層編譯240M,可以在JMX裡看看CodeCache的大小。
-XX:+UseConcMarkSweepGC:啟用CMS垃圾收集器
-XX:SoftRefLRUPolicyMSPerMB: 這個參數比較有用的,官方解釋:Soft reference在虛擬機中比在客戶機中存活的更長一些。其清除頻率可以用命令行參數 -XX:SoftRefLRUPolicyMSPerMB=來控制,這可以指定每兆堆空閒空間的 soft reference 保持存活的毫秒數,這意味著每兆堆中的空閒空間中的 soft reference 會(在最後一個強引用被回收之後)存活1秒鐘。注意,這是一個近似的值,因為 soft reference 只會在垃圾回收時才會被清除,而垃圾回收並不總在發生。默認為50秒,大家可以調小點。
-ea[:<package name>"…" |:<class name> ]上述參數就用來設置jvm是否啟動斷言機制(從JDK 1.4開始支持),預設時jvm關閉斷言機制。用-ea 可打開斷言機制,不加和classname時運行所有包和類中的斷言,如果希望只運行某些包或類中的斷言,可將包名或類名加到-ea之後。例如要啟動包com.wombat.fruitbat中的斷言,可用命令java -ea:com.wombat.fruitbat…。
useCanonCaches:使用標準IO緩存優先使用IPv4棧
HeapDumpOnOutOfMemoryError:堆內存溢出輸出
OmitStackTraceInFastThrow:開啟追蹤
根據個人電腦配置可以調節jvm參數大小