<properties> <java.version>17</java.version></properties>
项目打开速率
这里不得不说 idea 打开项目有时候真的很慢,一个 loading 横在中间要良久,如果首次打开还会有创建索引的任务启动。 多说一句,Android Studio 和 idea 不愧是一脉相承,我常常碰着等半天才出来的。当然,有可能是我的机器配置低,但是同样配置 vscode 就快得多了,我利用下来觉得稳定性也比 idea 高,极少有闪退的。
当然虽然 vscode 打开项目很快,但是也免不了后后台走任务来剖析 Java 项目,在剖析没有完成之前,很多功能还用不了。
但是,至少代码有高亮,查看和编写代码都是可以的,虽然剖析没有完成前可能短缺代码提示。如果只是查看自己下载的开源项目代码进行学习, vscode 就方便多了。

idea 不同类型的目录利用不同的颜色,比较能干,配色也比很舒畅。
上图两个编辑器都是在默认的浅色主题下的的项目文件浏览截图比拟,idea 确实要更好一些。vscode 的 java 插件会供应一个 JAVA PROJECTS 的 文件管理器扩展,但是效果不是很好,我不是很喜好用,基本上还是利用默认。
变量申明
在这方面 idea 可以说非常懂的 Java 开拓者,在 Java 10 之前的版本,不支持类型自动推断,必须要在申明变量时写上变量的详细类型, idea 在后面打上 .var 根据提示就可以自动天生变量。并且在建议的列表中选择变量名称后按回车,光标会自动移动到 语句结尾处的分号后面,再次按回车键开始编写下一条语句,非常的高效。
vscode 则就差点意思了,你必须要把变量名写出来,才可以给你自动创建变量。
并且插件不太稳定插件,有时候会报错无法完成创建,更新过几个版本后仍旧存在这个问题,下面是我重现后在掌握台的截图,插件有报错。
在这方面 idea 确实更顺滑,效率要高不少。
代码天生和补全idea 没有自定义代码片段的功能,但是自带了很多 java 的代码片段,基本上也够用了。
vscode 是支持自定义代码片段了,java 干系的插件自带的片段比较的少,为了和 idea 体验同等,我自定义了一些。
Idea 还有 soutv 和 fori 这类快捷补全操作,可以根据当前代码天生一段代码的功能,智能联动修正,这是我比较常用的。vscode 就没有这么智能了, 虽然也有 fori ,但仅仅是代码片段,能够输出一段代码而已,得在天生的代码根本上进行修正。
vscode 和 idea 都支持右键菜单进入关联的测试类,当关联的测试类不存在的情形下,可选择创建测试类, 自动在 maven 的 test 目录下天生相应的包的测试类。
查看类的构造vscode 通过左侧的 outline 视图可以查看类的构造,功能比较简洁。在一个类行数较多的情形下,可用于快速定位的详细方法的代码。
Idea 的功能则要丰富一些,支持查看继续的方法和属性。
引用查看
在调试程序和查阅源码的时候,我们常常须要查看类的引用(用法),看看有哪些地方利用过。在这方面 vscode 的功能 就要简陋一些,但是 Idea 会做好分类,查看起来非常的方便。
上图左边是 vscode 的 references 视图,右边是 Idea 的用法查看窗口。
关系图idea 的旗舰版支持查看类的图表,通过图表可以清晰的理解类的继续关系,对付查看一些关联非常繁芜的项目的代码还是很有帮助的。 vscode 我目前安装了插件后没有这个功能,不知道有没有插件可以实现。
调试
调试方面,基本上没有什么差别。Idea 有的功能,vscode 也都有,像表达式打算、为断点设置条件、栈信息等一个不少。
代码剖析
Idea 有自带的代码剖析功能,就我目前装的 vscode 插件是没有这个功能的。
不过虽然这个功能很强大,我基本上不用的,一样平常都是项目中集成 spotbugs 之类的插件来做检讨, 在 CI 时自动去实行。在 git 做提交时 Idea 也会提醒你代码有警告或缺点之类的,为了速率能快一些, 我都是关掉的,否则就可能要看很永劫光的 loading。
对 maven 的支持安装了插件的 vscode 也供应了 maven 视图,但是体验不是太好,当你要查看插件的时候才去加载插件信息,loading 状态有时候会持续良久, 等的人焦急,这还不算完,打开了插件列表,查看插件的 goal 一点击又要加载良久。
查看依赖也都是一样,有很永劫光的加载过程。
Idea 会先做加载信息做好索引,要查看的时候直接点开,效率多了。并且 Idea 的 maven 干系功能也非常丰富。依赖剖析功能可以非常直不雅观的 查看包依赖情形。
实行 maven 目标功能还可以列出所有的 goal ,并且可以搜索。
此外还有跳过测试功能也是常用的,开拓的时候非常方便,在 vscode 中就麻烦一些了,须要打命令来实行。
在对 maven 的支持上,vscode 的体验不是很好,加载等待太摧残浪费蹂躏韶光了,Idea 在效率上完胜。
对 Spring 的支持vscode 插件 Spring Boot Dashboard 我是从来没有打开过掌握台的,一贯报错,也曾探求过一些方法看能不能办理, 可以从网上找到的干系信息极少,源码仓库也有很多人发 issue 说打不开,永久在加载等问题,但是都没有很好的办理。 在 issus中看到有人回退 vscode 的版本办理问题了,不过我想还是算了,不愿意折腾,不能用就不能用吧,实在影响不大。
Idea 旗舰版自带了 Spring 支持,可以查看容器中的 Bean 和 mvc 端点,对付大项目在开拓中用来快速定位代码还是很有用的。
Idea 旗舰版还支持 applications 配置文件自动提示实例,可以通过属性名称跳转到对应的 Properties 类源代码。 这样写配置的时候更快更稳,不须要一边看文档一边写了。
安装了插件后的 vscode 也详细配置文件自动提示的功能,可以通过点击属性进入源码,功能上和 Idea 没有差别。
vscode 和 Idea 旗舰版都有 Spring initializr 可用于快速创建一个 spring boot 项目,利用方法上略有不同,Idea 中创建新项目,在选单中就可以 选择 Spring initializr,vscode 则须要在命令面板中调出 Spring initializr。
Idea 对 Sring 的支持仅限于旗舰版,社区版没有以上的功能。
对 JPA 的支持Idea 旗舰版供应了数据管理功能,对 JPA 做了关联支持,可以让项目关联数据源。如果 JPA 中配置的字段在数据源中 不存在,还会有报错。Idea 还自带了 Entity 生成功能。不过这些功能我目前没有在用了,pgadmin 和 mysql workbench 比 idea 集成的好用多了,项目一多配置起来很麻烦。天生 Entity 实在还好,事情量并没有那么大。
Idea 旗舰版支持 Spring Jpa 仓库代码的查询方法自动补全,非常的方便高效,比手写放心多了。
如果你须要写 jpql ,idea 旗舰版还会有代码高亮和提示功能,帮助你更高效的编写 jpql 。
上图是 Repository 类中的代码建议,在其它的地方,如果你利用 EntityManager.createQuery() ,干系的 jpql 字符串也会有高亮和提示补全,非常的智能。
vscode 在安装了 spring 插件之后,也有查询方法自动天生的功能。
不过因此代码片段的形式来直接天生一段代码,后续的操作没有提示,体验上和 idea 差远了,idea 支持连续输入天生一个较为繁芜的查询方法。 比如要写 findByNicknameAndAge(),输入 findByNickname 后,再输入 And ,此时 idea 又开始提示其它的字段了,可以再次帮你自动补全, 可以方便的写出条件较多的 QueryMethod 。而 vscode 帮你天生完 findByNickname 就结束了,不支持连续添加 And 条件连续提示, 也不能天生 Top 和 LessThan 等 QueryMethod 支持的关键字。
不过这些功能仅限于 Idea 旗舰版,社区版是没有这些功能的。
总结vscode 做 Java 开拓的体验确定不如 Idea 旗舰版,不过和社区版比较互有上风,也还算过得去。 如果哀求不高的话,我以为 Idea 社区版够用了,对 Spring 和 JPA 的赞助功能没有的话也还好,不能算是刚需, 部分旗舰版才有的功能,vscode 也有,可以临时切换 vscode 来办理,互补着用。