Intellij IDEA 2017 详细图文教程之概述
天天编码 , 版权所有丨本文标题:Intellij IDEA 2017 详细图文教程之概述
转载请保留页面地址:http://www.tiantianbianma.com/intellij-idea-tutorial-overview.html/
我使用Eclipse已经3年之久,我很了解它,我为它编写过简单的插件并真心地喜爱它。从我开始学习Java编程语言,使用的第一个IDE就是Eclipse,我相信绝大数人也是如何。然后,一年前,我进入了一家中型的互联网公司(外资),并被强行要求使用IDEA开发,在经过短短地三个月后,我就意识到为什么IDEA更加敏锐。如今,我已经使用IDEA一年多,我极力地推荐大家使用Intellij IDEA ,提高开发效率并获得更高的工资。
简介
Intellij IDEA 是JetBrains公司研发的又一款伟大的IDE工具,主要面向广大的Java开发人员。为什么说是“又一款伟大的IDE工具”呢?,因为该公司已经生成过 PHPStorm、PyCharm、WebStorm等优秀的开发工具。JetBrains是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室。根据国内的使用习惯,在本教程中,我们将使用IDEA来作为Intellij IDEA的简称。对于IDEA,JetBrans公司提出的最新口号是:Capable and Ergomomic IDE for JVM ,翻译过来就是面向JVM、功能强大且符合人体工程学的IDE。面向JVM的是指该IED支持Java、Scale等运行于JVM之上的所有语言。
IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(git、svn、github等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。目前,该软件有两个主要的版本:免费的社区版和付费的旗舰版。免费版只支持Java等少数语言和基本的IDE特性;旗舰版还支持HTML,CSS,PHP,MySQL,Python等语言和更多的工具特性。

优点
主流
虽然IDEA的主要客户是基于JVM开发的人员,但是IDEA支持的语言/平台可以认为是无限的。IDEA像其他的伟大IDE一样,采用了基于插件的架构,为了使IDEA支持一些没有原生集成的语言/平台,只需实现或者查找对应的插件并按照到IDEA中即可。关于IDEA支持的主流语言和平台,我们做一个简单的总结:
| 语言/平台 | 框架 | 构建工具 | 应用容器 | 版本工具 | 其他工具 |
|---|---|---|---|---|---|
| Java、JavaScript | Spring、Spring Boot | Maven、Gradle | Tomcat、JBoss | Git、GitHub | 终端、数据库 GUI |
快捷
虽然IDEA不是唯一一个,也不是第一个支持快捷键的IDE工具,但是IDEA提供的快捷键可以使开发人员远离鼠标,实现沉浸式开发,极大地提高程序员的开发效率。实际的编程经历表明,开发人员经常需要在编辑窗口与工具窗口之间进行切换,为了快速切换并实现沉浸式开发,IEDA提供了在编辑窗口与工具窗口之间的空间键:
| Tool Window | Shortcut | Tool Window | Shortcut |
|---|---|---|---|
| Project | Alt+1 | Version Control | Alt+9 |
| Run | Alt+4 | Debug | Alt+5 |
| Editor | Escape | Terminal | Alt+F12 |
当然,为了加速和方便开发人员的编码速度,IDEA提供了非常多的编辑快捷键,当活动窗口是Editor窗口时,我们可以使用如下的快捷键来加速编码:
| Action | Shortcut | Action | Shortcut |
|---|---|---|---|
| 移动当前行的代码 | Ctrl+Shift+Up/Down | 复制当前行的代码 | Ctrl+D |
| 删除当前行的代码 | Ctrl+Y | 添加/移除当前行的代码注释 | Ctrl+/ |
作为简介,我们在此处只给出部分的快捷键,本教程的后续部分会提供完整的快捷键。
搜索
在实际的项目开发工程中,开发成员进行需要进行搜索特定的代码、文件、资源等。为此,IDEA提供了强大地功能支持,可以实现快速、准确和便利的检索。实际上,Intellij IDEA 引入了索引的概念,通过这个索引机制,开发人员可以快速地对整个项目进行准确地全文检索,这种检索的速度对比与其他的IDE,比如Eclipse等,是非常快速的。当然,项目的索引需要一个建立的过程,在IDEA首次创建或者导入一个项目时,都需要扫描项目的所有文件并建立其该项目的索引结构。所以,IntelliJ IDEA 在首次启动某个项目时,会需要一段比较长的初始化时间,具体表现就是IDEA在创建项目初期会卡住一小段时间。但是,个人认为这个创建索引过程是值得的,在后期的整个项目开发过程中很快就可以获得加倍返还。
高效
为了提升开发人员的效率,Intellij IDEA 除了提供了快速的搜索功能之外,还提供了各种各样高效的导航功能。实际的编程过程中,我们经常需要查看某个类的父类、子类、实现接口、测试类、定义语句、引用位置等,对于源文件,我们可能需要查询其包路径、目录层次结构等。所有的这些查找需要,不经可以通过搜索功能实现,利用IDEA自带的高效导航机制更加方便。
缺点
正如你所预料的那样,Intellij IDEA 在具备这么多强大功能和特性的同时,不可能做到非常轻量。IDEA 是一个比较消耗内存的工具,但是,实际性能并不会比Eclipse差太多。对于利用IDEA作为前端开发工具而言,建议电脑具有4G以上的内存;对于把IDEA作为后端开发工具而言,建议电脑具有8G以上的内存。如果很不幸,你所在公司配备的开发机的性能很低,个人建议你考虑换一家公司。

总结
本文简单地描述了Intellij IDEA工具的一些特点,而没有很深入地去比较IDEA与Eclipse的优缺点,是希望读者大胆尝试和有自己的判断。个人一点不成熟的小建议:如果你是一个正经的Java开发者,你希望利用更快更方便的工具帮你集中注意于解决问题而不是让你分心,推荐你学习本教程,熟练掌握 IDEA。这样就可以提高开发效率,早日升职加薪,当上总 … 。
Intellij IDEA 2017 详细图文教程之概述的更多相关文章
- IntelliJ IDEA 2017新工具
IntelliJ IDEA 2017 教程之概述 图文详解如何安装 Intellij IDEA 2017 深入剖析 IntelliJ IDEA 2017 的目录结构 图文详解如何配置 IntelliJ ...
- IntelliJ IDEA 2017 注册方法
本文使用破解方式注册. JetbrainsCrack-2.6.2.jar适用于ideaIU-2017.2.之前版本,若下载的版本较新破解文件可能无法使用,破解时一闪而退. 其中JetbrainsCra ...
- intellij idea 2017和Jprofiler 10的集成 报错问题
本来想用Jprofiler来分析一下自己写的Java项目,以提高代码执行效率和自己的编码能力.结果,官网和网上很多帖子都写了点出session->IDE integrations->选择i ...
- IntelliJ IDEA 2017.2.6 x64 配置 tomcat 启动 maven 项目
IntelliJ IDEA 2017.2.6 x64 配置 tomcat 启动 maven 项目 1.确认 IDEA 是否启用了 tomcat 插件 2.添加 tomcat 选择 tomcat 存放路 ...
- IntelliJ IDEA 2017.3.1安装步骤
https://www.jetbrains.com/idea/download/#section=windows 下载旗舰版 1.下载完成后,运行安装: 2.next: 3.选择你要安装的目录,nex ...
- Windows10 + IntelliJ IDEA 2017.3.2 + wamp2e + Yii + PHPunit 搭建测试环境
一.环境 系统: windows10 WampServer: wampserver2.2e-php5.3.13-httpd2.2.22-mysql5.5.24-32b.exe IDE: Intel ...
- Windows10 + IntelliJ IDEA 2017.3.2 + wamp2e + xdebug 调试 配置
一.环境 系统: windows10 WampServer: wampserver2.2e-php5.3.13-httpd2.2.22-mysql5.5.24-32b.exe IDE: Intel ...
- IntelliJ IDEA 2017 永久注册方法
https://blog.csdn.net/weixin_39913200/article/details/80859897 在安装的idea下面的bin目录下面有2个文件 : 一个是idea64.e ...
- Idea for Mac 过期 IntelliJ IDEA 2017 完美注册方法(附idea for Mac破解方法)
Idea 不能使用了: 开始破解: (1)首先下载 jar包: https://download.csdn.net/download/engerla/10573069 放到位置: /Applicati ...
随机推荐
- ionic2 跳转子页面隐藏底部导航栏
第一种方法: 在tab里面添加一个属性[tabsHideOnSubPages]='true' <ion-tab [root]="tab1Root" [tabsHideOnSu ...
- scrapy代理的设置
scrapy代理的设置 在我的上一篇文章介绍了scrapy下载器中间件的使用,这里的scrapyIP的代理就是用这个原理实现的,重写了下载器中间件的process_request(self,reque ...
- “前”方有坑,绕道而行(一)-- H5+CSS
1. 关于 数字.英文 不换行问题: 情景:昨天测试 小程序,输入英文,没有换行,且 下方有横向滚动条: 解决:word-break: word-break:break-all; /*只对英文起作用 ...
- drozer使用
1.启用adb 端口转发 adb forward tcp:314154 tcp:31415 2.启用drozer 3.链接drozer drozer console connect 4:如果没 ...
- SQL SERVER 使用BULK Insert将txt文件中的数据批量插入表中(1)
1/首先建立数据表 CREATE TABLE BasicMsg( RecvTime FLOAT NOT NULL , --接收时间,不存在时间相同的数据 AA INT NOT NULL, --24位地 ...
- XAML: 获取元素的位置
在之前讨论 ListView 滚动相关需求的文章中(UWP: ListView 中与滚动有关的两个需求的实现)曾经提到了获取元素相对位置的方法,即某元素相对另一元素的位置.现将所有相关方法再作整理,并 ...
- 并归排序 (Java版本,时间复杂度为O(n))
自己上网查了一下并归排序的定义,把两个排序好的数组重新组成一个排序好的数组就是并归排序, 实现的方式有和多种,自己思考了一下,用java实现了一版本,思路如下,既然是排序好的,只需要依次比较两个数组, ...
- 【2017-06-27】Js中获取地址栏参数、Js中字符串截取
一.Js中获取地址栏参数 //从地址栏获取想要的参数 function GetQueryString(name) { var reg = new RegExp("(^|&)" ...
- JS面向对象一
面向对象分为三大类 封装,继承,多态! 封装就是在一个函数方法中嵌套另外一个函数方法,外层函数方法返回内层函数方法里面的结果,其中内层函数要调用外层函数定义的局部变量 每个函数方法就是一个局部作用域, ...
- 【LeetCode】232. Implement Queue using Stacks
题目: Implement the following operations of a queue using stacks. push(x) -- Push element x to the bac ...