V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wangyzj
V2EX  ›  Java

公司开始要用 Java , jdk 版本怎么选?

  •  1
     
  •   wangyzj · 2021-03-30 09:38:03 +08:00 · 24213 次点击
    这是一个创建于 1095 天前的主题,其中的信息可能已经有所发展或是发生改变。

    以前无 java 项目,全新建

    多谢各位老哥

    第 1 条附言  ·  2021-03-30 11:38:00 +08:00
    我还寻思用 13
    没想到推荐用 11 的都少
    不过我还是打算用 11 吧
    177 条回复    2021-04-02 10:08:25 +08:00
    1  2  
    SonivelY
        101
    SonivelY  
       2021-03-30 13:09:53 +08:00
    用啥 java ?用 go !
    keepcleargas
        102
    keepcleargas  
       2021-03-30 13:16:15 +08:00
    8
    chinvo
        103
    chinvo  
       2021-03-30 13:19:45 +08:00
    虽然我不用 Java, 但是我还是推荐当前 LTS
    8
        104
    8  
       2021-03-30 13:21:44 +08:00   ❤️ 1
    吓我一跳
    8
        105
    8  
       2021-03-30 13:22:11 +08:00
    8
    yanzhiling2001
        106
    yanzhiling2001  
       2021-03-30 13:29:04 +08:00
    你可以看看 www.injdk.cn
    darrh00
        107
    darrh00  
       2021-03-30 13:29:42 +08:00
    从头开始的当然用新不用旧,选 LTS 即可。
    dbpe
        108
    dbpe  
       2021-03-30 13:39:28 +08:00
    @micean spring 更新到 16 了?我听人说 16 对反射限制更严格了...用反射的 GG 了
    dbpe
        109
    dbpe  
       2021-03-30 13:40:43 +08:00
    @stardustree Kotlin 不就是 JAVA20 么..狗头保命
    copper20
        110
    copper20  
       2021-03-30 13:42:04 +08:00
    jdk 8 和 jdk 11 是目前唯二的长期稳定版本
    jdk 8 支持时间比 jdk 11 长
    oracle jdk 8 免费; oracle jdk 11 商用收费,但可以用差别不大的 openjdk 11
    jdk 9 - 11 添加了一些小特性和糖

    个人偏向 jdk 8
    总体上看楼主喜好了
    xman99
        111
    xman99  
       2021-03-30 13:45:09 +08:00
    全新 项目 11 挺好的, 不过我还是自学阶段
    joyhub2140
        112
    joyhub2140  
       2021-03-30 13:49:10 +08:00
    目前还是推荐 8,但半年后必须 jdk 17 LTS,java 8 卷的已经不能再卷了。
    lonenol
        113
    lonenol  
       2021-03-30 13:54:55 +08:00
    其实可以 16.。过半年升级到 17,也是 lts 。。
    稳妥的话就 11

    啥包袱没有,还用 8 就有点扯了
    leeyom
        114
    leeyom  
       2021-03-30 14:09:14 +08:00
    没有历史包袱,就用 11,否则就 8
    wangsd
        115
    wangsd  
       2021-03-30 14:13:52 +08:00   ❤️ 2
    11 吧,8 里面有一些包后来被移除了,现在用 8 你以后迁移到高版本上还要改一堆东西。
    micean
        116
    micean  
       2021-03-30 14:19:40 +08:00
    @dbpe 用 maven 构建就行了,你说的是 jdk9 就有的反射访问限制吧,没啥影响
    itgoyo
        117
    itgoyo  
       2021-03-30 14:25:54 +08:00
    8
    x940727
        118
    x940727  
       2021-03-30 14:33:27 +08:00
    反正开新项目,直接 11 吧,只要 Spring 支持了最新的 JDK 就可以了,没必要用那种七八年不维护的依赖包
    FawkesV
        119
    FawkesV  
       2021-03-30 14:33:47 +08:00
    我们用的 8
    515576745
        120
    515576745  
       2021-03-30 14:36:57 +08:00 via Android
    8 or 11 vs code 里的 java 拓展需要 11 启用
    yangyaofei
        121
    yangyaofei  
       2021-03-30 15:04:16 +08:00   ❤️ 5
    至少 11 吧,守着老古董有什么进步可言呢...还老说 35 被优化,自己有机会接触点新东西都不愿意还 bb(虽然 35 被优化的根本原因不在这儿)

    其实,jre 定成 11,直接不同项目之间用不同语言都无所谓吧,什么 k,s 都可以吧,还增加开发效率,该用的包都一样用.
    xuanbg
        122
    xuanbg  
       2021-03-30 15:10:49 +08:00
    11 有 zgc,8 有免费的甲骨文原厂 jdk
    zliea
        123
    zliea  
       2021-03-30 15:28:17 +08:00
    表示看 spring 支持。
    Wuxj
        124
    Wuxj  
       2021-03-30 15:48:42 +08:00
    8 因为用 8 的面试官比用其他版本的面试官都多。。。
    Er1c0
        125
    Er1c0  
       2021-03-30 16:54:02 +08:00
    8
    iseki
        126
    iseki  
       2021-03-30 16:58:38 +08:00
    来用 Kotlin (啥东西不支持 Kotlin 就别用了(
    yeahvov
        127
    yeahvov  
       2021-03-30 17:08:19 +08:00
    新项目 当然用新的
    TypeError
        128
    TypeError  
       2021-03-30 17:14:03 +08:00
    就是因为 Java 都留在老版本不更新,所以我才讨厌 Java

    老版本 Java+xml,又臭又长
    linbingcheng
        129
    linbingcheng  
       2021-03-30 17:50:02 +08:00
    8 呀,还用说
    ming7435
        130
    ming7435  
       2021-03-30 17:51:15 +08:00
    再等等 17 吧
    securityCoding
        131
    securityCoding  
       2021-03-30 18:53:57 +08:00
    @TypeError 现在很少写 xml
    beginor
        132
    beginor  
       2021-03-30 18:54:00 +08:00 via Android
    JDK 版本无所谓, 关键是 kotlin !

    不管是源代码还是 gradle, 都用 kotlin 来写, 这才香!
    idamien
        133
    idamien  
       2021-03-30 19:01:44 +08:00
    11 LTS
    nowto
        134
    nowto  
       2021-03-30 19:01:47 +08:00
    公司招人吗?
    oy9r
        135
    oy9r  
       2021-03-30 19:04:52 +08:00
    众所周知 8 > 11
    Takamine
        136
    Takamine  
       2021-03-30 19:08:27 +08:00 via Android
    11 。
    julyclyde
        137
    julyclyde  
       2021-03-30 19:27:51 +08:00
    据说 2021 下半年出新的 LTS
    所以我觉得可以从 16 开始过度到 17LTS
    yeziqing
        138
    yeziqing  
       2021-03-30 20:44:58 +08:00
    先用 16,9 月份后换 17
    solos
        139
    solos  
       2021-03-30 20:55:19 +08:00
    版本不重要,先跑起来,后面换 go
    ClericPy
        140
    ClericPy  
       2021-03-30 20:58:37 +08:00
    进来扫一眼果然都是 8

    非 Java 用户表示 Manjaro 上给我滚到 16 了.......
    meteor957
        141
    meteor957  
       2021-03-30 20:59:21 +08:00
    Kotlin
    EscYezi
        142
    EscYezi  
       2021-03-30 21:04:24 +08:00 via iPhone
    还 8 呢,现在选 8 以后想升就难了
    fuxiuyin
        143
    fuxiuyin  
       2021-03-30 21:29:50 +08:00 via iPhone
    要不来试下 .Net🐶
    johnsonshu
        144
    johnsonshu  
       2021-03-30 22:31:45 +08:00
    Weblogic 的最新版本是 8 吧? 所以用 8 以上的稳定版?
    nutting
        145
    nutting  
       2021-03-30 22:33:29 +08:00 via Android
    8
    lrvinye
        146
    lrvinye  
       2021-03-30 22:52:07 +08:00 via iPhone
    新项目 11
    Senorsen
        147
    Senorsen  
       2021-03-30 23:05:38 +08:00
    楼主你 13 是什么梗,建议看看 Java LTS 有哪些版本,13 早就停止维护了……
    sampeng
        148
    sampeng  
       2021-03-30 23:33:09 +08:00 via iPhone
    全新 java 项目问就是 kotlin
    hotsymbol
        149
    hotsymbol  
       2021-03-31 00:34:24 +08:00
    Java 6 差不多了。Java 8 都太新
    snuglove
        150
    snuglove  
       2021-03-31 07:40:48 +08:00 via Android
    公司用的也是 8..
    msg7086
        151
    msg7086  
       2021-03-31 08:03:28 +08:00
    公司刚刚从 7 艰难升到了 8,新项目全都用上崭新的 8 啦(手动狗头
    CooC
        152
    CooC  
       2021-03-31 08:11:43 +08:00
    8
    mghio
        153
    mghio  
       2021-03-31 08:21:55 +08:00
    11
    Rwing
        154
    Rwing  
       2021-03-31 08:54:19 +08:00
    不如考虑一下 C# ?
    cslive
        155
    cslive  
       2021-03-31 09:05:22 +08:00
    全新项目当然 11
    kingfalse
        156
    kingfalse  
       2021-03-31 09:05:26 +08:00 via Android
    直接上 16 吧!年底 17 是 lts
    janda
        157
    janda  
       2021-03-31 09:23:22 +08:00
    8 应该合适、lambda 太爽!后面的版本好像要收费、除非 openjdk
    ft7138
        158
    ft7138  
       2021-03-31 09:30:23 +08:00
    目前来看,还是 8 的应用比较广泛
    wpf375516041
        159
    wpf375516041  
       2021-03-31 10:19:42 +08:00
    十年老运维推荐阿里龙井 JDK 1.8 版本,解决了不少 jvm 的 bug,而且有 JFR,wisp2 等新特性,G1ElasticHeap 也可以吞吐量
    LokiSharp
        160
    LokiSharp  
       2021-03-31 10:24:21 +08:00
    既然是新项目就最新的 LTS 吧
    blankmiss
        161
    blankmiss  
       2021-03-31 10:52:22 +08:00
    8 吧
    jitongxi
        162
    jitongxi  
       2021-03-31 10:53:34 +08:00
    1.8+ 无脑 koltin
    nicholasxuu
        163
    nicholasxuu  
       2021-03-31 11:56:39 +08:00
    openjdk 11

    8 的话 docker 内不能跑,内存会爆。
    Huelse
        164
    Huelse  
       2021-03-31 12:50:38 +08:00
    Ravenddd
        165
    Ravenddd  
       2021-03-31 13:12:18 +08:00
    公司刚从混乱的历史包袱统一升级到 11, 不过年底就 17 来了
    FrancisZ
        166
    FrancisZ  
       2021-03-31 14:05:16 +08:00
    openJdk 11
    danc
        167
    danc  
       2021-03-31 14:59:49 +08:00
    Ξ ~ → java -version
    openjdk version "17-ea" 2021-09-14
    OpenJDK Runtime Environment (build 17-ea+15-1230)
    OpenJDK 64-Bit Server VM (build 17-ea+15-1230, mixed mode, sharing)
    danc
        168
    danc  
       2021-03-31 15:01:21 +08:00
    直接 17 吧,等你项目差不多做好,17 就 stable 了
    idamien
        169
    idamien  
       2021-03-31 15:06:26 +08:00
    @nicholasxuu 8 的话 docker 内不能跑,内存会爆 ?
    zepc007
        170
    zepc007  
       2021-03-31 16:58:51 +08:00
    TA 发任 TA 发,仍然爪哇八
    legiorange
        171
    legiorange  
       2021-03-31 16:59:55 +08:00 via Android
    直接用 16 。新特性。
    Greatshu
        172
    Greatshu  
       2021-03-31 17:31:34 +08:00
    https://img.maocdn.cn/img/2021/03/31/-2021-03-31-172910.png
    毫无疑问,8 的扩展支持时间比 11 还长
    peihuan
        173
    peihuan  
       2021-03-31 23:40:35 +08:00
    kotlin
    ENNRIaaa
        174
    ENNRIaaa  
       2021-03-31 23:59:06 +08:00
    不是 8,就是 11,还是用 8 的多
    byte10
        175
    byte10  
       2021-04-01 09:22:15 +08:00
    @joyhub2140 为啥要上 jdk 17 ?是协程出来了吗?
    nicholasxuu
        176
    nicholasxuu  
       2021-04-01 12:08:02 +08:00
    @idamien 老 java 读内存会读机器内存的参数,而不是 docker/k8s 给 container/pod 的内存限制。
    比如在 8 核 32G 的服务器里,给一个小 java 服务用的 container/pod 设定 1 核 2G 的限制,java 会认为自己有 16G 内存可以用,然后把 2G 的限制给撑爆。
    8 只能手动设定各种 jvm 内存限制才行。11 开始可以正确的读 container/pod 的内存了。
    Evilk
        177
    Evilk  
       2021-04-02 10:08:25 +08:00
    为什么不用 PHP?
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4384 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 10:05 · PVG 18:05 · LAX 03:05 · JFK 06:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.