简化 Hello World:Java 新写法要来了

这篇具有很好参考价值的文章主要介绍了简化 Hello World:Java 新写法要来了。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简化 Hello World:Java 新写法要来了


OpenJDK 的 JEP 445 提案正在努力简化 Java 的入门难度。

这个提案主要是引入 “灵活的 Main 方法和匿名 Main 类” ,希望 Java 的学习过程能更平滑,让学生和初学者能更好地接受 Java 。

提案的作者 Ron Pressler 解释:现在的 Java 语言非常适合开发和维护大型复杂应用程序,但学校在教编程时往往会从变量、函数和子程序等基本的小型编程概念开始,在这个阶段,往往不需要类、包和模块的大型编程概念。

但现在的 Java 对初学者不太友好,比如经典的 Hello, World! 入门程序 :

public class HelloWorld { 
    public static void main(String[] args) { 
        System.out.println("Hello, World!");
    }
}

Ron 认为,作为新手入门的第一个程序,这段代码太复杂了。

比如 class 声明和强制性的 public 访问修饰符是大型编程结构,它们在封装具有定义良好的外部组件接口的代码单元时很有用,但在这个入门小示例中毫无意义。

String [] args 参数用于将代码与外部组件连接起来,但在这段代码里面不会被使用。

static 修饰符是 Java 类和对象模型的一部分,但在新手村出现也为时尚早。

作为优化,该提案首先增强了启动 Java 程序的协议灵活性:

  • 允许已启动类的 main 方法具有 public 、 protected 或默认(即包)访问权限。

  • 如果启动的类不包含带 String [] 参数的 static main 方法,但包含不带参数的 static main 方法,则调用该方法。

  • 如果启动的类没有 static main 方法,但有一个非 private 零参数构造函数(即 public 、 protected 或包访问)和一个非 private 实例 main 方法,然后构造该类的一个实例。如果该类有一个带 String [] 参数的实例 main 方法,则调用该方法;否则,不带参数调用实例 main 方法。

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro

  • 视频教程:https://doc.iocoder.cn/video/

如此一来便允许省略 main 方法的 String[] 参数,并允许 main 方法既不是 public 也不是 static 。

可以稍微简化 Hello, World! :

class HelloWorld { 
    void main() { 
        System.out.println("Hello, World!");
    }
}

此外,还要引入匿名 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 运行程序。

有关灵活的启动协议和匿名 main 类的更多信息,可以在提案正文中详阅(https://openjdk.org/jeps/445)。

提案目标

  • 为 Java 提供平滑的入口,方便教育工作者可以循序渐进地介绍编程的概念。

  • 帮助学生以简洁的方式编写基本入门程序,并随着其 Java 技能增长,优雅地扩展代码。

  • 减少编写简单程序(例如脚本和命令行实用程序)的仪式。

  • 不要单独介绍 Java 的初学者方言。

  • 不引入单独的初学者工具链;编译和运行学生的程序,使用的工具应该和生产环境的 Java 程序相同。文章来源地址https://www.toymoban.com/news/detail-479762.html

                    

到了这里,关于简化 Hello World:Java 新写法要来了的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 下一代Windows命名为Win 11?微软的下一步要来了,恒生电子java社招面试

    几个月来,微软一直在预告 \\\"下一代\\\"Windows,但新的暗示表明,该公司不只是在准备对其现有的Windows 10软件进行更新,而是在准备一个拥有大编号的操作系统版本:Windows 11。这家软件巨头近日宣布将于6月24日举行一次新的Windows活动,承诺将展示 “Windows的下一步”。 01 Windo

    2024年04月27日
    浏览(13)
  • Java入门第一步:写出你的Hello World

    当你学习一种新的编程语言时,通常你会看到第一个程序被称为“Hello World”程序。它通常用于初学者的简单程序。 假设你是作为 Java 编程语言的初学者阅读这篇文章的,或者你是来回忆那个古老的“Hello World”程序的。这篇文章不仅包括 Java 中的“Hello World”程序,我们还将

    2024年02月15日
    浏览(23)
  • 【Java】学习一门开发语言,从TA的Hello World开始

    欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是《Java》序列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。 温馨提示:博主能力有限,理解水平有限

    2024年01月23日
    浏览(28)
  • ASM Java字节码操作框架入门学习 输出Hello World

    查看字节码信息 方法调用 invokestatic:用于调用静态方法。该指令会根据方法的类名、方法名和方法描述符进行方法查找和调用。 invokespecial:用于调用私有方法、构造方法和父类方法。该指令会根据方法的类名、方法名和方法描述符进行方法查找和调用。 invokevirtual:用于调

    2024年02月13日
    浏览(22)
  • 制造业的寒冬真的要来了吗?

    制造业的寒冬真的要来了吗?其实当前,我国制造业发展水平是处于全球第三阵列,排名第四的: 但能处第三序列靠前,还是因为“规模发展”起了重要支撑——依靠规模拉动发展。所以如果从“质量效益”、“结构优化”、“持续发展”三项来评估,我们仅排名第六,就与

    2023年04月08日
    浏览(70)
  • 电车要迎来大爆发?华州电车的额外补贴要来了

    西雅图IT圈:seattleit 【今日作者】拖拉机 IT圈里的拖拉机 0 1 西雅图所在的华盛顿州 电动车数量在全美排名第四 紧随德州,佛州和加州 即使这样华州的电车仍然潜力巨大 这里的水电大坝提供了便宜环保的电力 温和的气候也非常有利于电车的性能 因为极寒极热的环境都会降

    2024年02月06日
    浏览(31)
  • 互联网新时代要来了(二)什么是AIGC?

    什么是AIGC? 最近,又火了一个词“**AIGC”**2022年被称为是AIGC元年。那么我们敬请期待,AIGC为我们迎接人工智能的下一个时代。 TIPS:内容来自百度百科、知乎、腾讯、《AIGC白皮书》等网页 AIGC 即 AI Generated Content,利用人工智能技术来生成内容,它被认为是继PGC、UGC之后的新

    2024年02月09日
    浏览(26)
  • 微软正式宣布 Win10 死刑,Win11 LTSC要来了

    微软在 2015 年带来了 Windows 10,PC 操作系统也由此进入到一个新的篇章。 如此前每代新系统一样,Windows 10 发布之初,稳定性不足,BUG 众多。 全新的界面设计、交互逻辑以及操作习惯上的强行改变让其很长一段时间都不那么受 待见 。 直到经历大小版本优化完善,加之微软放

    2024年02月16日
    浏览(30)
  • 520要来了,CSS3模拟3D旋转节日表白动画特效

    一年一度的520要来了,做为一名CSS3爱好者,怎么能不为大家的技术型表白做出一点贡献呢,这不,用CSS3模拟3D旋转的表白特效来了,快快拿去表白 目录 实现思路  单层3D可见 HTML源代码 CSS3源代码   实现思路  本文通过添加. scene 类,添加 .banner 类,使其双层3D呈现 transform

    2024年02月05日
    浏览(19)
  • 中国版本ChatGPT要来了,百度、阿里、字节、腾讯等巨头齐聚,虽能胜出呢?

    自然语言处理(Natural Language Processing, NLP):NLP 是实现语言模型的基础技术,它可以对人类语言进行分析和处理,例如语义理解、词法分析、实体识别等等。在ChatGPT的实现中,需要使用NLP技术来对输入的文本进行预处理和分析。 深度学习技术:深度学习技术是实现语言模型

    2024年02月09日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包