有 jdk11 的开源项目吗(非 demo) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
SkyLine7
V2EX    Java

有 jdk11 的开源项目吗(非 demo)

  •  
  •   SkyLine7 2021 年 1 月 7 日 4116 次点击
    这是一个创建于 1902 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一直用的 jdk8,想学习一下 jdk11 的新特性. 1.jdk8 升级到 jdk11 性能提升大吗? 2.jdk8 升级到 jdk11 需要做哪些操作,改动的点? 3.jdk9 中的模块化拆包如何运用到真实的商业项目中

    21 条回复    2021-01-12 15:05:01 +08:00
    hihanley
        1
    hihanley  
       2021 年 1 月 7 日
    同样想了解
    hantsy
        2
    hantsy  
       2021 年 1 月 7 日
    商业项目有什么,我可以帮升到 15 。
    echo1937
        3
    echo1937  
       2021 年 1 月 7 日
    用 JDK15 跑了一下用 JDK8 开发的项目,啥问题也没发现,挺意外的。

    明年下半年一定要把开发环境迁移到 JDK17 。
    hantsy
        4
    hantsy  
       2021 年 1 月 7 日
    关键语法上还是有差别的。Java 11 - 15 以后的一些小特性,还是不错。

    比如:Text Block, var, Map.of/List.of/Set.of, record 等。

    https://github.com/hantsy/spring-playground/blob/master/programming-models/webmvc-fn/src/main/java/com/example/demo/DemoApplication.java
    SkyLine7
        5
    SkyLine7  
    OP
       2021 年 1 月 7 日
    @echo1937 有用到 jdk11 的新特性吗?
    hantsy
        6
    hantsy  
       2021 年 1 月 7 日
    Java Module 目前大部分开源的项目已经添加 module 描述,包括 Spring 。

    一句话,不好用。

    目前 jmps 的依赖解析也比较松散,没有 module 描述也会自动解析。 到后面这规肯定会严格起来。
    SkyLine7
        7
    SkyLine7  
    OP
       2021 年 1 月 7 日
    @hantsy 好的,老哥有这方面的项目吗
    hantsy
        8
    hantsy  
       2021 年 1 月 7 日
    @SkyLine7 生产项目我早就上 Java 11 了。
    个人玩一直在尝试最新的 Java 。上面的连接 是 Java 15 写的,用了新语法( text block, record 等)。
    qwerthhusn
        9
    qwerthhusn  
       2021 年 1 月 7 日
    从 Java8 到 11 升级不需要修改任何代码,语法上也基本上没有变化,我能想到的就是 var 了,不过这个你可以选择不用,我也很少用。module 也没使用,不影响使用 11 。

    反正我的感觉是 8 到 11 没有啥大的新东西可以用。

    升级的话,唯一可能需要注意的就是第三方依赖,有些依赖比较陈旧不支持 11
    xuweifeng1987
        10
    xuweifeng1987  
       2021 年 1 月 7 日
    元旦节 jdk8---》 jdk11,一个字符都没改,完美
    echo1937
        11
    echo1937  
       2021 年 1 月 7 日
    @SkyLine7 #5 我大部分情况下,是用 JDK15 的环境写 JDK8 的代码,

    JDK9,集合类型有了 copyOf 和 of 方法,但我还是在用 Guava,

    JDK10,局部变量支持类型推导 var,我还是习惯写全类型,或者使用 Lombok,

    JDK11,有了新的 HttpClient API,本想替换掉第三方的 HttpClient API,但是引入的包有附带依赖,那继续用吧,

    简单来说,需要一个适用的过程,我最喜欢的还是 Text Block 。
    hantsy
        12
    hantsy  
       2021 年 1 月 7 日
    @qwerthhusn 8-》 11 细节上的东西还是有不少。
    1. var
    2. Collection 的 of 工厂方法
    3. Optional, Stream 等增强,更方便
    4. HttpClient, Flow(ReactiveStreams API 克隆)
    hantsy
        13
    hantsy  
       2021 年 1 月 7 日
    @echo1937 record, sealed 都实用
    hantsy
        14
    hantsy  
       2021 年 1 月 7 日
    @echo1937 实际项目中新 Java 版本运行有没有问题,丢给 CI 就好了。
    industryhive
        15
    industryhive  
       2021 年 1 月 7 日
    java8 的 Hotspot 几乎已经优化到了极限,升级到 java11,性能提升很小,大概只有 16%。要想继续挖掘优化潜力,还得看 graalvm 。
    hantsy
        16
    hantsy  
       2021 年 1 月 7 日
    @industryhive 对于开发而言,我没指望过性能提升。语言本身相关的语法的进化才是我关心的关键点。

    至于 16%嘛,我个人表示很怀疑。因为看过国内外的一些常见 Java 框架的使用的不同的 JDK 的 Benchmark 结果情况,基本不会有什么很大提高(大部分情况下差不多),个别测试反而 Java 8 占优势。

    为什么要升级,Java 11 写程序更爽,就这么简单。
    SkyLine7
        17
    SkyLine7  
    OP
       2021 年 1 月 8 日
    @echo1937 好的,也就是说升级了版本,还是很多版本新特性没用上
    echo1937
        18
    echo1937  
       2021 年 1 月 8 日
    @SkyLine7 #17 习惯是很可怕的东西,组里的有些同事,JDK8 的 Steam API 和 Lambda 都用不利索
    byte10
        19
    byte10  
       2021 年 1 月 8 日
    @qwerthhusn 不是向下兼容吗,啥项目不能使用 11 运行。
    tmackan
        20
    tmackan  
       2021 年 1 月 8 日
    Java8 不挺好吗。。。。
    SkyLine7
        21
    SkyLine7  
    OP
       2021 年 1 月 12 日
    @byte10 很多第三方配置文件要改,jar 包要升级
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     974 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 21:57 PVG 05:57 LAX 14:57 JFK 17:57
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86