点击蓝字 关注我们
将程序视点设为星标精品文章第一时间阅读
大家好,欢迎来到程序视点
!我是小二哥。
作为Java开发者,我们都知道OpenJDK是Java的参考实现,它是一个充满活力的开源项目,不断推动着Java平台的发展。而在最新的JEP 445提案中,OpenJDK团队正准备为Java语言引入一项全新的特性,让我们一起来看看这个令人兴奋的提案吧!
JEP 445提案的核心是简化 Java 的入门难度
,也就是我通常说的Hello,World
。先来看看经典的 Hello, World! 入门程序 :
class HelloWorld{
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
现在,JEP 445提案的作者 Ron Pressler 认为:作为新手入门的第一个程序,这段代码太复杂了
。比如 class
声明和强制性的 public
访问修饰符是大型编程结构,它们在封装具有定义良好的外部组件接口的代码单元时很有用,但在这个入门小示例中毫无意义。String[] args
参数用于将代码与外部组件连接起来,但在这段代码里面不会被使用。static
修饰符是 Java 类和对象模型的一部分,但在新手村出现也为时尚早。
针对这个对初学者不太友好的问题,该提案引入了灵活的 Main 方法和匿名 Main 类的概念,以使 Java 学习过程更加平滑。以下是该提案的做法。
于是,稍微简化 Hello, World! 是这样的:
class HelloWorld {
void main() {
System.out.println("Hello, World!");
}
}
具体意思是:允许已启动类的 main 方法具有 public 、 protected 或默认(即包)访问权限。 具体说来,是这样的:
如果启动的类不包含带 String[] args
参数的 static main 方法,但包含不带参数的 static main 方法,则调用该方法。
如果启动的类没有 static main 方法,但有一个非 private 零参数构造函数(即 public 、 protected 或包访问)和一个非 private 实例 main 方法,然后构造该类的一个实例。如果该类有一个带 String [] 参数的实例 main 方法,则调用该方法;否则,不带参数调用实例 main 方法。
是的!连 class 声明都省略了。
void main() {
System.out.println("Hello, World!");
}
到这里,Java 的 Hello, World! 入门程序
已经简化到一个方法了。但在 Ron 眼里,该 JEP 提供的优化只是使 Java 更易于学习的第一步,像 System.out.println()
这种长方法或函数也是需要简化的地方,不过这些问题需要在未来的 JEP 提案中逐步解决。
该提案的优化属于预览语言功能,默认禁用。要在 JDK 21 中尝试该示例,必须启用预览功能:用javac --release 21 --enable-preview Main.java编译程序,用java --enable-preview Main 运行。
另一种方式是在使用源代码启动器时,使用 java --source 21 --enable-preview Main.java 运行程序。
话说回来,无论是对于新手,还是老手Java开发者来说,JEP 445提案都将是一个令人期待的重大更新。小二哥觉得,更多的简化代码的提案也不是一件坏事,这样能给开发带来全新的体验和乐趣!但每个版本都在不断地加语法糖,整的和kotlin、groovy越来越像。会不会哪天也把main函数都去掉,像c#那样?
对于技术发展和语言设计,不同人可能有不同的看法和偏好,而了解并尊重不同的观点也是促进技术进步和交流的重要一环。
Java 作为一门流行的编程语言,其入门难度一直是个问题。而 JEP 445 提案的出现,为 Java 的学习提供了更多的可能性。我想,或许这对越来越多的 Java 初学者来说更容易理解和入手。
如果该文章对你有帮助,那么就点击右下角的 [点赞][在看」,给一个小小的鼓励吧!