
Java 采取六个月发布一个版本以后,每次发布大家的关注少了很多了。。
不理解为什么要发布 preview 的 feature,这种 feature 大家敢用吗。
感觉需要一个 Babel,可以配置转换到特定版本,特定 Runtime 的 JDK,对,我说的就是 Kotlin。
1 chendy 2020-03-18 10:04:06 +08:00 距离下一个 LTS 的 17 还有一年半时间 感觉 loom 这种依然遥遥无期… |
2 yjxjn 2020-03-18 10:06:53 +08:00 Java8 路过。。。现在学习 Java8 太合适了,资料多,而且企业大部分都是 8,甚至有些是 6 |
3 TypeError 2020-03-18 10:09:05 +08:00 via Android 还是 kotlin 好 |
4 hantsy 2020-03-18 10:12:24 +08:00 重新下载一遍 OpenJDK,发现和半个月前下载的文件一样。应该是早就准备好发布了,之前就奇怪,Java version 打印出来的日期是 3 月 17 号。 AdoptOpenJDK 14 还没发布正式版本。 Preview 这种方式挺好的,没正式发布之前,先得到用户反馈,不断改进。总之一下出来的标准好。 切换 JDK,用 Maven 的 Tool Chain 就好了。 Text Block,Record ( Kotlin Data Class Clone ),Pattern Marching (现在还不是很好用,功能不如 Scala 强大)现在 Java 14 都有了。Sealed Class 也在加入之中。这对提高开发效率还是不错的。 |
5 wysnylc 2020-03-18 10:14:39 +08:00 小步快跑可比瀑布模式好多了,发现有问题及时改正还来得及 |
6 looplj OP |
7 sagaxu 2020-03-18 10:19:13 +08:00 via Android 半年一个版本谁敢用 |
9 Rwing 2020-03-18 10:22:02 +08:00 C# 欢迎各位 |
10 hantsy 2020-03-18 10:26:18 +08:00 Instanceof Pattern Matching https://github.com/hantsy/java-sandbox/blob/master/docs/instanceof-pattern-matching.md Helpful NPE Exception Messages https://github.com/hantsy/java-sandbox/blob/master/docs/helpful-npe.md Record https://github.com/hantsy/java-sandbox/blob/master/docs/record.md Small improvements in Text Block https://github.com/hantsy/java-sandbox/blob/master/docs/java14-text-block-improvement.md |
11 ben1024 2020-03-18 10:27:48 +08:00 14 了?感觉 8 以后完全没有更新的可能了 |
12 DonaidTrump 2020-03-18 10:28:36 +08:00 via iPhone @gz911122 前端很少设计业务逻辑,后端往往和业务逻辑数据库挂钩,想对比起来同样更新频度,后端风险更高 |
13 hantsy 2020-03-18 10:29:58 +08:00 @sagaxu Spring 5.3 兼容 14 了。一些新语言特性也在支持中,看到有 Experiemental 项目尝试支持 Record (肯定要等 Record 稳定后才可能出现在 Spring 正式版本中)。 |
14 keshawnvan 2020-03-18 10:32:07 +08:00 之前团队从 Java8 升级到 Java11 过,收益并不大,迁移成本还不小。后续升级应该会谨慎很多。。。 |
15 gz911122 2020-03-18 10:32:37 +08:00 |
16 yiyi11 2020-03-18 10:33:09 +08:00 via Android 好奇问下,jdk 历史上有 breaking change 吗? |
17 micean 2020-03-18 10:37:43 +08:00 NPE 改进挺重要的 record 在 lombok 的加持下有些鸡肋…… |
18 hantsy 2020-03-18 10:38:09 +08:00 @keshawnvan 8-11 不知道会有什么成本?难道你全部用 Module System ? 收益方面嘛,11 后我用得多的几个语言特性: var, Collections 的 .of 静态工厂 另外,Optional,Stream 等也在 8 后加入一些实用方法。 |
19 zzzmh 2020-03-18 10:38:26 +08:00 8 还能用一万年 |
20 arthas2234 2020-03-18 10:38:52 +08:00 现在还用 jdk8,之前从 jdk6 升级上来的,真香。。 |
21 keshawnvan 2020-03-18 10:42:35 +08:00 @hantsy 我们之前的项目有兼容旧系统的一些接口,升级 11 之后 JavaEE 的东西都干掉了,兼容花了很长时间。11 在语法层面的提升比较小,用的比较多的就是 List.of()和 Map.of()。var 很少用,什么时候 Java 能出个 val。。。 |
22 samondlee 2020-03-18 10:42:56 +08:00 很多在运营手游服务端后端还在用 jdk6 |
24 BBCCBB 2020-03-18 10:44:07 +08:00 @chendy 之前准备弄 2 套, 一套原来的现成, 一套可以无缝切换的协程, 现在又特么改了. 直接替换线程实现协程了貌似. 遥遥无期. |
25 rockyou12 2020-03-18 10:48:04 +08:00 还好吧,14 那个 switch 真的很像 kotlin 的 when 了,这个语法比之前那些香多了,再也不用 if..if else..if else........ |
26 luzemin 2020-03-18 10:50:11 +08:00 公司用的 8 |
27 Tn5ohB1Yecdk3qCK 2020-03-18 10:51:54 +08:00 等 jdk20 再说 |
28 jinsongzhao 2020-03-18 10:51:57 +08:00 头像很漂亮,哦哦,你说的是 JDK 14 呀 |
29 yuexuan 2020-03-18 11:00:54 +08:00 我们公司还在用 8 呀... |
31 pmispig 2020-03-18 11:17:54 +08:00 就算出了 JDK 10086,我还是坚持 1.8 |
32 Greendays 2020-03-18 11:18:29 +08:00 这是面向 KPI 更新吗? |
33 richard1122 2020-03-18 11:18:58 +08:00 好多 kotlin 的特性 java 也有了。。 |
34 MakHoCheung 2020-03-18 11:19:45 +08:00 @chendy java20 应该就有了 |
35 redford42 2020-03-18 11:20:08 +08:00 8 很好,先这样吧 |
36 nefuer 2020-03-18 11:21:45 +08:00 @jinsongzhao 看头像 哈哈哈 |
37 MrBearin 2020-03-18 11:24:29 +08:00 管他咋更新, 我脚的公司就会一直用 8..... |
38 liangzimo 2020-03-18 11:29:53 +08:00 .net 5 preview 1 也出来了 |
39 murmur 2020-03-18 11:31:53 +08:00 坚持 java8 不动摇 |
40 ice2neet 2020-03-18 11:38:45 +08:00 loom 还没出 没啥质的改变 8 够用了 |
41 xFrye 2020-03-18 11:42:39 +08:00 下次一定,我还是用 8 |
42 specture 2020-03-18 11:51:26 +08:00 @keshawnvan 迁移的成本体现在哪些方面? |
43 FrankD 2020-03-18 11:58:23 +08:00 via Android java8 对企业来说还是免费的,后面就要收费了,除非用的不是 oracle 家 |
44 looplj OP 现在来说,8 确实已经够用了,后面的更新都是不痛不痒的,大家都不怎么关注。 估计下个大发布,就是 Loom 了。 |
45 wangxiaoaer 2020-03-18 12:23:59 +08:00 via Android @zichen 泛型支持了没? |
46 looplj OP @zichen 我的关注点是 preview 的 feature,没有一个兼容的机制,preview 的后来被删了就尴尬了,我觉得大家是不敢用的。Go 也是 6 个月一个版本,但是会兼容的; Java 以前也是兼容著称的,现在改成这种发布,真没觉得好。 |
47 hantsy 2020-03-18 12:37:14 +08:00 @keshawnvan Java EE 部分主要是 JDBC,XML,Web Service 的为了写 Client 程序的一些 API,早就计划删除,这些只要重要加回依赖就好了。 |
49 bk201 2020-03-18 12:41:19 +08:00 升级的需求是啥?拼命更新,老系统都吃不消吧 |
50 hantsy 2020-03-18 12:43:06 +08:00 实际从 8 后面,JVM 的变化非常大,GC 算法增删很大,这些不是做这些领域的工作,没怎么关心。 |
51 hantsy 2020-03-18 12:43:48 +08:00 @ZSeptember Kotlin 的语言特性也是采用这种机预览机制添加的。 |
52 GM 2020-03-18 12:44:24 +08:00 我就想问默认参数什么时候支持啊?复杂一点的类,本来一个构造函数就能搞定的事情,现在要要一二三四五,甚至六七八个构造函数,累不累啊? |
55 hantsy 2020-03-18 12:48:48 +08:00 @sorra 有些标准化, 比如 Base64 Encoder。 很少量的删除了,一般都是有替代品。一个主要我看到就是清理以前 com.sun 里面的 API,这里面有很多写工具,操作 Class 文件可能用到的 API。除非大势已去的,比如 Applet,直接 Cut 掉了。 |
56 hantsy 2020-03-18 12:56:40 +08:00 另外一个 Java 11 中 Stable 的特性是 HttpClient,我觉得算是一大特性,它基于新的 Java9 Flow API 和 8 的 Future API。 试用过,感觉有点点怪怪的。写什么客户的时候不需要再用第三方 Http Client,如 Apache,OKHttp 等。 处理一般的文件,InputStream,String 的数据都是可以的,JSON 可以借标准 JSONB,JSONP 等。 |
57 cgpiao 2020-03-18 12:57:19 +08:00 java14 出来后跟 kotlin 好像。 |
58 hantsy 2020-03-18 13:06:27 +08:00 Kotlin 现在 Spring 是全盘接受,Kotlin 确是一等公民,所有特性都是急于添加 Kotlin DSL 支持。Kotlin DSL 语法是好是坏,我个人没太多感觉。 虽然 Spring 以前也接受过 Groovy,Scala。Groovy 进入了 Spring 核心,坐了冷板凳。Scala 还未进入核心,直接放弃了。 Kotlin 感觉强大的两个东西,extensions, reified,很多 Spring 的 Kotlin API 简化支持都是在 Reified 语法上做文章。 |
59 sagaxu 2020-03-18 13:07:23 +08:00 via Android 移除了 CMS 垃圾收集器,ZGC 也支持 Mac 和 Win 了 |
60 lawrencexu 2020-03-18 13:21:20 +08:00 via Android @yiyi11 之前 8 有个小版本引入了 keystore 相关的安全性增强,然后很多应用就挂了,需要 workaround 才能正常工作。7 升 8 的时候计算的 rounding 改过,8 升 11 的时候 locale 相关也改过。这只是我碰过的。 |
61 hantsy 2020-03-18 13:23:00 +08:00 CMS 是不是已经删除了? |
62 jinsongzhao 2020-03-18 13:27:57 +08:00 需要用到 Nashorn Javascript 引擎,9 以后就 Deprecated 了。比较关心多个 jar 包运行时,是否真共享 jvm,节省内存了。 |
63 hantsy 2020-03-18 13:34:39 +08:00 @jinsongzhao 已经删除了 JS Engine。 |
64 Mithril 2020-03-18 13:38:43 +08:00 @hantsy Oracle 这公司已经算是业界毒瘤了吧,口碑比当年的微软还差。 你仔细看看协议,Oracle 发布的 JDK 是每个版本只维护半年,半年后是没有免费更新的,哪怕 LTS 都是一样。你想用那就要么跟着半年更新一个大版本,要么就买服务。订阅服务是可以获取长期更新的。 不然为什么大厂都发布自己的 build,就是因为原来用的好好 Oracle JDK 没法用了。 |
65 coderEOS 2020-03-18 14:06:38 +08:00 via Android skip this version +10086 |
66 keshawnvan 2020-03-18 14:10:21 +08:00 @hantsy 依赖没那么好加,很多给出的依赖都不好用。。依赖在运行时不兼容的问题也很多 |
67 tairan2006 2020-03-18 14:17:13 +08:00 要看 LTS 版本,这种普通版本无所谓了…跟 go 不一样,go 的随便升级的 |
68 toms0301 2020-03-18 14:23:08 +08:00 还在使用 java1.6. |
69 zpf124 2020-03-18 14:25:31 +08:00 @FrankD 然而事实是只有截止 JDK8_u202 是使用的旧的协议, 之后的 JDK8 版本协议也换成最新的那版不支持免费商用的版本了。 也就说说从 19 年 3 月之后在 oracle 官方下载的最新版本 jdk8 用于商用的话都是违反协议的。 想免费商用那只能当 JDK8 也结束维护周期了,只能注册一个账号然后去它的 release 存档里找 u202 之前的版本。 (不过我身边还是没有见到有谁提这茬事,还是依旧去下最新的 jdk8 继续用) |
70 Cbdy 2020-03-18 14:32:46 +08:00 @jinsongzhao nashorn 可以转 graaljs,graaljs 提供了 nashorn 兼容模式,加两个 jar 依赖即可 https://github.com/graalvm/graaljs/blob/master/docs/user/NashornMigrationGuide.md |
71 cwjokaka 2020-03-18 14:34:33 +08:00 java8 能战 10 年 |
72 zpf124 2020-03-18 14:36:17 +08:00 @hantsy Oracle jdk 的新协议是对任何商用都收费,和订阅不订阅没关系。Oracle 官网提供的 jdk 和 openjdk 官网提供的 jdk 是两份东西,包含的私有技术和使用的协议都不同。openJdk 的协议才是用的原来的可免费商用的协议。 Oracle 确实对开源贡献很大,一方面他们确实将自己的部分内部技术拿来提升了开源项目,另一方面他们也买黄了好几个开源项目。 |
73 Adven 2020-03-18 14:50:03 +08:00 Kubernates 每个季度都会发布一个版本,有许多 API 接口都是不稳定的 alpha 版,这个并不会影响用户实际使用,未到生产可用的 API 不使用就完了。 |
75 anjuyiyu 2020-03-18 14:54:43 +08:00 14 看了遍新特性, npe 的调整还是可以, gc 相关的改动很多, cms gc 在 14 退役了, 不过生产还是 Java 8。升级收益点不是很清晰 |
77 hantsy 2020-03-18 15:28:22 +08:00 |
78 t2doo 2020-03-18 15:34:20 +08:00 昨天头一回用那个 mybatis 写了个 select,run 的时候报错代码 5,噢,原来是要用 jdk8,真香 |
79 fate 2020-03-18 17:19:22 +08:00 什么时候支持纤程 |
80 IGJacklove 2020-03-18 17:33:45 +08:00 @wysnylc 谁敢用?。。。自己学着玩还差不多。 |
81 daozhihun 2020-03-18 22:10:01 +08:00 我觉得近几年更到 11 有希望,14 估计还要等个七八年吧 |
82 q447643445 2020-03-18 22:31:10 +08:00 8 都没摸透. 11 就更没去看了 |
83 jelipo 2020-03-18 23:21:44 +08:00 Kotlin 什么都好,就是那个异常不能强制抛出了,现在的业务异常严重依赖 Exception。 |
84 Ziav 2020-03-18 23:36:34 +08:00 via Android 吓得我赶紧抱紧我的 Java 8 |
85 0xljh 2020-03-19 11:10:21 +08:00 升级 jdk 版本对 kpi 没用,出锅了还要背锅 |
87 xcstream 2020-03-19 12:50:57 +08:00 java 出到 100 了还是大多数用 8 |
88 alya 2020-03-20 14:57:49 +08:00 我选 scala |
89 goodboy95 2020-04-01 20:08:27 +08:00 @ben1024 更新个 var 也不错嘛,虽然在 idea 上我还是尽量避免用 var 的,不能像 vs code 一样把鼠标放上去自动显示实际类型。 |
90 MotherShip 2020-04-01 21:48:45 +08:00 不是 LTS 谁用啊。。 Record 字段多没法写注释太 sb 了,被 lombok 吊着打 JDK11 也没啥动力更新,说实在 lombok 的 var 和 val 已经够用了。。再说想吃语法糖不如 kotlin |
91 tldzyx 2020-07-03 14:46:11 +08:00 我司定格在 jdk-8u181 这个版本了, 原因也很简单粗暴: CDH 官方认证, 然后集群统一 jdk 版本利于运维. https://docs.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_java_requirements.html#concept_hzw_zyl_rcb |
92 tldzyx 2020-07-03 14:49:47 +08:00 https://docs.cloudera.com/documentation/enterprise/release-notes/topics/rn_consolidated_pcm.html#concept_ihg_vf4_j1b 贴错了, 因为 CDH6 吃相不太好看, 恰好运维也不想升级折腾, 所以 CDH 5.16.x 是在用版本. |
93 wenjun19931112 2020-10-20 17:36:23 +08:00 jdk14 可以到这里来下载 http://www.jdkdownload.com/ |