![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后端技术分享
文章平均质量分 91
该专栏主要由老白给大家分享后端的技术文章,希望大家都能从中得到收获,老白也期待大家的关注!!!
绝命Coding
专注于前端和后端的技术和经验分享,“粉白二人组“分别在24校招中斩获多家头部大厂sp,ssp!
--致敬《绝命毒师》(公众号:绝命Coding)
展开
-
大厂面试官问我:ConcurrentHashMap底层原理?【后端八股文十五:Java集合合集】
ConcurrentHashMap的key值能否为nullkey值不能为null在ConcurrentHashMap中,每个键值对都被保存在一个Entry对象中,而每个Entry对象都被保存在一个数组中,这个数组被称为Segment。ConcurrentHashMap中的每个Segment都是一个独立的哈希表,它具有自己的锁,因此不同的Segment可以被不同的线程同时访问。在ConcurrentHashMap中,键值对的键不能为null。这是因为在ConcurrentHashMap中,每个键值原创 2024-07-27 23:43:06 · 773 阅读 · 2 评论 -
大厂面试官问我:两个1亿行的文件怎么求交集?【后端八股文十五:场景题合集】
任务分批: 将任务分成多个批次,每次从任务列表中取出一部分任务交给线程池处理。这样可以避免一次性将大量任务提交给线程池,减少系统资源竞争。线程池大小调优: 根据系统资源和任务的性质,合理设置线程池的大小。如果任务是 CPU 密集型的,可以设置较少的线程数;如果任务是 I/O 密集型的,可以适当增加线程数。避免线程数过多导致上下文切换频繁,影响性能。原创 2024-07-25 08:48:59 · 1432 阅读 · 8 评论 -
大厂面试官问我:Mysql B+树索引中B最后一层是双向链表还是单向链表?为什么这么设计?【后端八股文十四:Mysql索引八股文合集】
范围查询效率高:由于叶子节点之间有指针连接,可以通过顺序遍历叶子节点获取范围内的数据记录,避免了不必要的磁盘访问和索引的跳转。顺序访问优化:当进行顺序访问时,B+树可以通过双向链表进行高效的顺序遍历,减少磁盘IO次数,提高访问性能。如果 SQL 语句中用到了组合索引中的最左边的索引,那么这条 SQL 语句就可以利用这个组合索引去进行匹配。当遇到范围查询(betweenlike)就会停止匹配,后面的字段不会用到索引。例子:对(a,b,c,d)建立索引,查询条件为。原创 2024-07-24 08:57:17 · 1097 阅读 · 8 评论 -
大厂面试官问我:Redis为什么使用哈希槽的方式进行数据分片?为什么不适用一致性哈希的方式?【后端八股文十三:Redis 集群哈希八股文合集(1)】
为什么使用一致性哈希? 传统哈希算法(如取模)在节点变更时,会导致大量 key 的重新分布,引发大量的数据迁移和客户端路由更新,容易造成雪崩效应。 而一致性哈希算法通过将节点和 key 都映射到一个虚拟的哈希环上,在节点变更时只需要调整少量 key 的映射关系,减少了数据迁移和客户端路由的开销。原创 2024-07-18 09:07:05 · 967 阅读 · 18 评论 -
大厂面试官问我:为什么Redis的rehash采用渐进式,而Java的hashmap是一次性rehash?【后端八股文十二:Redis hash八股文合集】
渐进式 rehash 的过程(空间换时间的渐进式哈希) Redis 会在处理每个请求时,顺带将主哈希表中的一个 entry 迁移到备用哈希表中。 这样可以将 rehash 过程分散到每个请求中,减少对服务的影响。 当备用哈希表的 entry 数量超过主哈希表的 50% 时,Redis 会切换到使用备用哈希表作为新的主哈希表。原创 2024-07-17 08:41:12 · 1272 阅读 · 3 评论 -
【绝命Coding助力秋招】Python实现<实习僧>海投脚本
大家实习秋招应该都会投递简历的烦恼吧,海投脚本,就可以省去人力的麻烦,大家每天在选完自己想投的公司后,不妨使用脚本把每天可以沟通次数都投完。海投越多,机会越大。原创 2024-07-15 21:43:38 · 810 阅读 · 2 评论 -
大厂面试:算法考前必看汇总(全)
大厂面试中的算法题大部分情况是力扣原题,并且难度可控,对于经常在力扣刷题的同学一般问题不大。而大厂笔试的算法题则往往是原创题,前几道难度稍微简单,后几道通常得刷题更多的或者有打算法的同学才能做出来。在笔试当中,在遇到不会的题,通常可以采取骗分的技巧(文末有总结),只有能通过部分案例骗到部分分数。在面试的算法题,流程如下:首先可以先思考,然后先告诉面试官算法思路(不用急着打代码),然后接下来就是打代码以及调试(这里注意要考虑好边界情况,体现自己的代码严谨;同时,也要注意一下代码规范)。原创 2024-07-09 09:12:14 · 1075 阅读 · 5 评论 -
大厂面试官问我:Redis缓存如果扛不住,该怎么办?【后端八股文十一:Redis缓存八股文合集(1)】
Redis优化缓存结构(1)使用Redis和Cache 多级缓存;(2)Caffine+Redis+ES 做三级缓存;(3)使用 Redis 实现分布式缓存,另外配合 Nginx 缓存 + 本地 Caffeine 缓存 + CDN 缓存 + 浏览器缓存共同实现多级缓存来保证系统的性能。(4)使用mq转发(来自京东技术:营销权益平台春晚技术探究):本地缓存的构建的两种方式: 一级缓存:本地+mysql+推模式更新。 两级缓存:本地+r2m+mysql+推模式更新。原创 2024-07-08 09:06:38 · 1023 阅读 · 3 评论 -
大厂面试官问我:Redis的分布式锁怎么解决死锁问题?【后端八股文十:Redis分布式锁八股文合集(2)】
Redisson在Redis的基础上,实现了可重入锁、公平锁、联锁等多种类型的分布式锁。可重入锁通过维护一个持有锁的线程ID和锁的持有次数来实现。公平锁通过维护一个等待队列,按照请求顺序依次获取锁。联锁允许同时获取多个锁,只有全部获取成功才算获取锁成功。原创 2024-07-07 00:32:19 · 1450 阅读 · 7 评论 -
大厂面试官问我:Redis的分布式锁,锁失效了该怎么办?【后端八股文十:Redis分布式锁八股文合集(1)】
本文为【Redis分布式锁八股文合集(1)】初版,后续还会进行优化更新,欢迎大家交流~💥💥。原创 2024-07-07 00:31:57 · 1137 阅读 · 1 评论 -
大厂面试官赞不绝口的后端技术亮点【后端项目亮点合集(2)】
使用 Builder 模式构建复杂对象。使用责任链模式重构请求数据准确性检验。使用策略模式实现评论服务,根据不同业务场景选择合适的评论方案。实现 OAuth2.0 协议时,采用策略模式为接入用户中心的应用提供三类授权服务。原创 2024-07-06 14:29:06 · 1721 阅读 · 2 评论 -
大厂面试官问我:MySQL宕机重启了,怎么知道哪些事务是需要回滚的哪些是需要提交的?【后端八股文九:Mysql事务八股文合集】
本文为【Mysql事务八股文合集】初版,后续还会进行优化更新,欢迎大家交流~大家第一眼看到这个标题,不知道心中是否有答案了?在面试当中,面试官经常对项目亮点进行深挖,来考察你对这个项目亮点的理解以及思考!这个时候,你如果可以回答出面试官的问题,甚至是,那在面试中是大大加分的~事务是逻辑的一组操作,要么都执行,要么都不执行。原创 2024-07-06 14:04:15 · 658 阅读 · 2 评论 -
大厂面试官问我:在同步binlog的时候主库是一个时间,从库是一个时间,底层是怎么解决的?【后端八股文八:Mysql日志八股文合集(2)】
本文为【Mysql日志八股文合集(2)】初版,后续还会进行优化更新,欢迎大家大家第一眼看到这个标题,不知道心中是否有答案了?在面试当中,面试官经常对项目亮点进行深挖,来考察你对这个项目亮点的理解以及思考!这个时候,你如果可以回答出面试官的问题,甚至是,那在面试中是大大加分的~原创 2024-07-01 15:19:34 · 896 阅读 · 3 评论 -
大厂面试官问我:redolog 为什么是环形?【后端八股文七:Mysql日志八股文合集(1)】
Redo Log是通过循环追加写的方式进行优化的。除此之外,MySQL中还有undo log也是通过追加写优化的Redo Log之所以采用环形日志的设计,是为了减少磁盘IO,提高性能。当日志写满时,会覆盖最早的部分。Select操作不需要写redo log和binlog,因为它只是读取数据,不会修改数据。Update操作需要写undo log、redo log和binlog,用于记录修改过程和SQL语句。MVCC通过undo log实现了版本控制和读写分离。原创 2024-07-01 15:14:25 · 1594 阅读 · 0 评论 -
大厂面试官问我:哨兵怎么实现的,Redis 主节点挂了,获取锁时会有什么问题?【后端八股文六:Redis集群八股文合集】
本文为【Redis集群八股文合集】初版,后续还会进行优化更新,欢迎大家大家第一眼看到这个标题,不知道心中是否有答案了?在面试当中,面试官经常对项目亮点进行深挖,来考察你对这个项目亮点的理解以及思考!这个时候,你如果可以回答出面试官的问题,甚至是,那在面试中是大大加分的~原创 2024-06-30 14:29:15 · 1292 阅读 · 2 评论 -
大厂面试官问我:Redis中热key和大key是怎么解决的?【后端八股文五:Redis热key和大key八股文合集】
本文为【Redis热key和大key八股文合集】初版,后续还会进行优化更新,欢迎大家大家第一眼看到这个标题,不知道心中是否有答案了?在面试当中,面试官经常对项目亮点进行深挖,来考察你对这个项目亮点的理解以及思考!这个时候,你如果可以回答出面试官的问题,甚至是,那在面试中是大大加分的~原创 2024-06-26 19:14:52 · 1786 阅读 · 1 评论 -
大厂面试官问我:Redis内存淘汰,LRU维护整个队列吗?【后端八股文四:Redis内存淘汰策略八股文合集】
大家第一眼看到这个标题,不知道心中是否有答案了?在面试当中,面试官经常对项目亮点进行深挖,来考察你对这个项目亮点的理解以及思考!这个时候,你如果可以回答出面试官的问题,甚至是,那在面试中是大大加分的~原创 2024-06-26 09:39:33 · 937 阅读 · 1 评论 -
大厂面试官问我:Redis持久化RDB有没有可能阻塞?阻塞点在哪里?【后端八股文三:Redis持久化八股文合集】
本文为【Redis持久化八股文合集】初版,后续还会进行优化更新,欢迎大家评论交流~大家第一眼看到这个标题,不知道心中是否有答案了?在面试当中,面试官经常对项目亮点进行深挖,来考察你对这个项目亮点的理解以及思考!这个时候,你如果可以回答出面试官的问题,甚至是,那在面试中是大大加分的~原创 2024-06-24 18:14:46 · 1214 阅读 · 0 评论 -
大厂面试官问我:布隆过滤器有不能扩容和删除的缺陷,有没有可以替代的数据结构呢?【后端八股文二:布隆过滤器八股文合集】
本文为【布隆过滤器八股文合集】初版,后续还会进行优化更新,欢迎大家评论交流~大家第一眼看到这个标题,不知道心中是否有答案了?在面试当中,面试官经常对项目亮点进行深挖,来考察你对这个项目亮点的理解以及思考!这个时候,你如果可以回答出面试官的问题,甚至是,那在面试中是大大加分的~原创 2024-06-23 13:07:31 · 2106 阅读 · 1 评论 -
后端路线指导(4):后端春招秋招经验分享
工程能力的提升则主要来自实习做的模块任务,当然,实习生做的量其实不大,因此要学会看同事前辈们的需求和代码,看懂了就在简历中写是自己写的,只要面试时能表达清晰就行。的时间去看网课熟悉理论、看面试题,工程能力的提升主要完整地做了个入门的项目和一个完成了一半的难度高一些的项目,共计1.5个项目;· 刚开始自学的时候,老白只有c++语法基础,学校也有教学数据库、计算机网络、操作系统,但是教的程度懂得都懂,后续的数据库、计算机网络、操作系统的学习老白几乎都是从头再来,因此第一阶段就只有C++语法是扎实的,因此在。原创 2024-06-22 12:25:38 · 1150 阅读 · 0 评论 -
大厂面试官问我:Redis处理点赞,如果瞬时涌入大量用户点赞(千万级),应当如何进行处理?【后端八股文一:Redis点赞八股文合集】
在面试当中,面试官经常对项目亮点进行深挖,来考察你对这个项目亮点的理解以及思考!这个时候,你如果可以回答出面试官的问题,甚至是,那在面试中是大大加分的~原创 2024-06-21 15:20:03 · 1487 阅读 · 3 评论 -
大厂面试官赞不绝口的后端技术亮点【后端项目亮点合集(1):Redis篇】
(18)读写 Redis 热 Key 的场景针对读写Redis热Key的场景,采用缓存预热、分片存储、读写分离等技术手段进行优化,降低了对Redis的访问压力,提高了热Key的读写性能;(适用于:各类需要缓存的项目)(19)Redis List存储支付凭证使用Redis的List结构存储支付凭证,通过左进右出的策略防止拉取支付凭证全部过期,同时利用Set结构避免重复订单;(适用于:需要支付功能的后端项目)(20)自旋锁策略优化缓存架构采用自旋锁策略优化缓存架构,针对热key的并发访问同步,原创 2024-06-19 10:20:23 · 1146 阅读 · 0 评论 -
后端路线指导(3):后端进阶版学习路线
推荐黑马的课程,讲的还是很详细的,学习设计模式更多的是在实战过程中写出质量相对好的代码,实习过程中则可以给导师或主管不错的印象,但是这部分优先级对于校招生暂时不高,正式工作后,设计模式的学习才会变得非常重要。对于Netty的学习,要了解BIO、NIO等概念,学习为什么Netty是一个性能极高的网络框架,比如底层涉及到操作系统的零拷贝等等(可以结合操作系统“未来回顾”),学习Netty各组件的使用。2.看B站的课程,由于这部分课程质量参差不齐,因此黑马或尚硅谷的课程都可以去对比了解,选其一即可。原创 2024-06-19 08:58:13 · 990 阅读 · 0 评论 -
后端路线指导(2):后端基础版学习路线
JVM这部分学习完以后,你可能明白了某些语法或者某些原理是怎么实现的,比如可以学习到Java中的对象是如何存储在堆栈中的,存储的结构到底是怎样的,都可以在JVM的课程中找到答案。语法方面,如果有C/C++的语法基础,那么在Java语法的学习上可以加快学习速度(2倍速播放),缩短到10-14天,老白本人就是有C/C++的语法基础,在学习Java语法时花费的时间就大概是10-14天左右。,入门阶段还是建议先学习纯语法,参考韩老师分的阶段,老白列出每个阶段的重点内容,没有说明就是可跳过的内容。原创 2024-06-19 08:54:54 · 886 阅读 · 0 评论 -
后端路线指导(1):后端学习路线
万事开头难,选择一个好的学习路线可以事半功倍。但是网上有众多的后端学习路线,该如何选择呢? 网上的绝大部分学习路线是由在职工作多年的人总结的,而且这些学习路线几乎都只有大框架,告诉你要学什么,确实让初学者有一个宏观的视野,但却不告诉你具体要怎么学,只会一味推荐书籍、各种质量参差不齐的课程,然后加入“**星球”,开始割韭菜。老白当初看完各路大神的学习路线,却仍然踩了一路坑才爬过来。老白始终认为这些大神的学习路线“没有灵魂”,无法真正为初学者排坑原创 2024-06-19 08:47:03 · 807 阅读 · 0 评论