如果你初次用idea,毫无目的的度娘如何使用IDEA     浪费的将会是大量的时间。为以表诚意,

上一套IDEA教学视频,以表我诚意。(下载地址:https://pan.baidu.com/s/1gfeX3hD)

当你坚持用一周用IDEA后,你会真正的爱上它,哪怕前几天是痛苦的熬过来,到最后你也会真正的明白为什么我会让你选择它!!!且看下文!!

1 爱恨交加却难以割舍的Eclipse

这真的是一个非常艰难的决定,我在大学那会就开始用Eclipse,一转眼都10来年了,基本Eclipse中我可能会用到的快捷键我都是下意识的就能按出来。记得第一次使用的时候,惊讶的发现竟然有界面精美、功能强大、运行流畅于一身的IDE,感觉就是梦幻般的存在。特别是Eclipse(日蚀)和Sun这个名称的关系,想想都忍俊不禁。

几年前有朋友推荐试用过IntelliJ,第一反应就是常用的快捷键都找不到了,改成eclipse适配快捷键还有很多常用的不一样。最终没玩多久就放弃了。

但是Eclipse又是这么多年来一直让我爱恨交加的IDE,稍有些复杂的框架就会出现N多不兼容的情况,但最终促使我下决心去找个更好用的IDE就是有时候真的不知道为什么同样的配置方式在不同机器却不一定都会生效。我可不想每次为了同事配置机器耗费几十分钟,最终还只能是几率性成功。

其实,在一般常用的开发中,Eclipse真的还是最容易学习上手的。但是Eclipse的代码层面设计真心不够好,以至于新版本发布后与旧版本插件居然还可能有兼容性问题。如果你没有被Eclipse的问题所困扰,其实完全可以继续使用。除非你看了下文,想法有所改变...

2 让开发更高效的IntelliJ IDEA

在用了一个月之后,渐渐发现他的强大之处,而且所有机器的配置都用一个配置手册搞定了,无一例外。我终于可以只丢一个文档给新员工自己去操作了,省下来好多时间可以喝茶写博客。

2.1 更好的项目管理方式

2.1.1 project & modules

刚切换过来原本还挺困惑的,之前一直听说只能一次打开一个工程,而我这边工程都是分模块化的,需要10多个工程组合在一起才能正常工作。后来发现,这里的Project是类似于eclipse中的workspace,而Module是类似于eclipse中的project。这里可不仅仅是名称简单更改了一下,IntelliJ中的Project真的是一个工程,有统一的Global Library,也可以正确的相互依赖,把原来为了方便开发的模块整合到一起进行管理。AWESOME!

2.1.2 超级方便的GIT项目管理

如果上一条你还没理解,这里有个最直观的例子,就是这么多工程每个都是一个独立的Git project(因为不同工程会有不同权限),做完一个功能都会有N个需要提交的module。之前总是会出现忘记提交某个模块的事情,但是现在的更新和提交就是对这个project下的所有module。就冲这点,就不得不换它了,不知道省下多少时间。

2.2 告别总是与预期不一致的配置

2.2.1 不一样但更清晰的Settings目录

该是IDE配置的东西都在Settings这里能找到,工程的配置也在Project Settings里面。为数不多的目录分层很清晰,现在反而奇怪为什么Eclipse的配置目录看起来那么晕。

2.2.2 告别总是改不掉的tab

Eclipse中真的是用尽浑身解数,配置了N处把tab改成4 spaces,但是你会发现在总有地方还是不生效。但是IntelliJ会完全按照你配置的预期来,而且默认就是4 spaces,只有SQL默认是2个。

2.2.3 默认的深色主题

终于能把整个界面快速改成酷酷的深色了,但是我最后还是上网去下了个配色感觉更好看,兼容性也很好。Eclipse只能把写代码的那一个窗口变成深色,还经常有颜色显示的BUG。。。

2.3 更高的开发效率

2.3.1 代码的自动生成以及ZenCoding支持

其实这个Eclipse里面也有,但是确实没他智能。举个例子,就是它能生成某个类的测试类,还能正确的放到test相应的目录下。

另外,ZenCoding支持非常好,写html非常方便,tab就是快速补全,和原生集成的一样。

2.3.2 对JS、CSS以及插件更好的支持

Eclipse里面基本对这两个支持度差到无法直视,因为我Web写的少,所以忍到现在。其他同事都是用其他IDE去写Web,用eclipse启动一下web server。现在只用这一个就行了。

2.3.3 更好的调试

对于这点,只能说是碉堡了,甩了Eclipse几条街。

运行过的行,可以立刻在代码界面提示相关的值,也不用一个Debug界面跳来跳去,而且还能在IDE中调试JS,代码和界面的自动刷新同步等等。我到现在也不知道为什么在Eclipse中有时候改了代码,有时候会热部署,有时候就是直接重启server,还有时候不手动重启都不生效。。。

2.3.4 快捷键

有更多更好用的快捷键,也有很多好用的新功能,自己去翻翻~

3 IntelliJ的坑

这个IDE也不是啥都好,在最初一周的试用评估阶段,也是一堆坑趟过来的。不得不吐槽一下!

Maven的功能集成度一般:和eclipse的管理界面比差不少,特别是新增配置只能修改XML,查看依赖需要到另外一个界面。

烦人的多层目录:如果你使用Maven,就会发现居然在Project模式下,需要逐一打开src/main/java这三层目录才能看到java文件,为什么不能一起打开。如果用Package模式,你会发现除了在classpath中的文件,什么都看不到,包括你WebContent下的,还要再开一个Web视图。

超小的默认内存,内存溢出崩溃不提示:启动内存一样要和Eclipse那样修改配置文件,但是崩溃了就直接界面消失,找了一圈才发现自带的JRE下有个崩溃日志,发现内存居然不够,最后加到1.5G才能稳定运行。

社区版的功能太弱,商业版收费不低:除非你只写最基本的Java代码,涉及Web开发等真的没有商业版,这个IDE也不怎么好用。

git的push:我真心不知道为什么不放到alt+~的菜单或者右上角VCS控制中,藏那么深,只能用ctrl+shift+k去打开界面。

console多且分散:这个不是不好,它把不同的输出放到不用的Console中,非常清晰,但是刚开始使用,你会发现你不确定会输出到哪里,在哪里能看到。只能说学习成本高了一点。

Tool Buttons默认没打开:这个为什么不打开,虽然左下角有个图标可以点开,但是你确定第一次使用看不到这些Buttion,用户能找到相应的地方?!

作者:八戒程序猿
链接:https://www.jianshu.com/p/9d6e8e9a4556
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

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

  1. intellIJ IDEA学习笔记2

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

  2. IntelliJ IDEA 学习笔记

    之前一直用Eclipse,最近尝试使用IDEA,相较于 Eclipse 而言,IDEA强大的整合能力,比如: Git. Maven. Spring 等:提示功能的快速. 便捷:提示功能的范围广:好用的 ...

  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. C# 获取计算机相关信息

    整理了一个关于计算机相关系统的资料 需要引入命名空间: 1. 在'解决方案资源管理器' 窗口中->右击项目-> '添加' -> '引用' 弹出引用管理器 2. 在引用处理器中,程序集 ...

  2. 一、Java语言概述与开发环境、第一个java程序

    目录: 1.1 Java特点 1.2 Java程序运行机制 1.3 安装JDl和配置环境变量 1.4 第一个JAVA程序 1.5 第一个JAVA程序的含义 前言 Java语言历时近二十年,已发展成为人 ...

  3. ASP.NET Core系列(一): .NET Core简介及安装开发环境

    大家都知道Java是跨平台的,.NET因为不具有跨平台的特性,被越来越多的开发者诟病,之前有各种间接的跨平台的方案,比如mono.但是由于各种兼容问题,最终 .NET Core出现了,它可以让程序在W ...

  4. springboot定时任务之旅

    springboot定时任务 假设场景:单体应用的定时任务,假设我们已经有了一个搭建好的springboot应用,但是需要添加一个定时执行的部分(比如笔者遇到的是定时去请求一个接口数据来更新某个表), ...

  5. HashMap源码分析(二):看完彻底了解HashMap

    上文讲到HashMap的增加方法,现在继续 上文链接 HashMap在上一篇源码分析的文章中,如果使用put的时候如果元素数量超过threshold就会调用resize进行扩容 1.扩容机制 想要了解 ...

  6. Spring Boot 整合 Shiro实现认证及授权管理

    Spring Boot Shiro 本示例要内容 基于RBAC,授权.认证 加密.解密 统一异常处理 redis session支持 介绍 Apache Shiro 是一个功能强大且易于使用的Java ...

  7. 数组指针&&指针数组

    数组指针: 定义 int (*p)[n];      占用内存中一个指针的存储空间 ()优先级高,首先说明p是一个指针,指向一个int型的一维数组,故名数组(的)指针.指向的一维数组的长度是n,也可以 ...

  8. random,time,sys,os

    import random print(random.random()) #(0,1)大于0且小于1之间的小数 print(random.randint(1,3)) #大于等于1且小于等于3之间的整数 ...

  9. 知识图谱学习与实践(4)——通过例句介绍Sparql的使用

    通过例句介绍Sparql的使用 1 简介 SPARQL的定义,是一个递归的定义,为SPARQL Protocal and RDF Query Language,是W3C制定的RDF知识图谱标准查询语言 ...

  10. 基于高德开放平台的 NODE 天气信息组件

    看看了画在手上的Armani手表,马上就快到了下班的时间了,心里总觉的空唠唠的, 好像空缺了什么一样,仔细的想了一想,微微叹了一口气,觉得是时候在这里和大家分享一下原因了........ 首先: ## ...