V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Ayanokouji
V2EX  ›  程序员

JDK 22 发布了

  •  1
     
  •   Ayanokouji · 2024-03-20 09:43:15 +08:00 · 6804 次点击
    这是一个创建于 373 天前的主题,其中的信息可能已经有所发展或是发生改变。
    不要刷 jdk8 的梗,你不用,不代表技术不需要更新

    Features

    423: Region Pinning for G1
    447: Statements before super(...) (Preview)
    454: Foreign Function & Memory API
    456: Unnamed Variables & Patterns
    457: Class-File API (Preview)
    458: Launch Multi-File Source-Code Programs
    459: String Templates (Second Preview)
    460: Vector API (Seventh Incubator)
    461: Stream Gatherers (Preview)
    462: Structured Concurrency (Second Preview)
    463: Implicitly Declared Classes and Instance Main Methods (Second Preview)
    464: Scoped Values (Second Preview)
    60 条回复    2024-03-22 15:27:59 +08:00
    chendy
        1
    chendy  
       2024-03-20 09:46:05 +08:00
    Memory API 这个是官方的堆外内存 API ?
    dcsuibian
        2
    dcsuibian  
       2024-03-20 09:48:22 +08:00
    我还在等《 Core Java 》第 13 版
    Ayanokouji
        3
    Ayanokouji  
    OP
       2024-03-20 09:49:21 +08:00
    @chendy 用来代替 jni 的吧,详细可以看下 jep https://openjdk.org/jeps/454
    wysnxzm
        4
    wysnxzm  
       2024-03-20 09:52:19 +08:00   ❤️ 17
    "你不用,不代表技术不需要更新" 说得好
    WWKvR5Zf41968v20
        5
    WWKvR5Zf41968v20  
       2024-03-20 09:52:31 +08:00
    JetbrainsRuntime 21 还没啥动静,希望 idea 早点默认换成 jdk21 。
    anonydmer
        6
    anonydmer  
       2024-03-20 09:57:32 +08:00
    一直在跟,有几个不错的特性
    youmilk
        7
    youmilk  
       2024-03-20 09:59:22 +08:00
    @Betasecond 我已经切换到 21runtime 很久了
    28Sv0ngQfIE7Yloe
        8
    28Sv0ngQfIE7Yloe  
       2024-03-20 10:00:06 +08:00
    新项目我用的是 21 + Springboot 3.2.x

    体验下来很不错
    lstz
        9
    lstz  
       2024-03-20 10:03:19 +08:00 via Android
    拥抱变化,这样 Java 才有更好的未来!
    Akitora
        10
    Akitora  
       2024-03-20 10:04:43 +08:00
    希望结构化并发早日转正
    winterbells
        11
    winterbells  
       2024-03-20 10:06:16 +08:00
    lisongeee
        12
    lisongeee  
       2024-03-20 10:17:18 +08:00   ❤️ 1
    jdk8 已经发布 10 年了,但是我每天还是能看到诸如《学习 jdk8 新特性》的文章

    类比 JavaScript 还有 es6 已经发布近 9 年,但是我每天还是能看到诸如《学习 es6 新特性》的文章
    yy77
        13
    yy77  
       2024-03-20 10:17:22 +08:00
    21 是 LTS ,22 不是。就这个理由就导致 22 只会是一个临时的版本了。
    boatrain1111
        14
    boatrain1111  
       2024-03-20 10:55:24 +08:00
    期待结构化并发
    afeiche
        15
    afeiche  
       2024-03-20 11:01:21 +08:00
    上个礼拜开会,由于很多老版本安全漏洞没法修复,有人提议强制新项目升级到 21 ,可是很多人都不同意,最后只能改成建议,很多人还是不愿意学习新东西的
    28Sv0ngQfIE7Yloe
        16
    28Sv0ngQfIE7Yloe  
       2024-03-20 11:06:41 +08:00   ❤️ 1
    @afeiche

    不是不愿意学,本质上不用新特性的话基本没啥学习成本,大家主要是不愿意承担升级会引起的运维问题。
    BBCCBB
        17
    BBCCBB  
       2024-03-20 11:07:17 +08:00
    @afeiche 升级后依然可以按 jdk6 的写法写. 这就是 java 的兼容性.
    LieEar
        18
    LieEar  
       2024-03-20 11:10:05 +08:00
    G1 的提升非常明显
    lix7
        19
    lix7  
       2024-03-20 11:10:29 +08:00
    458: Launch Multi-File Source-Code Programs
    这个感觉对开发还挺友好,真不错
    enchilada2020
        20
    enchilada2020  
       2024-03-20 11:11:22 +08:00 via Android
    昨天刚开完会说要升到 21 期待一把
    flowerains
        21
    flowerains  
       2024-03-20 11:31:35 +08:00
    现在可以直接升 21 了,不是 LTS 是不可能在生产环境直接部署的
    主要是有很多历史遗留项目只能在 java8 上跑,这个才是不愿意升级的主要原因

    对于有好奇心的人来说,为啥不愿意折腾新技术呢
    Huelse
        22
    Huelse  
       2024-03-20 11:32:32 +08:00
    已经全面转 jdk21 了
    shanghai1943
        23
    shanghai1943  
       2024-03-20 11:33:43 +08:00
    前阵子才从 jdk8 升级到 jdk17
    janwarlen
        24
    janwarlen  
       2024-03-20 11:33:47 +08:00
    @BBCCBB #17 jdk9 有 module ,需要升级改造的
    xwwsxp
        25
    xwwsxp  
       2024-03-20 12:08:52 +08:00
    @janwarlen java 和 node ( JS )不一样的,java 早前就有 package 的概念,而 js 早前没有 package 的概念,反而出现了 module 的概念,jdk9 之后,java 借鉴了 js 的 module ;但是,并不是 java 就一定强制使用 module ,虽然,oracle 建议大家使用。
    BBCCBB
        26
    BBCCBB  
       2024-03-20 12:19:28 +08:00
    @janwarlen export all 就行了..
    superchijinpeng
        27
    superchijinpeng  
       2024-03-20 12:23:21 +08:00
    全都 21 了
    foolishcrab
        28
    foolishcrab  
       2024-03-20 12:27:09 +08:00 via iPhone   ❤️ 10
    就我观察国内公司跟进 21 的非常非常多,因为 vt 太符合互联网业务了,我司核心业务基本都在升级 21 。
    降下来多少台服务器都是能写进业绩的。
    这种时候还在刷“我用 java8”的只能说又蠢又坏
    Subfire
        29
    Subfire  
       2024-03-20 12:28:32 +08:00
    等下个 LTS 再体验
    luozic
        30
    luozic  
       2024-03-20 13:04:46 +08:00
    JDK 21 的分代 zgc 对于没能力改写成 c++/rust 还是基于 jvm 的大数据 ,可以节约内存的同时还提升性能。
    ldyisbest
        31
    ldyisbest  
       2024-03-20 13:16:26 +08:00
    @youmilk idea 里面能手动设置运行时吗? 还是要怎么设置,我发现用 java17 有 bug
    BBCCBB
        32
    BBCCBB  
       2024-03-20 13:19:38 +08:00   ❤️ 1
    @ldyisbest 双击 shift 搜索 choose boot runtime for the ide.
    ldyisbest
        33
    ldyisbest  
       2024-03-20 13:25:16 +08:00
    @BBCCBB 找到了,谢谢~
    Lambdua
        34
    Lambdua  
       2024-03-20 13:30:57 +08:00
    @Betasecond 实际使用效果如何啊
    dif
        35
    dif  
       2024-03-20 13:37:47 +08:00
    以前学 java 的时候,从 1.7-11 ,每次发布都会学习下新的特性,语法,API ,11 以后就在没关注过了,顶多装了个 17 和 21 的 JDK ,其实也没学习过新的特性。
    whoami9426
        36
    whoami9426  
       2024-03-20 15:15:00 +08:00
    说的好 record 和 文本块 就很香
    zhouhu
        37
    zhouhu  
       2024-03-20 15:26:59 +08:00
    @Betasecond 上次在知乎看到说性能没有提升
    Surechun
        38
    Surechun  
       2024-03-20 15:44:12 +08:00
    @shanghai1943 去年才把生产全部从 8 升级到 11 ,今年打算升级到 17 。现在 21 也稳了吗?
    dr1q65MfKFKHnJr6
        39
    dr1q65MfKFKHnJr6  
       2024-03-20 15:49:30 +08:00
    之前项目需要,要用 apache nifi , 这玩意最新版居然最低要求 JDK 21 ,然后我新开的项目、jar 都转向 21 了
    奈何公司大部分 java8er , 都抵触升级 21 , 不想改之前的轮子
    zzzmh
        40
    zzzmh  
       2024-03-20 16:10:11 +08:00
    正在从 8 过渡到 17 ,目前感觉良好
    MrXiong
        41
    MrXiong  
       2024-03-20 16:20:47 +08:00
    @luozic 想知道能提升多少
    yty2012g
        42
    yty2012g  
       2024-03-20 17:39:39 +08:00
    公司很多内部的框架,因为使用了类似于 Bytebude 这样的字节码修改工具,导致框架不升级,业务就很难升级。
    simpleisbest
        43
    simpleisbest  
       2024-03-20 18:02:19 +08:00
    @foolishcrab 21 不是免费的吧,8 免费啊
    blessingsi
        44
    blessingsi  
       2024-03-20 18:05:31 +08:00
    很久不用 java 了,求问现在 g1 和 zgc 是怎么个情况了,二者选择主要要考虑什么呀
    Goooooos
        45
    Goooooos  
       2024-03-20 18:14:46 +08:00
    部分老项目迁移到 jdk21 ,那些改不动的还是 jdk8
    ovtfkw
        46
    ovtfkw  
       2024-03-20 18:36:56 +08:00 via iPhone
    jdk8 其他关我卵事
    SurfaceView
        47
    SurfaceView  
       2024-03-20 18:54:43 +08:00   ❤️ 1
    楼上说 『这种时候还在刷“我用 java8”的只能说又蠢又坏』的人
    别人 用 java 8 就是蠢和坏???这算不算人身攻击呢???
    人家面试进个公司,公司用 java8 ,然后你让人家什么业务也没干呢上来先开会说 必须换成 jdk22 ??
    assiadamo
        48
    assiadamo  
       2024-03-20 19:07:04 +08:00
    最想 java 有多返回值和 cpp const 特性
    kneo
        49
    kneo  
       2024-03-20 21:30:00 +08:00 via Android
    @Morii 你说的还是不愿意学啊……
    kneo
        50
    kneo  
       2024-03-20 21:30:10 +08:00 via Android
    @Morii 你说的就是不愿意学啊……
    kneo
        51
    kneo  
       2024-03-20 21:30:50 +08:00 via Android
    不好意思,我以为没发出去。
    sakura6264
        52
    sakura6264  
       2024-03-20 21:36:29 +08:00
    不知道这下玩 MC 能不能再快一点(
    Dragonphy
        53
    Dragonphy  
       2024-03-21 08:50:14 +08:00
    Dragonphy
        54
    Dragonphy  
       2024-03-21 08:57:41 +08:00
    @simpleisbest 很多 OpenJDK 有免费商用的发行版啊,你非要用 Oracle JDK 那也没办法,但是 Oracle JDK 21 我记得也可以免费商用两年的样子。
    shanghai1943
        55
    shanghai1943  
       2024-03-21 10:17:09 +08:00
    @Surechun 感觉不着急的话可以再等等。8 升到 17 倒是没遇到太多问题。除了一些 mybatis 访问 java base 包的问题
    28Sv0ngQfIE7Yloe
        56
    28Sv0ngQfIE7Yloe  
       2024-03-21 12:01:55 +08:00
    @kneo #49

    愿不愿意学和已经平稳运行的项目生产环境愿不愿意升级到 JDK21 是两码事。
    28Sv0ngQfIE7Yloe
        57
    28Sv0ngQfIE7Yloe  
       2024-03-21 12:07:11 +08:00
    @kneo #49 就拿我所在的环境来讲,是否升级到 JDK21 就是一个从上而下的推动,大部门技术负责人开始推,相关的中台支持、基建、DevOPS 服务有了 KPI 才会适配。这种事从来不是我们拧螺丝的可以决定的。
    afeiche
        58
    afeiche  
       2024-03-22 11:00:51 +08:00
    @Morii 确实,前几年我自己负责的项目升级到了 17 ,然后集成测试、打包找了一堆人才搞完,公司整体工具链得能跟上,但是线上运维反而没啥问题,可能这就是 java 兼容性的体现吧,
    janus77
        59
    janus77  
       2024-03-22 15:14:09 +08:00
    21 不是 LTS 啊。。。。
    Ayanokouji
        60
    Ayanokouji  
    OP
       2024-03-22 15:27:59 +08:00
    @janus77 21 是 lts ,22 不是
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4135 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 10:09 · PVG 18:09 · LAX 03:09 · JFK 06:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.