自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深入理解 Java 异常处理机制

在程序执行过程中,如果发生了错误(例如文件没有找到、数组越界等),就会抛出一个异常。异常是程序的一种特殊对象,代表了程序执行过程中发生的问题。Java 通过异常机制,允许开发者在代码中捕获、处理这些问题,而不是让程序直接崩溃。检查型异常(Checked Exception):必须在代码中显式地进行处理,或者通过throws抛出。非检查型异常(Unchecked Exception):也叫运行时异常(RuntimeException),通常是由于程序错误(如空指针、数组越界等)导致的,不需要显式处理。

2024-11-15 22:33:17 954

原创 JDBC 与 MyBatis

JDBC是 Java 提供的一种连接数据库的 API(应用程序编程接口),它允许 Java 程序通过标准的 SQL 查询数据库,并进行数据的增删改查操作。MyBatis是一个持久层框架,它简化了数据库操作的复杂性,并且与 JDBC 相比,提供了更多的功能,如自动映射结果集、动态 SQL 生成等。MyBatis 通过将 SQL 语句与 Java 对象分离,使得开发者可以更加灵活地处理数据库操作,尤其是在执行复杂查询时非常方便。

2024-11-15 18:46:01 1045

原创 MyBatis中 @Mapper 和 @MapperScan 的区别与使用

Mapper和@Mapper注解适合 Mapper 接口较少或需要手动管理接口的情况,简单明了,控制粒度高。注解适合 Mapper 接口较多或需要批量扫描接口的情况,简化了配置和管理。根据项目的复杂度和需求,选择合适的方式来管理你的 Mapper 接口,能提高开发效率并使代码更加简洁。希望本文能够帮助你更好地理解@Mapper和的使用,提升开发中的代码质量和可维护性。

2024-11-15 17:31:53 719

原创 高效去重与数据遍历的秘密武器——快慢指针

快慢指针是一种遍历方法,主要用于数组和链表的数据结构。快慢指针的核心思想是使用两个不同速度的指针在同一个结构中遍历,完成特定的操作。快指针用于快速推进遍历(通常以每次一步或多步的速度推进),帮助我们探测数据的趋势或变化。慢指针较为缓慢地推进,用于记录或更新满足条件的结果。在快慢指针的遍历过程中,我们可以通过两者的不同移动速度和位置关系,达到处理重复数据、寻找特定位置或元素、优化存储空间等目的。

2024-11-09 17:53:40 531

原创 滑动窗口算法:有效检测数组中的重复元素

滑动窗口技术是一种非常强大的工具,特别是在处理数组或字符串问题时。通过结合使用滑动窗口和哈希集合,我们能够高效地解决重复元素的问题,不仅提高了代码的可读性,也优化了性能。

2024-11-03 21:04:18 313

原创 Java中的泛型详解

泛型允许我们定义类、接口或方法时使用类型参数。换句话说,泛型使得数据类型可以延迟到实例化时再指定。泛型提供了编译时的类型检查,从而避免了在运行时进行不安全的强制类型转换。在这个类中,T是一个类型参数,代表类中可以持有任何类型的数据。在使用Box类时,可以指定T的具体类型。K getKey();

2024-09-19 22:02:23 1116

原创 Java中关于包装类中装箱和拆箱的理解

Java有八种基本数据类型基本参数描述int整数类型char字符类型double双精度浮点型boolean布尔类型long整型float单精度浮点型short短整型byte有符号整数包装类是为这些基本数据类型提供对象版本的类。基本类型包装类别intIntegercharCharacterdoubleDoublebooleanBooleanlongLongfloatFloatshortShortbyteByte基本数据类型用来处理简单的数据,而包装类。

2024-09-19 20:34:27 592

原创 Java集合框架学习笔记:List和Set的实现类

在Java中,集合框架提供了处理对象数组的基本结构。Collection是Java集合框架的根接口,而List和Set是两个最常用的子接口。每个接口都有多个不同的实现类,这些类在功能、性能使用以及场景方面存在显着的差异。

2024-09-13 20:30:05 793

原创 深入理解 HashSet:对象修改与删除问题详解

使用 HashSet 存储对象时,理解 hashCode() 和 equals() 的关系至关重要。特别是,当对象的属性会影响它们的哈希值时,修改对象属性可能导致一些不可预见的行为,如无法删除对象或出现重复元素。因此,在设计类时,要谨慎对待 hashCode() 和 equals() 的实现,尽量避免在集合中修改对象的关键属性。

2024-09-12 15:18:00 1233 1

原创 Java中的compareTo()和compare()方法详解

compare() 方法最典型的应用场景是需要自定义排序规则时。例如,你可以根据一个对象的多个字段来排序,而不必修改类的定义。

2024-09-12 11:06:25 5116 1

原创 AcWing 1113. 红与黑( bfs , dfs 解法 )

有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻(上下左右四个方向)的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。

2024-05-27 15:44:05 664

原创 AcWing 1270. 数列区间最大值 (关于线段树超详细解析Java版)

定义一个Max值,每次以 left 为起点,以right 端点为结束,暴力枚举这一段区间里的数,并不断更新Max的值,最后输出Max。(数据范围是1≤N≤10的5次方,,首先我们注意到一个特点:那就是每个区间的最大Max可能会不同,例如1,2,34,100(1~2的max是2,但1~4的max是100)。一句话说清题目意思就是:在 n 个数字当中,有 m 个查询区间(从 lef t端点到 right 端点的一个区间),每次需要输出这 m 个查询区间的最大值。1≤M≤10的6次方,所以。

2024-05-21 20:39:53 377 1

原创 AcWing 1265. 数星星(超详细解析)

天空中有一些星星,这些星星都在不同的位置,每个星星有个坐标。本题采用数学上的平面直角坐标系,即 x𝑥 轴向右为正方向,y𝑦 轴向上为正方向。如果一个星星的左下方(包含正左和正下)有 k𝑘 颗星星,就说这颗星星是 k𝑘 级的。例如,上图中星星 5 是 3 级的(1,2,4 在它左下),星星 2,4 是 1 级的。例图中有 1 个 0 级,2个 1 级,1 个 2 级,1 个 3 级的星星。给定星星的位置,输出各级星星的数目。

2024-05-21 15:51:56 1281

空空如也

空空如也

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

TA关注的人

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