字节二面

八股巨多,以下是没见过的

1 text可以做索引吗
2 text和varchar的区别
3 varchar可以多大
4 top的cpu load是怎么计算的
5 拥塞控制
6 zset的skiplist高度设置
7 linux查看线程状态的命令

算法: 二叉树之字遍历
全部评论
1. text可以做索引吗? 做前缀索引,要指定前缀长度 2. text和varchar的区别 varchar用于存储可变长度的字符串,最大字符长度为65532(ascii) Text:用于存储大文本数据,不需要指定最大长度。不过TEXT类型的字段不能有默认值,不能完全放入内存,可能需要使用磁盘临时表。 3. varchar可以多大 除了一个存储变长字段和一个null字段的 占用3字节 剩下65532 根据单个字符长度决定有多大 4. top的cpu load是怎么计算的 在Linux的top命令中,CPU load是通过/proc/loadavg文件获取的,表示系统在过去1分钟、5分钟和15分钟内的平均运行队列长度(等待CPU处理的进程数)。具体计算: 如果load average值为0,表示没有进程在等待CPU时间 如果值等于CPU核心数,表示CPU刚好满负荷 如果值大于CPU核心数,表示系统超负荷,有进程在等待CPU时间 5. 拥塞控制 拥塞控制是TCP协议中的一个重要机制,用于防止网络过载。主要包含四个算法: 慢启动:连接开始时,拥塞窗口(cwnd)设为1个MSS,每收到一个ACK,cwnd加1,呈指数增长 拥塞避免:当cwnd达到慢启动阈值(ssthresh)后,每个RTT只将cwnd加1,呈线性增长 快速重传:如果发送方连续收到3个重复ACK,立即重传丢失的数据包,不等待超时 快速恢复:在快速重传后,设置新的ssthresh为当前cwnd的一半,然后将cwnd设为新的ssthresh加3 6. zset的skiplist高度设置 在Redis的zset(有序集合)实现中,skiplist(跳跃表)的高度(level)设置如下: Redis的skiplist最大高度为32层,每个新节点的高度是随机生成的,插入新节点起始高度为1,然后进行随机测试,每次有25%的概率增加1层,直到达到32或者随机测试失败 ,这种随机性保证了良好的平衡,使得查询、插入、删除操作的平均时间复杂度为O(log n) 7. Linux查看线程状态的命令 * ps -eLf显示所有线程信息,每个线程一行 * top -H显示每个线程的CPU使用情况 * ps -T -p <PID>显示特定进程的所有线程 * htop交互式的进程/线程查看器,比top更直观
23 回复 分享
发布于 2025-03-24 23:19 浙江
?top的cpu load怎么计算的这是哪门子奇葩问题
3 回复 分享
发布于 2025-03-17 22:53 河南
看了后最绝望的是,有些之前背过,现在也忘了何况还有些没见过,这八股什么时候是个头啊
2 回复 分享
发布于 2025-03-18 17:20 四川
接好运
1 回复 分享
发布于 2025-03-18 10:11 广东
text可不可以哈希之后再做索引
点赞 回复 分享
发布于 2025-05-04 14:46 广东
cpu load我还真不会
点赞 回复 分享
发布于 2025-05-04 14:45 广东
我理解。这些都比较简单 前面几个 比较贴合业务
点赞 回复 分享
发布于 2025-04-29 10:34 北京
http的拥塞控制?
点赞 回复 分享
发布于 2025-03-20 20:43 湖北
text可以做 但是加载到内存中 影响性能,varchar最大35545?多两个字符位存长度,拥塞控制秒,linux查看线程状态就是排查cpu飙高的命令?top top-Hp那些,其他不会
点赞 回复 分享
发布于 2025-03-20 01:19 福建
确实罕见
点赞 回复 分享
发布于 2025-03-18 09:17 广东

相关推荐

04-09 13:59
吉林大学 Java
问题&nbsp;1&nbsp;请先做个简单的自我介绍,并详细说说你在项目中是如何利用Redis和消息队列处理高并发抢券/秒杀场景的?问题&nbsp;2你在项目中使用的分布式锁经历了怎样的演进过程?请结合JMeter的压测数据,谈谈最初的Redisson方案是如何实现一人一单的,以及它是怎么处理超卖回滚的?问题&nbsp;3请详细解释一下Redisson分布式锁中的“看门狗(Watchdog)”机制是如何工作的?它的触发条件和底层续期逻辑是什么?问题&nbsp;4如果不直接使用Redisson,让你自己手动编码实现一个类似“看门狗”的自动续期机制,你会怎么设计这套逻辑?问题&nbsp;5既然Redis本身支持设置Key的过期时间,那我们为什么不能直接依赖这个自动过期时间来释放分布式锁?完全依赖超时自动释放会有什么隐患?问题&nbsp;6在预扣减Redis库存成功后,如果由于网络故障或RabbitMQ宕机导致消息发送失败,数据库没有成功落库,这种情况下的数据不一致问题你是如何保证兜底解决的?问题&nbsp;7你提到方案经过了优化,请问从纯分布式锁优化为Lua脚本方案后,系统的QPS具体提升了多少?性能翻倍的根本原因是什么?问题&nbsp;8使用Lua脚本嵌入Redis执行确实能大幅提升并发性能,但在工程实践中,编写和维护Lua脚本存在哪些弊端或需要注意的风险?问题&nbsp;9你提到项目中大量使用了MyBatis&nbsp;Plus,那么请问MyBatis底层是如何防止SQL注入的?它的核心原理机制是什么?问题&nbsp;10在使用MyBatis&nbsp;Plus进行数据分页查询时,它的物理分页底层是如何实现的?拦截器(Interceptor)在这里起到了什么核心作用?问题&nbsp;11框架在进行物理分页时,具体的分页参数(如当前页码、每页大小)在应用层和底层之间是如何封装和传递的?问题&nbsp;12除了MyBatis&nbsp;Plus,你平时还会去主动研究哪些主流框架的底层源码?能分享一下你最熟悉的框架源码机制吗?问题&nbsp;13当你在项目中需要引入一个新的中间件或技术栈时,你的学习和落地路径是怎样的?你会如何平衡AI辅助工具和官方文档的使用?问题&nbsp;14在日常开发排错和遇到复杂的系统性能瓶颈时,你通常会如何利用AI工具?有什么核心决策是你绝对不会完全交由AI去决定的?问题&nbsp;15你在设计分布式锁的Key时,曾和AI的建议产生过分歧。请结合具体的业务安全场景(如防黑产刷单),谈谈你是如何权衡纯粹的“技术并发度”与真实的“业务安全性”的?问题&nbsp;16结合你的项目开发经验,谈谈你为什么深度依赖Spring&nbsp;Boot框架?它的核心设计优势(例如自动装配)在底层是如何实现的?问题&nbsp;17请深入讲解一下Spring的IOC容器是如何管理Bean的生命周期的?特别是遇到带有AOP增强的循环依赖时,三级缓存是如何精妙运作来解决这个死循环问题的?问题&nbsp;18在处理系统中大量重复的公共字段(如创建时间、更新人)时,你是如何利用自定义注解结合Spring&nbsp;AOP和反射机制,实现无侵入式自动填充的?算法题用java实现lru
查看20道真题和解析
点赞 评论 收藏
分享
04-10 17:12
已编辑
重庆大学 Java
1.自我介绍2.如何学习java,是通过学校课程学习还是自学的?3.用户登录校验是如何做的?4.你说用redis对活跃的token实现刷新过期时间,这个功能你是如何实现的?5.频繁的时间戳更新会不会导致redis大量的内存被占用,想别的方案来解决6.redis对key值的过期策略是怎样的?8.介绍你的缓存更新策略吧(我提到redis中的cache&nbsp;Aside策略,补充了消息广播实现本地缓存数据一致性,利用kafka中不同消费组订阅同一topic实现消息广播,某一节点删除缓存时,其他节点都删除本地缓存,从而实现分布式系统本地缓存的一致性)7.JVM中垃圾回收(GC)的策略是怎样的?9.你使用了Redisson实现分布式锁,请解释一下Redisson分布式锁中的看门狗机制10.解释一下Mybatis如何防止sql注入,MybatisPlus中是如何将方法映射为sql的11.你使用了Shardingsphere进行分库分表,那Shardingsphere的底层是怎样的呢11.再介绍一下你项目中的亮点吧(定时对账:在kafka宕机时进行埋点,记录日志。恢复后回滚到之前的库存状态;延迟队列:使用Redisson的延迟队列,为业务设定一个延迟的时间执行)12.你另外一个项目中的Agent是如何设计的13.详细讲讲离线上传中长文本如何分块,固定分块有什么劣势,你如何设计分块方案(面试官补充了语义网络的概念)算法LRU职业规划方向反问面试官人很好,比较看重你实际项目开发中对使用过的技术栈的底层原理的理解以及业务的设计
查看16道真题和解析
点赞 评论 收藏
分享
评论
19
135
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务