之前一直用Eclipse,最近尝试使用IDEA,相较于 Eclipse 而言,IDEA强大的整合能力,比如: Git、 Maven、 Spring 等;提示功能的快速、 便捷;提示功能的范围广;好用的快捷键和代码模板;精准搜索等。实际使用下来,确实很方便。下面是我学习使用的视频教程。

视频教程:https://www.bilibili.com/video/BV1PW411X75p?p=19

Eclipse是IBM公司研发的。
1.IntelliJ IDEA的介绍和优势

IDEA是 JetBrains 公司的产品,公司旗下还有其它产品,比如:

  • WebStorm: 用于开发 JavaScript、 HTML5、 CSS3 等前端技术;
  • PyCharm:用于开发 python
  • Android Studio: 用于开发 android(google 基于 IDEA 社区版进行迭代)
  • ...

IDEA,全称 IntelliJ IDEA,是 Java 语言的集成开发环境, IDEA 在业界被公认为是最好的 Java 开发工具之一,尤其在智能代码助手、代码自动提示、重构、 J2EE支持、 Ant、 JUnit、 CVS 整合、代码审查、创新的 GUI 设计等方面的功能可以说是超常的。

IDEA 的主要优势

相较于 Eclipse 而言

  • 强大的整合能力。比如: Git、 Maven、 Spring 等
  • 提示功能的快速、 便捷
  • 提示功能的范围广
  • 好用的快捷键和代码模板
  • 精准搜索

IDEA 的下载地址:(官网)

2.版本介绍与安装前的准备

可不用系统JDK,IDEA自带JDK,但最好还是自己下一个。

3.IDEA的卸载

在控制面板下删除

4.IDEA的安装

从官网下载安装文件后,随着安装文件的安装向导安装即可

5.安装目录和设置目录结构的说明

安装目录

IntelliJ IDEA安装目录内容:

$ ls -X
bin/ #容器,执行文件和启动参数等
jre64/ #64 位java 运行环境
lib/ #idea 依赖的类库
license/ #各个插件许可
plugins/ #插件
redist/
product-info.json
build.txt
LICENSE.txt
NOTICE.txt

  


bin目录下重要文件

$ ls ./bin | grep 'idea'
idea.exe #32位IDEA启动文件
idea.exe.vmoptions #32位IDEA的VM配置文件
idea.properties #IDEA属性配置文件
idea64.exe #64位IDEA启动文件
idea64.exe.vmoptions #64位IDEA的VM配置文件

  


根据项目大小及开发机器的性能适度调整IDEA的VM配置参数,或多或少能提高IDEA的性能,从而提升开发效率。

idea64.exe.vmoptions内容一窥

-Xms128m #最小内存数
-Xmx750m #最大内存数
-XX:ReservedCodeCacheSize=240m #保留代码占用的内存容量
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow

  

设置目录

查看设置目录结构

目录路径为C:\Users\Administrator.USER-20180302VA\.IdeaIC2018.3

Administrator@USER-20180302VA MINGW64 ~/.IdeaIC2018.3
$ ls
config/ system/

  

这个设置目录有一个特性,就是你删除掉整个目录之后,重新启动 IDEA 会再自动帮你生成一个全新的默认配置,所以很多时候如果你把IDEA 配置改坏了,删掉该目录,IDEA都会还原到默认。

config目录是 IntelliJ IDEA 个性化化配置目录,或者说是整个 IDE 设置目录。

这个目录主要记录了: IDE 主要配置功能、自定义的代码模板、自定义的文件模板、自定义的快捷键、 Project 的 tasks 记录等等个性化的设置。

system目录是 IntelliJ IDEA 系统文件目录,是 IntelliJ IDEA 与开发项目一个桥梁目录,里面主要有:缓存、索引、容器文件输出等等

6.启动IDEA并执行HelloWorld

IntelliJ IDEA 没有类似 Eclipse 的工作空间的概念( Workspaces),最大单元就是Project。 这里可以把 Project 理解为 Eclipse 中的 Workspace。

JDK可使用系统上安装的或IDEA自带的。

创建File->New->Project创建一个普通Java项目。接下来按类似Eclipse套路容易创建一个HelloWorld类。

7.Module的使用

  1. Eclipse 中 workspace 相当于 IDEA 中的 Project
  2. Eclipse 中 Project 相当于 IDEA 中的 Module

从 Eclipse 转过来的人总是下意识地要在同一个窗口管理 n 个项目,这在IntelliJ IDEA 是无法做到的。 IntelliJ IDEA 提供的解决方案是打开多个项目实例,即打开多个项目窗口。 即: 一个 Project 打开一个 Window 窗口。

在 IntelliJ IDEA 中 Project 是最顶级的级别,次级别是 Module。 一个 Project可以有多个 Module。目前主流的大型项目都是分布式部署的, 结构都是类似这种多 Module 结构。

这类项目一般是这样划分的,比如: core Module、 web Module、 plugin Module、solr Module 等等,模块之间彼此可以相互依赖。通过这些 Module 的命名也可以看出,他们之间都是处于同一个项目业务下的模块,彼此之间是有不可分割的业务关系的。

相比较于多 Module 项目,小项目就无需搞得这么复杂。只有一个 Module 的结构 IntelliJ IDEA 也是支持的,并且 IntelliJ IDEA 创建项目的时候,默认就是单Module 的结构的。

创建Module:File->New->Module

Module要经过两次Delete才能在硬盘上真正的抹去

查看项目配置:File->Project Structure

8.IDEA的常用设置

File->Settings

  1. Appearance & Behavior:设置样式(暗黑模式)             给IDEA换壁纸:https://blog.csdn.net/llllllkkkkkooooo/article/details/108048015
  2. Editor,General:Change font size (Zoom) with Ctrl+Mouse Wheel.
  3. Editor,General:Show quick documentation on mouse move. Delay(ms): 500
  4. Editor,General,Auto Import:
    • Add unambiguous imports on the fly
    • Optimize imports on the fly
  5. Editor,General,Appearance:
    • Show line numbers
    • Show method separators 类的每个方法之间放条分割线
  6. Editor,General,Code Completion:
    • Case sensitive completion:IDEA 的代码提示和补充功能区分大小写,例如StringBu则会提示,而stringbu则不会提示(2018社区版没有这选项)
  7. Editor,General,Editor Tabs:
    • Show tabs in one row 在打开很多文件的时候, IntelliJ IDEA 默认是把所有打开的文件名 Tab 单行显示的。但是我个人现在的习惯是使用多行,多行效率比单行高,因为单行会隐藏超过界面部分 Tab,这样找文件不方便。
  8. Editor,Font 设置默认的字体、字体大小、字体行间距
  9. Editor,Color Scheme,Color Scheme Font 修改当前主题的字体、字体大小、字体行间距
  10. Editor,Color Scheme,Console Font 修改当前主题的控制台输出的字体及字体大小
  11. Editor,Color Scheme,Language Defaults 修改代码中注释的字体颜色
    • Doc Comment: 修改文档注释的字体颜色
    • Block comment: 修改多行注释的字体颜色
    • Line comment: 修改当行注释的字体颜色
  12. Editor,Code Style,Java,imports:设置超过指定 import 个数,改为*
  13. Editor,File and Code Templates,Includes:修改类头的文档注释信息
  14. Editor,File Encodings 设置项目文件编码(其实IDEA主窗口的右下部分可以设置当前源文件编码格式)
  15. Build,Execution,Deployment ,Compiler 设置自动编译(Eclipse默认自动编译的,而IDEA不是)
    • Build project automatically
    • Compile independent modules in parallel

File->Power Save Mode 省电模式

开启这种模式之后 IDEA 会关掉代码检查和代码提示等功能。所以一般也可认为这是一种阅读模式,如果你在开发过程中遇到突然代码文件不能进行检查和提示,可以来看看这里是否有开启该功能。


在代码展现区,右键点击源码文件标题tab

  • Split Vertically
  • Split Horizontally

设置代码水平或垂直显示。

这个没有Eclipse功能方便

9.快捷键的设置

File->Settings->Keymap

可以设置Eclipse风格的快捷键,但始终有些快捷键没有目标效果。

也可以对快捷键进行细粒度的修改


查看IDEA默认的Key Map : Help->Keymap Reference

10.模板及常用模板的演示

File->Settings

  • Editor – Live Templates 内容能改
  • Editor – General – Postfix Completion 内容不能改

例如:

  1. psvm : 可生成 main 方法
  2. sout : System.out.println() 快捷输出。类似的:
    • soutp=System.out.println("方法形参名 = " + 形参名);
    • soutv=System.out.println("变量名 = " + 变量);
    • soutm=System.out.println("当前类名.当前方法");
    • “abc”.sout => System.out.println("abc");
  3. fori : 可生成 for 循环
    • iter:可生成增强 for 循环
    • itar:可生成普通 for 循环
  4. list.for : 可生成集合 list 的 for 循环List<String> list = new ArrayList<String>();输入: list.for 即可输出for(String s:list){},又如:
    • list.fori 正序遍历
    • list.forr 倒序遍历
  5. ifn:可生成 if(xxx = null),类似的:
    • inn:可生成 if(xxx != null)
    • xxx.nn
    • xxx.null
  6. prsf:可生成 private static final
    • psf:可生成 public static final
    • psfi:可生成 public static final int
    • psfs:可生成 public static final String

11.修改及自定义模板

File->Settings

  • Editor – Live Templates 内容能改
  1. Abbreviation:模板的缩略名称
  2. Description:模板的描述
  3. Template text:模板的代码片段

12.IDEA中添加Tomcat镜像并部署web工程

IDEA旗舰版自带该功能

社区版的,可使用maven的Tomcat插件,IntelliJ IDEA社区版通过Maven创建J2EE项目

13.关联数据库

IDEA旗舰版自带该Database功能,

社区版的,可下载插件Database Navigator实现类似功能

注意,IDEA 2018.3 应下载 Database Navigator 3.2.0589.0。下载较新版本插件安装后重启,不能正常使用。

IDEA 的 Database 最大特性就是对于 Java Web 项目来讲,常使用的 ORM 框架,如 Hibernate、 Mybatis有很好的支持,比如配置好了 Database 之后,IDEA 会自动识别 domain对象与数据表的关系,也可以通过 Database 的数据表直接生成 domain 对象等等。

14.版本控制在IDEA中的配置和使用

File->Setting配置安装到系统的git的主目录,配置Github的账号密码。

菜单栏的VCS (version control system)包含版本控制相关功能:如checkout git/github(个人) 的项目

引入git/github项目:File->New->Project from Version Constrol

查看本地历史,无需git:右键点击目标文件、项目->Local History->Show History

15.IDEA中的断点调试

File->Settings搜寻Debugger(Build,Execution,Deployment)设置 Debug 连接方式,默认是 Socket。 Shared memory 是 Windows 特有的一个属性,一般在 Windows 系统下建议使用此设置, 内存占用相对较少。

常用断点调试快捷键跟Eclipse类似:

  • step over 进入下一步,如果当前行断点是一个方法,则不进入当前方法体内
  • step into 进入下一步,如果当前行断点是一个方法,则进入当前方法体内
  • force step into 进入下一步,如果当前行断点是一个方法,则进入当前方法体内
  • step out 跳出
  • resume program 恢复程序运行,但如果该断点下面代码还有断点则停在下一个断点上
  • stop 停止
  • mute breakpoints 点中,使得所有的断点失效
  • view breakpoints 查看所有断点

16.IDEA中Maven的配置与使用

Maven 是 Apache 提供的一款自动化构建工具,用于自动化构建和依赖管理。开发团队基本不用花多少时间就能自动完成工程的基础构建配置,因为 Maven 使用了一个标准的目录结构和一个默认的构建生命周期。在如下环节中, Maven可减轻开发者工作量。

  • 清理:表示在编译代码前将之前生成的内容删除
  • 编译:将源代码编译为字节码
  • 测试:运行单元测试用例程序
  • 报告:测试程序的结果
  • 打包:将 java 项目打成 jar 包;将 Web 项目打成 war 包
  • 安装:将 jar 或 war 生成到 Maven 仓库中
  • 部署:将 jar 或 war 从 Maven 仓库中部署到 Web 服务器上运行

File->Settings搜索Maven,配置安装到系统的Maven

File->Settings搜索Maven->Importing进行配置

  • Import Maven projects automatically:表示 IntelliJ IDEA 会实时监控项目的 pom.xml 文件,进行项目变动设置。
  • Automatically download:在 Maven 导入依赖包的时候是否自动下载源码和文档。默认是 没有勾选的, 也不建议勾选。
  • VM options for importer:可以设置导入的 VM 参数。

17.生成javadoc_清理缓存和索引_插件的下载等

  • 生成javadoc_清理缓存:Tools->Generate JavaDoc
  • 清理缓存或重启:File->Invalidate Caches / Restart
  • 取消更新:File->Settings搜寻Updates,取消自动Update
  • 管理插件:File->Settings搜寻Plugins,可CRUD插件。Marketplace失效,可登陆IDEA官方插件网,下载插件到本地再进行安装。

IntelliJ IDEA 学习笔记的更多相关文章

  1. intellIJ IDEA学习笔记2

    常用的有fori/sout/psvm+Tab即可生成循环.System.out.main方法等boilerplate样板代码 例如要输入for(User user : users)只需输入user.f ...

  2. intellIJ IDEA学习笔记

    如果你初次用idea,毫无目的的度娘如何使用IDEA     浪费的将会是大量的时间.为以表诚意, 上一套IDEA教学视频,以表我诚意.(下载地址:https://pan.baidu.com/s/1g ...

  3. intellIJ IDEA学习笔记3

    intellij idea 的快捷鍵 https://blog.csdn.net/wei83523408/article/details/60472168 https://www.cnblogs.co ...

  4. IntelliJ IDEA 学习笔记 - 修改编码

    感谢原文作者:codeke 原文链接:https://blog.csdn.net/cgl125167016/article/details/78666432 仓库:https://github.com ...

  5. Git学习笔记与IntelliJ IDEA整合

    Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:http://git-scm.com/downloads Git简要使用说明:h ...

  6. [转]Git学习笔记与IntelliJ IDEA整合

    Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:http://git-scm.com/downloads Git简要使用说明:h ...

  7. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  8. springmvc学习笔记---idea创建springmvc项目

    前言: 真的是很久没搞java的web服务开发了, 最近一次搞还是读研的时候, 想来感慨万千. 英雄没落, Eclipse的盟主地位隐隐然有被IntelliJ IDEA超越的趋势. Spring从2. ...

  9. Beego学习笔记——开始

    beego简介 beego是一个快速开发Go应用的http框架,他可以用来快速开发API.Web.后端服务等各种应用,是一个RESTFul的框架,主要设计灵感来源于tornado.sinatra.fl ...

随机推荐

  1. Java的图形打印

    1.菱形 复制代码 package Java_Learn.File; public class Main1 { public static void main(String[] args) { pri ...

  2. IDEA与Eclipse创建struts项目

    1.IDEA创建struts项目 这里再构建struts项目是选择jar包出问题了,可以重新配置 创建页面和action配置struts.xml 启动tomcat,浏览器中运行 具体参考: https ...

  3. 转 Cache一致性和内存模型

    卢本伟牛逼,写得很好 https://wudaijun.com/2019/04/cpu-cache-and-memory-model/ 本文主要谈谈CPU Cache的设计,内存屏障的原理和用法,最后 ...

  4. Golang调度器GMP原理与调度全分析(转 侵 删)

    该文章主要详细具体的介绍Goroutine调度器过程及原理,包括如下几个章节. 第一章 Golang调度器的由来 第二章 Goroutine调度器的GMP模型及设计思想 第三章 Goroutine调度 ...

  5. 目录方式扩展swap分区大小

    1.查看swap大小:free  -m  (-k|m|g) --以k|m|g为单位用去尾法显示大小  [root@lbg tmp]# free -m total        used        ...

  6. Markdown 常用语言关键字

    Markdown 语法高亮支持的语言还是比较多的,记下来备用. 语言名 关键字 Bash bash CoffeeScript coffeescript C++ cpp C# cs CSS css Di ...

  7. 利用HUtool读取Excel内容

    // 1.获取上传文件输入流 InputStream inputStream = null; try{ inputStream = file.getInputStream(); }catch (Exc ...

  8. loadrunner 生成随机参数 Radom相关

    我也是刚开始进入测试行业,不过比较幸运的我之前做过开发,所以对代码比较熟悉,对loadrunner没有进行过系统的学习,也是通过自己的摸索慢慢的积累知识. 今天遇到项目中要我做一个压力测试,其中一些参 ...

  9. Node.js 爬虫爬取电影信息

    Node.js 爬虫爬取电影信息 我的CSDN地址:https://blog.csdn.net/weixin_45580251/article/details/107669713 爬取的是1905电影 ...

  10. 网页中Office和pdf相关文件导出

    最近被派去维护和开发一些做了一半.年久失修的项目.有一部分内容是关于word文件导出,顺带着把excel.pdf文件的导出也调研下吧,我想未来开发我应该会遇到的,遂做了下笔记分享给需要的人. 由于项目 ...