Java 21引入了兩個語言核心功能: 未命名的Java類你說 新的啟動協議:該協議允許更簡單地運行Java類,並且無需太多樣板 下麵一起來看個例子。通常,我們初學Java的時候,都會寫類似下麵這樣的 Hello World 程式: public class HelloWorld { public ...
Java 21引入了兩個語言核心功能:
- 未命名的Java類你說
- 新的啟動協議:該協議允許更簡單地運行Java類,並且無需太多樣板
下麵一起來看個例子。通常,我們初學Java的時候,都會寫類似下麵這樣的 Hello World 程式:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
對於程式的功能來說,這裡有太多的混亂的代碼、太多的概念、太多的構造。
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聲明和強制的public訪問修飾符是必須的。當用在外部組件定義良好的介面封裝代碼單元時,它們很有用。但在這個小例子中,它們毫無意義。
- String[]參數主要用於將代碼與外部組件(在本例中為操作系統的shell,接收命令傳入的參數)連接。它在這裡很神秘且無用,尤其是它從未被使用過。
- static修飾符是Java類和對象模型的一部分。對於新手來說,這不僅是神秘的,而且是有害的:要添加更多可以調用和使用的方法或欄位,學生必須要麼將它們全部聲明(傳播一種既不常見也不是好習慣的用法),或者就要面對是否有static修飾的區別問題,並學習如何實例化對象。
使用Java 21的JEP 445特性,該例子將簡化為:
class HelloWorld {
void main() {
System.out.println("Hello, World!");
}
}
如上例子,Java 21增強了啟動Java程式的協議,以允許實例使用main方法,且該方法不需要static
、不需要public
、也不需要任何參數。
其次,Java 21還引入未命名的類來使聲明隱式,像下麵這樣就可以了:
void main() {
System.out.println("Hello, World!");
}
怎麼樣,是不是這樣之後,Java的上手例子也能像python、go等其他高級語言那樣簡單的呢?你覺得是否有助於初學者上手Java呢?
如果您學習過程中如遇困難?可以加入我們超高質量的技術交流群,參與交流與討論,更好的學習與進步!另外,不要走開,關註我!持續更新Java新特性專欄!
歡迎關註我的公眾號:程式猿DD。第一時間瞭解前沿行業消息、分享深度技術乾貨、獲取優質學習資源