Java 21引入了兩個(gè)語言核心功能:
- 未命名的Java類你說
- 新的啟動(dòng)協(xié)議:該協(xié)議允許更簡(jiǎn)單地運(yùn)行Java類,并且無需太多樣板
下面一起來看個(gè)例子。通常,我們初學(xué)Java的時(shí)候,都會(huì)寫類似下面這樣的 Hello World 程序:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
對(duì)于程序的功能來說,這里有太多的混亂的代碼、太多的概念、太多的構(gòu)造。
The static modifier is part of Java's class-and-object model. For the novice, static is not just mysterious but harmful: To add more methods or fields that main can call and use the student must either declare them all as static — thereby propagating an idiom which is neither common nor a good habit — or else confront the difference between static and instance members and learn how to instantiate an object.
- Class聲明和強(qiáng)制的public訪問修飾符是必須的。當(dāng)用在外部組件定義良好的接口封裝代碼單元時(shí),它們很有用。但在這個(gè)小例子中,它們毫無意義。
- String[]參數(shù)主要用于將代碼與外部組件(在本例中為操作系統(tǒng)的shell,接收命令傳入的參數(shù))連接。它在這里很神秘且無用,尤其是它從未被使用過。
- static修飾符是Java類和對(duì)象模型的一部分。對(duì)于新手來說,這不僅是神秘的,而且是有害的:要添加更多可以調(diào)用和使用的方法或字段,學(xué)??生必須要么將它們?nèi)柯暶鳎▊鞑ヒ环N既不常見也不是好習(xí)慣的用法),或者就要面對(duì)是否有static修飾的區(qū)別問題,并學(xué)習(xí)如何實(shí)例化對(duì)象。
使用Java 21的JEP 445特性,該例子將簡(jiǎn)化為:
class HelloWorld {
void main() {
System.out.println("Hello, World!");
}
}
如上例子,Java 21增強(qiáng)了啟動(dòng)Java程序的協(xié)議,以允許實(shí)例使用main方法,且該方法不需要static
、不需要public
、也不需要任何參數(shù)。
其次,Java 21還引入未命名的類來使聲明隱式,像下面這樣就可以了:
void main() {
System.out.println("Hello, World!");
}
怎么樣,是不是這樣之后,Java的上手例子也能像python、go等其他高級(jí)語言那樣簡(jiǎn)單的呢?你覺得是否有助于初學(xué)者上手Java呢?
如果您學(xué)習(xí)過程中如遇困難?可以加入我們超高質(zhì)量的技術(shù)交流群,參與交流與討論,更好的學(xué)習(xí)與進(jìn)步!另外,不要走開,關(guān)注我!持續(xù)更新Java新特性專欄!
歡迎關(guān)注我的公眾號(hào):程序猿DD。第一時(shí)間了解前沿行業(yè)消息、分享深度技術(shù)干貨、獲取優(yōu)質(zhì)學(xué)習(xí)資源