比心后端开发一面凉经

全程50分钟,无手撕

1、项目中redis主要用于做什么的;redis string的sds介绍一下
2、redis实现排行榜怎么做,zset实现榜单会出现什么样的问题(需要排序的数据非常多)  (这一点没有回答好)
3、大key处理,拆分的依据是什么
4、redis集群;哨兵主要是做什么;如何判断一个节点什么时候该下线
5、mysql用的什么版本;聚集索引和非聚集索引的区别
6、索引创建原则;索引失效的场景
7、表锁、行锁和页锁分别适用于什么场景,有什么区别;这三个锁哪一个更容易出现;出现死锁该如何解决
8、mysql隔离级别;RR和RC的readview创建有什么区别;为什么有的公司选择RC而不是RR
9、mysql主从延迟如何处理(这一点没有回答好)
10、spring bean生命周期;bean创建过程中可能出现哪些问题;详细介绍一下三级缓存;使用两级缓存能解决循环依赖的问题吗(这一点没有回答好)
11、netty线程模型,工作原理;IO多路复用的核心原理
12、有哪些类组件底层使用了红黑树;hashmap什么时候会变成红黑树;为什么要用红黑树;
13、kafka怎么实现高吞吐量;如何保证消息消费的有序性;kafka多副本同步机制ISR介绍一下(这点忘了)
14、分布式锁;java的锁有哪些;ReentrantLock底层实现;synchronized和ReentrantLock的使用要注意什么
15、java垃圾回收有哪些;G1和CMS有什么区别;CMS使用了哪个垃圾回收算法,有什么问题吗;G1是怎么分代的
16、线程池核心参数;CPU密集型和IO密集型的核心线程数怎么设置;实际中线程数的设置 应该从哪些角度考虑
17、threadlocal结构是什么样的;能避免并发问题吗,能代替锁吗
18、ES有了解吗,介绍一下ES的分片(这个不会)
19、分库分表
20、分布式任务系统的调度该如何实现;介绍一下时间轮的工作原理
21、两个用户的共同好友,A用户的好友数是亿级别的,这时候应该怎么做
22、涉及一下秒杀场景,如何保证高并发;如何避免库存超卖(这点答的不好)
23、常见限流算法;令牌桶和漏桶的使用场景
24、RPC框架介绍一下;dubbo有用过吗(没用过);注册中心可以使用哪些;nacos和zookeeper有什么区别(这点回答的不好);zookeeper为什么是CP的,nacos为什么是AP的(这点也回答的不好)
25、有没有排查过线上的问题;很多线程处于close_wait的状态,这时候该如何处理,什么时候线程会处于这个状态(这个不会)
26、介绍一下LRU算法的思路

这个还蛮想去的,但是挂了。工资好像也挺高的

#牛客AI配图神器#
全部评论
实习吗,难度很高
2 回复 分享
发布于 05-18 14:53 北京
mark收藏
点赞 回复 分享
发布于 05-20 18:22 江苏

相关推荐

05-19 23:59
湖南大学 Java
1、慢SQL的具体内容;2、应用DB是如何确保事务的持久性;    写前日志机制:再事务对数据库进行修改之前,数据库系统回先将事务的操作信息记录到日志文件中。这些日志信息包括事务的开始,每个操作的细节(如修改了哪些数据、修改前后的值等)以及事务的结束等内容。日志文件通常被写入磁盘等持久化存储设备上。这样可以保证系统出现故障时,可以更具日志来恢复事务的执行状态;    在mysql中,事务的持久性主要通过1、利用InnoDB的存储引擎的日志机制,当事务对数据进行修改时,InnoDB存储引擎会先将这些修改记录记录到redolog中。redo log属于物理日志,它记录的是数据页的物理修改情况。例如,当更新一行数据时,redo log会记录该数据页中具体字节的修改内容。binlog时记录了所有数据库的修改操作,包括数据的增删改查。binlog是逻辑日志,记录的是sql语句或者行的变化。例如,执行一条“UPDATE table SET column = value WHERE condition”语句,binlog会记录这条语句的执行细节。2、通过事务提交时的磁盘写入操作:当事务提交时,mysql会将事务涉及的数据页从内存中的缓冲池刷新到磁盘。缓冲池是InnoDB用于缓存数据页和索引页的内存区域,数据的修改首先是在内存中进行的。写入操作不是完全同步的,而是结合了redo log机制,因为redo log已经保证了事务的持久性,数据页的最终写入磁盘可以在检查点过程中进行。3、事务的隔离级别4、自适应哈希索引流的机制    自适应哈希索引是一种用于优化数据库性能的机制,它可以根据数据库的负载和查询模式动态地创建和维护哈希索引,以下是具体介绍:工作原理    数据页监控 :InnoDB 存储引擎会监控对表中数据页的访问情况。当发现某些数据页被频繁访问时,就会考虑为这些页创建哈希索引。    哈希索引创建 :如果一个数据页被访问的次数超过了设定的阈值,并且内存中还有足够的空间来存储哈希索引结构,InnoDB 会自动在后台为该数据页上的某个索引创建一个哈希索引。    哈希索引维护 :随着数据的插入、删除和更新操作,哈希索引会自动进行维护,以保证其有效性和准确性。当数据页的访问频率降低,或者内存空间不足时,InnoDB 也会自动删除不再需要的哈希索引。5、网络协议http、https协议的区别6、timewait的作用7、TCP如何进行拥塞控制8、操作系统的内存管理机制    虚拟内存(虚拟内存是一种内存管理技术,使得程序可以使用比实际物理内存更大的地址空间。它通过将程序的地址空间分割成多个页面或者段,然后将这些页面或者段部分的存储在内存中,而将其他部分存储在磁盘外部存储器上。当需要访问一个不在内存中的页面时,由操作系统负责将其调入内存):分页式存储、段页式存储    地址映射:静态重定位(绝对地址映射)、动态重定位(相对地址映射)    内存保护:分区保护:在分区分配系统中,为每个分区设置保护机制来限制进程的访问范围;页表保护:在虚拟内存系统中,通过页表来实现内存保护。每个进程都有自己的页表,页表中除了包含虚页到物理块的映射关系外,还包含访问权限位。9、软链接和硬链接的区别软链接软链接是一个独立的文件,它包含了一个指向目标文件或目录的路径。从本质上来说,软链接就像是一个快捷方式,它有自己的 inode(文件系统用于存储文件元数据的结构)。例如,如果有一个文件 file1,创建一个软链接 symlink1 指向它,symlink1 有自己的 inode,其内容是指向 file1 的路径。软链接可以跨文件系统,也就是说,软链接可以位于与目标文件不同的文件系统上。例如,目标文件在 /dev/sda1 分区,软链接可以在 /dev/sda2 分区。硬链接硬链接是直接指向目标文件 inode 的链接。多个硬链接共享同一个 inode,它们是同一个文件的不同名称。例如,对于文件 file1,创建硬链接 hardlink1 后,hardlink1 和 file1 都指向同一个 inode,操作系统将它们视为同一个文件的两个入口。硬链接不能跨文件系统。因为硬链接依赖于目标文件的 inode,而 inode 号在不同的文件系统中是独立的,所以硬链接必须位于与目标文件相同的文件系统中。
查看9道真题和解析
点赞 评论 收藏
分享
05-17 01:04
已编辑
重庆邮电大学 Java
查看15道真题和解析
点赞 评论 收藏
分享
评论
4
25
分享

创作者周榜

更多
牛客网
牛客企业服务