Java小厂面经

只记得几个比较深刻的问题
1. 使用消息队列怎么能确保生产者把消息发送成功,消费者怎么确保消费成功确保数据一致性 ?当时确实没想出来,最后憋出来个发送消息后将messageID存到Redis的set,然后定时任务检查消息是否被处理 但是查了一下生产者端好像可以可以设置发布确认模式,消息发送完收到响应才确保发送成功,然后只要却保暖能达到broker 然后消息队列开启持久化,消费者端就手动ack加死信队列,还有一种方案就是消息全存数据库,和数据库的具体事务一起提交,然后定时任务筛选转态为未处理的消息进行处理

2.还考了个streamapi中的map操作为什么不能更改方法外定义的变量(必须将外面的变量设置为final) 我查了是因为lambda表达式处理的时候用的不是对变量的引用而是直接使用传入的值,然后修改就会发生到底是修改引用的变量的值还是修改的是传入的副本的值,并且还要考虑的是如果stream开启了并行线程,线程并发去修改这个变量就会出问题,所以会报错

3.三层的B+树最多能存多少条记录,想都没想直接回答两千万条记录,然后提醒我不是,还要根据记录的字段数来判断,一个数据页要除一条记录的每条数据的大小

4.还考了个内存操作为什么不能用B-树(B-树和B+树的区别是B-树中间节点还要存值 并未叶子节点没用链表相连),没想出来为啥,当时连B-树是啥都不知带,查了下,好像是B-树的平衡操作要使用节点分裂合并(需要做很多复杂操作)红黑树平衡方式简单,B-树查找还是要用在一个节点中的多次键比较,要用二分查找或线性扫描,红黑树查找每次比较只用比较一个键,要么往左要么往右。
#牛客AI配图神器#
全部评论
小厂也要问B-树了嘛
1 回复 分享
发布于 2025-06-22 16:04 河北
忍耐王
1 回复 分享
发布于 2025-06-14 05:27 重庆
求面经
点赞 回复 分享
发布于 2025-06-14 03:39 重庆

相关推荐

2025-11-25 10:02
复旦大学 Java
一面:简历项目介绍一下项目内容怎么用定时任务调度解决分布式事务问题缓存穿透、雪崩、击穿是什么为什么要用消息队列,rabbitmq相比其他消息队列有什么特点java异常了解吗synchronized锁的实现(猜测问的是锁升级)多线程了解吗(猜测问的是实现方式)java内存模型是什么gc了解吗(猜测问的是死亡对象判断、垃圾收集)操作系统linux如何查看文件前5行(head -n 5 filename)cpu满载如何排查问题孤儿进程和僵尸进程进程、线程和协程的区别和作用进程通信方式动态链接和静态链接的区别数据库mysql底层数据结构了解吗(B+树)怎么选择主键左连接和右连接的区别redis底层数据结构(猜测问的是键值对和8种数据结构)redis单线程了解吗计网三次握手和四次挥手过程为什么TIME_WAIT要等待2MSL多路复用了解吗客户端从输入网址到显示网页内容经历的过程(解析域名、建立连接、请求与回应、解析网页)其他RPC了解么手撕算法LRU缓存给定一个数组,求和最大的连续子数组(前缀和+哈希表)反问:能过的话什么时候二面二面:简历项目介绍一下项目内容Spring Security+JWT实现用户认证的原理是什么怎么基于RBAC分配用户权限用户-角色-权限的方式来分配权限有什么缺点(为用户分配权限必须创建角色,可以通过用户-权限方式来解决)怎么用定时任务调度解决分布式事务问题还了解多少分布式事务解决方案javajava内存区域是什么局部变量和对象分别存储在哪里垃圾收集算法有哪些垃圾收集器有哪些,介绍一个熟悉的从写完一段java代码到执行经历了什么,类加载过程(双亲委派模型)Spring介绍下Spring核心原理(IoC和AOP)如果自己写一个IoC框架,核心方法是什么(答了HashMap存储Bean对象)提问:愿意转c++吗,有没有困难闲聊:问了英语成绩、文体竞赛、个人生活等,感觉像hr面会聊的问题
点赞 评论 收藏
分享
评论
6
37
分享

创作者周榜

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