java17 新特性(实用)

  前言👀~

在更新下一章数据库相关知识前,先分享一下java17的一些新特性,有些新特性狠实用!!!

如果各位对文章的内容感兴趣的话,请点点小赞,关注一手不迷路,如果内容有什么问题的话,欢迎各位评论纠正 🤞🤞🤞

12b46cd836b7495695ce3560ea45749c.jpeg

个人主页:N_0050-CSDN博客

相关专栏:java SE_N_0050的博客-CSDN博客 java数据结构_N_0050的博客-CSDN博客


Var

首先java17引入了一个新的关键字var,它可以代替很多类型名,特别体现在泛型上,接下来看一段代码大家就知道了

    public static void main(String[] args) {// 引入的这个var这个类型 在声明泛型的时候,特别方便编译写那么长串var name = "java";var number = 1;var map = new HashMap<>();map.put("1", 17);for (Map.Entry<Object, Object> m1 : map.entrySet()) {System.out.println(m1.getValue());}System.out.println(name);//结果会输出javaSystem.out.println(number);//结果会打印1System.out.println(map);//会打印整个map对象,map中又是以键值对存储的,所以会打印{1=17}
}

这样大家应该能看的懂吧,这里再补充一下为什么最后一个map打印的是{1=17}

因为HashMap有一个toString方法,会返回这个键以及对应的值

注意事项:

1.var关键字不能用于方法的返回类型

2.var关键字不能来声明字段

3.var关键字声明变量的时候必须初始化,不能初始化成null

4.var关键字不能作为声明方法的参数,就是我们方法中的形参


Sealed

java17引入了一个新的类,密封类,顾名思义就是密封跟final的作用类似,但是呢又不完全类似,因为final修饰的类不能被继承,此时提高了一个新的关键字Sealed用来修饰密封类,废话不多说,直接上代码

// 密封类 相比 final(完全封闭,不允许其他类继承) 其他类可以继承 必须要有子类,默认情况是所有类都可以继承,如果要有限制,使用permits关键字,这样这个Person只能被B继承
sealed class Person permits B {}// 有三种写法 这是第一种 但是这种还是要有子类
//sealed class A extends Person {
//
//}//这是第二种 表⽰不限制,任何类都可以继承。
non-sealed class B extends Person {}//这是第三种 此时C会报错,因为没给C开权限 可以理解为你不是人民币玩家
//final class C extends Person {
//
//}

结论:

1.被sealed修饰的类,必须要有子类,其子类要么是final修饰、要么还是sealed修饰(还得有子类)、要么是non-sealed修饰

2.使用permits可以设置权限,只能让你指定的子类继承

3.被non-sealed修饰的类,表⽰不限制,任何类都可以继承


yield

java17引入了一个新的关键字​​​​​​​yield,用于在case的代码块中返回值用的,还是一样上代码一下就看出来了

        int a = 3;int result = switch (a) {case 1:yield 1;case 2:yield 2;case 3:yield 17;default:yield -1;};System.out.println(result);

instance of

​​​​​​​java17对instance of进行了优化,在判断类型的时候,如果符合我们的条件直接创建一个符合类型的临时变量,老规矩看代码

        if (obj instanceof String) {//之前的写法String str = (String) obj;}if (obj instanceof String str) {// obj是否为String类型,如果是创建临时变量str}

以上便是java17的一些实用特性,还有很多新特性等着大家一起去了解,如果有知道实用的一些新特性可以分享在评论区,下一章我会继续更新数据库的相关知识爱心💕

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/21916.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机组成体系

目录 冯诺依曼体系结构 运算器 存储器 控制器 输入设备 输出设备 CPU 体系特点 实例分析 总结 操作系统 什么是操作系统 理解操作系统的管理特性 什么是管理 驱动层 管理方式 操作系统接口即系统调用接口 用户操作接口 总结 冯诺依曼体系结构 冯诺依曼体系结构…

外星人Alienware X15R1 原厂Windows10系统 oem系统

装后恢复到您开箱的体验界面&#xff0c;包括所有原机所有驱动AWCC、Mydell、office、mcafee等所有预装软件。 最适合您电脑的系统&#xff0c;经厂家手调试最佳状态&#xff0c;性能与功耗直接拉满&#xff0c;体验最原汁原味的系统。 原厂系统下载网址&#xff1a;http://w…

Overleaf(Latex)论文里插入高清matlab图像,亲测有效!!

如何在论文里插入高清的实验结果是个令人头疼的问题&#xff0c;这里以overleaf对matlab结果为例进行了测试&#xff0c;亲测有效。 在matlab图像结果的左上角选择"文件"->“导出设置” 选择“渲染”&#xff0c;分辨率调至600&#xff1b; 字体和线条粗细视个人…

【Pytorch 】Dataset 和Dataloader制作数据集

文章目录 Dataset 和 Dataloader定义Dataset定义Dataloader综合案例1 导入两个列表到Dataset综合案例2 导入 excel 到Dataset综合案例3 导入图片到Dataset导入官方数据集Dataset 和 Dataloader Dataset指定了数据集包含了什么,可以是自定义数据集,也可以是以及官方数据集Data…

【Cityengine】Cityengine生产带纹理的建筑模型导入UE4/UE5(下)

【Cityengine】Cityengine生产带纹理的建筑模型导入UE4/UE5&#xff08;下&#xff09; 一、导出数据&#xff08;2022中文版案例&#xff09;二、安装datasmith插件三、导入数据四、检查导入材质是否正常五、编辑替换材质六、安装模型编辑插件七、编辑替换建筑规则 一、导出数…

MATLAB和物联网连载1:Internet of Things离你有多远?5行MATLAB的距离

MATLAB和物联网连载1:Internet of Things离你有多远?5行MATLAB的距离 原文&#xff1a;MATLAB和物联网连载1:Internet of Things离你有多远?5行MATLAB的距离 - 知乎 (zhihu.com) 来自俄罗斯的实习生在工作之余喜欢上网看点有的没的。有一天他突然发现了一个神奇的网站叫 T…

servlet小项目与servlet续集

文章目录 servlet小项目与servlet续集,是结合上一次的案例进行升级,给项目新增了,增加员工,删除员工,查询具体员工 功能新增操作修改操作删除操作过滤器Cookie servlet小项目与servlet续集,是结合上一次的案例进行升级,给项目新增了,增加员工,删除员工,查询具体员工 功能 上一…

命名空间,缺省参数和函数重载

前言&#xff1a;本文章主要介绍一些C中的小语法。 目录 命名空间 namespace的使用 访问全局变量 namespace可以嵌套 不同文件中定义的同名的命名空间可以合并进一个命名空间&#xff0c;并且其中不可以有同名的变量 C中的输入和输出 缺省参数&#xff08;默认参数&#…

带大家做一个,易上手的家常猪肉炖白菜

今天 带大家做一个 猪肉炖白菜 一块猪肉 切片 一块生姜 两边

doris实战处理(一)doris表的建表规范、查询

感谢原文&#xff1a;https://mp.weixin.qq.com/s/tGbdkF62WU6qbAH0mqtXuA 第一部分&#xff1a;字符集规范 【强制】数据库字符集指定utf-8&#xff0c;并且只支持utf-8。 命令规范 【建议】库名统一使用小写方式&#xff0c;中间用下划线&#xff08;_&#xff09;分割&a…

外星人Alienware x17R1 原厂Windows11系统

装后恢复到您开箱的体验界面&#xff0c;包括所有原机所有驱动AWCC、Mydell、office、mcafee等所有预装软件。 最适合您电脑的系统&#xff0c;经厂家手调试最佳状态&#xff0c;性能与功耗直接拉满&#xff0c;体验最原汁原味的系统。 原厂系统下载网址&#xff1a;http://w…

ProxySQL + MySQL MGR 实现读写分离实战

文章目录 前言1、ProxySQL 介绍1.1、ProxySQL 如何工作1.2、ProxySQL 工作原理 2、ProxySQL 安装与读写分离实战2.1、ProxySQL 安装2.2、读写分离配置2.3、读写分离实战2.4、SpringBoot 整合 前言 该文章实践之前&#xff0c;需要搭建MySQL MGR集群&#xff0c;关于 MySQL MGR…

太速科技-基于XC7V690T的12路光纤PCIe接口卡

基于XC7V690T的12路光纤PCIe接口卡 一、板卡概述 基于XC7V690T的12路光纤PCI-E接口卡&#xff0c;用于实现多通道高速光纤数据接收和发送&#xff0c;板卡兼容PCIe 2.0和PCIe 3.0规范&#xff0c;利用PCI-E Switch PEX 8748实现FPGA芯片与计算机的通信&#xff0c;计算机与板…

[MYSQL]合作过至少三次的演员和导演

ActorDirector 表&#xff1a; ---------------------- | Column Name | Type | ---------------------- | actor_id | int | | director_id | int | | timestamp | int | ---------------------- timestamp 是这张表的主键(具有唯一值的列).编写解决方案…

国外客户如何筛选供应商?

国外买家每天会收到许多供应商的开发信。他们是如何在众多的供应商中筛选出最合适的一个呢&#xff1f; 作为我们自己&#xff0c;熟知和掌握国外买家筛选供应商的方法&#xff0c;能让我们更加接近国外买家的要求&#xff0c;从而突围而出。 国外买家搜索供应商的方法 和外…

【前端】政务服务大数据可视化监控平台(源码+html+css+js)

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

时序预测 | Matlab灰色-马尔科夫预测

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab灰色-马尔科夫预测 灰色马尔科夫预测&#xff08;Grey-Markov Prediction&#xff09;是一种用于时间序列预测的方法&#xff0c;它结合了灰色系统理论和马尔科夫链模型。灰色系统理论是一种非参数化的预测方法…

Spring Boot 整合开源 Tess4J库 实现OCR图片文字识别

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

图片去手写软件有哪些?这三款值得一试!

图片去手写软件有哪些&#xff1f;在当今数字化时代&#xff0c;图片处理与编辑已成为我们日常生活中不可或缺的一部分。特别是在处理手写笔记、涂鸦或草图时&#xff0c;图片去手写软件发挥着至关重要的作用。它们能够帮助我们轻松去除图片中的手写内容&#xff0c;使图片更加…

高中数学:解三角形-大题练习

例题1 解析 第一小问 根据条件等式&#xff0c;我们发现&#xff0c;每一项都含有边&#xff0c;但是&#xff0c;不是每一项都含有角 于是&#xff0c;我们要想到用正弦定理把边换为角来解答该题 第二小问 例题2 解析 第一小问 两个等式条件&#xff0c;各个项都含有边&…