JDK15新特性介绍
发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,本篇内容主要讲解"JDK15新特性介绍",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"JDK15新特性介绍"吧!1、在CharSequence中添加了isE
千家信息网最后更新 2024年11月24日JDK15新特性介绍
本篇内容主要讲解"JDK15新特性介绍",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"JDK15新特性介绍"吧!
1、在CharSequence中添加了isEmpty默认方法
定义isEmpty用于测试字符序列是否为空的默认方法,CharSequence::isEmpty可以用作方法参考。实现的类java.lang.CharSequence和定义isEmpty方法的另一个接口应注意这一点,因为可能需要对其进行修改以覆盖isEmpty方法。
2、支持Unicode 13.0
此版本将Unicode支持升级到13.0,其中包括:java.lang.Character13.0水平,这增加了13.0 5930个字符,总共143859个字符类支持Unicode字符数据库。这些增加的内容包括4个新脚本,总共154个脚本,以及55个新表情符号字符。
3、TreeMap新方法
TreeMap重新实现压倒性一切的如:putIfAbsent、computeIfAbsent、computeIfPresent、compute、merage
举例说明putIfAbsent等价于如下:
default V putIfAbsent(K key, V value)
V v = map.get(key); if (v == null){ v = map.put(key, value); } return v;
4、文本块(最终版)
优势:简化了编写Java程序的任务,同时避免了常见情况下的转义序列;增强Java程序中表示用非Java语言编写的代码的字符串的可读性。
String html = """Hello, world
""";
String query = """ SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB` WHERE `CITY` = 'INDIANAPOLIS' ORDER BY `EMP_ID`, `LAST_NAME`; """;
5、隐藏类
基于JVM构建的许多语言实现都依靠动态类生成来提高灵活性和效率。
详情可见--> JEP371
6、 GC回收期
淘汰-XXUseAdaptiveGDBoundary
7、改进的序列化处理,IO
使用java.io.ObjectInputStream.setObjectInputFilter方法设置序列化过滤器时,必须在从流中读取任何对象之前调用它。如果调用readObject或方法readUnshared,则该setObjectInputFilter方法将引发IllegalStateException。
8、优化空子字符串处理,String.substring
在某些情况下,String.substring返回"",但在子字符串长度为零时,在所有情况下都可以进行改进。
之前逻辑是返回"",需要增加一个新的地址,而目前为null,如下
public static String stripLeading(byte[] value) { int left = indexOfNonWhitespace(value); if (left == value.length) { return ""; } return (left != 0) ? newString(value, left, value.length - left) : null;}
9、支持货币分组分隔符
DecimalFormat / DecimalFormatSymbols类现在可以处理货币值的分组分隔符。例如,在奥地利(de-AT语言环境)中使用的德语语言的货币分组分隔符为"。",而在其他德语语言环境中的货币分组分隔符为"。"。
10、time用默认值覆盖本地化值
java.time.format.DateTimeFormatter.localizedBy(Locale)方法现在采用默认的语言环境值,例如Chronology和/或DecimalStyle指定的语言环境参数。
例如,在先前的JDK版本中:
jshell> DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL) .localizedBy(Locale.forLanguageTag("fa")) .format(LocalDate.now())$3 ==> "جمعه 1 مهٔ 2020"
数字是阿拉伯文(西文)数字,在JDK 15中:
jshell> DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL) .localizedBy(Locale.forLanguageTag("fa")) .format(LocalDate.now())$3 ==> "جمعه ۱ مهٔ ۲۰۲۰"
这些数字使用扩展阿拉伯语-印度数字,因为它是波斯语区域设置的默认编号系统。
11、time ValueRange.of
ValueRange.of(long min,long maxSmallest,long maxLargest),如果最小值大于最小最大值,则将引发异常。但是,仅当最小值大于最大最大值时才会发生例外。
12、性能改进InflaterOutputStream.write
1、InflaterOutputStream(OutputStream out, Inflater infl, int bufLen)允许指定要使用的解压缩器和缓冲区大小。 2、InflaterOutputStream.write(byte[] b, int off, int len)正在使用最大512字节的缓冲区大小写入数据。 3、从JDK 15开始,通过InflaterOutputStream(OutputStream out, Inflater infl,int bufLen)所指定的缓冲区大小将在对的调用中使用InflaterOutputStream.write(byte[] b,int off, int len)。如果在调用InflaterOutputStream 构造函数时未指定缓冲区大小,则默认为512字节。
13、集合性能提升(Better Listing of Arrays)
复制集合的首选方法是使用"复制构造函数"。例如,要将集合复制到新的ArrayList中,可以编写new ArrayList<>(collection)。在某些情况下,可能会制作其他临时副本,如果要复制的集合非常大,则应用程序应(意识到/监视)制作副本所需的大量资源。
14、GC:G1优化
针对G1堆区域大小的改进
默认的堆区域大小计算已更改为默认情况下返回较大的区域。计算仍以2048个区域为目标,但是两个方面发生了变化,这些更改提高了启动和运行时性能 1、仅考虑最大堆大小。旧的计算还考虑了初始堆大小,但是当未设置堆大小时,这可能会产生意外的行为。 2、区域大小四舍五入到最接近的2的幂,而不是减小。在最大堆大小不是2的幂的情况下,这将返回更大的区域大小。
15、ZGC一种可扩展低延迟垃圾收集器
Z垃圾收集器(ZGC)现在可以在生产中使用,不再标记为实验功能。通过使用-XX:+UseZGC命令行选项启用ZGC
16、模式匹配的instanceof(第二预览版)
提供模式匹配来 增强Java编程语言instanceof
if (obj instanceof String s) { // can use s here } else { // can't use s here }
17、Record(第二预览版)
@Data@AllArgsConstructorclass Group {// 组名 private String name;// 人数 private int nums;}
使用它可以替代构造器、equal方法、toString方法,hashCode方法
Point(String name,int nums){}
Java语言中一种新型的类型声明。像枚举一样enum, record是类的受限形式。声明其表示形式,并提交与该表示形式匹配的API。记录放弃了类通常享有的自由:将API与表示分离的能力。作为回报,记录获得了很大程度的简洁性。
到此,相信大家对"JDK15新特性介绍"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
方法
大小
语言
字符
区域
情况
最大
分隔符
序列
数字
环境
缓冲区
分组
支持
缓冲
特性
最小
内容
字符串
形式
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
海康威视管理服务器作用
网络安全版报内容
oracle数据库强大
浙江网络技术转让包括什么
试述数据库技术的研究方向
夸服务器传输文件
思科网络技术丛书
基因组功能注释数据库
腾讯服务器和阿里服务器哪个便宜
企业内部服务器算私有云吗
auss开源数据库
中科创达软件开发专业
点击保存到数据库
德惠通用网络技术服务有哪些
网络安全24小时值守记录表
音视频软件开发
如何讲文件复制到另一个服务器
联合网络安全审查政策
浦东新区图片存储服务器
代理服务器 怎么使用
18年网络安全宣传周主题
云南软件开发难吗
杭州富阳区物流软件开发
腾讯服务器和阿里服务器哪个便宜
楼书软件开发
数据库 cpu 100
计算机网络技术和计算机物联
哈利波特手游服务器开服时间
如何增强服务器系统安全
华为服务器上看raid卡