- 博客(50)
- 收藏
- 关注
原创 IO多路复用
select 和 poll 是传统的 I/O 多路复用机制,但它们存在一些缺点。select 的主要问题是文件描述符数量有限,且每次调用都需要遍历所有描述符,效率较低。poll 解决了文件描述符数量限制的问题,但仍需遍历所有描述符,性能依然不高。epoll 则进一步优化了这些问题,它通过事件驱动的方式,只关注活跃的文件描述符,避免了不必要的遍历,显著提高了性能。此外,epoll 还支持边缘触发和水平触发两种模式,提供了更灵活的事件处理机制。因此,epoll 在处理大量并发连接时表现更为出色。
2025-05-22 19:14:57
148
原创 腾讯一面+二面总结
博主总结了腾讯一面中Java面C++岗的面试经验,主要涉及项目、操作系统、计算机网络和算法等方面。在项目中,博主强调了数据库表设计的重要性,并分享了如何处理订单支付一致性、短信发送幂等性以及限流设计等问题的解决方案。操作系统部分讨论了进程、线程、协程、死锁条件、虚拟内存与物理内存映射等内容。计算机网络方面,博主提到了视频面试中使用的协议、HTTPS四次握手过程及其安全性问题。算法部分则包括括号匹配、最长递增子序列和版本号比较等题目。整体面试内容较为全面,涵盖了技术面试的多个核心领域。
2025-05-20 14:12:29
330
原创 分布式锁原理
锁是确保线程互斥访问共享资源的机制,Redis通过setnx实现加锁,解锁时需确保当前线程持有锁,并通过Lua脚本保证原子性。为避免线程挂起导致锁无法释放,锁需设置过期时间。为防止业务未完成锁超时释放,引入看门狗机制定时续期。锁的重入性允许同一线程多次获取锁,synchronized和ReentrantLock通过计数器实现。分布式锁通过Redis的hsetnx实现,使用线程ID和UUID作为字段,重入次数为值。阻塞线程通过自旋或订阅发布机制获取锁。主从节点不同步可能导致锁信息丢失,红锁机制要求半数以上节点
2025-05-10 18:46:45
388
原创 70. 爬楼梯:动态规划
2.dp[0,1,2,3,5,8,13]---->dp[i]表示爬上第i阶的方法数。3.观察dp:dp[i]=dp[i-1]+dp[i-2];1.观察每个较少的台阶的方法。
2025-04-11 13:50:20
210
原创 数组中的第K个最大元素:堆排序
4.如果发现某个非叶子节点的左右子树的值大于它,就交换,并且将这个非叶子节点作为新的根节点,继续进行最大堆化(递归)2.index是根节点,index*2+1是左子树,index*2+2是右子树。3.遍历所有是非叶子节点,从最后开始也就是n/2-1,进行最大堆化。6.找到第k大的元素,删除k-1次根节点,再调整,就是堆顶元素。5.以上就完成了最大堆排序。1.将数组视为完全二叉树。
2025-04-09 16:34:51
489
原创 739. 每日温度
4.不是更高温,index+=res[index]也就是index的更高温。5.循环3与4,如果res[index]=0说明找不到更高温,置0。2.从后往前遍历,定义一个index为可能是离这一天的更高温下标。3.如果确实是更高闻,res[i]=index-i。1.res的最后一个数肯定是0。
2025-04-09 13:27:40
211
原创 79.单词搜索
1.要找到单词是否连续的出现在图中,所以用index来遍历word,x,y来遍历图。3.检查本结点是否满足要求:满足没有被搜过,且与word的对应字符相等。2.检查图中满足要求的第一位,从第一个字符开始遍历。
2025-04-02 16:01:16
308
原创 39. 组合总和
1.因为不能返回的组合不能重复,因此,应该用index数组下标来便利,防止重复。2.对于某个数来说有两种选法:不选,选(可以多选)
2025-04-02 10:59:15
285
原创 JVM相关面试题
年轻代被划分为三部分,Eden区和两个大小严格相同的Survivor区,根据JVM的策略,在经过几次垃圾收集后,任然存活于Survivor的对象将被移动到老年代区间。老年代主要保存生命周期长的对象,一般是一些老的对象常量池是 *.class 文件中的,当该类被加载,它的常量池信息就会放入运行时常量池,并把里面的符号地址变为真实地址多次执行。
2025-04-01 22:16:59
515
原创 拯救007
设鳄鱼池是长宽为100米的方形,中心坐标为 (0, 0),且东北角坐标为 (50, 50)。池心岛是以 (0, 0) 为圆心、直径15米的圆。给定池中分布的鳄鱼的坐标、以及007一次能跳跃的最大距离,你需要告诉他是否有可能逃出生天。在老电影“007之生死关头”(Live and Let Die)中有一个情节,007被毒贩抓到一个鳄鱼池中心的小岛上,他用了一种极为大胆的方法逃脱 —— 直接踩着池子里一系列鳄鱼的大脑袋跳上岸去!如果007有可能逃脱,就在一行中输出“Yes”,否则输出“No”。
2023-11-30 20:30:45
95
原创 DS图—图的最短路径(无框架)
每行格式:顶点v编号-其他顶点编号-最短路径值----[最短路径]。没有路径输出:顶点v编号-其他顶点编号--1。给出一个图的邻接矩阵,输入顶点v,用迪杰斯特拉算法求顶点v到其它顶点的最短路径。第i个结点与其它结点如果相连则为距离,无连接则为0,数据之间用空格隔开。第四行输入一个顶点v,表示求该顶点v到其他顶点的最短路径距离。第三行起,每行输入邻接矩阵的一行,以此类推输入n行。每行输出顶点v到某个顶点的最短距离和最短路径。第一行输入t,表示有t个测试实例。第二行输入顶点数n和n个顶点信息。
2023-11-27 18:13:44
176
原创 DS二叉树--赫夫曼树的构建与编码
给定n个权值,根据这些权值构造huffman树,并进行huffman编码。大家参考课本算法6.12为主,注意数组访问是从位置1开始。即每行先输出1个权值,再输出一个短划线,再输出对应编码。要求:赫夫曼的构建中,默认左孩子权值不大于右孩子权值。逐行输出每个权值对应的编码,格式如下:权值-编码。第一行先输入n,表示有n个权值,即有n个叶子。第二行输入n个权值,权值全是小于1万的正整数。接着下一行输出下一个权值和编码,以此类推。
2023-11-08 20:39:29
290
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人