最智能的IDE

IDEA相对于eclipse来说最大的优点就是它比eclipse聪明。聪明到什么程度呢?我们先来看几个简单的例子。

智能提示重构代码

如果你写的代码过于复杂,或者有更好的方式来替代你写的代码,那么IDEA会给你一个提示,告诉你还可以有更好的方式。如下图:

这个是说你使用了没有必要的装箱操作(什么是装箱和拆箱可以自行百度,也可以看我之前写的文章),对比两句add操作可以看出来,IDEA在帮我们优化代码。

第二个例子:

我们学Java的时候学过增强的for循环,其实它的学名叫做foreach语句,上面的代码我使用了普通的for循环,IDEA告诉我,使用foreach语句更好。

更友好的代码提示功能

使用eclipse的都应该清楚,如果你想要输入StringBuffer,那么你必须得按着顺序输入,直接输sb是不行的,但是在IDEA里你可以这样输入。

不仅如此,看下一个例子

还可以这样提示。

这些只是一些很简单的例子,但是已经足够强大了。

什么叫智能?

上面的其实都是很基础的功能,IDEA正真智能的 地方在于它会不断的分析你的代码,并且智能的进行反馈。我们 再看一个简单的例子。

这是一个普通的structs程序。在配置文件里定义了一个action并设置了两种不同的返回值。打开我们的action,我们可以看到,你可以直接从代码的左侧找到跳转到对应配置文件的快捷按钮。如果你的某一个方法是覆盖了父类方法,那么你也可以直接查看父类方法。更人性化的是,IDEA可以分析出你的action方法可以跳转到哪些界面?你是不是也有点心动了呢?

强大的纠错能力

我们总是会犯一些低级错误,比如一不留神打错一个字母,可能找了好久都找不到错误所在,IDEA的纠错能力也许可以帮到你,再看一个例子。

我们只创建了两个jsp,当你的返回值中出现了你没创建的文件时,IDEA会提示错误,这样就可以避免你因为写错单词而造成的错误。

IDEA的强大之处还有很多,我没办法在一篇文章里全部讲出来,如果你对IDEA产生了一点兴趣,那么请往下看,我们从最基础的环节学起。

当然,在这之前,我们要做的是安装IDEA。

IDEA官方下载地址:

https://www.jetbrains.com/idea/
  • 1
  • 1

JetBrains旗下的所有ide对于学生来说都是可以免费使用的,点击下面的链接,使用edu邮箱注册一个账号,审核通过后就可以使用正版的JerBrains工具了。

https://www.jetbrains.com/student/
  • 1
  • 1

如果你没有edu邮箱,那么请支持正版。

具体的安装过程我就不细说了,正常人都知道。

IDEA的基础配置

下载好IDEA,免不了一些配置和个人设置。一些设置问题和操作我放在最后讲,因为不影响我们的 使用。先说一下jdk和tomcat的配置。

jdk的配置。

在首页点击configure,找到project structure,打开。进入project目录,添加sdk,选择添加jdk,选择你安装jdk的目录即可。

tomcat的配置。

我们在下面的项目中进行tomcat的配置。

IDEA创建一个structs项目

接下来我们正式创建一个structs项目。

1)点击Create New Project。

在下载structsjar包的过程中,可能会失败,属于正常情况,多试几次就好了。。也可以使用自己的jar包。我第一次下载完之后就把下载好的jar包保存起来了,方便下次直接使用(其实IDEA会自动帮你保存的,成功一次后第二次再下载会非常快的)。

2)接下来起个名字,选择路径,点击finish就可以了。

3)将jar包添加到相应路径。在项目名上右键-> Open Module Settings ->Artifacts

在structs的jar包上右键,选择put into /WEB-INF/lib

点击ok即可。

4)对tomcat进行配置

创建tomcat服务

配置相关信息

如果没有配置过tomcat,在这里配置一下就好

这样就可以运行了,点击右上角的绿三角。系统会启动,并且自动打开浏览器访问默认地址(刚刚配置过的,如果默认不变的话,会进入index界面)。接下来就可以愉快的写代码了。

IDEA与eclipse有一个非常大的区别就是没有workspace这个概念,对于IDEA来说,project就是eclipse里的workspace,而IDEA里的Module才是eclipse里的project。刚刚从eclipse转到IDEA的人可能会不习惯。但是没关系,你也可以不创建module,就在project里写也可以。想要深入了解module以及多module编程的可以自己百度,我就不细说了。

IDEA的个人配置与常用操作

IDEA的个人配置

修改代码编辑器

新版的IDEA默认使用vim编辑器(Linux下的一个工具),虽然熟练掌握后可以提高工作效率,但是学习成本很大,不习惯的可以选择关闭。

修改主题及字号

这个完全看个人喜好了。

设置代码提示不区分大小写

区分大小写的情况是这样的:比如我们在 Java 代码文件中输入 stringBuffer IntelliJ IDEA 是不会帮我们提示或是代码补充的,但是如果我们输入 StringBuffer 就可以进行代码提示和补充,这样是很不方便的。

设置代码检查等级

这个在界面的右下角,一个老头图标(打开代码文件才能看到)。那个可以拖动的控件就是设置代码检查等级的。

  • Inspections 为最高等级检查,可以检查单词拼写,语法错误,变量使用,方法之间调用等。
  • Syntax 可以检查单词拼写,简单语法错误。
  • None 不设置检查。

设置自动导包

如上图标注 1 和 2 所示,默认 IntelliJ IDEA 是没有开启自动 import 包的功能。

  • 勾选标注 1 选项,IntelliJ IDEA 将在我们书写代码的时候自动帮我们优化导入的包,比如自动去掉一些没有用到的包。
  • 勾选标注 2 选项,IntelliJ IDEA 将在我们书写代码的时候自动帮我们导入需要用到的包。但是对于那些同名的包,还是需要手动Alt + Enter 进行导入的,IntelliJ IDEA 目前还无法智能到替我们做判断。

省电模式

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

切分窗口

IDEA 支持对代码进行垂直或是水平分组。一般在对大文件进行修改的时候,有些修改内容在文件上面,有些内容在文件下面,如果来回操作可能效率会很低,用此方法就可以好很多。当然了,前提是自己的浏览器分辨率要足够高。

拼写检查

IDEA 默认是开启单词拼写检查的,有些人可能有强迫症不喜欢看到单词下面有波浪线,就可以去掉该勾选。但是我个人建议这个还是不要关闭,因为拼写检查是一个很好的功能,当大家的命名都是标准话的时候,这可以在不时方便地帮我们找到代码因为拼写错误引起的 Bug。

Tab菜单多行显示

在打开很多文件的时候,IntelliJ IDEA 默认是把所有打开的文件名 Tab 单行显示的。但是我个人现在的习惯是使用多行,多行效率比单行高,因为单行会隐藏超过界面部分 Tab,这样找文件不方便。

打开IDEA设置

勾选此选项后,启动 IntelliJ IDEA 的时候,默认会打开上次使用的项目。如果你只有一个项目的话,该功能还是很好用的,但是如果你有多个项目的话,建议还是关闭,这样启动 IntelliJ IDEA 的时候可以选择最近打开的某个项目。

下面的选项是设置当我们已经打开一个项目窗口的时候,再打开一个项目窗口的时候是选择怎样的打开方式。

  • Open project in new window 每次都使用新窗口打开。
  • Open project in the same window 每次都替换当前已打开的项目,这样桌面上就只有一个项目窗口。
  • Confirm window to open project in 每次都弹出提示窗口,让我们选择用新窗口打开或是替换当前项目窗口。

调整代码字体大小

可以勾选此设置后,增加 Ctrl + 鼠标滚轮 快捷键来控制代码字体大小显示。

IDEA的常用操作(快捷键)

Alt+回车 导入包,自动修正 
Ctrl+N 查找类 
Ctrl+Shift+N 查找文件 
Ctrl+Alt+L 格式化代码 
Ctrl+Alt+O 优化导入的类和包 
Alt+Insert 生成代码(如get,set方法,构造函数等) 
Ctrl+E或者Alt+Shift+C 最近更改的代码 
Ctrl+R 替换文本 
Ctrl+F 查找文本 
Ctrl+Shift+Space 自动补全代码 
Ctrl+空格 代码提示 
Ctrl+Alt+Space 类名或接口名提示 
Ctrl+P 方法参数提示 
Ctrl+Shift+Alt+N 查找类中的方法或变量 
Alt+Shift+C 对比最近修改的代码

Shift+F6 重构-重命名 
Ctrl+X 删除行 
Ctrl+D 复制行 
Ctrl+/ 或 Ctrl+Shift+/ 注释(// 或者// ) 
Ctrl+J 自动代码 
Ctrl+E 最近打开的文件 
Ctrl+H 显示类结构图 
Ctrl+Q 显示注释文档 
Alt+F1 查找代码所在位置 
Alt+1 快速打开或隐藏工程面板 
Ctrl+Alt+ left/right 返回至上次浏览的位置 
Alt+ left/right 切换代码视图 
Alt+ Up/Down 在方法间快速移动定位 
Ctrl+Shift+Up/Down 代码向上/下移动。 
F2 或Shift+F2 高亮错误或警告快速定位

代码标签输入完成后,按Tab,生成代码。 
选中文本,按Ctrl+Shift+F7 ,高亮显示所有该文本,按Esc高亮消失。 
Ctrl+W 选中代码,连续按会有其他效果 
选中文本,按Alt+F3 ,逐个往下查找相同文本,并高亮显示。 
Ctrl+Up/Down 光标跳转到第一行或最后一行下 
Ctrl+B 快速打开光标处的类或方法

IDEA已经集成了许多插件,包括前端神器emmet,基本够用,不是特别需要的话没有必要安装其他插件。emmet推荐大家学习一下,好用的不得了。

暂时先讲这些,以后有时间继续补充,饿了,要吃饭了。。。。

idea 使用教程的更多相关文章

  1. Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求

    上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...

  2. Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数

    上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...

  3. Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数

    上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...

  4. Angular2入门系列教程4-服务

    上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...

  5. Angular2入门系列教程1-使用Angular-cli搭建Angular2开发环境

    一直在学Angular2,百忙之中抽点时间来写个简单的教程. 2016年是前端飞速发展的一年,前端越来越形成了(web component)组件化的编程模式:以前Jquery通吃一切的田园时代一去不复 ...

  6. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  7. wepack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

  8. wepack+sass+vue 入门教程(一)

    一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...

  9. Virtual Box配置CentOS7网络(图文教程)

    之前很多次安装CentOS7虚拟机,每次配置网络在网上找教程,今天总结一下,全图文配置,方便以后查看. Virtual Box可选的网络接入方式包括: NAT 网络地址转换模式(NAT,Network ...

  10. webpack之傻瓜式教程

    接触webpack也有挺长一段时间了,公司的项目也是一直用着webpack在打包处理,但前几天在教新人的情况下,遇到了一个问题,那就是:尽管网上的webpack教程满天飞,但是却很难找到一个能让新人快 ...

随机推荐

  1. 夯实基础之--new关键字、instanceOf原理

    1.instanceOf原理  检测右边构造函数的prototype是否在左边对象的原型链上,在返回true,不在返回false 例:function  Persion(name,age){ this ...

  2. Python datetime.md

    datetime datetime模块包含了一些用于时间解析.格式化.计算的函数. Times 时间值由time类来表示, Times有小时, 分, 秒和微秒属性. 以及包含时区信息. 初始化time ...

  3. POJ3801 Crazy Circuits

    嘟嘟嘟 上下界网络流之最小流. 建图不说啦,裸的. 在有附加源\(S\)和附加汇\(T\)的图上跑完后,删除和\(S, T\)相连的边.然后因为可能流多了,所以现在应该退流,于是我们从\(t\)到\( ...

  4. 构造方法、 This关键字 、static、封装

    1.1 构造方法 构造方法是一种特殊的方法,专门用于构造/实例化对象,形式: [修饰符] 类名(){ } 构造方法根据是否有参数分为无参构造和有参构. 1.1.1 无参构造 无参构造方法就是构造方法没 ...

  5. SQL操作语句

    SQL语句与Mysql的语句大体上比较相似.以下是sql server的一套练习题,是很好的数据库操作语句学习资料,学校的学习资料,在此整理了以下. 数据库exam:这是一个模拟电子商务,网上直销的数 ...

  6. Centos6.4安装配置sendmail

    一.安装sendmail yum install -y sendmail yum install -y sendmail-cf 二. 安装salauthd //使用SMTP认证,需要安装saslaut ...

  7. mac开启Airdrop的硬件要求

    OS X 10.13之后,新的airdrop需要硬件支持,需要蓝牙4.0 以及Wi-Fi 5GHz 开启!!!! 对于 OS X 10.12 以下的旧系统.即使是有线网络也可以使用,通过以下命令开启有 ...

  8. 20155229《网络对抗技术》Exp2:后门原理与实践

    实验预习 后门: 指绕过安全控制而获取对程序或系统访问权的方法.最主要目的就是方便以后再次秘密进入或者控制系统. 木马与后门的区别: 木马:通过欺骗用户的方法(包含捆绑,利用网页等)让用户不知不觉的安 ...

  9. 20155334 《网络攻防》 Exp7 网络欺诈防范

    20155334 <网络攻防> Exp7 网络欺诈防范 一.基础问题回答 通常在什么场景下容易受到DNS spoof攻击 同一局域网下,以及各种公共网络. 在日常生活工作中如何防范以上两攻 ...

  10. Luogu P2341 [HAOI2006]受欢迎的牛

    这道题应该也是经典的SCC题了吧 印象中不知道在在班里上课的时候在紫书,ACM竞赛的那些书上看到多少次(有点奇怪) 首先思路很明显,就是要找出有多少个点,以它们为起点可以遍历整个图 首先考虑一种情况, ...