加载中

JDK

文章分类

浏览该分类下的所有文章

5 篇文章 1

Java 21 新功能介绍(LTS)

Java 21(LTS)正式发布,核心特性包括虚拟线程和结构化并发,极大提升并发效率与安全性;新增序列集合、记录模式与增强模式匹配,简化集合操作和数据解构;外部函数与内存 API(FFM)取代 JNI,实现安全高效的原生调用;此外还有字符串模板、分代 ZGC、后量子密钥封装等。文中列出迁移检查、性能调优建议及高并发 Web、ETL 示例,建议尽快评估升级以利用这些新特性。

CentOS 7 安装 JDK 8、MySQL 8、Redis 6、Nginx保姆级教程

本文提供在 CentOS 7 上快速部署 JDK 8、MySQL 8、Redis 6 与 Nginx 的完整步骤。包括检查并卸载旧 Java、通过 yum 安装 OpenJDK 并配置 JAVA_HOME;备份并替换 yum 源后添加 MySQL 官方仓库、安装并启动服务、放通 3306 端口;安装 gcc 编译 Redis、修改配置、创建 systemd service 实现开机自启;安装 EPEL 后使用 yum 安装 Nginx、设置开机启动、检查状态并放通 HTTP/HTTPS 端口。每部分均给出关键命令与参考链接,适合作为新手保姆级教程。

如何让 a == 1 && a == 2 && a == 3同时成立?

文章介绍了利用 Java Integer 缓存实现 `a==1 && a==2 && a==3` 同时成立的技巧。先说明 JDK 为 -128~127 的 Integer 实例化提供了内部类 IntegerCache,范围内的对象会被复用。通过反射获取该缓存数组,将索引对应 2、3 的元素指向存放 1 的对象,随后 `Integer a = 1;` 的自动装箱会从缓存取值,导致 `a` 与 `(Integer)1、2、3`、`Integer.valueOf(1..3)` 均引用同一实例,比较为 true;而 `new Integer(...)` 每次都会创建新对象,地址不同,比较为 false。文章以源码分析解释了缓存机制和 `valueOf` 与构造函数的区别,并指出此类 JDK 特性在面试和性能优化中的价值。

Java8新特性之Stream流

Stream 是 Java 8 处理集合的核心抽象,提供惰性求值、不可变数据源、支持顺序与并行操作的高效方式。文章先说明 Stream 的特性(非数据结构、不会修改原集合、惰性求值)及状态分类(有/无状态、短路/非短路),随后系统列举创建渠道:Collection、Arrays、Stream.of/iterate/generate、BufferedReader.lines、Pattern.splitAsStream 等。接着介绍常用中间操作——filter、limit、skip、distinct、map、flatMap、sorted、peek 等,并给出示例代码。随后阐述终止操作,包括匹配(allMatch、anyMatch、noneMatch)、查找(findFirst、findAny)、计数、min/max、规约(reduce)以及收集(collect)并详细解释 Collector 接口及其实现 Collectors(toList、toSet、toMap、joining、counting、summing、averaging、summarizing 等)。全文通过代码演示,帮助读者快速掌握 Stream 的创建、转换、过滤、排序、规约与收集等完整使用流程。

全面拥抱Java17!

Java 17 作为自 Java 11 之后的下一个 LTS 版本,带来了多项语法升级,显著提升代码可读性和安全性。文章重点介绍了九大新特性:文本块让多行字符串编写更直观;switch 表达式支持返回值并可使用箭头语法简化分支;record 关键字提供简洁的不可变数据类;sealed class 通过 permits 限定子类继承范围;instanceof 模式匹配在判断时即完成类型转换并可配合条件表达式;Helpful NullPointerExceptions 在抛出空指针异常时指明具体的 null 来源;以及日期周期、紧凑数字格式化和 Stream.toList() 等实用改进。通过示例代码,作者展示了这些特性在实际开发中的使用方式,鼓励 Java 开发者全面迁移并利用 Java 17 提升生产力。