Java 21 新特性:Unnamed Classes and Instance Main Methods

java,特性,unnamed,classes,and,instance,main,methods · 浏览次数 : 37

小编点评

Java 21引入了两个语言核心功能: 1. **未命名的类**允许更简单地运行Java类,无需太多样板下面一起来看个例子。 2. ** static modifier**是Java类和对象模型的一部分,用于添加更多方法或字段,并使它们可以被类中的所有成员访问。 ** benefits of Java 21 features:** * **简化启动**Java程序的协议,允许实例使用main方法。 * **未使用命名**的类,使声明隐式。 * **提高代码可维护性**,减少代码冗余。 * **提升代码可读性**,更易于理解。 ** 示例:** ```java class HelloWorld { void main() { System.out.println("Hello, World!"); } } ``` ** 结论:** Java 21语言核心功能可简化启动Java程序,提高代码可维护性,提升代码可读性。这些功能可帮助初学者学习Java编程,并使Java编程更容易。

正文

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。第一时间了解前沿行业消息、分享深度技术干货、获取优质学习资源

与Java 21 新特性:Unnamed Classes and Instance Main Methods相似的内容:

Java 21 新特性:Unnamed Classes and Instance Main Methods

Java 21引入了两个语言核心功能: 未命名的Java类你说 新的启动协议:该协议允许更简单地运行Java类,并且无需太多样板 下面一起来看个例子。通常,我们初学Java的时候,都会写类似下面这样的 Hello World 程序: public class HelloWorld { public

Java 21 新特性:Unnamed Patterns and Variables

Java 21中除了推出JEP 445:Unnamed Classes and Instance Main Methods之外,还有另外一个预览功能:未命名模式和变量(Unnamed Patterns and Variables)。该新特性的目的是提高代码的可读性和可维护性。 下面通过一个例子来理解

Java 21新特性-虚拟线程 审核中

Java 21 版本更新中最重要的功能之一就是虚拟线程 (JEP 444)。这些轻量级线程减少了编写、维护和观察高吞吐量并发应用程序所需的工作量。

Java 21 新特性:虚拟线程(Virtual Threads)

在Java 21中,引入了虚拟线程(Virtual Threads)来简化和增强并发性,这使得在Java中编程并发程序更容易、更高效。 虚拟线程,也称为“用户模式线程(user-mode threads)”或“纤程(fibers)”。该功能旨在简化并发编程并提供更好的可扩展性。虚拟线程是轻量级的,这

Java 21新特性:Sequenced Collections(有序集合)

在JDK 21中,Sequenced Collections的引入带来了新的接口和方法来简化集合处理。此增强功能旨在解决访问Java中各种集合类型的第一个和最后一个元素需要非统一且麻烦处理场景。 下面一起通过本文来了解一下不同集合处理示例。 Sequenced Collections接口 Seque

Java 21 新特性:Record Patterns

Record Patterns 第一次发布预览是在JDK 19、随后又在JDK 20中进行了完善。现在,Java 21开始正式推出该特性优化。下面我们通过一个例子来理解这个新特性。 record Point(int x, int y) {} static void printSum(Object o

Java 21 新特性:switch的模式匹配

在之前的Java 17新特性中,我们介绍过关于JEP 406: switch的模式匹配,但当时还只是关于此内容的首个预览版本。之后在JDK 18、JDK 19、JDK 20中又都进行了更新和完善。如今,在JDK 21中,该特性得到了最终确定!下面,我们就再正式学习一下该功能! 在以往的switch语

前瞻|Java 21 新特性 String Templates(字符串模版)

在日常写Java的时候,对于字符串的操作是非常普遍的,其中最常见的就是对字符串的组织。也因为这个操作非常普遍,所以诞生了很多方案,总下来大概有这么几种: - 使用`+`拼接 - 使用`StringBuffer`和`SpringBuilder` - `String::format` and `Stri

Java 21 正式 GA,虚拟线程真的来了

UTC 时间 2023 年 9 月 19 日,期盼已久的 Java 21 终于发布正式版! 本文一起来看看其中最受 Java 开发者关注的一项新特性:Loom 项目的两个新特性之一的 ”虚拟线程(Virtual Thread)“(另外一个新特性是 ”结构化并发(Structured Concurre

liquibase customChange

# liquibase customChange liquibase changeset 执行Java代码。 liquibase支持yml等文件,支持引入sql文件,还支持Java这种方式执行change。 对于执行 DDL DML 使用sql很方便,但是我想执行一些数据处理,将几个表中的数据放到新