IDEA入门级使用教程
原文链接:https://blog.csdn.net/qq_31655965/article/details/52788374
最智能的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
JetBrains旗下的所有ide对于学生来说都是可以免费使用的,点击下面的链接,使用edu邮箱注册一个账号,审核通过后就可以使用正版的JerBrains工具了。
https://www.jetbrains.com/student/
- 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优雅级使用教程!!
参考资料:
http://lavasoft.blog.51cto.com/62575/97730/
http://www.phperz.com/article/15/0923/159043.html
IDEA入门级使用教程的更多相关文章
- XCube和X组件的入门级使用教程
我也是一个入门级的初学者,在学习魔方的时候,很多不是很懂的地方,而网上的资料又比较少.尤其是Newlife的论坛打不开的情况下 所以就想着把这个初级项目做完后,做一个入门级教程.保证人人都看得懂(.^ ...
- IDEA入门级使用教程----你怎么还在用eclipse?
http://blog.csdn.net/qq_31655965/article/details/52788374
- svm 简单明了的入门级使用教程(转载)
如何使用libsvm进行分类 这帖子就是初步教教刚接触libsvm(svm)的同学如何利用libsvm进行分类预测,关于参数寻优的问题在这里姑且不谈,另有帖子详述. 其实使用libsvm进行分类很 ...
- Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求
上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...
- Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数
上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...
- Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数
上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...
- Angular2入门系列教程4-服务
上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...
- ASP.NET Aries 入门开发教程7:DataGrid的行操作(主键操作区)
前言: 抓紧勤奋,再接再励,预计共10篇来结束这个系列. 上一篇介绍:ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑 本篇介绍主键操作区相关内容. 1:什么时候有默认的 ...
- ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑
前言: 为了赶进度,周末也写文了! 前几篇讲完查询框和工具栏,这节讲表格数据相关的操作. 先看一下列表: 接下来我们有很多事情可以做. 1:格式化 - 键值的翻译 对于“启用”列,已经配置了格式化 # ...
随机推荐
- local_response_normalization 和 batch_normalization
Normalization Normalization local_response_normalization local_response_normalization出现在论文”ImageNe ...
- 初识Java,Java语言概述
Java语言是SUN(斯坦福大学网络公司)公司1995年推出的一门高级编程语言,由此James Gosling被公认为Java语言之父.Java语言起初运用在小型的家用电子产品上,后来随着互联网的发展 ...
- 83.个人信息维护页面 Extjs 页面
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" ...
- codevs2800送外卖(floyd+状压dp)
2800 送外卖 时间限制: 2 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题目描述 Description 有一个送外卖的,他手上有n份订单,他要把n份东 ...
- C/C++中的位运算符
--------开始-------- 我自己都记不住这是第几次把这几个位运算符搞混了,刚好在刚用过来把这几个位运算符记下来,俗话说的好好记性不如个烂笔头. 运算符: 与 或 ...
- 汇编程序18:利用and和or指令变换大小写
assume cs:code,ds:data //and指令使某位变0,or指令使某位变1 data segment db 'BaSic','iNfOrMaTiOn' //db指令:定义字节数据,与d ...
- python重定向原理及实例
1. 前言 为了在Python编程中, 利用控制台信息, 我们需要对控制台输出进行接管(重定向).在Python中,控制台输出的接口是sys.stdout,通过分析print与sys.stdout之间 ...
- 12.0&12.1 Xcode开发包
12.1开发包下载链接 12.0开发包下载链接 12.1(16B91)开发包下载链接 Finder打开后,按command+shift+G前往这个地址: /Applications/Xcode.app ...
- MEF编程模型
Contract由Contract name和Contract type组成,Contract两个参数可以省略可以implicit也可以explicit,implicit时name和type会自动推断 ...
- mysqlslap对mysql进行压力测试
mysqlslap是从5.1.4版开始的一个MySQL官方提供的压力测试工具.通过模拟多个并发客户端访问MySQL来执行压力测试,并且能很好的对比多个存储引擎在相同环境下的并发压力性能差别. mysq ...