关于 Java 笨重一说

2022-05-07 23:31:10 +08:00
 ojh

今天有个帖子是说 Java 笨重、Spring 框架笨重,看完了总结了“笨重”的几点

内存占用多

这个无可厚非,毕竟运行在虚拟机上。但是之前看过一篇博客对比了 Quarkus (印象中) JIT 和 AOT 两种模式下运行内存的占用,启动初期 AOT 完胜 JIT ,但是高负载情况下两者差不多,所以我想了解下是如果同等高负载的情况下,C++/Go 这类的服务端程序的内存占用跟 Java (最新) 比差距大不大呢。

JRE 很大

这个如果在最新 Java 下面用 jlink 并且压缩一下应该 50MB (包含 JavaFX 了,不包含的没试过) 左右,一个带 JRE 的 Java 应用 50MB 应该还可以接受吧。其实我疑惑的是很多人吐槽 JRE 大,没人吐槽 NodeJS 或者 Python 大么

配置很复杂

估计指的是 Servlet 那套 web.xml 配置以及远古时代 Spring 的 context.xml ,这个我也想吐槽,不过 SpringBoot 应该缓解了这个问题

打出来的包很大

Srping/SpringBoot 为了方便开发提供了很多大而全的东西所以很大,如果你的程序就简单的接口,业务代码也很简单,什么依赖注入、切面、请求体转换、参数校验等等功能都用不到,那也没必要用 Spring 框架。顺便问一句有什么好 Java Web 框架脱离 Servlet 体系又很瘦小的

其实对于我这个 Java 菜鸡来说上面问题都不是让我郁闷的,真正让我郁闷的是 Java 为什么这么多规范!这么多规范真的好吗?

8934 次点击
所在节点    程序员
89 条回复
abcbuzhiming
2022-05-09 10:58:16 +08:00
@Lancer777 你看你自己也说了,java 生态圈对这东西的支持力度远远不够,这不就是我说的暂时还没办法大规模的上吗?还有一个问题是,oracle 到底怎么看这个东西的,以后是打算商业收费吗?
sky857412
2022-05-09 12:05:13 +08:00
1.servlet 是历史问题
2.使用 get ,set ,你可以在 get set 里面写逻辑呀,只是一般不用,比如类型转换。同时方法调用,可以方便 IDE 进行查找,可以知道在代码哪些地方对属性进行了修改,如果单纯的 public ,你需要进行全局搜索。get 、set 也体现了面向对象的封装性
3.xxxService/xxxServiceImpl ,在自己的业务逻辑是可用可无的,但是对接第三方系统时是很有用的。假设系统今天对接阿里云的短信,明天对接 XXX 的短信,可以通过不同的实现类去处理。
sky857412
2022-05-09 12:16:15 +08:00
@l00t 什么叫返回数据不改约等于没改? 2 个实现类,都是给调第三方发短信,都是返回成功。这能叫没改?你无法理解,不要乱误导人。第二个,getID ,明明有很多方法避免,你却非要强调你错误的观念。方法重载,不改 getID ,重新写一个方法,叫一个新的方法名都可以解决歧义。编程是变通的,又不是只有一个正确答案
AmberMmoe
2022-05-09 13:59:10 +08:00
java 小白,当年学的时候,单是环境就要了我半条命
yedanten
2022-05-09 14:04:36 +08:00
工作原因写 java 必定和那些规范扯上关系,是真的被逼着的,即使知道这个项目不太可能有改动,即使知道这个项目可能活不久。大家都按这规范写,过度的抽象怎么了,问就是为了未来那 1%可能性的可拓展性。
个人项目不用管,怎么开心怎么写,那我还选 java 干嘛。
fredli
2022-05-09 14:51:45 +08:00
学 kotlin 吧,函数式就是方向
yangxj96
2022-05-09 16:35:51 +08:00
规范多, 所以培训班出来的人也能快速上手. 简称 CV 大师
icanbeyrhero
2022-05-10 00:18:54 +08:00
@fisherwei 考虑使用 alpine jdk 镜像,缩小体积
drackzy
2022-05-10 06:14:03 +08:00
Rust 、Golang 没有运行时会慢慢侵占一些之前 JAVA 应用的地盘。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/851477

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX