JavaSE
文章平均质量分 90
阿乾之铭
java后端
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java后端序列化工具 Jackson 和 FastJSON
FastJSON 2.x 提供了。,但如果数据格式错误,会抛出。FastJSON 也可以解析。Jackson 还可以解析。Jackson 会抛出。原创 2025-03-12 15:33:03 · 608 阅读 · 0 评论 -
ThreadLocal
在多线程环境中,如果多条线程都要访问(读写)同一个全局变量,就会遇到并发、安全、数据一致性等问题。我们可能需要加锁、加 volatile 等,或者想办法把这个变量变成方法参数层层传递,十分繁琐。但有些场景,数据其实不需要被线程之间共享,而是“线程私有”的。当前线程处理的是“请求A”,里面存了“用户ID=1001”;另一个线程处理“请求B”,里面存了“用户ID=2002”;这两条线程对 “用户ID” 的值并没有交互或共享的必要,每个线程只关心“自己的用户ID”即可。如果我们希望快速地在。原创 2025-02-05 23:38:21 · 823 阅读 · 0 评论 -
函数式接口的定义与使用(作为参数)
函数式接口是指只包含一个抽象方法的接口,这样的接口可以用 lambda 表达式或者方法引用来创建其实例。Java 8 引入了函数式接口的概念,它通常用于传递行为(即函数),使代码更加简洁和灵活。定义一个函数式接口的基本语法: 注解不是强制的,但它有助于确保该接口符合函数式接口的规范(即只有一个抽象方法)。 是唯一的抽象方法,它接受一个参数并返回一个值。2. 使用 Lambda 表达式作为函数式接口的参数当一个函数式接口的实例作为方法的参数传递时,我们通常使用 lambda 表达式 来传递该实原创 2024-12-04 16:11:27 · 1150 阅读 · 0 评论 -
Java枚举类
根据名字返回对应的枚举常量。如果名字不存在,会抛出。是 Java 中用来定义一组固定常量的特殊类型。以下是一个商品的枚举类,每个商品具有。返回所有枚举常量的数组。返回枚举常量的序号(从。原创 2024-12-01 21:41:29 · 394 阅读 · 0 评论 -
Hutool工具类
用途工具类作用示例代码字符串操作判断是否为空、去空格、分割/拼接字符串集合操作判断集合是否为空、检查是否包含元素对象操作判断对象是否为空、安全比较两个对象参数校验Assert校验参数是否为空或符合要求,避免非法输入资源加载Resource加载配置文件、模板文件或静态资源数据摘要生成 MD5 等摘要,用于密码加密或文件校验属性拷贝BeanUtils拷贝对象属性,简化 DTO 转换。原创 2024-11-24 17:01:18 · 1090 阅读 · 0 评论 -
Javadoc的注释方式
***/@标签描述方法的参数。描述方法的返回值。描述方法可能抛出的异常。提供相关链接,用于引用类、方法或文档。标记方法或类已废弃,建议开发者避免使用。表示从哪个版本开始引入。@since 版本号嵌入式链接,用于引用类或方法。标注类或接口的作者。标注类的版本号。用于嵌入代码片段,常用于描述参数或示例。原创 2024-11-24 16:06:28 · 1653 阅读 · 0 评论 -
Stream API
Stream API是 Java 8 引入的一个用于操作集合数据的框架。它并不是数据的存储结构,而是一个高效的数据处理工具。Stream 提供了一种声明式、链式的方式,让我们能够对集合、数组等数据进行过滤、映射、排序、聚合等一系列复杂操作,并支持并行处理。核心特点:声明式代码:通过链式操作替代繁琐的循环,使代码更加简洁。延迟执行:Stream 的中间操作不会立即执行,而是在需要结果时(终端操作)才会触发整个链式操作。并行处理:利用多核 CPU 的优势进行并行处理,大大提升数据处理的效率。原创 2024-11-13 20:24:42 · 1591 阅读 · 0 评论 -
Java数组
与基本类型数组不同,引用类型数组存储的是对象的引用(地址)而非对象本身。这类数组在存储和访问上稍微复杂一些,因为每个数组元素都是一个对象引用,访问时需要特别注意引用的初始化。多维数组是数组的数组,例如,二维数组中的每个元素也是一个数组。需要特别注意的是,引用类型数组的元素是对象的引用,修改数组的某个元素指向新的对象并不会影响其他元素。数组在Java中是用来存储相同类型数据的集合,可以容纳多个元素,并通过索引(位置编号)来访问和管理这些元素。,因为引用类型数组存储的是对象的引用,而此时并未创建对象。原创 2024-11-12 20:18:52 · 1279 阅读 · 0 评论 -
Java字符串的处理
特性String是否可变不可变可变可变线程安全是是否性能最低中等最高(单线程情况下)使用场景少量字符串修改多线程环境中大量字符串修改单线程环境中大量字符串修改。原创 2024-11-12 19:25:39 · 1203 阅读 · 0 评论 -
HashMap
HashMap是Java中基于哈希表的数据结构,用于存储键值对(key-value pairs),提供快速的插入、删除和查找操作。主要特点非线程安全HashMap不是线程安全的,无法在多线程环境中直接使用,可能导致数据竞争和不一致。在并发场景中,可以使用。无序存储HashMap不保证插入顺序和迭代顺序,键值对在内部存储时完全依据哈希值的位置,插入顺序和取出顺序可能不同。支持null键和null值HashMap允许一个null键和多个null值。null键通常被映射到数组的第一个位置,而null。原创 2024-11-07 12:22:52 · 991 阅读 · 0 评论 -
完整版Java类型
Java有8种基本数据类型,这些类型直接存储值,占用固定内存,效率较高。它们不属于类,没有方法或属性。原创 2024-11-07 12:22:19 · 941 阅读 · 0 评论 -
Java 迭代器(Iterator)
List。原创 2024-11-06 13:21:42 · 775 阅读 · 0 评论 -
Spring boot框架下的Java 反射
Spring容器启动时,会扫描类路径下标注有特定注解(如。原创 2024-11-05 08:19:57 · 2370 阅读 · 0 评论 -
Optional
Optional。原创 2024-10-27 11:30:44 · 1040 阅读 · 0 评论 -
Lambda 表达式
函数式接口是只有一个抽象方法的接口。在 Lambda 表达式中,Java 编译器会自动推断你在实现的接口是什么,只要该接口符合函数式接口的定义。例如,Runnable是一个函数式接口void run();// 只有一个抽象方法在 Java 8 之前,匿名内部类被广泛用于实现接口。Lambda 表达式的引入是为了简化这种实现,使代码更加简洁。Lambda 表达式本质上是创建了接口的实现类对象,与匿名内部类的效果相同,但语法更简洁。@Override有了 Lambda 表达式后,代码可以简化。原创 2024-10-26 15:32:04 · 1093 阅读 · 0 评论 -
在Spring Boot框架下的Java异常处理(包含SLF4J日志记录)
你可以根据业务需求创建自定义异常类,通常继承自Exception或。1.5.1 继承Exception类创建一个受检异常类,调用者需要处理它。1.5.2 继承类创建一个非受检异常类,不强制要求调用者处理。throw new CustomUncheckedException("值不能为负数");Exception和是Java异常体系的核心。受检异常必须捕获或声明,非受检异常可以选择处理。是处理异常的主要机制,finally用于资源释放。throws用于声明方法可能抛出的异常。可以通过继承。原创 2024-10-26 15:31:44 · 1629 阅读 · 0 评论 -
原子类(Atomic Classes)
如果不相等,说明其他线程已经修改了该变量,此时不执行修改,而是重新尝试操作。:如果一个变量的值从 A 变成 B,然后又变回 A,CAS 操作无法检测到这个变化,这可能会导致数据不一致。(例如 CAS,Compare-And-Swap,比较并交换)来保证操作的原子性和线程安全性。是用于操作引用类型(如对象)的原子类,它可以确保在多线程环境中安全地修改对象引用。原子类避免了使用传统的锁,从而提供了更好的性能,并且降低了死锁等并发问题的风险。,它为每个变量的值增加了一个版本号,用于跟踪变量的变化。原创 2024-10-25 11:21:26 · 955 阅读 · 0 评论 -
Java IO
字符是表示文本的基本单位,具有 Unicode 码点,用于表示不同的符号和文字。字节是数据存储的基本单位,通常由 8 个二进制位组成,用于存储和传输数据。字符通过编码转换为字节,以便在计算机中进行处理和存储。所有字符都需要编码,但字节是存储数据的基础。字节流类型功能常用方法使用场景从文件中读取字节数据读取文件中的原始字节数据,如图片、音频等将字节数据写入文件向文件中写入原始字节数据使用缓冲区从文件中读取字节数据,提升读取效率在读取大文件时使用,以减少磁盘IO操作,提高效率。原创 2024-10-24 11:00:40 · 754 阅读 · 0 评论 -
Java 集合
定义:集合框架是一套标准化的接口和类,用来操作一组对象。它将各种数据结构(如动态数组、链表、队列、集合等)转换为Java中的类,并为其定义统一的操作方式。作用简化编程:集合框架提供了一组常用的数据结构和算法,开发者无需重复编写基本的存储、查找、排序等操作。可扩展性:通过标准接口和抽象类,开发者可以轻松实现自定义的数据结构并与框架兼容。提高效率:集合框架中的许多实现都是高度优化的,适用于各种场景的性能需求(如快速查找、增删、排序等)。提高代码的可维护性。原创 2024-10-23 12:46:36 · 1160 阅读 · 0 评论 -
Java入门基础知识
本篇主要整理了java初学者入门的各种基础知识,建议具有C++基础的同学学习,因为有一些很基础的内容没有收录进去原创 2024-08-15 18:53:48 · 3478 阅读 · 0 评论 -
Java 泛型
是Java中的一种机制,用来定义可以适用于多种不同数据类型的类、接口和方法。它允许开发者在定义类、接口或方法时,不指定具体的类型,而是使用类型参数(如TEKV等)作为占位符。这样可以在保持类型安全的前提下实现代码的通用性和重用性。:泛型就是在编写代码时暂时不指定操作的数据类型,而是在使用的时候再指定具体的数据类型。原创 2024-10-07 09:46:31 · 726 阅读 · 0 评论
分享