
java新特性
文章平均质量分 88
码炫课堂-码哥
一名有10余年经验的互联网老兵,历经从传统软件公司到大型互联网公司的洗礼,早年在中兴通讯等大型通信公司担任项目leader,后随着互联网的崛起,先后在前美团支付等大型互联网公司担任架构师。对互联网架构底层技术有相当的研究和独特的见解,在多个领域有着丰富的实战经验。
展开
-
Java 21 新特性—未命名类和实例的main方法
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!原创 2024-08-31 08:58:44 · 1390 阅读 · 0 评论 -
Java 21 新特性—未命名模式和变量
联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。这里的 e 就是一个没有使用的变量,按照这个特性,我们可以用。这个,就我个人而言,我觉得还是比较别扭,个人还是比较喜欢那种清晰明了的方式。这个特性的主要目的是提高代码的可读性和可维护性。哥,前中兴通讯、美团架构师,现某互联网公司。学习必须往深处挖,挖的越深,基础越扎实!作者简介:大家好,我是。原创 2024-08-31 08:57:06 · 412 阅读 · 0 评论 -
Java 21 新特性—字符串模版
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!原创 2024-08-31 08:55:29 · 1671 阅读 · 0 评论 -
Java 21 新特性—有序集合
三个集合提供了三类不同的使用方法,非常混乱。为了解决这种混乱,Java 21 引入有序集合,旨在解决访问Java中各种集合类型的第一个和最后一个元素需要非统一且麻烦处理场景。联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。三个接口,使得 Java 中的有序集合类可以按照统一的方法来进行操作。哥,前中兴通讯、美团架构师,现某互联网公司。学习必须往深处挖,挖的越深,基础越扎实!下图很好地展示了新增的有序接口的关系。作者简介:大家好,我是。原创 2024-08-30 08:16:03 · 1056 阅读 · 0 评论 -
Java 21 新特性—概述
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!Java 21 ,发布于2023-09-19。原创 2024-08-30 08:08:21 · 1190 阅读 · 0 评论 -
Java 20 新特性—概述
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!Java 20,于 2023-03-21 日发布。原创 2024-08-30 08:05:20 · 1083 阅读 · 0 评论 -
Java 19 新特性—Record 模式匹配
Record 是 Java 14 引入的,它主要目的是提供一种简洁的语法来声明类似数据的小型不可变对象,主要是为了解决长期以来在 Java 中定义纯数据载体类时,代码过于繁琐的问题。它的本质上是一个不可变的、透明的数据载体对象,我们可以理解它是一种特殊类型的 Java 类。操作符的条件判断中直接定义一个变量,如果对象是指定的类型,这个变量会被初始化为被检查的对象,可以立即使用,而无需额外的类型转换。所以,在声明模式变量时,我们并不需要显式地指定类型,用 var 也行,具体的类型由编译器自动推断。原创 2024-08-29 14:54:02 · 479 阅读 · 0 评论 -
Java 19 新特性—虚拟线程
众所周知,JVM 是一个多线程环境,它通过为我们提供了对操作系统线程的抽象,但是 Java 中的线程都只是对操作系统线程的一种简单封装,我们可以称之为“平台线程”。代价昂贵:创建平台线程的成本很高。每当创建一个平台线程时,操作系统都必须在堆栈中分配大量内存来存储线程的上下文、原生调用堆栈和 Java 调用堆栈。由于堆栈大小是固定的,这就导致了高昂的内存开销。上下文切换成本高:在多线程环境下,需要在不同线程间切换,这种上下文切换会消耗时间和资源。线程数量有限。原创 2024-08-29 14:51:15 · 851 阅读 · 0 评论 -
Java 19 新特性—概述
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!Java 19, 于2022-09-20 发布。原创 2024-08-29 14:49:01 · 1062 阅读 · 0 评论 -
Java 18 新特性—概述
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!Java 18,于2022年3月发布。在Java 18之前,Java的标准字符集(Charset)是根据操作系统的区域设置决定的。这意味着在不同的操作系统和区域设置下,Java程序的行为可能会不同,特别是在处理文本数据时。这种不一致性导致了许多问题,尤其是在跨平台部署和国际化应用程序时。原创 2024-08-29 14:46:16 · 929 阅读 · 0 评论 -
Java 17 新特性—增强型伪随机数生成器
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!随机数,这个没有小伙伴没有用过吧,Java 提供了几个用于生成随机数的类,他们使用起来是这么地简单,以至于我们很少去认真的对待随机数的具体结果,就好像它是真的随机一样。原创 2024-08-29 08:00:39 · 1155 阅读 · 0 评论 -
Java 17 新特性— 模式匹配 的Switch 表达式
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!原创 2024-08-29 07:58:32 · 1591 阅读 · 0 评论 -
Java 17 新特性—概述
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!Java 17,发布于 2021 年 9 月,是一个长期支持(LTS)版本。原创 2024-08-29 07:54:29 · 1036 阅读 · 0 评论 -
Java 16 新特性—概述
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!Java 16 在 2021 年 3 月 16 号发布。原创 2024-08-29 07:47:38 · 987 阅读 · 0 评论 -
Java 15 新特性—概述
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!Java 15 在 2020 年 9 月 15 号正式发布。原创 2024-08-28 08:08:23 · 807 阅读 · 0 评论 -
Java 15 新特性—Hidden Classes(隐藏类)
隐藏类,是一种不能被其他类直接使用的类。Java 15 引入隐藏类主要针对的是库和框架的开发者,而不是直接面向普通 Java 应用程序开发者。不可见性:隐藏类对于 Java 的反射 API 是不可见的,这意味着它们不能通过正常的反射机制被发现或访问。但是,这并不是说,他们是完全不可见的,我们需要知道访问他们的“密码”,只要知道这个密码就可以访问他们。隐藏类与普通 Java 类的最大区别就是隐藏类并不是“广而告之”的,需要通过特殊的手段来找到他们。不兼容性。原创 2024-08-28 07:58:43 · 1021 阅读 · 0 评论 -
Java 15 新特性—密封的类和接口
密封类的主要目的是提供一种更加精确地控制类继承的方法,通过这种方式,类的设计者可以指定一个类它能够被哪些类继承,它增强了类的封装性和安全性。由于密封类限制了类的继承,所以它使得代码更加可预测和易于维护。密封类用sealed修饰,则它的所有子类都必须在同一个模块或者包内,并且这些子类必须被显式地声明为该密封类的直接子类。密封类的子类可以被声明为non-sealed(非密封的)或final(最终的)。non-sealed的子类可以被进一步继承,而final的子类则不能。密封类使用permits。原创 2024-08-28 07:56:59 · 945 阅读 · 0 评论 -
Java 14 新特性—改进 NullPointerExceptions提示信息
时,错误信息通常很简单,仅仅只指出了出错的行号。这会导致我们在排查复杂表达式时显得比较困难,因为无法确定是表达式中的哪一部分导致了。,我们需要花费额外的时间进行调试,特别是在长链式调用或者包含多个可能为空的对象的情况下。联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。时,异常信息会明确指出哪个具体的变量或者表达式部分是空的。的具体原因,无需逐步调试或猜测,有助于快速修复问题,减少维护时间和成本。,除此之外你还能看到其他的信息吗?学习必须往深处挖,挖的越深,基础越扎实!原创 2024-08-27 14:06:06 · 693 阅读 · 0 评论 -
Java 14 新特性—新增 Record 类型
*Record 本质上是一个不可变的、透明的数据载体对象。不可变性:Record 的实例是不可变的,所有字段都是 final 的。数据驱动:Record 主要用于封装一组数据,字段在对象构造时通过构造器参数传递并初始化。简洁性:自动生成所有字段的 getters 方法,这些方法名称与字段名称相同。透明性:自动实现了equals()hashCode()和toString()方法,它们基于 Record 的状态,即其字段的值。UserDTO 使用Record。原创 2024-08-27 14:04:33 · 1010 阅读 · 0 评论 -
Java 14 新特性—模式匹配的 instanceof
是 Java 中的一个关键字,它用于检查一个对象是否是特定类的实例或者该类的子类的实例。它通常用在条件语句中,以确定对象的类型,从而避免在向下转型时发生。操作符的条件判断中直接定义一个变量,如果对象是指定的类型,这个变量会被初始化为被检查的对象,可以立即使用,无需额外的类型转换。联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。但是,该特性是预览特性,未来可能会发生变化,虽然很方便,但在成为标准前请谨慎使用。时,如果左边的实例属于右边的类或接口,或者是他们的子类,那么。原创 2024-08-27 14:03:01 · 451 阅读 · 0 评论 -
Java 14 概述—概述
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!Java 14 是一个非 LTS 版本,发布于2020 年 3 月 17 日。原创 2024-08-27 14:01:28 · 1291 阅读 · 0 评论 -
Java 13 新特性—文本块
在 Java 13 之前,我们有时候需要写多行字符串,比如拼接 HTML、XML 之类的,在处理这种字符串时我们往往需要通过使用。所以为了解决多行字符串处理的复杂性,提高代码的清晰度和开发效率,Java 13 引入文本块。联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。)来标记字符串的开始和结束,允许字符串跨越多行而无需显式的换行符或字符串连接。所以,文本块特别适合处理多行文本数据,极大地简化了多行字符串的处理。学习必须往深处挖,挖的越深,基础越扎实!原创 2024-08-27 08:17:33 · 543 阅读 · 0 评论 -
Java 13 新特性—Switch 表达式扩展
Java 12 引入 Switch 表达式作为预览特性,该特性与传统的 Switch 表达式相比,它允许将整个Switch结构作为一个表达式,直接返回值,而不是像老版本的 Switch 语句一样不支持返回值。对于这简单的逻辑 ,Java 12 可以直接返回,但是这里我想在 default 处增加一个判断 day 是否为空的逻辑,这个时候就无法简单使用。在 Java 12 中,虽然他允许直接从Switch表达式中返回值,但在处理复杂的逻辑时,仍需依赖外部变量来返回结果。关键字来处理多分支结构中的返回值。原创 2024-08-27 08:15:49 · 523 阅读 · 0 评论 -
Java 13 新特性—概述
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!Java 13 于 9 月 17 日正式发布。原创 2024-08-27 08:13:28 · 781 阅读 · 0 评论 -
Java 12 新特性—新增 Collectors API
这种方式比上面求两次的方式更加简洁了,但是它也可能会带来一些性能开销,尤其是在处理大数据集时。所以在使用该方法的时候需要评估数据量,对性能进行测试,确保它满足应用的性能要求。例如,你可以同时计算一个数字列表的平均值和总和,或者找出一个员工列表中工资最高和最低的员工。允许对同时对一个流进行两种不同的收集操作,并将这两种操作的结果合并成一个。联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。平均值和最大值要分别使用两个不同的 Stream 来计算,要算两遍。原创 2024-08-26 07:33:27 · 415 阅读 · 0 评论 -
Java 12 新特性—新增NumberFormat对复杂数字的格式化
联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。这种表达的方式特别适合需要在有限空间内显示数字的场景,如图表、用户界面。紧凑数字格式化,可以将十进制、货币或百分比的长数字格式化为短格式,例如将。为了能够以更简洁的方式显示大数字,Java 12 引入紧凑数字格式化(),这是对 NumberFormat 的一个补充。哥,前中兴通讯、美团架构师,现某互联网公司。学习必须往深处挖,挖的越深,基础越扎实!使用 NumberFormat 类的。作者简介:大家好,我是。原创 2024-08-26 07:31:40 · 455 阅读 · 0 评论 -
Java 12 新特性—新增 Files API
该方法用于比较两个文件的内容,它返回两个文件内容第一次不匹配的位置索引。如果文件完全相同,则返回。联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。该方法非常适用于文件内容比较的场景,尤其是在需要确认两个文件是否完全相同时。为了提高了文件处理的便利性和效率,Java 12 新增方法。哥,前中兴通讯、美团架构师,现某互联网公司。学习必须往深处挖,挖的越深,基础越扎实!作者简介:大家好,我是。原创 2024-08-26 07:30:02 · 205 阅读 · 0 评论 -
Java 12 新特性—新增 String API
该方法非常强大,强大之处在于它的泛型和功能性特点,它允许我们对字符串执行任意类型的操作并返回所需的类型。这两个方法是比较底层的方法,主要主要是为了支持 Java 中的常量描述功能,在日常的 Java 应用程序开发中可能不是经常使用。函数里面,你可以干你任何想干的事情,该方法在对字符串执行复杂转换的场景中特别有用。联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。是负数,则减少缩进,直到某行的所有前导空格都被移除或达到指定的缩进级别。学习必须往深处挖,挖的越深,基础越扎实!原创 2024-08-24 08:33:43 · 472 阅读 · 0 评论 -
Java 12 新特性—Switch 表达式
为了解决 Switch 的现存问题,Java 12 引入全新的Switch 表达式,该表达式不仅增强了 Switch 语句的功能,还大幅提高了其灵活性和表达能力。通过下面一个例子来说明新的 Switch 表达式和老的 Switch 之间的差异,从这些差异中就可以看出 Java 12 中的 Switch 表达式的增强不分。Switch 语句,这是 Java 入门中控制流程的部分,它是除 if 语句外的另外一种条件判断,提供了比连续的。这减少了代码的复杂性,也降低了编程错误的风险。操作符,用于替代传统的冒号(原创 2024-08-24 08:32:02 · 1012 阅读 · 0 评论 -
Java 12 新特性—概述
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!作为一个非长期支持(LTS)版本,Java 12 于2019年3月发布。原创 2024-08-24 08:29:58 · 865 阅读 · 0 评论 -
Java 11 新特性—全新的 HTTP 客户端 API
学习必须往深处挖,挖的越深,基础越扎实!阶段1、深入多线程阶段2、深入多线程设计模式阶段3、深入juc源码解析阶段4、深入jdk其余源码解析阶段5、深入jvm源码解析码哥源码部分码哥讲源码-原理源码篇【2024年最新大厂关于线程池使用的场景题】码哥讲源码【炸雷啦!炸雷啦!黄光头他终于跑路啦!】码哥讲源码-【jvm课程前置知识及c/c++调试环境搭建】码哥讲源码-原理源码篇【揭秘join方法的唤醒本质上决定于jvm的底层析构函数】码哥源码-原理源码篇【Doug Lea为什么要将成员变量原创 2024-08-23 14:51:47 · 1235 阅读 · 0 评论 -
Java 11 新特性—局部变量类型推断的增强
关键字允许编译器推断变量的类型,这大大简化了Java代码的编写。由于可以在 Lambda 表达式中可以使用 var 了,所以我们还可以将注解与类型推断结合使用。这种写法在 Java 11 之前是非法的,但是在 Java 11 中是合法的,在这个例子中,联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。在 Java 11 之前,我们是不能在Lambda表达式的参数中使用。局部变量类型推断是 Java 10 引入的,通过使用。,这在Java 11中得到了改进。原创 2024-08-23 14:49:37 · 515 阅读 · 0 评论 -
Java 11 新特性—Optional API 的增强
当我们需要检查 Optional 是否不包含任何值时,这个方法是非常有用的。它提供了一种更直观的方式来表达这个检查,特别是在不包含值的情况需要特别处理时。联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。Optional 是在 Java 8 中引入用于处理可能为。哥,前中兴通讯、美团架构师,现某互联网公司。学习必须往深处挖,挖的越深,基础越扎实!它提供了一种更优雅的方法来减少。如果 Optional 对象为空,返回 true,它是。作者简介:大家好,我是。原创 2024-08-23 14:47:49 · 213 阅读 · 0 评论 -
Java 11 新特性—新增 Files API
该方法用于比较两个路径是否指向文件系统中的同一个文件,可以用来检查符号链接或文件快捷方式是否指向同一个文件。该方法用于将字符串内容直接写入文件中,避免了以前我们使用 BufferedWriter 类的繁琐过程。该方法可以一次性读取文件的全部内容,避免了以前我们使用 BufferedReader 类的繁琐过程。联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。这三个 API 简化了我们对文件的操作,使得操作文件变得更加简便了。学习必须往深处挖,挖的越深,基础越扎实!原创 2024-08-22 19:29:52 · 370 阅读 · 0 评论 -
Java 11 新特性—新增 String API
联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。该方法返回一个流(Stream),该流由字符串中的行组成,使用行结束符作为分隔符。如果字符串中间有空白字符,它们不会被去掉。将字符串重复指定的次数,并将这些重复的字符串连接为一个新的字符串。,该方法也可以去掉空格,但是它只能去掉除半角空格。则回进一步检查了字符串的内容是否也只包含空白字符。哥,前中兴通讯、美团架构师,现某互联网公司。学习必须往深处挖,挖的越深,基础越扎实!该方法可以处理不同平台上的换行符,无论是。原创 2024-08-22 19:28:23 · 323 阅读 · 0 评论 -
Java 11 新特性—概述
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!原创 2024-08-22 19:26:46 · 1042 阅读 · 0 评论 -
Java 10 新特性—不可变集合的增强
但是有时候我们需要利用现有集合来创建一个不可变副本,然而 Java 9 并没有提供该方法,所以 Java10 对其进行了增强。联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。,而 list2 是可变的,所以需要新建一个不可变对象,所以。用于创建现有集合的不可变副本。Java 9 开始引入不可变集合,我们通过。哥,前中兴通讯、美团架构师,现某互联网公司。学习必须往深处挖,挖的越深,基础越扎实!本身是不可变集合,所以就直接将。作者简介:大家好,我是。Java 10 新增。原创 2024-08-22 09:02:23 · 302 阅读 · 0 评论 -
Java 10 新特性—局部变量类型推断
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!局部变量类型推断是 Java 10 中引入的一项重要特性,通过使用var关键字,允许我们在声明局部变量时省略显式类型。。原创 2024-08-22 09:00:38 · 824 阅读 · 0 评论 -
Java 10 新特性—概述
作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!Java 10 是Java历史上的一个较小的版本,发布于2018年3月。原创 2024-08-22 08:58:52 · 691 阅读 · 0 评论 -
Java 9 新特性—改进CompletableFuture
是 Java 8 中引入用于处理异步编程的核心类,它引入了一种基于 Future 的编程模型,允许我们以更加直观的方式执行异步操作,并处理它们的结果或异常。关于。但是在实际使用过程中,发现在 Java 9 中 CompletableFuture 新增了三个工厂方法。此方法用于创建一个已经完成的该方法允许我们快速创建一个已经有结果的,这对于单元测试或需要立即返回结果的场景非常有用。此方法创建一个异常完成(异常终止)的。原创 2024-08-20 19:08:28 · 925 阅读 · 0 评论