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

临汾住房与城乡建设厅网站晋江论坛手机版

临汾住房与城乡建设厅网站,晋江论坛手机版,太原网站优化培训,wordpress主机内存前言 前面的文章#xff0c;我们对Java9、Java10、Java11、Java12 、Java13、Java14、Java15、Java16 的特性进行了介绍#xff0c;对应的文章如下 Java9新增特性 Java10新增特性 Java11新增特性 Java12新增特性 Java13新增特性 Java14新增特性 Java15新增特性 Java16新增特…前言 前面的文章我们对Java9、Java10、Java11、Java12 、Java13、Java14、Java15、Java16 的特性进行了介绍对应的文章如下 Java9新增特性 Java10新增特性 Java11新增特性 Java12新增特性 Java13新增特性 Java14新增特性 Java15新增特性 Java16新增特性 今天我们来一起看一下Java17这个版本的一些重要信息 版本介绍 Java 17 是 Java 平台的一个新版本于 2021 年 9 月 14 日发布。这个版本是在 Java 11 之后的下一个主要版本Java 17 是一个功能丰富的版本引入了一些新的特性和改进旨在提高安全性、性能和可维护性。 特性列表 默认的加密算法 Java 17 引入了一组新的默认加密算法包括 AES-GCM 和 SHA-256。这些算法比以前的默认算法更安全提供了更好的加密性能。 ZGC 和 Sharding 增强 Java 17 对 ZGCZ Garbage Collector进行了改进增加了对非堆内存的支持并改进了并行处理能力。此外Java 17 还引入了堆内存分片的概念可以将堆内存分成多个片段以更好地适应不同类型的工作负载。 JDK 预编译 Java 17 引入了 JDK (Java Development Kit) 预编译功能。这个功能可以在开发过程中提前预编译 Java 类从而加快应用程序的启动速度。 外部化配置 Java 17 引入了外部化配置的特性允许将配置信息存储在外部文件中而不是硬编码在应用程序中。这个特性可以让开发人员更容易地管理和维护应用程序的配置。 支持 Applet API Java 17 再次支持 Applet API这个 API 可以让开发人员在网页中嵌入 Java 应用程序。虽然这个 API 的使用场景已经减少了很多但对于一些特定的应用场景来说它仍然是有用的。 JDK 17 引入了新的 JITJust In Time编译器 Graal。这个编译器是由 Oracle 开发的可以更有效地编译 Java 代码提高运行时的性能。 Java 17 移除了 javah 工具用于生成 C 语言头文件 这个工具已经不再被推荐使用因为它的功能已经被其他工具所取代。 Java 17 引入了新的 API : 提供了 jdk.incubator.vector 来用于矢量计算。这个 API 可以更高效地处理向量化的数据操作。 Java 17 引入了 instanceof 的模式匹配转正 : 这个特性可以让开发者更方便地使用 instanceof 运算符进行模式匹配。 Java 17 移除了 RMIRemote Method Invocation 这个特性已经被废弃被其他的远程调用技术所取代。 Java 17 引入了 sealed 类密封类 这个特性可以让开发者定义不能被继承或者不能被实现的类从而增加代码的安全性和可维护性。 Records记录 Java 17引入了记录这是一种新的数据类语法可以更方便地创建数据密集型对象。记录会自动生成getter、setter方法和equals()、hashCode()等方法使得编写简单的POJO类变得更加容易。 Text Blocks文本块Java 17引入了文本块这是一种新的字符串语法可以更方便地处理多行字符串。使用三重引号“”可以定义一个文本块并自动去除首尾的空白字符。 Switch Expressions开关表达式 Java 17引入了开关表达式这是一种新的switch语句语法可以使代码更加简洁和易读。开关表达式使用“switch (expression) { cases }”的语法其中cases可以是常量、变量或表达式。 代码示例 如何使用Java 17中引入的局部类型推断特性 import java.util.List; import java.util.ArrayList; public class Main {public static void main(String[] args) {ListString names new ArrayList();names.add(Alice);names.add(Bob);names.add(Charlie);for (var name : names) {System.out.println(name);}} }在上面的代码中我们使用了局部类型推断特性来定义了一个类型为ArrayList的变量names。在for循环中我们使用了“var”关键字来定义一个可以自动推断类型的迭代变量name。在循环体中我们使用System.out.println()函数打印每个name的值。 Java 17新特性的代码示例 import java.util.List; import java.util.ArrayList; import java.util.stream.Collectors; public class Main {public static void main(String[] args) {ListString names new ArrayList();names.add(Alice);names.add(Bob);names.add(Charlie);// 使用密封类和switch表达式switch (names) {case ArrayList al - System.out.println(ArrayList: al);case LinkedList ll - System.out.println(LinkedList: ll);default - System.out.println(Other List implementation);}// 使用记录和文本块class Person {String name;int age;Person(String name, int age) {this.name name;this.age age;}Overridepublic String toString() {return Person{ name name \ , age age };}}Person alice new Person(Alice, 30);Person bob new Person(Bob, 25);Person charlie new Person(Charlie, 35);ListPerson people List.of(alice, bob, charlie);ListPerson filteredPeople people.stream().filter(person - person.age 30).collect(Collectors.toList());// 使用模式匹配和instanceof的例子Object obj Hello World;if (obj instanceof String str) { // instanceof模式匹配注意这里的语法变化System.out.println(String value: str);} else {System.out.println(Not a String value);}} }密封类和记录的更详细示例代码 import java.util.List; import java.util.ArrayList; import java.util.stream.Collectors; // 定义一个密封类 sealed class Animal {String name;int age;public Animal(String name, int age) {this.name name;this.age age;}Overridepublic String toString() {return Animal{ name name \ , age age };} } // 定义一个密封子类 final class Dog extends Animal {String breed;public Dog(String name, int age, String breed) {super(name, age);this.breed breed;}Overridepublic String toString() {return Dog{ name name \ , age age , breed breed \ };} } // 定义一个密封子类 final class Cat extends Animal {String color;public Cat(String name, int age, String color) {super(name, age);this.color color;}Overridepublic String toString() {return Cat{ name name \ , age age , color color \ };} } public class Main {public static void main(String[] args) {ListAnimal animals new ArrayList();animals.add(new Dog(Spot, 5, Golden Retriever));animals.add(new Cat(Fluffy, 3, White));animals.add(new Animal(Elephant, 10)); // 非密封类实例化时不需要显式声明类名直接使用Animal类即可。animals.add(new Dog(Rex, 8, Poodle)); // 同上可以继续实例化其他密封类的子类。animals.add(new Cat(Blackie, 5, Black)); // 同上可以继续实例化其他密封类的子类。animals.add(new Animal(Lion, 10)); // 非密封类实例化时不需要显式声明类名直接使用Animal类即可。animals.add(new Dog(Spike, 12, Bulldog)); // 同上可以继续实例化其他密封类的子类。animals.add(new Animal(Tiger, 8)); // 非密封类实例化时不需要显式声明类名直接使用Animal类即可。animals.add(new Animal(Penguin, 5)); // 非密封类实例化时不需要显式声明类名直接使用Animal类即可。animals.add(new Dog(Lucy, 10, Poodle)); // 同上可以继续实例化其他密封类的子类。同时也可以看出密封类不能被子类化因此Dog和Cat都是Animal的最终子类。密封类可以限制继承只能被密封子类继承不能被非密封类继承。 密封类的实例化必须显式声明类名而非密封类则不需要。 记录是一种简化数据模型的方式可以方便地定义和操作具有固定字段的数据结构。 总结 Java 17是Java的一个较新的版本它有很多新特性和改进可以提供更好的性能和更丰富的功能。然而是否适合用于生产环境还需要根据具体情况进行评估。 在生产环境中稳定性和可靠性是最重要的因素之一。Java 17可能还处于测试阶段因此建议在生产环境中使用已经经过广泛验证的版本如Java 8或Java 11。这些版本已经得到了社区的广泛支持和维护具有更好的稳定性和可靠性。 另外在选择Java版本时还需要考虑与现有系统和应用的兼容性问题。如果现有的系统和应用都是基于较旧的Java版本开发的那么升级到Java 17可能会导致兼容性问题。在这种情况下建议在生产环境中继续使用与现有系统和应用兼容的Java版本。 总之Java 17具有很多新特性和改进但是否适合用于生产环境还需要根据具体情况进行评估。建议在生产环境中使用已经经过广泛验证的Java版本以确保稳定性和可靠性。 拓展 AES-GCM AES-GCM是高级加密标准AES的一种工作模式全称是Galois/Counter Mode。它是一种有效的authenticated encryption算法无需额外的认证算法AES-GCM自带认证功能可以同时完成加密和认证。 AES-GCM模式的主要特点有 基于AES算法使用AES的密码块进行加密操作。使用Galois字段上的乘法进行认证可以有效防止修改和重放攻击。使用计数器Counter来避免在加密相同的明文时产生相同的密文增强安全性。认证标签长度较短只有16字节性能和带宽开销小。 AES-GCM模式是目前比较流行和高效的authenticated encryption算法已被TLS、IPsec、MACsec等大量安全协议采用在云计算、物联网和5G等领域有广泛的应用。 SHA-256 SHA-256是一种安全散列算法它使用哈希函数来生成固定长度的摘要。SHA-256是SHA-2的一种是专为防止密码破解而设计的。 SHA-256的特点包括 安全性SHA-256算法具有很高的安全性可以抵御暴力破解和字典攻击等攻击方式。唯一性SHA-256算法生成的哈希值是唯一的对于不同的输入数据即使是微小的差异也会产生完全不同的哈希值。不可逆性SHA-256算法是不可逆的也就是说无法从哈希值还原出原始数据。长度固定SHA-256算法生成的哈希值长度固定为256位不会因为输入数据的长度而变化。 SHA-256被广泛应用于密码学、数据完整性验证和数字签名等领域。
http://www.w-s-a.com/news/173264/

相关文章:

  • 三亚市城乡建设局网站网站口碑营销
  • 图书租借网站 开发企业网站搜索优化外
  • 新乡个人网站建设哪家好免费的图片做视频在线观看网站
  • 洛阳工程建设信息网站山西响应式网页建设哪里好
  • 企业网站建设市场的另一面wordpress分类插件
  • 网站建设名头公司展厅装修
  • 小型购物网站开发费用郑州企业网站模板建站
  • 个体商户建自己的网站做销售建设积分兑换官方网站
  • 网站建设与维护培训网页制作专业用语
  • 建站特别慢wordpress网页制作与设计项目策划书
  • 视频制作素材免费网站头像制作在线生成器
  • 网站建设是不是可以免费建站广州做网站 信科网络
  • 闸北区网站设计叫别人做网站后怎么更改密码
  • 为什么想做网站运营建设工程教育网站
  • 站长基地百度推广整体优化网站
  • 门窗 东莞网站建设wordpress外链论坛
  • 安徽省建设部网站官网还能用的wap网站
  • 企业网站设计开发网站关键词优化seo
  • 郑州高档网站建设台州网站建设推广
  • 广东省建设信息港网站WordPress手机缩略图设置
  • 优秀网站主题平顶山专业做网站公司
  • wordpress返回顶部插件wordpress站群seo
  • 企业网站建设报价表百度竞价托管哪家好
  • 织梦网站首页打开慢淄博网站推广那家好
  • 苏州高端网站建设kgwl互动网站建设的主页
  • 宿州网站建设哪家公司好个人网站制作方法
  • 网站正能量晚上在线观看视频站长之家关键词挖掘工具
  • 建设网站怎么判断是电脑还是手机仿租号网站源码网站开发
  • seo百度网站排名软件重庆巫山网站设计公司
  • 搭建视频播放网站网站排名诊断