IntelliJ Idea 使用

2 篇文章 0 订阅

IntelliJ Idea 使用

参考:
史上最简单的 IntelliJ IDEA 教程目录

下载

官网 下载 Ultimate 版,河蟹使用。

旗舰版 Ultimate 收费,社区版 Community 免费,当然功能也不尽相同。

注册码
适用 IntelliJ Idea 2017.3:http://idea.lanyus.com/
1、terminal 终端输入:sudo vi /private/etc/hosts,添加 0.0.0.0 account.jetbrains.com 并保存。
2、点击获取注册码,激活。
详述 hosts 文件的作用及修改 hosts 文件的方法
若还是不行,还可以 使用破解补丁进行激活

汉化
参考
汉化后初步发现两个小问题:
1、Project 界面:缺失 Scroll from Source 图标(从右侧文件聚集到左侧文件路径及文件名)、Collapse All图标(文件全部折叠)。
2、Structure 界面:无法显示对应的方法列表,只显示一片空白;
暂时发现两个后,觉得不好使,就又切回了英文。


内存调整

使用Java IDE工具时,可能会用到推内存设置等。

-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
-vmargs 说明后面是VM的参数,所以后面的其实都是JVM的参数了
-Xms128m JVM初始分配的堆内存
-Xmx512m JVM最大允许分配的堆内存,按需分配
-XX:PermSize=64M JVM初始分配的非堆内存
-XX:MaxPermSize=128M JVM最大允许分配的非堆内存,按需分配

JVM内存管理机制

堆(Heap)和非堆(Non-heap)内存

官方说法:Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。在JVM中堆之外的内存称为非堆内存(Non-heap memory)。

JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码涉及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的,所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码都在非堆内存中。

堆内存分配

JVM初始分配的堆内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的堆内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx 相等以避免在每次GC 后调整堆的大小。
说明
如果-Xmx 不指定或者指定偏小,应用可能会导致java.lang.OutOfMemory错误,此错误来自JVM,不是Throwable的,无法用try…catch捕捉。

非堆内存分配

JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。
说明
XX:MaxPermSize设置过小会导致java.lang.OutOfMemoryError: PermGen space 就是内存溢出。
内存溢出原因:PermGen space的全称是Permanent Generation space,是指内存的永久保存区域。属于非堆内存
1、这一部分内存用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和存放Instance的Heap区域不同。
2、GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用会load很多class的话,就很可能出现PermGen space错误。

JDK设置

1、File——Project Structure——Project,设置Project SDK、设置Project language level
2、File——Setting——Java Compiler,设置Project bytecode version,设置Target bytecode version
3、设置maven编译时使用的jdk版本:pom.xml里设置jdk编码

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.1</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                        <encoding>UTF-8</encoding>
                        <compilerArguments>
                            <extdirs>src/main/webapp/WEB-INF/lib</extdirs>
                        </compilerArguments>
                    </configuration>
                </plugin>

快捷键

参考
IntelliJ IDEA15 简要使用手册
史上最简单的 IntelliJ IDEA 教程

环境设置

  • 类Eclipse设置 File——Settings——Keymap——Keymaps选Eclipse
  • 分屏设置 File——Settings——Keymap——搜索Split
    Split Vertically 水平分屏
    Split Horizontally 垂直分屏
  • 代码提示功能
    默认情况下,我们输入代码时IDEA会自动弹出代码提示框,这时候是不用按快捷键的。但如果想主动使用代码提示时,默认的快捷键是CTRL+空格,但是中文系统这个快捷键为切换输入法,我们应该调整一下这个快捷键的功能。
    File——Settings——Keymap——Main menu——Code——Completion ,将 Cyclic Expand Word的快捷键“Alt+斜杠”删除,将 Basic(决定代码智能提示的按键) 改为“Alt+斜杠”。
  • 自动导包
    File——Settings——Edit——General——Auto Import,勾选下面两项:
    Add unambiguous imports on the fly:Idea在我们书写时,自动导入所需包(但包有同名时还得 Alt+Enter 导入);
    Optimize imports on the fly:Idea 在我们书写时,自动组织包(如删除无用包);
  • 查看properties文件
    File——Settings——Editor——File Encodings,在 properties设置区域,勾选上Transparent native-to-ascii conversion

  • 解决从GitHub上下载文件慢的问题
    打开dns查询工具网站 http://tool.chinaz.com/dns
    选取一个TTL值最小的ip,直接绑定到 C:\Windows\System32\drivers\etc\hosts 文件,然后刷新DNS缓存:ipconfig /flushdns

  • 自动 import 包
    File——Settings→Editor→General→Auto Import,勾选如下两项:

    Add unambiguous imports on the fly:快速添加明确的导入。
    Optimize imports on the fly:快速优化导入,优化的意思即自动帮助删除无用的导入。

  • language level
    限定项目编译检查时最低要求的 JDK 特性。参考language level 介绍

智能提示

  • main方法:psv + 按Tab
  • System.out.println();:sout + 按Tab
  • get、set、toString …:Alt + Insert
    编辑框中右击——选择generator——选择对应项。
  • try…catch…:选定代码块后,Ctrl + Alt + T
  • if…:选定代码块后,Ctrl + Alt + T
    条件.if + Tab
  • for循环(参考
// it 是 Iterator 缩写,

// itli 遍历 List
for (int i = 0; i < list.size(); i++) {
}

// iter 使用增强型 for 循环:Iterator 
for (String arg : args) {
}

// itar 遍历数组 Array
for (int i = 0; i < args.length; i++) {
}

// itco 遍历集合 Collection
for (Iterator iterator = collection.iterator(); iterator.hasNext(); ) {
}

// iten 遍历枚举 Enum
// ittok 生成String token遍历
// itve 生成Vector数组迭代
// itaws 生成Axis2 web service调用
// itws 生成 Axis web service调用

快捷键

  • 加粗 Ctrl + B
  • 斜体 Ctrl + I

插件

安装步骤:File——Settings——Plugins,使用页面下三个按钮操作:Install JetBrains plugin…、Browser Repositories…、Install plugin from disk… 。

常用插件推荐

插件名称 插件介绍 官网地址
Alibaba Java Coding Guidelines 阿里巴巴代码规范检查插件 https://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines
Key promoter 快捷键提示插件 https://plugins.jetbrains.com/plugin/4455?pr=idea
Grep Console 自定义控制台输出格式插件 https://plugins.jetbrains.com/idea/plugin/7125-grep-console
CheckStyle-IDEA 代码规范检查插件 https://plugins.jetbrains.com/plugin/1065?pr=idea
FindBugs-IDEA 潜在 Bug 检查 https://plugins.jetbrains.com/plugin/3847?pr=idea
MetricsReloaded 代码复杂度检查 https://plugins.jetbrains.com/plugin/93?pr=idea
Statistic 代码统计插件 https://plugins.jetbrains.com/plugin/4509?pr=idea
JRebel Plugin 热部署插件 https://plugins.jetbrains.com/plugin/?id=4441
CodeGlance 显示代码地图插件 https://plugins.jetbrains.com/plugin/7275?pr=idea
Markdown Navigator Markdown 编辑器插件 https://plugins.jetbrains.com/plugin/7896?pr=idea
Eclipse Code Formatter Eclipse 代码风格格式化插件 https://plugins.jetbrains.com/plugin/6546?pr=idea
Jindent-Source Code Formatter 自定义模板插件 http://plugins.jetbrains.com/plugin/2170?pr=idea
Maven Helper Maven 辅助插件 https://plugins.jetbrains.com/plugin/7179-maven-helper
Properties to YAML Converter Properties 转 YAML 格式插件 https://plugins.jetbrains.com/plugin/8000-properties-to-yaml-converter
Git Flow Integration Git Flow 集成插件 https://plugins.jetbrains.com/plugin/7315-git-flow-integration

.ignore

  1. 安装
    建议从.ignore下载,Install plugin from disk,重启Idea。
    听说直接从Browser Repositories…里安装重启会影响Idea的启动(个人尝试时提示无法从相应网址上下载,但 https://plugins.jetbrains.com 从网页是可以访问的,但访问很慢–后续,回家后可以直接下载Alibaba Java Coding Guidelines插件,且下载很快)。

  2. 使用
    使用该插件前用 git status 查看会有 target 等相应文件夹或文件没有添加进 Git ,使用该插件后再用该命令会看到此忽略的文件夹或文件不是再提示添加 Git 维护了。
    方式一:项目上右键->New ->.ignore file ->.gitignore file(Git) ,先选择Example user template好了,以后有什么想过滤的可以自行添加,~最后点击Generate生成。
    方式二:项目里找到需要忽略的文件或文件夹,右键——Add to .gitignore file

当忽略的文件变成灰色的时候就表示配置成功。

下面是一些.gitignore文件忽略的匹配规则:

*.a       # 忽略所有 .a 结尾的文件
!lib.a    # 但 lib.a 除外
/TODO     # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/    # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:

输入: 
git rm -r –cached filePath 
git commit -m “remove xx” 
或者: 
git rm -r –cached . 
git add . 
git commit -m “update .gitignore”

来解释下几个参数 -r 是删除文件夹及其子目录 –cached 是删除暂存区里的文件而不删除工作区里的文件,第一种是删除某个文件,第二种方法就把所有暂存区里的文件删了,再加一遍,相当于更新了一遍。

阿里编码规约

该插件由阿里巴巴p3c项目组研发,主要用来规范编码,寻找风险代码。
阿里介绍文章
代码已开源,可在 GitHub 下载。

  1. 安装
    File - Settings - Plugins - Browse repositories - 找 Alibaba Java Coding Guidelines - Install - 重启Idea
  2. 使用
    整个工程:Tools - 阿里编码规约
    单个文件或文件夹:右击 - 编码规约扫描

扫描代码后,将不符合规约的代码按 Blocker/Critical/Major三个等级显示在下方(分别表示:崩溃/严重/重要,具体定义可以看上文讲到的“代码规范要求文档”),双击可以定位至代码处,右侧窗口还有针对代码的批量修复功能。

JUnit

  • 安装
    File - Settings - Plugins - Browse repositories - 安装 JUnit 和 JUnitGenerator V2.0 - 重启Idea

    File——Settings——Other Settings
    Default Template:改为JUnit 4。
    可以设置生成模式:Output Path: ${SOURCEPATH}/[target directory]/${PACKAGE--你待测试类的包名}/${FILENAME}
    可以修改模板:Junit4

#if( $entry.packageName.length()>0)package test.$entry.packageName; #end
  • 使用
    需要生成测试用例的类,鼠标右键——Go go——Test

热部署

JRebel

JRebel 简单来说,是一个支持热部署的工具,使用它可以使我们更快的看到代码的改变作用,而不用再去重启我们的项目。
Jrebel 支持的 IDE 比较全,我们经常使用的基本上都支持到了,比如 Eclipse, IntelliJ idea, NetBeans, STS, RAD, MyEclipse,在idea中,我将它作为插件来让tomcat支持热部署。

Jrebel是一个收费的插件,官网提供30天免费试用。

参考 Jrebel 热部署 最新版破解 !!监听端口实现 免费! JRebel 7.1.5可行,但 JRebel 2018.1.0 亲测还不行,不过已经很好了。
参考 Idea2016配置并破解jrebel 6.4.3(备用)

Jetty

Jetty 可以和 JRebel 配合使用。
当然 Jetty 本身就支持热部署(如下配置实现热部署),但是idea无法进行自动编译,所以需要如下快捷键:

  • Ctrl + Shift + F9,编译单个类
  • Ctrl + F9,编译工程
<!-- jetty插件 -->
<plugin>
  <groupId>org.mortbay.jetty</groupId>
  <artifactId>maven-jetty-plugin</artifactId>
  <version>6.1.5</version>
  <configuration>
    <scanIntervalSeconds>2</scanIntervalSeconds><!-- 多少秒进行一次热部署 -->
    <connectors>
      <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
        <port>8099</port>
      </connector>
    </connectors>

    <contextPath>/lalalala</contextPath>
  </configuration>
</plugin>

当修改单个 java 文件时,重新编译下这个单文件(Ctrl + Shift + F9),刷新页面就可以看到实时效果了。

参考 IDEA热部署(三)—jetty插件调试(转)
参考 在idea使用jetty

Tomcat

Tomcat 本身就支持热部署。当然也可以和 JRebel 配合使用。

参考 IntelliJ的tomcat 设置热部署
参考 idea配置tomcat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值