
看到 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 Expressions (Preview)
这是一个预览版语言特性。通过对 switch 语法进行了扩展,使其不仅可以作为语句( statement ),还可以作为表达式( expression ),并且两种形式都可以使用“传统的”或“简化的”语法用于作用于不同的范围或者控制执行流。这些更改将会简化日常编码,并且为在 switch 中使用模式匹配 (JEP 305) 做好了准备。
JVM Constants API
引入一个 API 来建模关键类文件( key class-file )和运行时构件( run-time artifacts )的标称描述,特别是对那些可从常量池加载的常量。
One AArch64 Port, Not Two
删除与 arm64 实现相关的所有源代码,同时保留 32-bit ARM 和 64-bit aarch64 实现。删除这些实现是为了让所有代码贡献者集中精力于一个实现上,从而消除维护两个实现所需付出的重复工作。
Default CDS Archives
增强 JDK 构建过程,在 64 位平台上使用默认的类列表生成类数据共享(class data-sharing,CDS)存档。
Abortable Mixed Collections for G1
如果 Mixed GC 的 G1 存在超出暂停目标的可能性,则使其可被中止。
Promptly Return Unused Committed Memory from G1
增强 G1 垃圾收集器,以便在空闲时自动将 Java 堆内存返回给操作系统。
啥都不说了,JDK 13 您慢点出吧,快要掉队了,我跟不上了...
1
sadhen 2019 年 3 月 20 日 学 Scala 吧,相当于你已经学到了 JDK 20,哈哈
|
2
Cat73 2019 年 3 月 20 日
算一算,几年后 Java 版本号能赶上你的年龄
|
3
jxf2008 2019 年 3 月 20 日 改行 C/C++吧。十几年一个大版本,慢慢学:-)
|
4
guokeke 2019 年 3 月 20 日
学**, 项目做完了吗?
|
5
lihongjie0209 2019 年 3 月 20 日
说实话,这些特性不影响写代码。哪怕不知道该怎么写就怎么写, 学这些干嘛
|
6
AltairT 2019 年 3 月 20 日 via iPhone
只跟 lts, 生产环境才 8 呢,换也是换 lts 的 11
|
8
allanzhuo 2019 年 3 月 20 日
8 的写法还没适应呢==!
|
9
Kilerd 2019 年 3 月 20 日
pattern matching 该来的还是要来。 哈哈哈
|
10
Procumbens 2019 年 3 月 20 日
@jxf2008 C++20 表示不服
|
12
DesmondLiu90 2019 年 3 月 20 日
貌似 java 程序员不需要
|
13
boris1993 2019 年 3 月 20 日 via Android
同样只跟 LTS
目前还在学 Java 8 的 Stream 和 Lambda 等用得上 11 了再学 11 |
14
jxf2008 2019 年 3 月 20 日
|
16
SuperMild 2019 年 3 月 20 日
Kotlin, 真香.
|
17
neoblackcap 2019 年 3 月 20 日
@jxf2008 11 还是可以的,很公司都开始接受 11,更高的就难说了,说起 11,那也是 8 年前的产物
|
18
zhuanggu 2019 年 3 月 20 日
JDK 8 还没学完😢
|
19
yizmaoaa 2019 年 3 月 20 日
JDK 12 把多行字符串给毙掉了,还是有点可惜的。
|
20
coang 2019 年 3 月 20 日
然而基本是 jvm 的更新.. 语法没有大更新..
|
21
Raymon111111 2019 年 3 月 20 日
语言不是重点, 多工作几年就懂了.
|
22
philipjf 2019 年 3 月 20 日
所以现在主流大厂生产环境用的是哪个版本?
|
23
ukyoo 2019 年 3 月 20 日
安卓到现在只能兼容 8 的部分特性
|
24
ostholz 2019 年 3 月 20 日
Java 6 以后就再也不碰 Java 了。
|
25
xuhaoyangx 2019 年 3 月 20 日
kotlin 路过
|
26
avalon0624 2019 年 3 月 20 日
只跟 lts , 现在生产环境还是 8, 慢慢来,跟得上
|
27
forestyuan 2019 年 3 月 20 日
貌似 Java 现在要收费了吧
|
28
heron518 2019 年 3 月 20 日
只能表示 JDK 8 之后没有在看过
|
30
mango88 2019 年 3 月 20 日
还在研究 java 8 的路过
|
31
fansangg 2019 年 3 月 20 日
kotlin 路过
|
32
FLADIMIR 2019 年 3 月 20 日 via Android
没必要,我觉得 Java8 就 OK 了
|
33
ibcker 2019 年 3 月 21 日
楼上的,你们有人听过 swift 么?逃...
|
34
ericgui 2019 年 3 月 21 日
@jxf2008 其实是有道理的,这几年吧,我特别讨厌各种东西都飙版本,但 C++似乎很多公司还在用 C++98 什么的,当然,这个太落后了, 但 C++11 应该是主流的吧,所以 C++或许真的是个好选择
|
35
xuanbg 2019 年 3 月 21 日
没看到 Java12 有什么需要学的新知识啊?不都是一些新功能吗??不是拿来用就行的吗???
|
36
zkeeper 2019 年 3 月 21 日
转 Go 吧, 半年一个小版本, 哈哈
|
37
bokchoys 2019 年 3 月 21 日 via iPhone
程序羊吗?
|
38
lrh3321 2019 年 3 月 21 日
Kotlin 路过,语法糖吃着真香
|
39
bobuick 2019 年 3 月 21 日
话说现在 G1 生产普及到什么程度了,怎么感觉回头 ZGC 会像 G1 一样,还没怎么玩耍呢,就被后浪扑死在沙滩上了 =。=
|
40
hellowes 2019 年 3 月 21 日
没关系,JDK8 还没普及完了,JDK8 板载
|
41
orangeD 2019 年 3 月 21 日 via Android
还在用 6 的飘过
|
42
weo0 2019 年 3 月 21 日
up 主 您好
|
43
spotmini 2019 年 3 月 21 日
现在才用 j8,2014 发布的,所以五年以后在学 12 也不迟
|
45
lhr_lovehoney 2019 年 3 月 21 日 via Android
@jxf2008 想不到那个赵老师这么出名
|
46
NullWithMe 2019 年 3 月 21 日
@Cat73 优秀
|
47
murmur 2019 年 3 月 21 日
我们 java6 和 java8 还在混用,java12 那是遥不可及的梦
|
48
q4336431 2019 年 3 月 21 日
我有点想不通,升级这么快,有必要么
|
49
darktutu 2019 年 3 月 21 日
没整过 java 这个 C# 和 .net 版本快吗?
|
50
gitbug 2019 年 3 月 21 日
可以,但没必要
|