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

Java16 都快出了,你们还在用 Java8 ?

  •  
  •   downstairs · 2021-02-03 19:22:21 +08:00 · 17560 次点击
    这是一个创建于 1368 天前的主题,其中的信息可能已经有所发展或是发生改变。

    能告诉我为什么吗??? 是什么限制了你使用更新版本的技术? 新版本肯定要优于老版本啊,不论是从结构性能还是设计上。

    147 条回复    2021-03-16 12:58:29 +08:00
    1  2  
    yumenawei
        1
    yumenawei  
       2021-02-03 19:25:46 +08:00   ❤️ 8
    有啥明显的收益吗?
    系统运行的好好的,万一该出了问题呢。
    secretman
        2
    secretman  
       2021-02-03 19:31:41 +08:00
    新版本出问题的时候你要么回退旧版本(损失很大),要么等修复
    我开发安卓,一开始经常喜欢引用最新 android 官方的组件,但是经常被坑,不兼容啦,bug 啦,多了去了,反而是老版本稳当。
    PonysDad
        3
    PonysDad  
       2021-02-03 19:33:32 +08:00 via iPhone   ❤️ 2
    能不加戏就不加戏
    sagaxu
        4
    sagaxu  
       2021-02-03 19:38:44 +08:00 via Android
    从哪看出来大家都在用 8 ?我们只有 11 和 15
    rainboat
        5
    rainboat  
       2021-02-03 19:41:03 +08:00
    话说 java8 之后的版本商用都要收费了吧
    waising
        6
    waising  
       2021-02-03 20:13:45 +08:00
    去年才把公司的 7 升级到 8 。。。11 公司想都不敢想 一堆祖传项目
    xupefei
        7
    xupefei  
       2021-02-03 20:15:57 +08:00 via iPhone
    升级之后发现问题,你来 24x7 oncall ?
    kassadin
        8
    kassadin  
       2021-02-03 20:17:48 +08:00
    除了语法糖的更新,内部的改动着实存在感不强
    另一方面也说明兼容性做的好,悄么么升上去啥也没发生
    AndyAO
        9
    AndyAO  
       2021-02-03 20:18:03 +08:00   ❤️ 2
    软件是很脆弱的东西
    不动的时候还经常有问题
    不要说动了

    尤其是代码非常多,关系非常复杂的时候
    chendy
        10
    chendy  
       2021-02-03 20:32:52 +08:00   ❤️ 1
    多一事不如少一事,java8 跑的好好的何必去动
    升级 java 版本有的库要跟着升,有的库升了代码要跟着改
    小项目无所谓,大项目升级个 java 版本的工作量大到没人愿意动,而且还要承担风险
    顺便一说 j8 的支持到 2026 年,相信那个时候大家已经用上了 loom 和 value class 啥的
    再顺便一说非 LTS 版本不要用
    再再顺便一说,不用是不用,了解一下新特性还是挺好的
    vicalloy
        11
    vicalloy  
       2021-02-03 20:39:28 +08:00
    之前我还一直认为 JAVA 的兼容性做的很好,版本升级肯定没问题。
    哪知道 JAVA8 之后的版本 rt.jar 没有了。
    limuyan44
        12
    limuyan44  
       2021-02-03 20:41:41 +08:00   ❤️ 18
    戏多,禁止 windows 更新的时候你们可不是这么说的。
    iyaozhen
        13
    iyaozhen  
       2021-02-03 20:43:28 +08:00
    我们发布打出的 jar 有 1G 多 来来来,你升一个
    felixcode
        14
    felixcode  
       2021-02-03 20:51:25 +08:00
    知道为什么有些人看不上 python, go, rust 了吧
    java 是可以用来养老的,一个版本用 20 年
    ijrou
        15
    ijrou  
       2021-02-03 20:51:35 +08:00
    在用 11.。。
    wdytoya
        16
    wdytoya  
       2021-02-03 21:12:41 +08:00
    了解新特性可以,但不是 LTS 不建议升,出问题都不知道怎么死的。当然你如果是个人开发随便你折腾
    cz5424
        17
    cz5424  
       2021-02-03 21:23:49 +08:00 via iPhone
    见过祖传项目 java7
    billlee
        18
    billlee  
       2021-02-03 21:25:59 +08:00
    框架不升我也没办法
    moqimoqide
        19
    moqimoqide  
       2021-02-03 21:37:13 +08:00
    技术新闻和技术会议等地方,传播的都是行业的前瞻性观点,这些声音过于响亮,得到了最大的权重。

    但是,请不要忘记,世界仍然运行在 Excel 、Java 8 和 Sharepoint 上面。

    This piece of the puzzle is the one that worries me the most. What I’m worried about is that places like Hacker News, r/programming, the tech press, and conferences expose us to a number of tech-forward biases about our industry that are overenthusiastic about the promises of new technology without talking about tradeoffs. That the loudest voices get the most credibility, and, that, as a result, we are listening to complicated set-ups and overengineering systems of distributed networking and queues and serverless and microservices and machine learning platforms that our companies don’t need, and that most other developers that pick up our work can’t relate to, or can even work with.

    I’ve spoken and written about it at length, but, most times, easier is best.

    And, if the tech is, in fact old and outdated, and the tradeoff from replacing it is lower than the tradeoff of keeping it, we shouldn’t be jumping to replace it with the latest and greatest. While we should evaluate new tools evenhandedly, most times, Postgres works just fine.

    For better or worse, the world l runs on Excel, Java 8, and Sharepoint, and I think it’s important for us as technology professionals to remember and be empathetic of that.

    From IT runs on Java 8: https://veekaybee.github.io/2019/05/10/java8/
    TypeError
        20
    TypeError  
       2021-02-03 21:46:50 +08:00 via Android
    还是等下一个 lts 再用 Java 吧,
    var + zgc + loom + graalvm 看起来挺有意思,

    最讨厌老 Java 代码一堆 XML
    cloudyplain
        21
    cloudyplain  
       2021-02-03 22:28:23 +08:00
    无非是踩坑问题,jdk8 出问题大概率已经修复或者有现成的答案,不然可能需要去翻源码或者紧跟社区的 issue,成本还是比较高的。
    jfr events api 、新的 gc ( zgc 、shenandoah )、loom 都是升级的动力。
    BBCCBB
        22
    BBCCBB  
       2021-02-03 22:32:08 +08:00
    @TypeError 这 loom 鬼知道啥时候出?
    hejingyuan199
        23
    hejingyuan199  
       2021-02-03 22:36:29 +08:00
    可是老板没有付钱让我学习新的版本。。。狗头
    sagaxu
        24
    sagaxu  
       2021-02-03 22:57:51 +08:00 via Android
    @moqimoqide 2020 年 2 月份 Java 11 已经 25%了,今年 2 月肯定超 1/3 了,明年 2 月可能超 Java 8 了,技术换代没那么快,但也不会停滞不前。
    seanxx
        25
    seanxx  
       2021-02-03 23:06:10 +08:00   ❤️ 3
    是什么原因让你问出这个问题,基于还没有工作的疑惑?
    什么版本的 java, 真正的商业项目中,v2 百分之 95 的人都决定不了
    young1lin
        26
    young1lin  
       2021-02-03 23:15:29 +08:00
    你确定需要用到那些 Features 吗?你升级任你升级,我还是 8 打天下 [doge]
    industryhive
        27
    industryhive  
       2021-02-03 23:19:12 +08:00
    @BBCCBB 幸运的话,今年的 17 版本就能看到
    PDX
        28
    PDX  
       2021-02-03 23:22:20 +08:00
    真的想知道升级的话会出现什么问题。
    wolong
        29
    wolong  
       2021-02-03 23:28:02 +08:00
    够用就行,新版本未必比老版本好。
    watzds
        30
    watzds  
       2021-02-03 23:32:15 +08:00 via Android
    Java7 不能用吗
    yeziqing
        31
    yeziqing  
       2021-02-03 23:34:41 +08:00
    在用 11 和 14
    inframe
        32
    inframe  
       2021-02-03 23:45:23 +08:00
    企业项目稳定压倒一切,
    早点下班不好吗
    出问题谁负责,手动滑稽
    tiancaixiaoshuai
        33
    tiancaixiaoshuai  
       2021-02-04 00:04:10 +08:00
    if it ain't broke, don't fix it
    初中的时候听到这句,现在越来越觉得是至理名言
    Jooooooooo
        34
    Jooooooooo  
       2021-02-04 01:16:37 +08:00
    "新版本肯定要优于老版本啊"

    当然不是, 旧的东西跑的好好的, 无缘无故是升级带来的不稳定能仔细评估才能升级.

    (可以找个大公司核心团队呆呆就能体会到了
    coolesting
        35
    coolesting  
       2021-02-04 02:32:57 +08:00   ❤️ 1
    用 jdk8 跑 kotlin,你会发现远超 java16,我保证。
    kingfalse
        36
    kingfalse  
       2021-02-04 02:39:26 +08:00 via Android
    怎么说呢,这事吧,就好比一个暴躁老哥对你说,“你动我一下试试”
    kingfalse
        37
    kingfalse  
       2021-02-04 02:40:05 +08:00 via Android
    不怕挨揍你就动
    Mirage09
        38
    Mirage09  
       2021-02-04 02:57:29 +08:00 via iPhone
    aws lambda 默认 java11 是我第一次接触 8 以上的版本
    tsui
        39
    tsui  
       2021-02-04 03:17:27 +08:00
    新版本肯定要优于老版本啊,不论是从结构性能还是设计上。

    刚毕业?
    memedahui
        40
    memedahui  
       2021-02-04 08:35:33 +08:00
    Java 发行版 发行日期
    Java 8 Update 281 CPU 2021 年 1 月 19 日
    sunziren
        41
    sunziren  
       2021-02-04 08:40:08 +08:00
    6
    lqw3030
        42
    lqw3030  
       2021-02-04 08:41:06 +08:00   ❤️ 1
    我猜你工作没多久一定,或者还没接触工作
    Jiangyf
        43
    Jiangyf  
       2021-02-04 08:41:21 +08:00   ❤️ 1
    你发任你发,我用 Java8 。
    uselessVisitor
        44
    uselessVisitor  
       2021-02-04 08:46:52 +08:00
    Java8 哪里不能满足你了吗?
    你的业务必须要用高版本的特性吗?
    dbpe
        45
    dbpe  
       2021-02-04 08:47:02 +08:00
    loom 出了..我就力荐上这个
    jzmws
        46
    jzmws  
       2021-02-04 08:47:35 +08:00
    坚持使用 jdk 1.8 一百年不动摇! 更新 jdk 代价太高了 ,为此引起的系统不稳定风险没人肯承担
    dbpe
        47
    dbpe  
       2021-02-04 08:47:53 +08:00
    (为什么不上..其实大部分人懒得升级而已(历史债,大量用了一些废弃的接口和类,然后这些弄起来很头疼
    dbpe
        48
    dbpe  
       2021-02-04 08:49:40 +08:00
    idoggy
        49
    idoggy  
       2021-02-04 08:50:37 +08:00 via Android
    银行系统用的上世纪的 cobol,也没见你不去存取啊
    BBCCBB
        50
    BBCCBB  
       2021-02-04 08:55:05 +08:00
    @industryhive 兄弟哪里看到的? 我们现在是 11, 如果没有 loom 出来, 估计就真的没动力升级了.. 🐶
    bthulu
        51
    bthulu  
       2021-02-04 09:05:19 +08:00
    @vicalloy 难道你不是直接调用 rt.jar 里的类, 而是自己读取 rt.jar 文件自己加载?
    felixcode
        52
    felixcode  
       2021-02-04 09:08:54 +08:00 via Android
    所谓企业级稳定就是 CentOS 6/7 + Java 6/7/8
    cyrivlclth
        53
    cyrivlclth  
       2021-02-04 09:11:03 +08:00
    java8?什么时候出的? 想起我之前那个银行还在用 java6
    MaxLi77
        54
    MaxLi77  
       2021-02-04 09:13:06 +08:00
    16 很吊吗?你去和谷歌说啊,你问问 Android 用的 Java 几?
    vicalloy
        55
    vicalloy  
       2021-02-04 09:13:15 +08:00
    @bthulu 一些用到 rt.jar 的第三方库会有影响。
    sagaxu
        56
    sagaxu  
       2021-02-04 09:15:36 +08:00 via Android
    @dbpe 不是懒,而是老系统真没法动,几个人花几个月升级,最后大概率以失败告终。现在还有一些 1.4 和 1.6 的系统在跑着,升级到 1.8 都不太可能。老系统全靠业务倒闭下线。
    mercurius
        57
    mercurius  
       2021-02-04 09:16:42 +08:00
    我怀疑你在钓鱼
    hpeng
        58
    hpeng  
       2021-02-04 09:17:31 +08:00 via iPhone
    又不是不能用
    NotFoundEgg
        59
    NotFoundEgg  
       2021-02-04 09:19:18 +08:00
    Java 8 躺枪

    Java 8 后面就 11 是 LTS,再之后就是 16,看着版本号吓人而已
    pavelpiero
        60
    pavelpiero  
       2021-02-04 09:19:24 +08:00
    严重你们公司是不是就一个系统,而且还是用的最新版本的 springboot 。
    历史遗留问题我司还有 java6 的项目,主流还有 java7 的,新系统才是 java8 的。
    传统行业留下了羡慕的泪水,java7 升级 java8 的坑才刚刚踩完,一步就到 16 了,可能这就是互联网吧。
    dbpe
        61
    dbpe  
       2021-02-04 09:24:16 +08:00
    @pavelpiero 都有什么坑啊,好奇..我记得 7 到 8,没什么改动吧...(我们当时还是比较顺利)
    cheng6563
        62
    cheng6563  
       2021-02-04 09:27:58 +08:00
    LTS 版本又没升几个
    CismonX
        63
    CismonX  
       2021-02-04 09:28:13 +08:00
    除非有非常大的收益(比如大幅度的性能提升,或者不得不用的新特性),不然生产环境是不会轻易更新大版本的,越大规模的公司在这方面就会越保守。虽然更新以后不一定会出问题,但不能证明不存在风险,那我为什么要去承担这样的风险,给自己挖坑?

    当然个人项目中,还是愿意去学习和尝试新的特性的。
    Cbdy
        64
    Cbdy  
       2021-02-04 09:31:19 +08:00 via Android   ❤️ 1
    Java8 和 Java11 混用,不过这种比较细节了,做服务端的蠢人太多,特别是 Java
    为了不和这帮人打交道,我大多数时间在做前端了
    事实是,大多数领导是服务端出身的,所以通常对前端一知半解,但又意识到现代前端和以前朴素的 HTML 、CSS 、JS 有了巨大的变化。所以留给一线前端开发者发挥的余地很大,而且前端毕竟离核心数据比较远,大多数时候用啥技术方案都可以说服领导,还不用 on call
    所以想要使用 Java11+、远离坚守在 Java6 、7 、8 古怪队友,可以转前端,自己业余项目用用 Java 即可
    pavelpiero
        65
    pavelpiero  
       2021-02-04 09:41:55 +08:00
    @dbpe 老项目了用的 spring3.* 升级 1.8 之后应用本地开发和测试都没出过问题,但是放到生产环境久了就经常莫名死掉。后来多方排查升级了 spring 版本才解决了这个问题,深究原因可以追溯到 spring 对并发容器的使用那里。
    passerbytiny
        66
    passerbytiny  
       2021-02-04 09:47:28 +08:00 via Android
    第一,从 Java8 到 Java11,在 API 层面几乎没有变动,所以除了性能考虑外没有升级的动力。

    第二,自 Java9 开始,Java 在变成滚动更新的同时,抛弃了向后兼容性。没有向后兼容性,不做全量测试没人敢升级,而全量测试基本没人愿意做。
    jason19659
        67
    jason19659  
       2021-02-04 10:00:32 +08:00
    8 的下一个 LTS 版本是 11,也是最新的 LTS,你是不是对升级有什么误解??
    alexgor
        68
    alexgor  
       2021-02-04 10:02:07 +08:00
    肯定不会啊,7 不好吗?
    jitongxi
        69
    jitongxi  
       2021-02-04 10:02:21 +08:00
    爷直接 kotlin 不香?你 java20 出来怕都是打不过
    muyiluop
        70
    muyiluop  
       2021-02-04 10:12:22 +08:00   ❤️ 1
    17 出来后,新项目打算全用 17
    charlie21
        71
    charlie21  
       2021-02-04 10:18:09 +08:00
    JDK 8 升级 16 等于升级轮胎
    JAVA 变 Kotlin 等于圆轮胎变方轮胎
    一本正经讨论什么 by V2EX 的工人爷爷们今天又喝醉了
    项目质量需要靠测试来保证 做到什么程度的测试是另一回事,做不做测试都是另一回事,难道你不做测试同时用了老版本 JDK 8 就高枕无忧了吗怎么可能。测试 风险 JDK 版本,本是风马牛不相及的 就爱拧在一起讲,自己项目测试不到位就责怪 JDK 高版本带来了风险,工人爷爷逻辑大师们就是如此真性情
    duanxianze
        72
    duanxianze  
       2021-02-04 10:21:18 +08:00
    能加薪吗?出了事你负责吗?
    zoyua
        73
    zoyua  
       2021-02-04 10:22:40 +08:00
    因为目前只有 8 和 11 是 LTS 吧
    CBS
        74
    CBS  
       2021-02-04 10:22:47 +08:00
    AS 内置的 OPENJDK
    jjianwen68
        75
    jjianwen68  
       2021-02-04 10:23:08 +08:00
    到时候直接升级使用 jdk17,中间版本就不考虑了
    bbao
        76
    bbao  
       2021-02-04 10:27:26 +08:00
    9~11 的特性面试的时候都背熟悉了吗?
    arvinsilm
        77
    arvinsilm  
       2021-02-04 10:38:47 +08:00
    如无必要,勿增实体
    lancelock
        78
    lancelock  
       2021-02-04 10:47:16 +08:00
    刚刚翻了一遍 8 到 16 的新增特性,硬是没发现啥很重大的更新,现在版本号刷的勤快而已
    securityCoding
        79
    securityCoding  
       2021-02-04 10:48:45 +08:00
    @iyaozhen 有很多前端代码在里面?如果纯后端 1g 就有点恐怖了
    Phariel
        80
    Phariel  
       2021-02-04 10:53:06 +08:00
    楼主你是故意的?如果这真是你真实想法 那我想说 你先在这一行被毒打几年再来说这个话题吧。。。
    yyfbbb
        81
    yyfbbb  
       2021-02-04 10:53:17 +08:00
    我觉得吧,这波,是楼主在骗回复
    zhouquanbest
        82
    zhouquanbest  
       2021-02-04 10:54:05 +08:00
    你让我们 Android 怎么办 不升级到 AGP4.0 连完整 Java8 都没有
    所以直接 Kotlin 吧
    pangleon
        83
    pangleon  
       2021-02-04 10:56:19 +08:00
    显卡都出到多少了,你用上了么?
    qiumaoyuan
        84
    qiumaoyuan  
       2021-02-04 10:57:08 +08:00
    一句话回答:因为这帮人不写测试
    duan602728596
        85
    duan602728596  
       2021-02-04 11:07:40 +08:00
    因为缺少一个像 babel 那样的工具
    xxy973211
        86
    xxy973211  
       2021-02-04 11:22:58 +08:00
    @waising 话语中透露着金融项目的气息
    u0mo5
        87
    u0mo5  
       2021-02-04 11:28:25 +08:00
    有个词叫技术债务,
    新项目新公司,你愿意用啥都没人管你,
    大公司,大项目,多项目,考虑的不是新特性,优先考虑的是稳定性,平衡性,兼容性,安全性,可持久,可维护......
    理想的技术环境,受现实制约的问题
    whywhywhy
        88
    whywhywhy  
       2021-02-04 11:34:06 +08:00
    有没有胆量把公司的项目都用新版本重构呢。。。
    msg7086
        89
    msg7086  
       2021-02-04 11:53:02 +08:00
    我司还在用 7,之前我们组打算升 8,结果要死要活的,服务器上跑不起来。
    yaorc
        90
    yaorc  
       2021-02-04 12:00:17 +08:00
    因为要求稳。公司如果有十几个项目,升级可能会引发蝴蝶效应,得不偿失。
    industryhive
        91
    industryhive  
       2021-02-04 12:06:03 +08:00
    @BBCCBB 在知乎上看到有人这么说,而且现在 loom 项目已经可以用了,就是不知道今年的 17 能不能上。不过相比于 project loom,我更在意 project valhala,能用上自定义值类型和真正的泛型,对性能有很大的提升,但是距离 valhala 正式发布可能还很远,17 是等不到了,估计要到 23 。
    CodeBase
        92
    CodeBase  
       2021-02-04 12:08:22 +08:00
    有啥用,大家都用 8 的话,他升 80 又咋地
    yamasa
        93
    yamasa  
       2021-02-04 12:19:09 +08:00
    又不是 lts 你说个屁呢,工作几年了?无脑上 16 生产环境出问题你敢一个人拍胸脯吗?
    msaionyc
        94
    msaionyc  
       2021-02-04 12:22:59 +08:00 via Android
    lz 隔这钓鱼呢,没必要回了
    hantsy
        95
    hantsy  
       2021-02-04 12:23:54 +08:00
    @sagaxu 你又在吹。。。上次你说还在用 8 。
    hantsy
        96
    hantsy  
       2021-02-04 12:28:26 +08:00
    @sagaxu 我觉得升级简单的很,不升级只有一个原因,懒。

    IDEA 和 NetBeans IDE 的 Inspect 功能直接可以替换语法,已经试用全局替换一个项目语法,而且基本没有出错(有的稍微调整一下),CI 上之前本来就一直在加了一个最新 Java 运行测试(保证语法上兼容)。
    sonxzjw
        97
    sonxzjw  
       2021-02-04 12:37:21 +08:00
    你们都用 16 、8,我还是 1.8 呢,差了 n 倍
    meteor957
        98
    meteor957  
       2021-02-04 13:06:43 +08:00
    kotlin 确实更香 谁还关心 java 的版本
    sagaxu
        99
    sagaxu  
       2021-02-04 13:09:17 +08:00 via Android
    @hantsy 语法只用到 8,JVM 用上 11 和 15 了,新增代码都是 Kotlin 无所谓 Java 版本。

    有几个我接手过的老项目,没有需求文档,没有单元测试,连项目有哪些功能都没人说得清,代码库里的代码跟实际部署的对应不上,升级就是玩火啊,幸运的是业务下线废弃不用了
    taylorzhi
        100
    taylorzhi  
       2021-02-04 13:32:10 +08:00
    手机电脑是出一个就换一个吗
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2770 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 14:37 · PVG 22:37 · LAX 07:37 · JFK 10:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.