- 博客(90)
- 收藏
- 关注
原创 JavaScript 中 map() 和 filter() 的区别详解
需要转换每个元素→ 用map()需要基于条件筛选元素→ 用filter()需要既筛选又转换→ 组合使用(通常先filter后map)需要保持数组长度→ 只能用map()需要移除特定元素→ 用filter()
2025-03-28 15:30:47
881
原创 JavaScript 中 filter() 和 find() 的区别对比
需要多个结果→ 用filter()只需要第一个结果→ 用find()需要性能优化(大数据集) → 优先考虑find()需要确保数组返回值→ 用filter()进行链式操作→ 用filter()
2025-03-28 13:58:25
419
原创 JavaScript 异步操作等待方法总结
/ 示例:控制并发数量的图片上传// 执行单个上传try {console.log('全部上传完成');// 创建并发池// 使用特点:并行执行,手动控制完成条件优点:灵活控制缺点:需要手动管理状态适用场景:需要特殊完成条件判断的场景。
2025-03-27 17:51:39
315
原创 Vue 中 v-if 和 v-show 的区别
v-ifv-showDOM 操作移除/添加 DOM 元素切换display属性组件生命周期触发销毁/重建不触发生命周期变化初始渲染惰性渲染总是渲染适合场景不频繁切换、需要销毁重建频繁切换、需要保留状态。
2025-03-25 10:51:45
440
原创 Optional 类的核心 API
如果值存在且满足谓词条件,则返回包含该值的 Optional,否则返回空 Optional。如果值存在则返回该值,否则调用 Supplier 获取默认值。与 map 类似,但映射函数返回的是 Optional 对象。:不要用它代替常规的 null 检查,主要应用于方法返回值。如果传入 null 会返回空的 Optional。如果值存在则返回该值,否则抛出指定的异常。创建一个空的 Optional 实例。如果值存在则返回该值,否则返回默认值。如果值存在,执行给定的操作。如果值存在,则应用映射函数。
2025-03-25 10:18:14
390
原创 Objects 类的核心操作
类的方法简洁高效,能够显著提高代码的可读性和健壮性,特别是在处理。深度比较两个对象是否相等(支持数组的深度比较)。检查索引是否在有效范围内(Java 9 引入)。使用指定的比较器比较两个对象(支持。返回对象的字符串表示,如果对象为。比较两个对象是否相等(支持。计算多个对象的哈希值(支持。计算单个对象的哈希值(支持。返回对象的字符串表示(支持。值和对象比较时非常有用。,并附带自定义错误信息。
2025-03-21 13:53:32
582
原创 java.time 包 中常用类及其核心方法
表示日期和时间(年、月、日、时、分、秒、纳秒)。表示时间(时、分、秒、纳秒),不包含日期。表示日期(年、月、日),不包含时间。:从字符串解析日期和时间(带时区)。:转换为天数、小时数、分钟数、秒数。表示日期间隔(以年、月、日为单位)。表示时间间隔(以秒和纳秒为单位)。:获取当前日期和时间(带时区)。:创建指定日期和时间(带时区)。:转换为指定时区的日期和时间。用于格式化和解析日期和时间。:将日期时间格式化为字符串。:从字符串解析日期和时间。:获取日期部分和时间部分。:获取日期部分和时间部分。
2025-03-20 15:00:30
861
原创 Collections(集合操作)和Arrays(数组操作)
是一个工具类,提供了大量静态方法,用于操作数组。是一个工具类,提供了大量静态方法,用于操作或返回集合(如。:根据指定比较器在已排序的数组中二分查找。:返回集合中的最大元素(自然顺序)。:返回集合中的最小元素(自然顺序)。:在已排序的数组中二分查找指定元素。如果需要将数组转换为集合,使用。:根据指定比较器在已排序的。:根据指定比较器对数组排序。是固定大小的,不可修改)。:对数组进行自然顺序排序。:将数组转换为字符串表示。:比较两个数组是否相等。:比较多维数组是否相等。如果需要操作数组,使用。
2025-03-20 08:00:00
767
原创 JavaScript 中的 == 和 ===对比
可以避免类型转换带来的意外行为,代码更安全、更易维护。类型转换规则较为复杂,可能导致一些不符合直觉的结果。当需要同时比较值和类型时使用(推荐使用)。当不关心类型,只关心值是否相等时使用。如果比较的两个值类型不同,会先进行。字符串会被转换为数字,然后进行比较。方法转换为原始类型,然后进行比较。不会进行类型转换,直接比较值和类型。只有在明确需要类型转换时,才使用。与任何值(包括自身)都不相等。只有值和类型都相同时,才返回。在宽松相等下是相等的。布尔值会被转换为数字(在大多数情况下,使用。
2025-03-20 07:30:00
341
原创 Map 接口的核心 API
将指定的键值对添加到映射中。:移除指定键对应的键值对,并返回对应的值;基于红黑树实现,键值对按自然顺序或指定比较器排序。插入、删除和查找操作的时间复杂度为 O(1)。插入、删除和查找操作的时间复杂度为 O(1)。:将指定映射中的所有键值对添加到当前映射中。:返回指定键对应的值;基于哈希表和链表实现,键值对按插入顺序排序。:仅当指定键和旧值都匹配时,替换为新值。:仅当指定键和值都匹配时,移除键值对。:替换指定键对应的值(如果键存在)。:返回映射中所有键值对的集合。:清空映射中的所有键值对。
2025-03-19 10:26:09
729
原创 List 和 Set的核心区别
需要按特定顺序存储元素(如按字母顺序排序的单词列表)。:基于红黑树实现,元素按自然顺序或指定比较器排序。查找元素慢(需要遍历,时间复杂度为 O(n))。需要保留插入顺序(如日志记录、用户操作记录)。需要按索引访问元素(如随机访问列表中的元素)。:基于动态数组实现,随机访问快,插入删除慢。:基于双向链表实现,插入删除快,随机访问慢。:基于哈希表和链表实现,元素按插入顺序排序。元素按插入顺序存储,可以通过索引访问。允许重复元素(如购物车中的商品)。需要快速查找元素(如黑名单检查)。:基于哈希表实现,元素无序。
2025-03-19 09:58:11
891
原创 Set 接口的核心 API
将指定元素添加到集合中(如果集合中尚未包含该元素)。基于红黑树实现,元素按自然顺序或指定比较器排序。插入、删除和查找操作的时间复杂度为 O(1)。:将指定集合中的所有元素添加到当前集合中。基于哈希表和链表实现,元素按插入顺序排序。:判断集合是否包含指定集合中的所有元素。:移除集合中与指定集合相同的所有元素。:从集合中移除指定元素(如果存在)。:仅保留集合中与指定集合相同的元素。:返回集合的迭代器,用于遍历元素。:将集合转换为指定类型的数组。:判断集合是否包含指定元素。:清空集合中的所有元素。
2025-03-18 17:06:22
597
原创 Java 线程的创建、生命周期、同步机制和线程池
因等待 I/O、锁或其他资源而暂停执行。:获得 CPU 时间片,执行。:线程对象已创建,但未调用。后,等待 CPU 调度。方法执行完毕或发生异常。
2025-03-18 11:01:04
346
原创 Java 中的 this 和 super
调用父类的构造方法(默认隐含调用父类无参构造,若父类没有无参构造则必须显式调用)。当成员变量(类的属性)与局部变量(方法参数或方法内变量)同名时,可以用。:用于访问父类的成员、调用父类构造方法以及解决子类覆盖父类方法时的冲突。可以增强代码的可读性,避免命名冲突,并正确管理继承关系中的成员访问。调用本类的其他构造方法(必须放在构造方法的第一行)。当子类覆盖了父类的方法或定义了同名成员变量时,可以用。在多态场景中,即使子类重写了父类的方法,也可以用。只能访问直接父类的成员,无法跨级访问祖父类。
2025-03-17 16:39:08
358
原创 Java List 接口的核心 API
删除列表中包含在指定集合中的所有元素。:仅保留列表中包含在指定集合中的元素。:将集合中的所有元素添加到列表末尾。:将集合中的所有元素插入到指定位置。:从指定位置开始返回一个列表迭代器。:返回指定元素最后一次出现的索引。:返回指定元素首次出现的索引。:判断列表是否与指定对象相等。:判断列表是否包含指定元素。:将元素添加到列表末尾。:将元素插入到指定位置。:转换为指定类型的数组。:删除指定位置的元素。:获取指定位置的元素。:修改指定位置的元素。:返回一个列表迭代器。:判断列表是否为空。:返回列表的哈希码。
2025-03-14 15:00:51
1195
原创 JavaScript 中的Set
SetSet是一种存储唯一值的数据结构。它的特点是:值可以是任意类型(包括对象、函数等)。值的顺序是插入顺序。不允许重复值。Set可以通过new Set()创建一个空的Set,或者传入一个数组来初始化Set。
2025-03-13 17:51:59
342
原创 JavaScript 中的Map
MapMap是一种数据结构,用于存储键值对。它的特点是:键可以是任意类型的值(包括对象、函数等),而不仅仅是字符串或符号(Symbol键值对的顺序是插入顺序。提供了丰富的方法来操作键值对。Map可以通过new Map()创建一个空的Map,或者传入一个二维数组来初始化Map。
2025-03-13 17:20:47
691
原创 js中 BigNumber 的使用
对象不能直接与 JavaScript 的。类型进行运算,必须先将。类型范围的整数运算。需要高精度的小数运算。科学计算或金融计算。
2025-03-11 17:58:59
481
原创 System 类的核心 API
System类别方法说明标准输入输出outerrin标准输出、错误输出、输入系统属性获取或设置系统属性环境变量getenv()获取环境变量时间和计时nanoTime()获取当前时间或高精度计时数组复制复制数组垃圾回收gc()建议垃圾回收退出程序exit()终止 JVM安全管理获取或设置安全管理器其他load()加载本地库、获取哈希码。
2025-03-10 15:01:19
721
原创 Math 类的核心 API
Math类提供了丰富的数学运算方法,涵盖了基本运算、指数对数、三角函数、双曲函数、角度弧度转换等。类别方法说明基本运算abs()max()min()绝对值、最大值、最小值取整ceil()floor()round()向上取整、向下取整、四舍五入随机数random()生成随机数指数对数pow()sqrt()log()幂运算、平方根、对数三角函数sin()cos()tan()正弦、余弦、正切角度弧度转换角度与弧度转换其他signum()hypot()符号函数、平方和的平方根。
2025-03-10 14:15:10
1055
原创 Object 类中的 API 方法及其作用总结
方法签名作用说明clone()创建对象的副本需要实现Cloneable接口判断对象是否相等通常需要重写finalize()垃圾回收前调用不推荐使用getClass()返回对象的运行时类用于反射hashCode()返回对象的哈希码通常需要重写notify()唤醒单个等待线程必须在同步块中调用唤醒所有等待线程必须在同步块中调用toString()返回对象的字符串表示通常需要重写wait()使线程等待必须在同步块中调用wait(long)使线程等待指定时间必须在同步块中调用。
2025-03-09 08:00:00
670
原创 Java 核心 API
:所有类的基类,提供了 、、、 等方法。:字符串操作,如 、、、 等。 / :可变字符串操作。:数学运算,如 、、、 等。:系统操作,如 、、 等。集合框架::有序集合,如 、。:无序集合,如 、。:键值对集合,如 、。工具类:(集合操作)、(数组操作)。日期和时间:、(旧版)。、、(Java 8 引入的新日期 API)。其他工具类::对象操作,如 、。:避免空指针异常。文件操作::文件或目录操作。 / :文件读写。 / :缓冲读写。序列化::对象序列化接口。高效 IO 操作::字节缓冲区。:通道操作。:文
2025-03-09 07:00:00
1415
原创 StringBuilder 和 StringBuffer 的区别
都是可变的字符序列,可以在不创建新对象的情况下修改字符串内容。关键字修饰,确保多线程环境下的数据一致性。是不可变的,每次修改都会创建新对象,而。直接修改内部字符数组,性能更高。:两者的方法几乎完全相同,例如。是线程安全的,所有方法都使用。由于使用了同步机制,性能较低。如果不需要线程安全,优先使用。由于没有同步开销,性能更高。是非线程安全的,没有使用。在单线程环境中,推荐使用。在多线程环境中,推荐使用。适合在多线程环境中使用。适合在单线程环境中使用。如果需要线程安全,使用。删除指定范围的字符。
2025-03-08 07:00:00
363
原创 Java 中 String 类的API 总结
返回值为负数、零或正数,表示当前字符串小于、等于或大于参数字符串。去除字符串两端的空白字符(支持 Unicode 空白字符)。使用正则表达式替换字符串中第一个匹配的子字符串。使用正则表达式替换字符串中所有匹配的子字符串。返回从指定索引开始到字符串末尾的子字符串。将指定字符串连接到当前字符串的末尾。判断字符串是否为空或仅包含空白字符。判断字符串是否匹配指定的正则表达式。判断字符串是否为空(长度为 0)。判断字符串是否包含指定子字符串。判断字符串是否以指定前缀开头。返回字符串的流(按行分割)。
2025-03-08 06:45:00
915
原创 在 MySQL 中,IN 和 EXISTS的区别
子查询会先执行子查询,将子查询的结果集缓存起来。主查询会逐行检查子查询是否返回至少一行结果。执行方式是先缓存子查询结果集,然后进行匹配。执行方式是逐行检查子查询是否返回结果。适合用于静态的、确定性的子查询。子查询不会缓存子查询的结果集。适合用于动态的、条件性的子查询。会逐行检查子查询是否返回结果,子查询的结果集无法利用索引。如果子查询返回至少一行结果,如果子查询返回至少一行结果,适合子查询结果集较小的场景。适合子查询结果集较大的场景。是否在子查询的结果集中。是否在子查询的结果集中。
2025-03-07 08:59:58
730
原创 sessionStorage的存储机制
是一种基于页面会话的客户端存储机制,数据在页面会话期间有效。它的作用域限定在当前页面会话中,不同标签页或窗口之间的数据是隔离的。使用可以方便地存储临时数据,但需要注意其生命周期和容量限制。与相比,更适合存储临时数据,而更适合存储持久化数据。
2025-03-07 07:00:00
833
原创 Stream API总结
Stream API提供了一种高效且简洁的方式来处理集合数据。通过中间操作和终端操作的组合,可以实现复杂的数据处理逻辑。以下是Stream API声明式编程:代码更简洁,易于理解。链式调用:支持多个操作的链式调用。并行处理:可以轻松实现并行计算。
2025-03-06 07:00:00
912
原创 ArrayList 常用的循环方式
遍历方式特点普通for循环通过索引访问元素,适合需要索引的场景。增强for循环语法简洁,适合不需要索引的场景。Iterator迭代器可以在遍历时删除元素,适合需要修改结构的场景。支持双向遍历,适合需要向前或向后遍历的场景。forEach方法语法简洁,适合函数式编程风格。Stream API支持链式操作,适合处理复杂的集合操作。
2025-03-05 16:04:38
318
原创 js操作字符串的常用方法
特性说明是否改变原字符串不会改变原字符串。返回值如果找到子字符串,返回其起始索引;如果未找到,返回-1。区分大小写是,区分大小写。适用场景查找子字符串在字符串中的位置。特性说明是否改变原字符串不会改变原字符串。返回值如果找到子字符串,返回其起始索引;如果未找到,返回-1。查找方向从字符串末尾开始向前查找。区分大小写是,区分大小写。适用场景查找子字符串在字符串中最后一次出现的位置。特性说明是否改变原字符串不会改变原字符串。返回值如果包含子字符串,返回true;否则返回false。区分大小写。
2025-03-05 15:01:27
1475
原创 js操作数组的常用方法
特性说明是否改变原数组不会改变原数组。返回值返回一个新数组,新数组是原数组展平后的结果。适用场景用于将嵌套数组展平为一维数组,可以指定展平的深度。特性说明是否改变原数组不会改变原数组。返回值返回一个新数组,新数组是映射并展平后的结果。适用场景用于对数组中的每个元素执行映射操作,并将结果展平一层。
2025-03-04 18:01:33
1350
1
原创 reduce 和 reduceRight的区别
reduce:从左到右遍历数组(从第一个元素到最后一个元素)。:从右到左遍历数组(从最后一个元素到第一个元素)。reduce:适用于从左到右的累积操作,例如求和、拼接字符串等。:适用于从右到左的累积操作,例如反转字符串、从后向前处理数据等。
2025-03-04 09:56:21
819
原创 Vue 3 核心 API 和函数
立即执行回调,并自动追踪回调中使用的响应式数据,当数据变化时重新执行回调。:标记一个对象为“非响应式”,使其不会被转换为响应式对象。:当明确不需要某个对象被 Vue 的响应式系统追踪时使用。:创建一个响应式的引用(通常用于基本类型数据)。:返回一个响应式对象的原始对象(非响应式版本)。:创建一个响应式对象(通常用于对象或数组)。:创建一个只读的响应式对象,不能修改其属性。:监听响应式数据的变化,并在变化时执行回调。:检查一个对象是否为只读的响应式对象。:检查一个对象是否为响应式对象。
2025-03-03 16:29:59
820
原创 dom有几种获取方式
在 HTML 中,几乎所有的操作都可以通过来实现。DOM 是浏览器提供的一种编程接口,它将 HTML 文档解析为一个树形结构,开发者可以通过 JavaScript 操作这个树形结构来实现对 HTML 的动态修改和交互。
2025-02-28 22:00:00
741
原创 private 关键字的常见用法及其作用
用法作用示例private变量隐藏类的内部状态,提供getter和setterprivate方法封装类的内部逻辑,外部无法访问private构造函数限制类的实例化方式(如单例模式)private内部类封装外部类的实现细节private静态成员封装类的静态状态或工具方法private与封装提高代码的安全性和可维护性private与继承private成员不能被子类继承或访问private与反射通过反射可以访问private成员通过合理使用private。
2025-02-28 20:00:00
375
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人