wangyzj
V2EX  ›  Java

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

  •  1
     
  •   wangyzj · Mar 30, 2021 · 27807 views
    This topic created in 1905 days ago, the information mentioned may be changed or developed.

    以前无 java 项目,全新建

    多谢各位老哥

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

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

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

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

    老版本 Java+xml,又臭又长
    linbingcheng
        129
    linbingcheng  
       Mar 30, 2021
    8 呀,还用说
    ming7435
        130
    ming7435  
       Mar 30, 2021
    再等等 17 吧
    securityCoding
        131
    securityCoding  
       Mar 30, 2021
    @TypeError 现在很少写 xml
    beginor
        132
    beginor  
       Mar 30, 2021 via Android
    JDK 版本无所谓, 关键是 kotlin !

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

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

    8 的话 docker 内不能跑,内存会爆。
    Huelse
        164
    Huelse  
       Mar 31, 2021
    Ravenddd
        165
    Ravenddd  
       Mar 31, 2021
    公司刚从混乱的历史包袱统一升级到 11, 不过年底就 17 来了
    FrancisZ
        166
    FrancisZ  
       Mar 31, 2021
    openJdk 11
    danc
        167
    danc  
       Mar 31, 2021
    Ξ ~ → 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  
       Mar 31, 2021
    直接 17 吧,等你项目差不多做好,17 就 stable 了
    idamien
        169
    idamien  
       Mar 31, 2021
    @nicholasxuu 8 的话 docker 内不能跑,内存会爆 ?
    zepc007
        170
    zepc007  
       Mar 31, 2021
    TA 发任 TA 发,仍然爪哇八
    legiorange
        171
    legiorange  
       Mar 31, 2021 via Android
    直接用 16 。新特性。
    Greatshu
        172
    Greatshu  
       Mar 31, 2021
    https://img.maocdn.cn/img/2021/03/31/-2021-03-31-172910.png
    毫无疑问,8 的扩展支持时间比 11 还长
    peihuan
        173
    peihuan  
       Mar 31, 2021
    kotlin
    ENNRIaaa
        174
    ENNRIaaa  
       Mar 31, 2021
    不是 8,就是 11,还是用 8 的多
    byte10
        175
    byte10  
       Apr 1, 2021
    @joyhub2140 为啥要上 jdk 17 ?是协程出来了吗?
    nicholasxuu
        176
    nicholasxuu  
       Apr 1, 2021
    @idamien 老 java 读内存会读机器内存的参数,而不是 docker/k8s 给 container/pod 的内存限制。
    比如在 8 核 32G 的服务器里,给一个小 java 服务用的 container/pod 设定 1 核 2G 的限制,java 会认为自己有 16G 内存可以用,然后把 2G 的限制给撑爆。
    8 只能手动设定各种 jvm 内存限制才行。11 开始可以正确的读 container/pod 的内存了。
    Evilk
        177
    Evilk  
       Apr 2, 2021
    为什么不用 PHP?
    1  2  
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3066 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 186ms · UTC 13:25 · PVG 21:25 · LAX 06:25 · JFK 09:25
    ♥ Do have faith in what you're doing.