<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Java21版本的使用

jf_ro2CN3Fa ? 來源:芋道源碼 ? 2023-06-19 09:42 ? 次閱讀

如果你是一位苦逼的 Java 程序員,那么當你看到這張圖的時候也許震驚的會跳起來!

但是我最大的感受是:

臥槽,怎么就Java 21了?!我還在用Java 8 呢!

實際上,從Java 8 到Java 21,中間也就是Java 11, Java 17是長期支持版本,其他的都是“小”版本,變化不大。

這次去掉“public static void main”的提案來自JEP 445: Unnamed Classes and Instance Main Methods (Preview) ;翻譯過來是 “未命名類和實例 main 方法”,僅看標題你可能并不認為和上面那些東西有什么關系,但事實上,上述特性確實是由此 JEP 帶來的。

這種簡化寫法并不是 Java 的特例,其實早在 .NET 6,C# 就引入了一套 "控制臺模板" 語法,其允許你在 C# 的主類文件(這里是 Program.cs)這么寫:

//Seehttps://aka.ms/new-console-templateformoreinformation
Console.WriteLine("Hello,World!");

其等價于:

usingSystem;

namespaceMyApp//Note:actualnamespacedependsontheprojectname.
{
internalclassProgram
{
staticvoidMain(string[]args)
{
Console.WriteLine("HelloWorld!");
}
}
}

很神奇對不對,但實際上說簡單點這只是套語法糖而已。那么,JEP 445 也是如此嗎?答案是否定的,甚至,它連語法糖都沒有引入 。

基于 Spring Boot + MyBatis Plus + Vue & Element 實現的后臺管理系統 + 用戶小程序,支持 RBAC 動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能

項目地址:https://github.com/YunaiV/ruoyi-vue-pro

視頻教程:https://doc.iocoder.cn/video/

真的是變天了嗎?

如果你仔細查看 JEP 提案的原文,你會發現他們在 Summary 和 Goal 上提到最多的兩個詞是:sutdents 和 beginners:

7d95392e-0e41-11ee-962d-dac502259ad0.png

而仔細讀讀這部分內容你會知道,這個 JEP 設立的初衷是為了為學生和 Java 新手隱去晦澀難懂的部分,僅保留一些簡單的語法,方便他們快速入門和學習 Java,但并不是引入了一套額外的 Java 方言 。

從始至終,這套東西就不是給普通 Java 開發者使用的,而是面向學生和新手入門使用的。

有個可愛的美國老師居然創作了一首RAP來幫助新手記憶“public static void main”!

publicclassHelloWorld{
publicstaticvoidmain(String[]args){
System.out.println("HelloWorld");
}
}

對于新手來說,這簡單的五行代碼說,信息嚴重過載了:

(1) 類上的public

它只有在跨越package訪問時才有意義,為什么一個簡單的Hello World都必須把它寫上?

(2) class

新手只想寫個hello world ,他們還必須理解什么叫類嗎?

(3) 方法上的public

這是什么鬼?為什么要加個public

(4) static

新手根本理解不了什么靜態方法,為什么需要靜態方法。

(5) String[] args

這個參數的定義,對于新手來說也是一團霧水

(6) System.out.println(...)

System是個類,out是個靜態字段,println是實例方法,學生們唯一關心的是println啊。

在上課的第一天就需要解釋很多東西,快下課了,學生也寫不出任何程序,老師只好說:先記住吧,以后你會明白的。

所以Brian Goetz認為,必須要簡化這一切。

第一步使用更寬容的“啟動協議”,可以改成這樣:

classHelloWorld{
voidmain(){
System.out.println("HelloWorld");
}
}

第二步通過引入“未命名的類”,改成這樣:

voidmain(){
System.out.println("HelloWorld");
}

第三步,“自動導入靜態方法”,改成這樣:

voidmain(){
println("HelloWorld");
}

看起來更加清晰明了,對于Java初學者將會非常友好。

經過這二十多年的發展,圍繞Java建立了龐大的生態,各種各樣的軟件應有盡有,讓Java極其成功的同時,也讓Java背上了沉重的包袱,要想簡化成Python,JS那樣的腳本語言,幾乎不可能了,這次能夠邁出一小步已經是難能可貴了。

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實現的后臺管理系統 + 用戶小程序,支持 RBAC 動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能

責任編輯:彭菁

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • JAVA
    +關注

    關注

    19

    文章

    2905

    瀏覽量

    103097
  • RBAC
    +關注

    關注

    0

    文章

    43

    瀏覽量

    9894
  • 開發者
    +關注

    關注

    1

    文章

    509

    瀏覽量

    16510

原文標題:Java21的 main 方法聲明要變天了嗎?

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    有沒有軟件可以把12版本的VI轉換成11版本的VI?

    我想問一下 ,當我下載的程序是2012版本的,我的是11版本的,有沒有軟件可以把12版本的VI轉換成11版本的VI?我想問一下 ,當我下載的程序是2012
    發表于 12-16 10:38

    分享兩很好的編程的書C++和JAVA

    這是國外兩很好的編程的書,其風格很獨特。中文版本,適合初學者入門,文件類型是epub,打不開的可以用格式工廠轉換一下格式。像計算機科學家一樣思考C++像計算機科學家一樣思考JAVA
    發表于 04-22 20:46

    Java SE、Java EE、Java ME之間的區別

    本文把JAVA SE、JAVA EE、JAVA ME拿來做下區別,同時也分享一下作者的一些成果。目前的Java平臺根據軟件開發人員、服務提供商和設備生產商可以針對特定的市場可以分為三個
    發表于 07-11 08:31

    IDEA插件MyBatisCodeHelperPro 21版本介紹

    開發了兩年多的 IDEA插件 MyBatisCodeHelperPro 21 版本發布
    發表于 07-12 17:07

    Java語言平臺版本 及語言特點是什么?

    使用計算機的方式有哪些?Java語言平臺版本 Java語言的特點是什么?
    發表于 11-06 07:52

    請問AD21版本如何重新定義板子形狀?

    請問AD21版本如何重新定義板子形狀?
    發表于 02-07 09:15

    java和javac版本不一致該如何去修改呢

    也是這個原理.Javac版本修改:下面是修改javac的過程查看命令路徑root@build-server:/home/build# which java javac/usr/bin/java/usr
    發表于 10-28 15:33

    21天學通JAVA2_袁國忠譯

    21天學通Java2》包括4周的課程。第一周介紹Java語言的基本知識,包括數據類型、變量、表達式、對象、數組、條件語句、循環、類、接口、包異常和線程等;第二周介紹Java類庫,包括
    發表于 12-06 10:38 ?0次下載
    <b class='flag-5'>21</b>天學通<b class='flag-5'>JAVA</b>2_袁國忠譯

    Java學習路線教程之Java新手必須學習那21個技術點詳細資料說明

    Java新手必學的21個技術點 以下為大家盤點作為Java新手必學的21個技術點,希望能夠對想要學習編程,學習JAVA的人有些幫助! JN
    發表于 12-19 15:23 ?19次下載

    微軟正式官宣新大版本更新21H1

    微軟在官方博客中正式官宣了21H1,也就是新的大版本更新。
    的頭像 發表于 02-19 10:10 ?2463次閱讀

    SpringBoot正式棄用Java8 Java17將成為未來主流版本

    了Spring Boot 3.0.0的第一個里程碑版本 M1 。 下面一起來來看看Spring Boot 3.0.0 M1版本都有哪些重大變化: Java基線從 Java 8 提升到了
    的頭像 發表于 10-09 18:03 ?3256次閱讀

    JDK 21 GA,虛擬線程正式穩定!你還堅守Java8?

    Java 21 / JDK 21 已正式 GA,此版本是繼 JDK 17 后的長期支持版本 (LTS),Oracle 將為其提供至少八年的技
    的頭像 發表于 09-20 15:47 ?678次閱讀
    JDK <b class='flag-5'>21</b> GA,虛擬線程正式穩定!你還堅守<b class='flag-5'>Java</b>8?

    Java11和Java17使用率達48%和45%

    2018 年 9 月發布的 Java 11 和 2020 年 9 月發布的 Java 17 是使用最廣泛的 Java 版本,使用率分別為 48% 和 45%。其次是 2014 年 3
    的頭像 發表于 11-01 12:30 ?326次閱讀

    簡單了解Java的新特性

    ,Java 17 于 2021 年發布。這兩個版本之間相隔了 7 年。Java17是一個長期支持(LTS)的版本,會有更穩定和持久的維護和更新。
    的頭像 發表于 11-23 16:38 ?415次閱讀
    簡單了解<b class='flag-5'>Java</b>的新特性

    一文了解Java 21的新功能

    JDK 21 于 2023 年 9 月 19 日發布,是繼之前的 LTS 版本 JDK 17 之后最新的長期支持 (LTS) 版本。在本文中,我們將探討 JDK 21 新引入的功能。
    的頭像 發表于 12-21 16:19 ?583次閱讀
    一文了解<b class='flag-5'>Java</b> <b class='flag-5'>21</b>的新功能
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>