- 博客(12)
- 收藏
- 关注
原创 备战暑期实习day1
run方法是线程执行的方法体,是线程具体执行的代码,会在线程的上下文中执行run方法,不会创建新的线程start方法会创建新的线程,并执行对应的run方法。调用run方法会创建新的线程,并为其分配系统资源,将线程的状态置为就绪状态,当调度器给与线程cpu的执行权时,此时会执行具体的run方法。因此,虽然可以直接调用run方法,但是此时不会创建新的线程。因此如果我们想要在多线程环境下运行run方法,我们需要通过调用start方法的方式。
2025-12-18 22:44:29
243
原创 如何保证数据库和缓存一致性问题
对于先更新数据库,后删缓存来说,线程A先进行数据库的更新,此时线程B访问缓存有数据直接返回,接着线程A再进行缓存的删除,此时可以保证缓存和数据库的一致性。有一种特殊情况,线程B在缓存中没有找到数据,去数据库中进行数据的查找,线程A更新数据库,等到线程A删除缓存中的数据后,线程B再将之前获取的数据放到缓存中。一种是删除数据重试策略,我们会将需要删除的数据放在消息队列中,由客户端去获取需要删除的数据,尝试删除,如果删除成功那么将消息从消息队列中进行移除,如果没有成功那么重新尝试几次。先删缓存,后更新数据库。
2025-12-17 22:10:40
307
原创 HashMap允许空key和空值吗?
在hashMap中只允许一个key为null,可以多个value为null,这是因为在hashmap中key是唯一的,当另外一个key为null时候,此时新的value值会覆盖原有的value值,因此只能一个key为null。在计算key的哈希值时候,首先会判断key是否为null,如果为null直接返回0。不会接着调用hashcode()方法计算哈希值。HashMap中允许空key和空值。
2025-12-08 09:01:08
194
原创 题解:Leetcode40. 组合总和 II
使用参数used的写法:这种方法需要对candidates数组进行排序。不过因为剪枝时候需要对candidates数组进行排序,所以已经是排序好的。**注意:**解集不能包含重复的组合。中的每个数字在每个组合中只能使用。题目:给定一个候选人编号的集合。使用定义在每层递归used的写法。中所有可以使数字和为。
2025-11-27 10:57:53
278
原创 题解:Leetcode206. 反转链表
return pre;//错误案例:return pre;如果是return pre那么只是将传进来的参数进行返回,而不是新的头节点。递归到时候此时链表的头节点是pre,将其返回给上一层的递归层。那么我们需要将其进行接收,继续返回。而不是不接收这个数值,返回pre。为什么自己一开始会写return pre?这主要是因为在很多二叉树的题目中,经常写的是成为一个习惯性的写法,没有针对这道题目的思考。
2025-11-26 10:31:22
262
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅