虾皮 10.23 研发/后端一面 秋招
双机位 拷打飞了
一、大致情况问答
- 先做两分钟自我介绍,重点展示核心经历。
二、实习项目相关问题
三、八股
os
9. Java线程池 多线程之间如何共享数据、完成数据通信?
10. 线程之间通讯有什么方式?(Linux系统)
11. 追问:假如说你用共享空间进行多线程的通信,就比如说你用了一个全局变量,假如说它是个 map 或者是一个什么,你觉得它会有这种冲突、指针越界这个问题吗?
12. 追问:线程安全Map与非线程安全Map的核心差别是什么?
13. 追问:ConcurrentHashMap的底层原理
14. 追问:修改副本的过程中其他线程读取会不会读到过期旧数据?
15. 追问:除了使用共享空间外,还有哪些线程间通信方案?
16. 进程间通信有哪些实现方式?
17. 管道、Socket套接字是否属于进程间通信方式?分别是什么?
18. 进程和线程的相同点与不同点?
19. 进程、线程、协程的区别是什么?
20. 进程之间通信的共享内存和线程之间通信的共享内存有什么区别?
21. CPU调度的基本单元是进程还是线程?理由是什么?你真正执行的时候,到底是进程还是线程?
22. 用一两句话概括进程与线程的关系。
23. 什么是僵尸进程?
24. 什么是孤儿进程?
计网
25. ISO七层网络模型从上到下分别是哪七层?TCP/IP四层模型是哪四层?
26. 以太网对应网络哪一层?
27. TCP、IP分别属于哪一层?
28. 简述TCP三次握手流程。
29. TCP拥塞控制机制了解吗,简单说明?
中间件-Kafka
30. Kafka集群由哪些核心组件构成?
31. Broker集群和Topic分区Partition是什么关系?单个Partition由单个节点还是多个节点构成?
32. 我订阅了一个topic,这个 topic 比如说它可以有多个分区,那说我有 20 个分区,你发消息,这个消息,每次发消息,它是只会发到一个分区呢?还是会说多个分区都会有?(即一条消息发送到Topic,会广播到所有分区还是仅存入单一分区?)
33. 那我发消息的时候,它就一定有个机制,决定一条消息到底到哪个分区上,它最终是存在某个分区上。然后那我做一个Consumer,我去消费的时候,比如说我有 20 个Partition,那我最多可以有多少个 Consumer 同时消费?怎么消费呢?(即Topic有20个Partition,最多可以启动多少个消费者同时消费?)
34. 这个时候,就是刚刚那个例子呀,你有 20 个 partition 的时候,我有 10 个consumer,我这 10 个 consumer 怎么去消费那 20 个 partition 里面的数据?第二种场景是,如果我要扩consumer,我最多可以扩多少个让他去消费?一个消费者怎么分别去拉两个partition?
35. 如果你有 20 个partition,那每个 partition 它实际上对应 broker 上的一个,因为你要连接 broker 嘛,你实际上连接的是 broker 的一个节点,那这个节点它是个单副本的,还说是多节点多副本?它跟 replica 之间的关系又是怎么样?多个节点之间,那你通信的时候到底跟谁连接呢?就它多个节点之间是怎么并行,怎么工作的了解吗?
即20个Partition与Broker、副本的关系?连接谁?多节点如何并行工作?
其他
36. 了解分布式锁吗,常见实现方式有哪些?
37. 追问:MySQL能否实现分布式锁?
38. 假如给你一个 4TB 的一个大文件,每一行都是一个 int 32 的整形数字,但是只给你 2GB 的内存。怎么样能够去判断任意一个 int 32 的数字是否在这个大文件里面?
39. Unix 网络的 IO 模型,知道有哪几种吗?
五、手撕
40. 算法题1:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。例如,链表1->2->3->3->4->4->5 处理后为 1->2->5(Leetcode 82 83 面试题0201)
追问:能不用Set吗?->双指针;
追问:一定要用双指针吗,单指针可以吗-> 可以,以下写单指针解法
41. 算法题2:业务计费公式代码,如果后续计费区间、价格配置频繁变更,代码该如何抽象设计?

