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

JDK 12 又来了,我学不动了...

  •  1
     
  •   hansonwang99 · 34 天前 · 6573 次点击
    这是一个创建于 34 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Java 大法好


    写在前面

    看到 JDK 12 又发布了,萌新不知不觉感觉瑟瑟发抖,从 Java 1.8 的函数式编程思维和范式 到 Java 1.9 的模块化特性的加持 以及还没来得及深切感受一下 Java 1.11 的 ZGC 强大之后,这次 JDK 12 到底有搞了些啥事情呢?我真的学不动了,我该怎么办呢?

    不管怎样,下面还是来看一下 JDK 12 的新特性解( fan )读( yi )吧!


    低暂停延时的垃圾收集器 (实验版)

    A Low-Pause-Time Garbage Collector (Experimental)

    添加一个名为 Shenandoah 的新垃圾收集 (GC)算法,该算法通过与正在运行的 Java 线程并发执行回收工作来减少 GC 暂停时间。Shenandoah 的暂停时间与堆大小无关,这意味着无论堆大小是 200MB 还是 200GB,都将拥有相同的暂停时间。


    微基准测试套件

    Microbenchmark Suite

    在 JDK 源代码中添加了一组基本的微基准测试套件,使得开发人员无论运行现有的微基准测试或者创建新的微基准测试都变得十分便利。


    Switch 表达式 (预览版)

    Switch Expressions (Preview)

    这是一个预览版语言特性。通过对 switch 语法进行了扩展,使其不仅可以作为语句( statement ),还可以作为表达式( expression ),并且两种形式都可以使用“传统的”或“简化的”语法用于作用于不同的范围或者控制执行流。这些更改将会简化日常编码,并且为在 switch 中使用模式匹配 (JEP 305) 做好了准备。


    JVM 常量 API

    JVM Constants API

    引入一个 API 来建模关键类文件( key class-file )和运行时构件( run-time artifacts )的标称描述,特别是对那些可从常量池加载的常量。


    仅保留 AArch64 实现

    One AArch64 Port, Not Two

    删除与 arm64 实现相关的所有源代码,同时保留 32-bit ARM 和 64-bit aarch64 实现。删除这些实现是为了让所有代码贡献者集中精力于一个实现上,从而消除维护两个实现所需付出的重复工作。


    默认类数据共享归档文件

    Default CDS Archives

    增强 JDK 构建过程,在 64 位平台上使用默认的类列表生成类数据共享(class data-sharing,CDS)存档。


    可中断的 G1 Mixed GC

    Abortable Mixed Collections for G1

    如果 Mixed GC 的 G1 存在超出暂停目标的可能性,则使其可被中止。


    G1 未使用分配内存即时返回

    Promptly Return Unused Committed Memory from G1

    增强 G1 垃圾收集器,以便在空闲时自动将 Java 堆内存返回给操作系统。


    参考文献


    后 记

    啥都不说了,JDK 13 您慢点出吧,快要掉队了,我跟不上了...

    50 回复  |  直到 2019-03-21 17:09:27 +08:00
        1
    sadhen   34 天前   ♥ 1
    学 Scala 吧,相当于你已经学到了 JDK 20,哈哈
        2
    Cat73   34 天前
    算一算,几年后 Java 版本号能赶上你的年龄
        3
    jxf2008   34 天前   ♥ 2
    改行 C/C++吧。十几年一个大版本,慢慢学:-)
        4
    guokeke   34 天前
    学**, 项目做完了吗?
        5
    lihongjie0209   34 天前
    说实话,这些特性不影响写代码。哪怕不知道该怎么写就怎么写, 学这些干嘛
        6
    AltairT   34 天前 via iPhone
    只跟 lts, 生产环境才 8 呢,换也是换 lts 的 11
        7
    saluton   34 天前
    @jxf2008 C++17 表示你说啥
        8
    allanzhuo   34 天前
    8 的写法还没适应呢==!
        9
    Kilerd   34 天前
    pattern matching 该来的还是要来。 哈哈哈
        10
    Procumbens   34 天前
    @jxf2008 C++20 表示不服
        11
    cuebyte   34 天前
    @Kilerd 和 pattern matching 不沾邊吧,只是接近 kotlin 的那種。Java 要做類型推導可不是一朝一夕的事。
        12
    DesmondLiu90   34 天前
    貌似 java 程序员不需要
        13
    boris1993   34 天前 via Android
    同样只跟 LTS

    目前还在学 Java 8 的 Stream 和 Lambda

    等用得上 11 了再学 11
        14
    jxf2008   34 天前
    @saluton
    @Procumbens

    现在很多编译器 14 都不支持。。。。

    又:CSDN 的赵 4 老师前几天还在推荐 VC6.0,我真的很好奇他到底是做啥工作的
        15
    xomix   34 天前
    @jxf2008 那个赵四我也觉得很奇怪好似穿越来的人一样,可能是二十几年前高级开发人员吧
        16
    SuperMild   34 天前
    Kotlin, 真香.
        17
    neoblackcap   34 天前
    @jxf2008 11 还是可以的,很公司都开始接受 11,更高的就难说了,说起 11,那也是 8 年前的产物
        18
    zhuanggu   34 天前
    JDK 8 还没学完😢
        19
    yizmaoaa   34 天前
    JDK 12 把多行字符串给毙掉了,还是有点可惜的。
        20
    coang   34 天前
    然而基本是 jvm 的更新.. 语法没有大更新..
        21
    Raymon111111   34 天前
    语言不是重点, 多工作几年就懂了.
        22
    philipjf   34 天前
    所以现在主流大厂生产环境用的是哪个版本?
        23
    ukyoo   34 天前
    安卓到现在只能兼容 8 的部分特性
        24
    ostholz   34 天前
    Java 6 以后就再也不碰 Java 了。
        25
    xuhaoyangx   34 天前
    kotlin 路过
        26
    avalon0624   34 天前
    只跟 lts , 现在生产环境还是 8, 慢慢来,跟得上
        27
    forestyuan   34 天前
    貌似 Java 现在要收费了吧
        28
    heron518   34 天前
    只能表示 JDK 8 之后没有在看过
        29
    hhhsuan   34 天前 via Android
    @ukyoo 什么不兼容?
        30
    mango88   34 天前
    还在研究 java 8 的路过
        31
    fansangg   34 天前
    kotlin 路过
        32
    FLADIMIR   34 天前 via Android
    没必要,我觉得 Java8 就 OK 了
        33
    ibcker   34 天前
    楼上的,你们有人听过 swift 么?逃...
        34
    ericgui   34 天前
    @jxf2008 其实是有道理的,这几年吧,我特别讨厌各种东西都飙版本,但 C++似乎很多公司还在用 C++98 什么的,当然,这个太落后了, 但 C++11 应该是主流的吧,所以 C++或许真的是个好选择
        35
    xuanbg   34 天前
    没看到 Java12 有什么需要学的新知识啊?不都是一些新功能吗??不是拿来用就行的吗???
        36
    zkeeper   33 天前
    转 Go 吧, 半年一个小版本, 哈哈
        37
    bokchoys   33 天前 via iPhone
    程序羊吗?
        38
    lrh3321   33 天前
    Kotlin 路过,语法糖吃着真香
        39
    bobuick   33 天前
    话说现在 G1 生产普及到什么程度了,怎么感觉回头 ZGC 会像 G1 一样,还没怎么玩耍呢,就被后浪扑死在沙滩上了 =。=
        40
    hellowes   33 天前
    没关系,JDK8 还没普及完了,JDK8 板载
        41
    orangeD   33 天前 via Android
    还在用 6 的飘过
        42
    weo0   33 天前
    up 主 您好
        43
    spotmini   33 天前
    现在才用 j8,2014 发布的,所以五年以后在学 12 也不迟
        44
    MIMEIK   33 天前
    @ibcker 每次更新就像换了个语言(逃
        45
    lhr_lovehoney   33 天前 via Android
    @jxf2008 想不到那个赵老师这么出名
        46
    NullWithMe   33 天前
    @Cat73 优秀
        47
    murmur   33 天前
    我们 java6 和 java8 还在混用,java12 那是遥不可及的梦
        48
    q4336431   33 天前
    我有点想不通,升级这么快,有必要么
        49
    darktutu   33 天前
    没整过 java 这个 C# 和 .net 版本快吗?
        50
    gitbug   33 天前
    可以,但没必要
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1171 人在线   最高记录 5043   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 21ms · UTC 23:04 · PVG 07:04 · LAX 16:04 · JFK 19:04
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1