货拉拉java开发26日常实习面经

货拉拉
一面:
结合项目询问八股
1.解释一下缓存击穿缓存穿透缓存雪崩并给出解决方案
2.说一下redis数据怎么保持一致性的
3.如果有热key怎么处理的
4.redis集群主从数据不一致怎么处理的(不会,面试官说不会也没事,现在确实没比较完善的处理方式
5.说一下怎么解决redis并发问题
6.如果reids挂掉数据直接打到数据库怎么保证并发

还有一些细节问题记不太清了,围绕项目
二面:
依然是项目拷打,不过更深更细节
1.介绍一下你的项目,说一下流程
2.一人一单超卖问题怎么解决的?(这里问的很细,比如reids用什么做key怎么存储的,存了哪些信息都会问
3.你说到redis用用户id做key那我多个业务都需要用这个用户id怎么办
4.除了用用户id做key还有什么方式
5.如果你用业务做key用户id存入set集合那么这种方式,那么此时有一个热点key你怎么解决(我回答了主从复制,分片集群
6.你这里都是写数据可以用主从复制吗?然后我说用分片集群,于是继续问分片的话你这里key只有一个怎么分片呢?并且说一下分片集群是什么流程(答得不好,没想出来一个key怎么分片
7.你的下单流程是怎么样的?
8.你判断下单资格以后直接返回下单成功可是如果你消息发送出去消费者因为一些意外情况消费失败怎么办呢?(这里又延伸到了一些死信交换机延迟队列等等问题
9.手撕算法给一个数组里面有不同元素其中一个元素数量大于数组长度一半(我一开始用排序,面试官说有没有时间复杂度低的,我又用哈希,面试官又问有没有时间复杂度空间复杂度都低的。不会了

还有一些细节问题记不清了,都是围绕项目

总结:八股问的很少,更多的都是项目拷打与场景问题,需要对项目有一定理解。但八股还是要多背,背的多了遇到关联的知识点可以凭借八股的储备引导面试官的提问方向靠近你会的。 算法感觉还是看运气,遇到的都是没刷过的



作者:磨洋工大王
链接:牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推,求职就业一站解决_牛客网
来源:牛客网


一面:

结合项目询问八股

1.解释一下缓存击穿缓存穿透缓存雪崩并给出解决方案

击穿就是热点key问题

穿透访问数据库不存在的数据 大量

雪崩 高数据量的热点key在同一时间同时失效


2.说一下redis数据怎么保持一致性的

事务 锁 集群选举

redis缓存与数据库一致性 常见的策略就是先a后b 或者先b后a 但是具体情况要根据具体的业务分析

3.如果有热key怎么处理的

可以数据分片 集群用hash存数据

其实热点key也就是缓存击穿问题 可以设置空值 或者布隆过滤器来解决缓存击穿问题

4.redis集群主从数据不一致怎么处理的(不会,面试官说不会也没事,现在确实没比较完善的处理方式

主要是由于异步造成 可以说几种不完善的方式  现在确实也没比较完善的处理方式

5.说一下怎么解决redis并发问题

布隆过滤器 增量同步和全量同步 主从原理 分布式 哨兵机制

6.如果reids挂掉数据直接打到数据库怎么保证并发

缓存没了导致缓存雪崩  然后转到解决缓存雪崩的问题上

还有一些细节问题记不太清了,围绕项目

二面:


依然是项目拷打,不过更深更细节

1.介绍一下你的项目,说一下流程

2.一人一单超卖问题怎么解决的?(这里问的很细,比如reids用什么做key怎么存储的,存了哪些信息都会问

3.你说到redis用用户id做key那我多个业务都需要用这个用户id怎么办

4.除了用用户id做key还有什么方式

5.如果你用业务做key用户id存入set集合那么这种方式,那么此时有一个热点key你怎么解决(我回答了主从复制,分片集群

6.你这里都是写数据可以用主从复制吗?然后我说用分片集群,于是继续问分片的话你这里key只有一个怎么分片呢?并且说一下分片集群是什么流程(答得不好,没想出来一个key怎么分片

7.你的下单流程是怎么样的?

8.你判断下单资格以后直接返回下单成功可是如果你消息发送出去消费者因为一些意外情况消费失败怎么办呢?(这里又延伸到了一些死信交换机延迟队列等等问题

9.手撕算法给一个数组里面有不同元素其中一个元素数量大于数组长度一半(我一开始用排序,面试官说有没有时间复杂度低的,我又用哈希,面试官又问有没有时间复杂度空间复杂度都低的。不会了
 

1 2 3 4  5  5  5 4 2 1  相当于控制抵消

【面试题】数组中出现次数超过数组长度一半的数字_我们将序列中出现次数严 格大于序列长度一半的元素被称为序列给定一个数列,你的任-CSDN博客

### Java开发实习试经验分享 #### 常见问题及准备建议 对于Java开发实习生来说,在试过程中可能会遇到一系列涉及不同方的技术问题。为了更好地展示个人的技术能力和试技巧,从而在试中脱颖而出[^1],以下是几个常见的试主题以及相应的准备建议。 #### 数据结构与算法 当被问到有关集合框架的问题时,应该能够清晰地解释`Set`、`Map`和`List`之间的差异及其应用场景[^2]。例如: - `Set`: 不允许重复元素的数据结构。 - `Map`: 存储键值对(key-value pairs),其中每个键都是唯一的。 - `List`: 可能含有重复项的有序序列。 此外,还应熟悉各种查找方法如折半查找、插值查找和斐波那契查找,并理解它们的工作原理和适用场景[^4]。 ```java // 示例:实现简单的二分查找函数 public static int binarySearch(int[] array, int target) { int low = 0; int high = array.length - 1; while (low <= high) { int mid = (low + high) >>> 1; // 使用无符号右移防止溢出 int guess = array[mid]; if (guess == target) { return mid; } if (guess > target) { high = mid - 1; } else { low = mid + 1; } } return -1; } ``` #### Java基础知识 掌握Java的基础知识非常重要,尤其是在对诸如`==`运算符与`equals()`方法的区别这类问题时。前者用于比较两个对象是否指向同一内存地址;后者则通常重写来自Object类的方法来判断两个对象的内容是否相等。 ```java String str1 = new String("hello"); String str2 = new String("hello"); System.out.println(str1 == str2); // false System.out.println(str1.equals(str2)); // true ``` #### Linux基础与其他技能 除了编程能力外,具备一定的Linux操作系统的理解和实践经验也是加分项之一。这不仅限于命令行工具的应用,还包括文件权限管理等方的知识[^3]。 #### 试表现 自我介绍要流畅自然,尽量做到条理清楚、重点突出。如果感到紧张,则可以通过提前练习模拟问答环节来增强自信心。回答问题要有逻辑性,按照一定顺序展开论述而不是想到哪里说到哪里。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值