• Java 的一次编译到处运行在目前还有优势吗?
  • 发布于 4小时前
  • 10 热度
    4 评论
如题,JAVA以前一直拿来炫耀的一次编译到处运行在目前还有优势吗?各种二进制打在镜像里面也算是一次编译到处运行吧。
用户评论
  • Jeff
  • 单论体积 非云场景优势很大,比 go 那几十 mb 一坨更轻量;但我感觉这点体积也不重要,aot 快速启动比较舒服
  • 2025/10/25 13:54:00 [ 0 ] [ 0 ] 回复
  • 守一座空城
  • 没有任何优势,因为在需要运行的机器上还需要安装 JVM ,所以很多面向普通用户的软件在分发的时候,会选择把用到 JRE 打包一起分发,这种分发方式比起用 Go 写的纯静态编译的软件,没有任何优势,相比之下 Go 写的软件冷启动速度更快,体积更小,全方面地胜过 JVM 。

    假如时间倒流,当初 JAVA 选择和各大操作系统厂商合作,直接在 OS 里内置 JRE ,用户直接下载 JAR 包就能运行,那这种方式可能还有点意义,不过这种 JAVA 程序员在写代码的时候就得写各种兼容性代码来确保在各 JVM 版本里的兼容性了。放到编译型语言里,这也是编译器后端需要考虑的事情,普通的业务层代码也不关心这个。

  • 2025/10/25 12:24:00 [ 0 ] [ 0 ] 回复