暑期实习面经
暑期实习面经:
这是一篇迟到的面经,因为面完后比较忙一直没有时间整理,凭借自己脑中的印象回忆实习面试题用来回馈牛客
字节飞书后端
一面:
0:八大排序各自的复杂度,稳定性等
1:计算机的虚拟内存?
算法题部分:
2:打印1-100 的质数
3:寻找数组仅出现过一次的数,其他数都出现了两次
4:股票问题| || ||| (1,2 ,3 从easy 到hard)
5: 场景题: 如何在10GB 的日志中找到一个出现两次的日志记录
二面:
计算机网络:
DNS 污染,DNS 劫持 , 泛洪攻击
三次握手和四次挥手,timewait 状态
Mac 的作用,NAT的作用
操作系统:
进程间通信方式
虚拟内存
切换进程的上下文
场景问题:
设计一个用户登录页面, 保证用户长时间保存登录状态需要做哪些
浏览器的cookie 问题
redis 和 内存的区别和联系
算法题:
已写在leetcode
https://leetcode-cn.com/circle/discuss/rRusa7/
阿里java :
一面:
1:问了问学科竞赛,建模竞赛的有关事宜,之后深挖项目
之后进入基础部分:
2:redis 的数据结构
3:redis 的跳表底层实现复杂度等等
4:redis为何用跳表而不用红黑树
这里因为我此前也疑惑过这个问题,所以专门去看了看作者的回答
5: 各大排序算法以及复杂度和最坏以及最好的情况进行具体的栗子讲解
6: Array.sort 的底层中,为何一部分用快排而不用堆排序,工业界中为啥用快排多于堆排
计算机网络部分:
7:三次握手,四次挥手 (四次挥手有可能三次嘛?还是一定要四次)
这里确实学到了当三次挥手已经进行数据传输完成后,就可以直接断开无需四次挥手
8: ping 解释如何实现互通
最后: 最近有看什么书?
二面:
1:深挖项目一波,(感觉被打击到了)
基础知识:
2:redis 集群部署情况?
3:简要叙述kafka 如何实现生产者和消费者
4:各大排序算法的最好最坏,稳定性以及原因
5:redis 会出现因为多线程而造成数据读写错误嘛
这里我主要用说redis 用了单线程不会有这种情况,但是父线程会fork 一个子线程来进行操作备份
6:redis为何快
7:你之前说redis6.0 采用了多线程,你觉得为何要这么改?
为了应对越来越复杂的qps 要求,redis作出了让步
但是redis6.0 默认是禁止多线程的,可以在配置中打开,选择权给了用户
8:计算机网络
udp 和 tcp 部分
拼多多后台:
一面:
1:排序算法部分
2:项目部分(还是深挖了不少)
3:计算机网络,拥塞控制,三次握手,长短连接等
4:redis部分 现场给场景,现在写redis 查询代码(这点不会)
5:用栈实现队列 用队列实现栈
6:算法题:
数组中取三个数积最大
合并括号(十分钟写完)
notes: 第4部分不会写原本认为挂了,过两天约二面
二面:
1:输入www.baidu.com 过程
2: https 的具体过程,特别是加密
3: 算法题部分
这一部分把我问懵了,一道接着一道(大概有4,5 道)
写出来了之后优化,优化之后分析时间复杂度
(当时早上10点,早饭没吃已经饿晕了)匆忙答一波
美团外卖后端:
算法题:
1:合并区间
基础部分:
2 : 线程池具体分析
3:redis 数据结构
4 :redis 和数据库 如何保证数据强一致性
5:java 的原子类,各种锁
6:java 并发编程的一套。。。
7:kafka 的设计和原理
(美团的八股文问的应该蛮多的)
面试官很好:一直在引导我, 应该是高P
最后介绍了一波美团外卖hhh
可惜被挂,面试中也确实不少问题没回答上来,心理坦然
快手国际化:
先怼了一波项目:
然后同样让我觉得我的项目一无是处2333
计算机网络:
三次握手,四次挥手,然后流量控制,拥塞控制,tcp 长短连接等等
数据库:
深入问了数据库的底层实现,比如redolog ,undo log, bin log
隔离级别等等, B+树
MVCC 机制的底层实现原理是什么?
java :
hashmap
回答了hash map从1.7 到1.8 的各种改变如何避免的死循环(但是依旧无法线程安全,因为没有版本号和锁机制的存在无法保证线程安全), 以及比较惊艳的扰动函数
currentHashmap
回答了currentHashmap 的改进和演变
算法题:
间隔打印链表:
这点比较尴尬,写完核心代码后,面对官要完全实现这个程序,然后我写了链表类等,最后打印出了链表首地址233 场面一度比较尴尬
面试官人很好, 说我基础不错了,可以多看看一些场景类设计题
后来接受了阿里的意向,放弃快手的主管面
大家加油!
#实习##面经##阿里巴巴##字节跳动##拼多多##Java工程师#