前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >探索Java的新面貌:HelloWorld要变天!

探索Java的新面貌:HelloWorld要变天!

作者头像
程序视点
发布2023-12-26 14:27:37
1480
发布2023-12-26 14:27:37
举报
文章被收录于专栏:程序小小事程序小小事

点击蓝字 关注我们

将程序视点设为星标精品文章第一时间阅读

大家好,欢迎来到程序视点!我是小二哥。

前言

作为Java开发者,我们都知道OpenJDK是Java的参考实现,它是一个充满活力的开源项目,不断推动着Java平台的发展。而在最新的JEP 445提案中,OpenJDK团队正准备为Java语言引入一项全新的特性,让我们一起来看看这个令人兴奋的提案吧!

JEP 445提案的核心是简化 Java 的入门难度,也就是我通常说的Hello,World。先来看看经典的 Hello, World! 入门程序 :

代码语言:javascript
复制
class HelloWorld{
    public static void main(String[] args) { 
        System.out.println("Hello, World!");
    }
}

JEP 445提案

现在,JEP 445提案的作者 Ron Pressler 认为:作为新手入门的第一个程序,这段代码太复杂了。比如 class 声明和强制性的 public 访问修饰符是大型编程结构,它们在封装具有定义良好的外部组件接口的代码单元时很有用,但在这个入门小示例中毫无意义。String[] args 参数用于将代码与外部组件连接起来,但在这段代码里面不会被使用。static 修饰符是 Java 类和对象模型的一部分,但在新手村出现也为时尚早。

针对这个对初学者不太友好的问题,该提案引入了灵活的 Main 方法和匿名 Main 类的概念,以使 Java 学习过程更加平滑。以下是该提案的做法。

  • 允许省略 main 方法的 String[] 参数,并允许 main 方法既不是 public 也不是 static 。

于是,稍微简化 Hello, World! 是这样的:

代码语言:javascript
复制
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 方法。

  • 引入匿名 Main 类来隐式声明 class。

是的!连 class 声明都省略了。

代码语言:javascript
复制
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 初学者来说更容易理解和入手。

如果该文章对你有帮助,那么就点击右下角的 [点赞][在看」,给一个小小的鼓励吧!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序视点 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • JEP 445提案
  • 新功能体验
  • 小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档