国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区

當前位置:首頁 > 科技  > 軟件

從 Java 11 遷移到 Java 17 值得嗎?

來源: 責編: 時間:2023-08-09 23:02:35 379觀看
導讀作者丨Sergei Dzeboev編譯丨諾亞Java17給Java帶來了一些變化,但也使許多開發人員重新考慮他們遷移到其他JVM語言的愿望。最明顯的變化是在使Java代碼現代化和添加新的語言結構以簡化它的方向上進行的。當然,這個問題并

作者丨Sergei DzeboevMVv28資訊網——每日最新資訊28at.com

編譯丨諾亞MVv28資訊網——每日最新資訊28at.com

MVv28資訊網——每日最新資訊28at.com

Java17給Java帶來了一些變化,但也使許多開發人員重新考慮他們遷移到其他JVM語言的愿望。最明顯的變化是在使Java代碼現代化和添加新的語言結構以簡化它的方向上進行的。當然,這個問題并非沒有對Java核心的改變,這使得Java更加高效。MVv28資訊網——每日最新資訊28at.com

1、文本塊

MVv28資訊網——每日最新資訊28at.com

文本塊功能終于出現在Java中。我確信這是Java程序員等待已久的變化之一?,F在你可以忘記難以閱讀的長復合行。文本塊允許你以最方便的方式編寫多行文本。在這樣的塊中,你可以按照自己希望的方式撰寫文本,并且仍然可以使用轉義序列進行更精確的格式設置。MVv28資訊網——每日最新資訊28at.com

MVv28資訊網——每日最新資訊28at.com

Java11. 字符串轉義序列:MVv28資訊網——每日最新資訊28at.com

public String poem = "                " +            "Twinkle, Twinkle, Little Star/n" +            "                /n" +            "                Twinkle, twinkle, little star,/n" +            "                How I wonder what you are!/n" +            "                Up above the world so high,/n" +            "                Like a diamond in the sky./n" +            "                /n" +            "                Twinkle, twinkle, little star,/n" +            "                How I wonder what you are!";

Java17.文本塊:MVv28資訊網——每日最新資訊28at.com

public String poem = """                Twinkle, Twinkle, Little Star                                Twinkle, twinkle, little star,                How I wonder what you are!                Up above the world so high,                Like a diamond in the sky.                                Twinkle, twinkle, little star,                How I wonder what you are!            """;

2、Record

MVv28資訊網——每日最新資訊28at.com

另一個慢慢使Java語言更有用的更新是record。以前,要創建一個類,我們需要描述該類,指定其字段,并添加必要的方法,例如equals、hashcode、getter和setters。自從record出現以來,所有這些現在都變得不必要了。MVv28資訊網——每日最新資訊28at.com

MVv28資訊網——每日最新資訊28at.com

record允許你通過僅指定必填字段來創建數據安全類;將自動創建所有其他方法。但是,值得記住的是,record充當數據類,創建是為了存儲數據,而不是執行各種操作。record是線程安全的,因為所有record字段都是最終的。最后要知道的重要一點是,用于獲取字段值的生成方法不會像經典Java Bean 中那樣包含“get”。MVv28資訊網——每日最新資訊28at.com

MVv28資訊網——每日最新資訊28at.com

Java11.數據類:MVv28資訊網——每日最新資訊28at.com

public class DataClass {    public DataClass (Integer id, String name) {        this.id = id;        this.name = name;    }    private final Integer id;    private final String name;    public Integer getId() {        return id;    }    public String getName() {        return name;    }    @Override    public boolean equals(Object o) {        ...    }    @Override    public int hashCode() {        ...    }}

Java17.Record:MVv28資訊網——每日最新資訊28at.com

public record DataClass(Integer id, String name) {}

MVv28資訊網——每日最新資訊28at.com

區別很明顯:在執行相同功能的同時,創建Record所需的代碼行要少得多。MVv28資訊網——每日最新資訊28at.com

3、新的switch表達式

MVv28資訊網——每日最新資訊28at.com

更改列表還包括切換表達式。這些更改不僅影響了Switch表達式的語法(使其編寫更加簡潔),還影響了功能。Switch表達式現在返回迭代的結果,使編寫代碼變得更加容易,并使其更加簡潔。新的開關表達式不再需要每個case后面都加一個breakMVv28資訊網——每日最新資訊28at.com

MVv28資訊網——每日最新資訊28at.com

Java11.switch表達式:MVv28資訊網——每日最新資訊28at.com

public String getSeasonDescription(Season season) {        String seasonDescription;        switch (season) {            case SPRING:                seasonDescription = "Flowers are blooming!";                break;            case SUMMER:                seasonDescription = "It's hot outside!";                break;            case AUTUMN:                seasonDescription = "Leaves are falling!";                break;            case WINTER:                seasonDescription = "Snow is coming!";                break;            default:                throw new IllegalStateException("Invalid season: " + season);        }        return seasonDescription;    }

Java 17. 增強的 Switch 表達式:MVv28資訊網——每日最新資訊28at.com

public String getSeasonDescription(Season season) {        return switch (season) {            case SPRING -> "Flowers are blooming!";            case SUMMER -> "It's hot outside!";            case AUTUMN -> "Leaves are falling!";            case WINTER -> "Snow is coming!";        };    }

4、instanceof模式匹配

MVv28資訊網——每日最新資訊28at.com

另一項設計改進也影響了操作員。現在,更安全,更簡潔。通過此更改,不再需要首先檢查給定對象是否是某個類的實例,然后執行強制轉換;現在可以在一行中完成此操作。如前所述,這不僅僅是語法糖,而是一個更優化的運算符。MVv28資訊網——每日最新資訊28at.com

MVv28資訊網——每日最新資訊28at.com

Java 11. 經典的 intanceofMVv28資訊網——每日最新資訊28at.com

public void findInstance(Object o) {        if (o instanceof String) {            String s = (String) o;            System.out.printf("Object is a string %s", s);        } else if (o instanceof Number) {            Number n = (Number) o;            System.out.printf("Object is a number %n", n);        }    }

Java 17. 更新的 intanceofMVv28資訊網——每日最新資訊28at.com

public void findInstance(Object o) {        if (o instanceof String s) {            System.out.printf("Object is a string %s", s);        } else if (o instanceof Number n) {            System.out.printf("Object is a number %n", n);        }    }

5、Sealed Classes密封類

MVv28資訊網——每日最新資訊28at.com

Java 17也考慮了安全性,并朝著這個方向邁出了重要的一步。這個想法是限制類或接口的繼承,同時保持其公開。結果,新的類類型,密封類,被添加到Java中。密封類的語法允許你指定可以使用其功能的后代。反過來,繼承者還可以允許或拒絕繼承,或者指定可以沿鏈繼承的類。此功能使你可以更靈活地創建項目,并方便地調整代碼的API。MVv28資訊網——每日最新資訊28at.com

MVv28資訊網——每日最新資訊28at.com

Java 17. 密封類:MVv28資訊網——每日最新資訊28at.com

public sealed class SealedClass permits AnotherSealedClass, AnotherNonSealedClass, AnotherFinalClass {}

Java 17. 非密封繼承人:MVv28資訊網——每日最新資訊28at.com

public non-sealed class AnotherNonSealedClass extends SealedClass {}

Java17.最終繼承人:MVv28資訊網——每日最新資訊28at.com

public final class AnotherFinalClass extends SealedClass {}

Java17.密封繼承人:MVv28資訊網——每日最新資訊28at.com

public sealed class AnotherSealedClass extends SealedClass permits AnotherNonSealedClassTwo {}

Javai17.非密封繼承人二級:MVv28資訊網——每日最新資訊28at.com

public non-sealed class AnotherNonSealedClassTwo extends AnotherSealedClass {}

6、NullPointerExceptions

MVv28資訊網——每日最新資訊28at.com

最后,Java 17 中一個非常有用的更新是改進的NullPointerException!最后,在堆棧跟蹤日志中,你可以看到哪個特定字段導致了NullPointerException。僅此功能就應該鼓勵你切換到Java 17。你不再需要長時間在代碼中四處尋找發生異常的險惡地方;現在Java將為你完成所有工作。MVv28資訊網——每日最新資訊28at.com

MVv28資訊網——每日最新資訊28at.com

Java11.NPE:MVv28資訊網——每日最新資訊28at.com

public static void main(String... args) {        String s = null;        System.out.println(s.toLowerCase());    }
Exception in thread "main" java.lang.NullPointerException at Main.main(Main.java:4)

Java17.改進的NPE:MVv28資訊網——每日最新資訊28at.com

public static void main(String... args){        String s = null;        System.out.println(s.toLowerCase());    }
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.toLowerCase()" because "s" is null at edu.javamodules/edu.javaversions.eleventoseventeen.NpeExample.main(NpeExample.java:7)

7、其他創新

MVv28資訊網——每日最新資訊28at.com

當然,這并不是Java17中所做的更改的全部列表,但是討論的創新是最引人注目的。與往常一樣,Java開發人員在改進JVM方面做得非常出色,使其更加高效。MVv28資訊網——每日最新資訊28at.com

8、小結

Java17中所做的所有改進都傳達了一個信息:是時候切換到這個版本了。過渡承諾語法更簡潔,性能得到提高。你的項目將獲得安全性、靈活性和更好的錯誤消息。如果你已經遷移到Java11,那么遷移到Java17 會很順利。Java的競爭優勢在這里大放異彩,因為向后兼容性允許你切換到Java17而無需更改任何代碼,并利用所有更新的功能。Java17是Java11以來又一個LTS(長期支持)版本,可確保你在較長時間內收到所有必要的安全更新。MVv28資訊網——每日最新資訊28at.com

MVv28資訊網——每日最新資訊28at.com

原文鏈接:https://hackernoon.com/is-migrating-from-java-11-to-java-17-worth-itMVv28資訊網——每日最新資訊28at.com

本文鏈接:http://m.rrqrq.com/showinfo-26-5140-0.html從 Java 11 遷移到 Java 17 值得嗎?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 大模型速度狂飆2.39倍!清華聯手微軟首提SoT,讓LLM思考更像人類

下一篇: Rust“巨坑”?真相來了!

標簽:
  • 熱門焦點
  • Mate60手機殼曝光 致敬自己的經典設計

    8月3日消息,今天下午博主數碼閑聊站帶來了華為Mate60的第三方手機殼圖,可以讓我們在真機發布之前看看這款華為全新旗艦的大致輪廓。從曝光的圖片看,Mate 60背后攝像頭面積依然
  • 對標蘋果的靈動島 華為帶來實況窗功能

    繼蘋果的靈動島之后,華為也在今天正式推出了“實況窗”功能。據今天鴻蒙OS 4.0的現場演示顯示,華為的實況窗可以更高效的展現出實時通知,比如鎖屏上就能看到外賣、打車、銀行
  • 石頭智能洗地機A10 Plus體驗:雙向自清潔治好了我的懶癌

    一、前言和介紹專為家庭請假懶人而生的石頭科技在近日又帶來了自己的全新旗艦新品,石頭智能洗地機A10 Plus。從這個產品名上就不難看出,這次石頭推出的并不是常見的掃地機器
  • Redmi Buds 4開箱簡評:才199還有降噪 可以無腦入

    在上個月舉辦的Redmi Note11T Pro系列新機發布會上,除了兩款手機新品之外,Redmi還帶來了兩款TWS真無線藍牙耳機產品,Redmi Buds 4和Redmi Buds 4 Pro,此前我們在Redmi Note11T
  • 企業采用CRM系統的11個好處

    客戶關系管理(CRM)軟件可以為企業提供很多的好處,從客戶保留到提高生產力。  CRM軟件用于企業收集客戶互動,以改善客戶體驗和滿意度?! RM軟件市場規模如今超過580
  • 一文掌握 Golang 模糊測試(Fuzz Testing)

    模糊測試(Fuzz Testing)模糊測試(Fuzz Testing)是通過向目標系統提供非預期的輸入并監視異常結果來發現軟件漏洞的方法。可以用來發現應用程序、操作系統和網絡協議等中的漏洞或
  • WebRTC.Net庫開發進階,教你實現屏幕共享和多路復用!

    WebRTC.Net庫:讓你的應用更親民友好,實現視頻通話無痛接入! 除了基本用法外,還有一些進階用法可以更好地利用該庫。自定義 STUN/TURN 服務器配置WebRTC.Net 默認使用 Google 的
  • 雅柏威士忌多款單品價格大跌,泥煤頂流也不香了?

    來源 | 烈酒商業觀察編 | 肖海林今年以來,威士忌市場開始出現了降溫跡象,越來越多不斷暴漲的網紅威士忌也開始悄然回歸市場理性。近日,LVMH集團旗下蘇格蘭威士忌品牌雅柏(Ardbeg
  • “買真退假” 這種“羊毛”不能薅

    □ 法治日報 記者 王春   □ 本報通訊員 胡佳麗  2020年初,還在上大學的小東加入了一個大學生兼職QQ群。群主“七王”在群里介紹一些刷單賺
Top 国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区
美女91精品| 欧美主播一区二区三区美女| 成人美女视频在线观看| 韩国成人在线视频| 蜜桃免费网站一区二区三区| 偷窥少妇高潮呻吟av久久免费| 亚洲精品自拍动漫在线| 亚洲天堂成人网| 午夜精品久久一牛影视| 日韩欧美aaaaaa| 欧美一区二区精品| 精品99999| 欧美激情一区二区三区四区| 国产精品污网站| **欧美大码日韩| 亚洲一级片在线观看| 亚洲国产日韩a在线播放性色| 一个色在线综合| 免费观看日韩电影| 国产在线精品免费| 9久草视频在线视频精品| 欧美激情无毛| 亚洲精品久久| 久久精品一区| 91精品免费观看| 久久在线观看免费| 亚洲私人黄色宅男| 亚洲成人综合在线| 久久99国产精品麻豆| 成人在线视频首页| 一区在线视频观看| 久久综合中文色婷婷| 欧美精品视频www在线观看| 精品久久久久久久久久久院品网 | 51精品久久久久久久蜜臀| 精品日韩一区二区| 综合久久久久久| 日本欧美韩国一区三区| 成人午夜视频网站| 国产亚洲精品bv在线观看| 欧美日韩三级一区| 国产精品麻豆一区二区| 日韩高清不卡在线| 成人国产视频在线观看| 在线综合亚洲| 欧美一级精品大片| 玉米视频成人免费看| 国产精品一品二品| 亚洲国产婷婷香蕉久久久久久99| 欧美主播一区二区三区| 欧美激情在线观看视频免费| 午夜久久福利影院| 99综合电影在线视频| 男女精品网站| 久久这里只有精品6| 日本伊人色综合网| 欧美日韩三级电影在线| 欧美视频在线一区| 专区另类欧美日韩| 亚洲日本欧美| 欧美一卡二卡三卡四卡| 亚洲已满18点击进入久久| 成人晚上爱看视频| 国产精品一页| 国产婷婷色一区二区三区四区| 秋霞影院一区二区| 在线免费观看欧美| 久久久一区二区三区| 久久99国产乱子伦精品免费| 国产亚洲毛片| 国产精品美女视频| 国产乱人伦偷精品视频不卡| 亚洲在线播放电影| 亚洲欧洲99久久| 不卡大黄网站免费看| 日本久久一区二区| 一区二区三区91| 欧美区日韩区| 精品国产伦一区二区三区免费 | 91网址在线看| 日韩一二三区视频| 免费观看在线综合色| 在线亚洲自拍| 亚洲色图视频网| 国产精品swag| 国产欧美日韩在线观看| av中文字幕一区| 欧美一区二区三区四区五区| 日韩电影在线观看网站| 国产精品久久久久久久久久直播 | 一本色道亚洲精品aⅴ| 亚洲欧美激情在线| 欧美日韩1区2区| 国产精品视频一区二区三区不卡| 成人网在线免费视频| 日韩美女视频在线| 成人手机在线视频| 亚洲小说欧美激情另类| 欧美日韩在线播放一区二区| 国产精品天天看| 久久久久久久久久码影片| 中文一区在线播放| 97精品视频在线观看自产线路二| 91精品在线观看入口| 91国偷自产一区二区三区观看 | 国产精品传媒视频| 99亚洲一区二区| 国产一区二区精品| 欧美一级欧美三级| 国产一区二区三区在线看麻豆| 乱人伦精品视频在线观看| 婷婷一区二区三区| 欧美午夜在线一二页| 国产美女视频91| 日韩精品一区二区三区中文不卡| 高清在线观看日韩| 亚洲精品一区二区在线观看| 女同性一区二区三区人了人一| 久久久美女毛片| 欧美三区不卡| 亚洲自拍偷拍图区| 色偷偷久久人人79超碰人人澡| 青青草视频一区| 91麻豆精品国产91久久久久久| 国产91精品入口| 国产欧美精品一区二区三区四区| 伊人蜜桃色噜噜激情综合| 亚洲午夜久久久久久久久电影网| 日本乱码高清不卡字幕| 国产精品1区2区3区在线观看| 久久婷婷国产综合精品青草| 亚洲无毛电影| 日本不卡视频在线| 日韩欧美国产综合一区| 一区在线电影| 免费观看成人鲁鲁鲁鲁鲁视频| 日韩一区二区三区在线观看| 欧美成人日韩| 性感美女极品91精品| 日韩午夜小视频| 日韩香蕉视频| 国产精品亚洲人在线观看| 欧美国产日韩亚洲一区| 午夜在线视频观看日韩17c| 国产麻豆一精品一av一免费| 欧美国产乱子伦 | 欧美精品第一页| 狠狠色综合网站久久久久久久| 亚洲成人你懂的| www久久精品| 久久久久一区| 女生裸体视频一区二区三区| 午夜激情久久久| 久久这里都是精品| 色哟哟日韩精品| 国内精品久久久久久久果冻传媒| 日本网站在线观看一区二区三区| 久久人人97超碰com| 久久一二三区| 欧美日韩免费精品| 国产一区二区三区久久悠悠色av | av电影天堂一区二区在线 | 99视频+国产日韩欧美| 国产suv一区二区三区88区| 亚洲福中文字幕伊人影院| 26uuu色噜噜精品一区二区| 色久综合一二码| 日韩一级精品| 成人av网址在线| 精品一区二区三区欧美| 亚洲亚洲人成综合网络| 久久久国产午夜精品| 欧美日韩国产一区| 免费亚洲一区二区| 今天的高清视频免费播放成人| 国产91精品露脸国语对白| 婷婷中文字幕一区三区| 国产精品久久久久久一区二区三区 | 91蜜桃在线观看| 国产精品一区免费视频| 日本午夜一本久久久综合| 最新国产の精品合集bt伙计| 色播五月激情综合网| 亚洲精品影院| 欧美亚韩一区| 波多野结衣中文字幕一区 | 欧美午夜电影在线观看 | 日韩美女精品在线| 久久久久久久久久美女| 欧美一级黄色大片| 欧美日韩免费一区二区三区视频 | 欧美国产一区二区| 久久久青草青青国产亚洲免观| 欧美一区二区在线免费播放| 欧洲生活片亚洲生活在线观看| 免费欧美日韩| 亚洲一区二区网站| 亚洲专区免费| 久久人人97超碰人人澡爱香蕉| 国产一区二区三区奇米久涩|