- 博客(22)
- 收藏
- 关注
原创 Java List 详解:从基础到进阶的全面指南
List是 Java 集合框架中的一个接口(位于java.util包下),它继承自Collection接口,代表一个有序、可重复的元素集合。与Set不同,List允许存储重复元素,并且保持元素的插入顺序,支持通过索引访问元素,这使它成为处理序列数据的理想选择。List作为 Java 中最常用的集合类型,掌握其特性和用法对开发者至关重要。频繁随机访问:选择ArrayList频繁插入删除:选择LinkedList多线程环境:选择或同步包装器熟练运用List。
2025-09-16 10:42:27
113
原创 Java基础常见知识点
Java 中 `==` 和 `equals()` 的区别详解_java中==与equals的区别及理解-CSDN博客。浮点型精度是什么意思?为何0.1+0.2不等于0.3?_编程语言-CSDN问答。Java面向对象的三大特征以及理解_在java中任何面向对象-CSDN博客。深入理解Java中方法的参数传递机制 - 悟小天 - 博客园。Java instanceof用法详解-CSDN博客。
2025-09-13 20:38:28
441
原创 Java的8 种基本类型 + 包装类,缓存池机制
java八种基本数据类型及包装类详解_java 中的 种基本数据类型是什么?各 占 多少字节-CSDN博客。Java String 字符串拼接的三种方式与效率对比分析_10、string 怎么拼接-CSDN博客。注意使用BigDecimal时最好使用字符串来创建,使用double会产生不确定性。一文读懂Java缓存池:从基础到高级应用_全栈攻城狮的技术博客_51CTO博客。Java之BigDecimal详解 - 华仔Coding - 博客园。一篇文章让你学会Java之BigInteger类-CSDN博客。
2025-09-13 15:06:07
791
原创 BigDecimal(用于处理超出double范围的浮点数)
BigDecimal是 Java 中java.math包提供的,专为解决基本类型(floatdouble)的精度缺陷而设计,广泛用于金融、科学计算等对精度要求极高的场景。
2025-09-12 19:10:14
882
原创 24年秋招-京东-后端开发岗-第1批笔试总结
用后序 DFS 遍历所有节点(每个节点作为子树根),合并其所有子节点的颜色频次(各颜色出现次数)和总异或和(子树所有颜色异或结果),再加入自身颜色信息,一次遍历完成所有子树的信息统计,避免重复计算。:对每个子树,先找颜色最大出现次数,再计算所有该频次颜色的异或贡献(奇数次为颜色本身,偶数次为 0),用子树总异或和异或该贡献,得到处理后异或和(即扔掉最多频颜色后的结果)。TCP提供的是面向连接的、可靠的端到端通信机制,因此TCP协议在注重数据安全的场景下获得了极为广泛的应用,A选项是正确的。
2025-09-12 16:11:12
1363
原创 Java自定义比较器详解
Comparator是 Java 标准库java.util包下的函数式接口(JDK 8+),核心作用是定义两个对象的比较规则,从而实现对象的排序。与 Comparable 的区别Comparable是 “对象自身的排序能力”(让类实现Comparable接口,重写compareTo方法,固定一种排序规则);而Comparator是 “外部的排序规则”(不修改目标类,通过外部类 / 匿名类 / Lambda 定义排序逻辑,支持多规则)。核心方法:只有一个抽象方法,返回值决定两个对象的顺序:返回正数o1。
2025-09-12 15:56:58
1016
原创 java.util.Scanner及其注意事项
方法功能示例代码设置自定义分隔符(默认是 “空白符”)(按逗号分割)读取匹配指定正则表达式的内容(只读小写字母)系列判断下一个数据是否为目标类型(避免读取错误)示例:读取 CSV 数据// 设逗号为分隔符// 读1// 读apple// 读3.5根据数据格式选对方法(next()读无空格单词,nextLine()读整行);处理nextXXX()后的残留换行符(加先判断()再读取,避免异常。
2025-09-12 15:53:05
547
原创 栈及应用场景
拓展类型核心优势时间复杂度典型适用场景单调栈高效找到元素的前后约束关系O(n)下一个更大元素、直方图面积、接雨水双栈模拟双向操作、分离核心与辅助数据O (1)(均摊)模拟队列、最小栈(双栈版)、表达式计算带信息的栈单个栈绑定多维度信息,减少依赖O(1)最小栈(单栈版)、需记录索引的场景递归栈自动维护嵌套层级,简化代码O(n)括号解码、树形遍历、DFS 路径搜索本质上,所有栈的拓展都是围绕 “强化栈的信息承载能力” 和 “优化操作效率。
2025-09-11 12:23:04
733
原创 双端队列的概念与操作
双端队列(Deque)的核心价值在于双向操作的灵活性和高效的两端插入 / 删除性能作为栈或队列使用时,ArrayDeque是比Stack和LinkedList更优的选择;在算法题中(如滑动窗口、表达式求值),Deque 是实现高效逻辑的关键工具;理解其 “抛出异常” 和 “返回特殊值” 的方法差异,可避免代码中的空指针或运行时异常。掌握 Deque 的概念和操作,能极大提升代码的效率和灵活性,是 Java 集合框架中必须掌握的核心数据结构之一。
2025-09-11 11:42:11
600
原创 哈希表概念
在 Java 中,哈希表(Hash Table)是一种基于哈希表数据结构实现的集合,主要用于存储键值对(Key-Value),其核心特点是,是日常开发中非常常用的数据结构。Java 中与哈希表相关的核心类主要有HashMapHashtable以及(线程安全版本),其中HashMap是最常用的实现类。下面从哈希表的基本原理、Java 中的具体实现(以HashMap。
2025-09-11 11:09:18
487
原创 HashMap相关操作
HashMap是 Java 中最常用的键值对集合,通过put()get()remove()等方法可实现高效的增删改查,遍历方式推荐使用entrySet()以提高效率。在使用时需注意其线程不安全和无序性的特点,根据场景选择合适的集合实现类。
2025-09-11 10:12:41
500
原创 力扣hot100-day2队列,栈
假设数组的长度为n,窗口大小为k,令i表示窗口的右边界,那么窗口的左边界就是i-k+1,然后结果数组的大小是n-k+1(可以自己在纸上画一下便于理解)。i的范围是0到n-1,在循环的内部需要判断当前的队列中的首元素的下标是否在窗口外,即队列的头部的最大值的下标是否是小于n-k+1的,是的话就要不断弹出,直到队首元素的下标在窗口内部。其次就要判断队尾的元素是否比当前i下标对应的元素值小,要是小的话,说明队尾的元素不可能是当前窗口的最大值,就可以舍弃掉。最后将当前的下标i插入到队列的尾部。如何通过代码实现呢?
2025-08-21 15:12:48
316
原创 力扣hot100-day1链表
然后遍历链表的节点,一个往头部添加元素,一个往尾部添加元素,然后这样两个a和b中的元素就是相反的,然后通过equals比较两个列表是否相等,相等就是回文,不等就不是。2.定位入环点:当快慢指针相遇后,可利用相遇点与入环点的数学关系推导,设链表起点到入环点的距离为 a,入环点到相遇点的距离为 b,环的长度为 c(即相遇点绕环回到入环点的距离为 c - b)。假设链表a与b相加,而且a与b不相交的部分的长度相同,那么只需要用两个指针pa,pb分别指向两个链表的头,然后在同时遍历,当两个指针相等即为相交点。
2025-08-18 18:18:04
703
原创 关于线程的一些知识点
在 Java 中,当你使用关键字修饰一个实例方法时,所有线程访问的是同一个对象实例的锁,而不是每个线程有自己的锁。锁的归属: 实例方法上的锁属于调用该方法的对象实例(即)。线程(人): 线程是执行代码的 "执行者",就像不同的人需要使用工具完成任务。多个线程可以同时运行,尝试访问同一个对象的方法。对象实例(工具): 每个对象实例就像一把 "工具"(如锤子、螺丝刀)。在 Spring Boot 中,大多数服务类(如)默认是单例的,即全局只有一把 "工具"。synchronized 锁(使用权限): 关
2025-05-20 11:05:15
700
原创 数算——day2递归、归并、快排
这个公式的应用前提是子递归的规模相等小tips:有时候计算中点的时候mid=(L+R)/2,有时候L+R会溢出,这时候可以写为mid=L+(R-L)/2,除2也能写为右移一位即>>1,为什么要写右移一位而不是/2呢?因为位运算的速度快。
2025-05-12 15:35:19
236
原创 数算day1——关于^与二分
异或^运算可以理解为无进位相加异或运算的一些性质如下:于是,如果想要交换两个数,便没必要用一个中间变量,按照下面的实现也可以完成:但是有一个前提:想要交换的两个数不能是同一个内存地址,不然会导致数据被清洗相关的一些题目:1.如果一个数组中,只有一个数出现了奇数次,其余的都为偶数次,那么请你找出那个奇数次的那个数字,要求复杂度为O(n);解题思路:1.暴力,即拿一个指针指向首元素,不断遍历,统计出现的次数,如果为偶则结束,不然指针向后。但是这种方法的复杂度为n^2。
2025-05-12 14:03:25
457
原创 记录学完《苍穹外卖》的一些知识——AOP
通知(Advice) ---> 你要做什么(增强逻辑)↑切面(Aspect)= 切入点 + 通知↓切入点(Pointcut) ---> 你对哪些方法做增强↓连接点(JoinPoint)---> 程序里所有可能被增强的点↓目标对象(Target) ---> 被增强的类(比如 UserServiceImpl)概念一句话解释Join Point(连接点)程序中可以被增强的所有点(方法)Pointcut(切入点)你选中了哪些方法Advice(通知)你想干什么(增强逻辑)
2025-04-16 20:58:51
1716
原创 记录学完《苍穹外卖》的一些知识——全局异常处理器
在 Spring Boot 项目中,当代码执行出现异常时,如果没有进行统一处理,异常信息会直接返回给前端,可能导致:后台报错堆栈信息泄露用户体验差(比如页面提示“500 Internal Server Error”)没有记录日志,难以排查问题全局异常处理器就是专门用来统一捕获和处理系统中发生的异常,并返回结构统一、内容明确的响应结果。比如:在所有Controller的所有方法中进行try…catch处理缺点:代码臃肿(不推荐)全局异常处理器好处:简单、优雅(推荐)我们该怎么样定义全局异常处理器?
2025-04-16 20:07:54
1345
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人