自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 Java 集合有序性与重复性总结及记忆技巧

底层用Map实现(如HashSet用HashMap),(名字丢进去乱序混合,但每人只能中奖一次)(按排队顺序叫号,但每个号码唯一)(像排队,先来后到,可以有人同名)(按学号顺序记录,允许同名同姓)(像字典,按字母排序且单词唯一)(像丢进桶里的球,乱序且唯一)(用链表记录顺序,但内容唯一)(按字母排序,每个单词唯一):排序(自然/定制顺序)

2025-04-08 22:41:40 452

原创 在集合中哪些可以为null,哪些不能为null;Java 集合中 null 值允许情况总结与记忆技巧

"在非并发Map中,可以通过containsKey检查,但并发场景下检查与操作不是原子的":将 null key 的哈希值固定为 0,存储在数组第 0 个桶。是"不存在该key"还是"该key的值为null"。:允许 null key 和 null value。:不允许 null(因为底层是 TreeMap):允许 null(因为底层是 HashMap):不允许 null(避免 poll() 歧义)如果允许 null value,无法区分。:老古董,什么都不让用(联想:老顽固):不允许 null key。

2025-04-08 22:12:38 436

原创 TreeMap 核心知识点与面试题解析

常用方法(ceilingKey, floorKey, subMap):返回 ≥ key 的最小 key(如没有,返回 null)。:返回 ≤ key 的最大 key(如没有,返回 null)。从任意节点到其叶子节点的路径上,黑色节点数相同(红色节点的子节点必须是黑色(不能连续红节点)。如果红黑树为空,直接插入为根节点(黑色)。(左-根-右)会按 key 的顺序输出。根节点和叶子节点(NIL)是黑色。插入新节点(默认为红色)。(父、叔变黑,祖父变红)。每个节点是红色或黑色。(如范围查询、排序)。

2025-04-08 21:29:38 569

原创 Java Comparable 接口详解

Java Comparable 接口详解

2025-04-08 21:03:53 224

原创 红黑树(Red-Black Tree)核心知识点与面试高频问题

叔叔节点是黑色,且当前节点是“右-左”或“左-右”结构 → 先旋转父节点,转为Case 4/5。:叔叔节点是黑色,且当前节点是“左-左”或“右-右”结构 → 变色后旋转祖父节点。删除黑色节点后可能破坏黑高平衡,需根据兄弟节点的颜色和子节点结构调整。:从任意节点到其所有叶子节点的路径上,黑色节点的数量相同(称为。:红色节点的子节点必须为黑色(即不能有连续的红色节点)。:以某个节点为支点,将其右子节点提升为新的父节点。:以某个节点为支点,将其左子节点提升为新的父节点。:所有叶子节点(空节点)视为黑色。

2025-04-07 22:40:35 329

原创 二叉树与红黑树核心知识点及面试重点

红黑树的实现细节较复杂,建议结合可视化工具(如。(哈希冲突时,红黑树将查找时间从O(n)优化到O(log n)):从任一节点到其叶子节点的所有路径包含相同数量的黑色节点。(需掌握case分析,如叔节点为红/黑时的不同处理):每个节点最多有两个子节点(左子节点和右子节点):红色节点的子节点必须为黑色(不能有连续红节点)红黑树的插入删除过程中,有哪些情况需要处理?(结合插入/删除的变色和旋转规则回答)如何证明红黑树的高度是O(log n)?:从节点到最深叶子节点的路径长度。:从根到节点的路径长度。

2025-04-06 23:02:06 656

原创 Java Properties 类详解

建议统一使用 UTF-8 编码,配合 IDE 的 properties 文件插件。:复杂配置建议用 YAML/JSON 格式(如 Spring Boot 的。:频繁读取的配置可缓存到内存中。是 Java 中用于处理。

2025-04-06 22:01:05 289

原创 hashtable遍历的方法有哪些

遍历时仍需外部同步(或使用其内置安全迭代器):先获取所有键,再通过键取值。:需要边遍历边修改集合时使用。在 Java 中,遍历。:适用于少量数据(每次。对象已包含键和值的引用。:多线程并行处理大数据量。:线程安全问题需自行保证。// 写法简洁且性能最优。)有多种方式,以下是。:支持遍历时删除元素(:代码简洁,函数式风格。

2025-04-05 22:25:06 410

原创 哈希表(Hashtable)核心知识点详解

每个桶(bucket)存储链表或红黑树(如Java 8+的HashMap)当链表长度≥8且桶数量≥64时,链表转为红黑树(防止DoS攻击):通过键(Key)直接访问值(Value)的数据结构,基于。:将任意大小的键转换为固定大小的哈希值(通常为整数)。作用:触发扩容的阈值(如Java HashMap)重新计算所有键的哈希位置(rehash):空间和时间成本的折中(数学证明较优)。如两数之和(LeetCode 1):HashMap如何解决哈希冲突?:不同键应均匀分布,减少冲突。:链地址法(链表+红黑树)。

2025-04-05 20:37:54 867

原创 为什么hash%length 和hash&length-1 的值是一样的(当length=2的幂次方)

当length是 2 的幂次方时,和确实等价,这是计算机科学中一个巧妙的位运算优化。

2025-04-01 22:58:04 42

原创 getClass()和instanceof()有啥不同,如何记忆

在 Java 中,getClass()和instanceof都用于类型检查,但它们在语义和使用场景上有重要区别。

2025-03-24 20:22:06 39

原创 Objects.equals() 和 Object.equals() 的区别:

安全比较两个对象是否相等(包括处理。是Java 7新增的,专门解决。来比较字段,这是最安全的做法。是Java最初的设计。

2025-03-24 20:15:38 152

原创 在链表的指定位置 index 插入一个新节点

功能:在链表的指定位置插入一个新节点。时间复杂度:O(n),其中n是链表的长度。因为需要遍历链表找到插入位置的前一个节点。优化:如果链表维护一个指向最后一个节点的指针last,可以在尾部插入时优化为 O(1)。

2025-03-18 22:58:10 400

原创 向单链表的末尾添加一个新节点

功能:向单链表的末尾添加一个新节点。时间复杂度:O(n),其中n是链表的长度。因为需要遍历链表找到最后一个节点。优化:如果链表维护一个指向最后一个节点的指针last,可以将时间复杂度优化为 O(1)。

2025-03-18 22:22:24 326

原创 1.两数之和

核心思想:通过HashMap存储已经遍历过的元素及其下标,快速查找是否存在满足条件的数对。时间复杂度:O(n),只需要遍历一次数组。空间复杂度:O(n),需要额外的空间存储HashMap。暴力枚举法:简单直观,但效率较低,适合小规模数据。哈希表法:效率高,适合大规模数据,是更优的解决方案。推荐使用哈希表法,因为它能在 O(n) 的时间复杂度内解决问题。

2025-03-14 22:28:06 592

原创 什么是匿名内部类

匿名内部类的特点

2025-03-12 19:34:51 241

原创 java.lang.ClassCastException 是 Java 中的一种运行时异常,通过集合的例子

是 Java 中的一种运行时异常,它发生在试图将一个对象强制转换为一个不兼容的类时。下面通过集合的例子详细说明这个异常的产生及其解决方法。

2025-03-08 20:26:08 241

原创 java.lang.IllegalStateException

(非法状态异常)通常在对象处于不适合执行某个操作的状态时抛出。例如,尝试在一个不允许的状态下调用某个方法,或者在一个对象的状态不符合预期的情况下进行操作。

2025-03-08 12:44:54 223

原创 java.util.NoSuchElementException

在这个修改后的示例中,我们在调用`next()`之前使用`hasNext()`方法进行检查,从而避免了`NoSuchElementException`异常的发生。这种异常常常与迭代器的使用有关。要避免`NoSuchElementException`,可以在调用`next()`方法之前,先使用`hasNext()`方法检查是否还有元素可供访问。当迭代器遍历完所有元素后,再次调用`next()`方法时,由于没有更多元素可供访问,程序将抛出`NoSuchElementException`异常。

2025-03-08 12:31:21 176

原创 java中fail-fast机制的源码分析

fail-fast`机制主要通过在集合类(如`ArrayList`、`HashMap`等)中维护一个修改计数器(modCount)来实现。在`next()`方法中,调用了`checkForComodification()`方法,该方法会检查当前的`modCount`与`expectedModCount`是否相等。如果需要在遍历时安全地修改集合,可以考虑使用`Iterator`的`remove()`方法,或者使用`CopyOnWriteArrayList`等线程安全的集合类。// 预期的修改计数器。

2025-03-07 16:57:22 494

原创 java.util.ConcurrentModificationException并发修改异常

(并发修改异常)通常在尝试对集合进行迭代时,如果在迭代过程中对集合进行了修改,就会抛出该异常。这种异常主要是为了防止在多线程环境下出现不一致的状态。然后我们使用迭代器遍历这个列表。在遍历过程中,我们尝试删除一个元素("B"),这会导致。被抛出,因为我们在迭代过程中修改了集合。方法,或者在遍历完成后再进行修改。在这个修改后的示例中,我们使用了迭代器的。方法来安全地删除元素,从而避免了。要避免这种异常,可以使用迭代器的。在这个例子中,我们创建了一个。

2025-03-06 22:13:50 298

原创 编写一个电影推荐系统

*假设你正在开发一个电影推荐系统,需要实现以下功能: 1.用户注册和登录:用户可以进行注册和登录操作,系统会保存用户的基本信息,包括用户名、密码、电子邮件地址等。2.电影添加和删除:管理员可以添加新的电影记录,每条记录包括电影名称、导演、演员、类型、时长、上映日期、评分等内容。管理员也可以删除指定的 3.电影推荐和评价:用户可以根据自己的兴趣进行电影推荐,系统会根据用户的选择推荐相对应的电影。

2025-03-02 20:55:25 419

原创 生成五个不相同的随机数(使用数组来编写)

生成5个不相同的随机数(使用数组编写)

2025-02-27 18:00:25 304

原创 java.lang.NumberFormatException

这行代码的意图是将字符串转换为整数,但由于提供的字符串不是有效的数字,会导致运行时错误。在实际编程中,应该确保传入的字符串是有效的数字格式,以避免异常的发生。

2025-02-21 22:04:22 209

原创 获取两个字符串最大相同的子字符串

【代码】获取两个字符串最大相同的子字符串。

2025-02-21 20:03:34 79

原创 从身份证中读取信息,要求读取出这个人的生日以及性别

从身份证中读取信息,要求读取出这个人的生日以及性别

2025-02-21 13:32:30 88

原创 获取子字符串在整个字符串中出现的次数

【代码】获取子字符串在整个字符串中出现的次数。

2025-02-21 12:50:09 76

原创 二分法查找/折半查找算法

【代码】二分法查找/折半查找算法。

2025-01-14 12:17:21 30

原创 如何在idea中,添加JDK?

如何在idea中,添加JDK?

2024-11-18 11:47:28 4456 1

原创 编写酒店管理系统,房间的状态一直是空闲状态?

编写酒店管理系统,房间的状态一直是空闲状态?

2024-11-17 23:15:37 137 1

原创 pom文件中出现这样的问题Tag name: project Description : The <project> element is the root of the descriptor.

pom文件中出现这样的问题Tag name: project Description : The element is the root of the descriptor.

2023-12-06 21:01:03 1564 1

原创 maven中mybatis-generator插件执行报错:Cannot resolve classpath entry

方法1.出现这种情况,可能是因为没有创建java和resources目录,只需要创建即可。只需在标签中添加如下所示位置。根据自己计算机目录位置来更改标签中内容即可。更改后,通过刷新,逆向工程即可运行成功,然后并产生对应文件。方法2.可能是pom.xml文件出现问题,

2023-12-03 12:20:45 2840 2

原创 IDEA中, Maven不显示插件 mybatis-generator

实现逆向工程时,导入依赖后,发现不显示 Maven 插件 mybatis-generator。如下图为未显示mybatis-generator的pom文件代码。操作完成后,刷新,即可出现。

2023-12-03 11:28:00 1453 1

原创 出现错误:SLF4J: Class path contains multiple SLF4J bindings.

原因:类路径出现多个SLF4J。

2023-08-27 16:40:06 393

原创 添加依赖时,出现了此问题maven Cannot resolve org.apache.dubbo:dubbo-dependencies-zookeeper

maven Cannot resolve org.apache.dubbo:dubbo-dependencies-zookeeper

2023-08-27 12:35:04 413

原创 springframework.jdbc.BadSqlGrammarException:

springframework.jdbc.BadSqlGrammarException:

2023-08-01 21:07:38 117 1

原创 Handler dispatch failed; nested exception is java.lang.StackOverflowError

Handler dispatch failed; nested exception is java.lang.StackOverflowError

2023-08-01 11:33:22 7653 1

原创 编写空心三角形

空心三角形(java编写)

2022-12-22 19:48:01 107 1

原创 掌握typora使用方法

掌握typora使用工具方法

2022-01-01 15:42:48 192

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除