如果你初次用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,用户能找到相应的地方?!

4 总结

如果你只是想找个IDE来学习Java,那么Eclipse会很快让你进入状态。

如果你是想找个能提升开发效率的IDE,那么IntelliJ是非常值得尝试的。

最后说一句,Java自己也是让人爱恨交加,脱离了IDE,这门语言还是让人用的么?!

再次配上此IDEA视频教程  让你少走弯路,让你少花时间 :
(下载地址:https://pan.baidu.com/s/1gfeX3hD)

为何放弃Eclipse,选择IntelliJ IDEA,看完终于明白了的更多相关文章

  1. 还傻傻分不清楚equals和==的区别吗?看完就明白了

    解决一个问题的最好方法就是发现一个问题产生的根源,即发现最本质的东西,再去解决它. Java语言里面的equals()方法是交给开发者们自己去覆盖重写编写功能的,即让开发者去定义当满足什么条件时,两个 ...

  2. 我们为何放弃Eclipse,投奔IntelliJ IDEA

    本文来源于我在InfoQ中文站原创的文章,原文地址是:http://www.infoq.com/cn/news/2013/11/why-drop-eclipse-use-intellij Nikita ...

  3. Idea_从Eclipse转Intellij IDEA

    场景:使用Intellij IDEA感觉还是不是很顺手,想放弃又舍不得它,如:强大的代码提示功能. 本人使用IntelliJ IDEA其实并不太久,用了这段时间以后,觉得的确很是好用.刚刚从Eclip ...

  4. 看完它,你就全懂了十大Wifi芯片原厂!

    看完它,你就全懂了十大Wifi芯片原厂!   来源:全球物联网观察 概要:不知不觉中,WiFi几乎已攻占了整个世界.现在只要你上网,可能就离不开WiFi了. 2014年是物联网WiFi市场关键的转折期 ...

  5. 看完这篇,保证让你真正明白:分布式系统的CAP理论、CAP如何三选二

    引言 CAP 理论,相信很多人都听过,它是指: 一个分布式系统最多只能同时满足一致性(Consistency).可用性(Availability)和分区容错性(Partition tolerance) ...

  6. 看完SQL Server 2014 Q/A答疑集锦:想不升级都难!

    看完SQL Server 2014 Q/A答疑集锦:想不升级都难! 转载自:http://mp.weixin.qq.com/s/5rZCgnMKmJqeC7hbe4CZ_g 本期嘉宾为微软技术中心技术 ...

  7. APP的缓存文件到底应该存在哪?看完这篇文章你应该就自己清楚了

    APP的缓存文件到底应该存在哪?看完这篇文章你应该就自己清楚了 彻底理解android中的内部存储与外部存储 存储在内部还是外部 所有的Android设备均有两个文件存储区域:"intern ...

  8. 看完这些,你就算得上既了解围棋又了解alphago了

    首先,我们要祝贺小李下出第78手的“神之一手”,这一手堪称前无古人后无来者,尤其是结合了阿尔法狗自暴自弃的表现.小李说过他的失败并不是人类的失败,同样,小李的胜利也只是属于他一人的胜利. 然而人类在围 ...

  9. Servlet 是否线程安全 看完便知

    Servlet 是否线程安全 看完便知 转自:http://blog.sina.com.cn/s/blog_6448959f0100kct7.html     摘 要:介绍了Servlet多线程机制, ...

随机推荐

  1. 2017.11.10 重读C++ Primer

    第二章   变量和变量类型 1. C++ 算数类型 bool                     布尔 最小尺寸未定义 char                     字符 8位 wchar_t ...

  2. mybatis常见问题和错误

    1. jdbc java type 映射关系 1) mysql的text 在mybatis中使用varchar类型 2. mybatis常见的错误 3.There is no getter for p ...

  3. vue mand-mobile ui Stepper步进器默认值传字符串进去不起作用

    vue mand-mobile ui Stepper步进器默认值传字符串进去不起作用 Stepper 步进器 的默认值有没有弄过的,看了组件只能默认数字的,传字符串进去不起作用<div slot ...

  4. 常用分布随机数生成及JS类函数开发和运用

    (2017-02-15 银河统计) 随机数生成是运用蒙特卡洛或统计随机模拟仿真方法的前提.本文在银河统计Web Service接口基础上,编制JS类函数生成常用分布随机数,为在网页中实现模拟仿真项目提 ...

  5. P2877 [USACO07JAN]牛校Cow School(01分数规划+决策单调性分治)

    P2877 [USACO07JAN]牛校Cow School 01分数规划是啥(转) 决策单调性分治,可以解决(不限于)一些你知道要用斜率优化却不会写的问题 怎么证明?可以暴力打表 我们用$ask(l ...

  6. detours express版本的使用

    原文最早发表于百度空间2012-03-21 一.编译lib 1)拷贝它的src文件夹和system.mak文件到VS的VCVARS32.BAT所在的目录下 2)在命令提示符中运行VCVARS32.BA ...

  7. iOS开发 -------- 网络状态监测

    一 示例代码 需要先把第三方Reachability下载导入到工程中  下载网址  https://github.com/tonymillion/Reachability 1 封装网络工具类 Netw ...

  8. 一些有趣的 js 包

    https://github.com/octalmage/robotjs Node.js桌面自动化.控制鼠标,键盘和屏幕. http://robotjs.io

  9. Asp.net MVC5 学习笔记

    控制器(controller)主要负责响应用户的输入,并且在响应时修改模型(Model).通过这种方式,MVC模式中的控制器主要关注的是应用程序流.输入数据的处理,以及对相关视图(View)输出数据的 ...

  10. idea下使用Git基本操作(转载)

    IDEA中Git的更新.提交.还原方法: https://blog.csdn.net/geng31/article/details/78585557 IDEA中Git的提交到GitHub http:/ ...