当前位置: 首页 > news >正文

网站建设基本资料信息流优化师是干什么的

网站建设基本资料,信息流优化师是干什么的,网站建设公司 广告法被处罚,门户网站系统介绍欢迎来到我的博客#xff0c;代码的世界里#xff0c;每一行都是一个故事 JDK 14全景透视#xff1a;每个Java开发者必知的新特性 前言#xff1a;switch表达式标准化Switch表达式成为正式特性的意义#xff1a;如何使用Switch表达式#xff1a;注意事项#xff1a; ins… 欢迎来到我的博客代码的世界里每一行都是一个故事 JDK 14全景透视每个Java开发者必知的新特性 前言switch表达式标准化Switch表达式成为正式特性的意义如何使用Switch表达式注意事项 instanceof模式匹配Pattern Matching for instanceof 的好处使用Pattern Matching for instanceof 的示例注意事项 recordsRecords的基本概念Records的语法使用Records的场景注意事项 NullPointerExceptionsNullPointerExceptions的传统问题JEP 358的主要特点示例如何启用Helpful NullPointerExceptions注意事项 前言 随着技术界不断进步Java也在持续演变每个新版本都带来了创新和提升。JDK 14不仅仅是一次更新它是Java演变史上的一个重要里程碑为开发者提供了前所未有的工具和能力。本文将带你深入了解JDK 14的每一个角落探索它是如何推动Java走向新高度的。 switch表达式标准化 在JDK 14中Switch表达式switch从预览状态被提升为正式特性这标志着Java语言在简化控制流结构方面迈出了重要一步。这个特性的目的是让开发者能够以更简洁、更安全的方式编写条件逻辑。 Switch表达式成为正式特性的意义 代码简洁性 传统的switch语句需要显式的break语句来防止代码掉落到下一个分支。Switch表达式通过引入箭头-来消除这种需要每个案例自动终止减少了样板代码。 可读性和安全性 Switch表达式减少了代码的复杂性使得代码更易读、更易理解。同时它也减少了因遗漏break语句而导致的错误。 表达能力 Switch表达式可以返回值并允许多个标签指向同一代码块这为表达复杂逻辑提供了更大的灵活性和力量。 如何使用Switch表达式 以下是一个示例展示了如何使用Switch表达式来简化代码 传统的switch语句 String monthString; switch (month) {case 1: monthString January;break;case 2: monthString February;break;// ... more cases ...default: monthString Unknown;break; }使用Switch表达式 String monthString switch (month) {case 1 - January;case 2 - February;// ... more cases ...default - Unknown; };在这个示例中Switch表达式不仅使代码更简洁而且通过直接返回值使得整个结构更直观。 注意事项 兼容性作为正式特性Switch表达式在JDK 14及更高版本中完全支持不再需要特殊的编译器标志来启用。默认行为如果没有匹配的case且没有定义defaultSwitch表达式会抛出异常确保所有可能的情况都被处理。代码风格虽然Switch表达式提供了更大的灵活性但在使用时仍需考虑代码风格和一致性确保代码的可维护性。 通过将Switch表达式纳入正式特性JDK 14为Java开发者提供了一个更强大、更简洁的工具来处理多分支条件逻辑有助于提高代码质量和开发效率。 instanceof模式匹配 在JDK 14中引入的Pattern Matching for instanceof 是一个预览特性它旨在简化Java中的类型检查和转换操作。这个特性通过允许你在同一个表达式中同时进行类型检查和变量赋值使得相关代码更简洁、更易读。 Pattern Matching for instanceof 的好处 减少冗余 传统的类型检查和转换需要多个步骤首先使用instanceof检查类型然后将对象转换为相应类型。Pattern Matching for instanceof 将这两个步骤合二为一减少了重复代码。 提高可读性 通过减少不必要的模板代码使得开发者可以更直接地表达他们的意图代码因此更加清晰。 避免错误 在传统的instanceof检查和类型转换模式中很容易在类型转换时使用错误的变量而Pattern Matching for instanceof 通过绑定变量减少了这种错误的可能性。 使用Pattern Matching for instanceof 的示例 传统方式 if (obj instanceof String) {String s (String) obj;// 使用s进行操作 }在这个传统模式中需要明确地进行类型转换并且需要额外的变量声明。 使用Pattern Matching for instanceof if (obj instanceof String s) {// 直接使用s进行操作 }在这个新模式中instanceof 不仅检查了obj 是否为String 类型同时也在同一个表达式中声明了新的变量s并将obj转换为String并赋值给s。如果obj不是String类型这段代码不会执行并且s不会被定义。 注意事项 预览特性作为预览特性需要在编译和运行时启用特定的标志才能使用。作用域引入的变量如示例中的s的作用域被限定在if语句块内这有助于避免命名冲突和意外的变量使用。最佳实践尽管Pattern Matching for instanceof 可以使代码更简洁但在使用它时仍应考虑代码的清晰性和易维护性。 通过引入Pattern Matching for instanceofJDK 14为Java开发者提供了一个更加强大和表达性的工具来处理类型检查和转换有助于简化代码并减少常见的编码错误。 records 在JDK 14中Records是一个预览特性引入了一种新的类型声明旨在提供一种简洁的方式来模拟“纯数据”的概念。Records旨在作为Java中不可变数据的简洁和安全的表示特别适用于那些作为数据载体的类。 Records的基本概念 数据载体 Records被设计为不可变的数据载体适合用于传递数据和创建数据对象。它们提供了一种简洁的方式来定义包含数据但没有额外行为的类。 简洁性 传统的Java类可能需要大量的样板代码包括字段、构造函数、getter、equals()、hashCode()和toString()。Records通过单一的声明自动提供这些功能。 不可变性 Record中的字段是final的这意味着它们在初始化后不能被修改这有助于保证对象状态的不变性和线程安全性。 Records的语法 record Point(int x, int y) { }在这个例子中Point是一个record它有两个字段x和y。Java自动为这些字段生成了构造函数、getter方法、以及适当的equals()、hashCode()和toString()实现。 使用Records的场景 DTOs (Data Transfer Objects) 当你需要传递数据时Records提供了一种更简洁、更安全的方式来定义DTOs。 缓存键 Records的自动hashCode和equals实现使得它们非常适合用作缓存或Map中的键。 模式匹配 尽管Java还没有正式支持模式匹配但Records的结构和不可变性使它们成为未来支持模式匹配时的理想选择。 注意事项 预览特性作为预览特性你需要在编译和运行时启用特定的标志才能使用Records。限制由于Records旨在作为不可变数据载体它们不能被继承每个record字段也是final的。最佳实践在使用Records之前考虑你的使用场景。如果你需要一个纯数据类不需要额外的方法或继承Records可能是一个优秀的选择。 通过引入RecordsJDK 14提供了一种新的方式来表示不可变数据旨在减少样板代码增强代码可读性同时提供不可变性的安全保证。 NullPointerExceptions JEP 358: Helpful NullPointerExceptions 是在JDK 14中引入的一个重要改进旨在增强空指针异常NullPointerException, NPE的可诊断性。这个改进为开发者提供了更多的上下文信息帮助他们快速理解和修复产生NPE的原因。 NullPointerExceptions的传统问题 缺乏信息 传统的NPE通常不提供足够的信息来确定导致异常的确切原因和位置特别是在复杂的表达式中。 调试困难 开发者通常需要花费大量时间在调试器中逐步执行或添加额外的日志语句来确定哪个具体的变量或方法调用返回了null。 JEP 358的主要特点 详细的异常信息 当NPE发生时异常消息现在会提供关于哪个变量或哪个表达式部分是null的详细信息。这使得诊断问题变得更直接。 精确的定位 异常信息能够指出是哪个变量或方法调用产生了null即使它是一个复杂表达式的一部分。 可选启用 由于改进的NPE消息可能会泄露敏感信息它默认是禁用的。你可以选择性地为特定运行或整个系统启用它。 示例 假设有以下代码 public class NPEExample {public static void main(String[] args) {Person person new Person();String name person.getName().toUpperCase();} }class Person {String name;String getName() { return name; } }在这个例子中person.getName() 返回null导致尝试调用toUpperCase()时抛出NPE。 传统的NPE消息 Exception in thread main java.lang.NullPointerExceptionat NPEExample.main(NPEExample.java:4)这个消息没有说明是哪个具体的部分为null。 使用Helpful NullPointerExceptions的消息 Exception in thread main java.lang.NullPointerException: Cannot invoke String.toUpperCase() because person.getName() is nullat NPEExample.main(NPEExample.java:4)这个改进的消息清晰地指出person.getName()是null这是尝试调用toUpperCase()时出错的原因。 如何启用Helpful NullPointerExceptions 在JVM启动时使用-XX:ShowCodeDetailsInExceptionMessages选项来启用这个特性。 注意事项 性能考虑虽然这个特性在大多数情况下对性能影响不大但在异常密集的代码中可能会有轻微的性能开销。安全性改进的异常信息可能会包含敏感数据。确保在处理敏感信息时考虑这一点特别是在生产环境中。 通过JEP 358: Helpful NullPointerExceptionsJDK 14为开发者提供了一个强大的工具来快速定位和解决空指针异常减少了调试的难度和时间提高了开发效率。
http://www.zqtcl.cn/news/656970/

相关文章:

  • 东莞网站设计企业怎么制作手机app及网站
  • 林州做网站下载做蛋糕网站
  • 做网站改版的做实验用哪些国外网站
  • 什么是静态页面网站甜品网站建设方案
  • 做一个网站大概多少钱养生网站源码
  • 淘宝客网站建设分类校园网站开发设计报告
  • 个人网站模板 免费儿童编程培训机构
  • 运动健身型网站开发免费ddns域名注册
  • 专业pc网站建设wordpress 支持php7.1
  • 廊坊网站制作系统虚拟服务器搭建
  • 做网站的优势wordpress百度索引链接
  • 网站哪些功能是PHP做的wordpress 正文宽度
  • wordpress考试主题株洲优化公司
  • 怎么做企业网站建设方案怎样查网站有没有备案
  • 浙江短视频seo优化网站专做童装的网站
  • 印刷包装公司网站模板陕西住房和城乡建设厅网站
  • 成都响应式网站建设公司网站 建设的必要性
  • 江苏省建设局官方网站查询wordpress收到登录错误
  • 个人与企业签订网站开发合同北京个人网站建设
  • 阀门网站设计dede静态网站
  • 做暧暧视频网站在线网站建设项目推文
  • 岳池发展建设集团有限公司门户网站毕设做网站工作量够吗
  • 手机网站客户端设计与实现手机网站 焦点图
  • 网站建设常用的开发语言介绍设计公司官网首页
  • 做网站能拿多少钱视频策划方案怎么写
  • 权威的顺德网站建设dw不会写代码能建立网站吗
  • 做网站美工的前途怎么样企业通讯软件下载
  • 客户说做网站价格高成都住建局官网住建智慧建管
  • 股票分析网站可以做推广吗网站开发 简历项目经历
  • 军人可以做网站吗学生信息管理系统网页设计教程