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

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

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

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

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

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

    但是,请不要忘记,世界仍然运行在 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   300 天前 via Android
    还是等下一个 lts 再用 Java 吧,
    var + zgc + loom + graalvm 看起来挺有意思,

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

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

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

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

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

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

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

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

    有几个我接手过的老项目,没有需求文档,没有单元测试,连项目有哪些功能都没人说得清,代码库里的代码跟实际部署的对应不上,升级就是玩火啊,幸运的是业务下线废弃不用了
    taylorzhi
        100
    taylorzhi   299 天前
    手机电脑是出一个就换一个吗
    1  2  
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2620 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 14:33 · PVG 22:33 · LAX 06:33 · JFK 09:33
    ♥ Do have faith in what you're doing.