还有半个月,就是“金九银十”的秋招热潮,前几天有个小伙伴去【字节跳动】面试,回来后跟我说了很多他面试的经过,我稍稍整理了一下,在这里分享给大家,希望能够对大家在面试时有一丢丢帮助!
01 一面(简单的自我及介绍后直接上题)
1. 进程和线程以及它们之间的区别(我通过对比多个面经,发现这道是必考题,划重点)
2. 进程间的通信方式和对应的同步方式,你用过吗?具体怎么用?
3. TCP和UDP的区别
4. 三次握手、四次挥手,为什么?
5. TCP如何保证传输的可靠性?
6. TCP的拥塞控制,具体过程是怎么样的?UDP有拥塞控制吗?如何解决?
7. 【算法题】一个链表,假设第一个节点我们定为下标为1,第二个为2,那么下标为奇数的结点是升 序排序,偶数的结点是降序排序,如何让整个链表有序?
8. 【算法题】给定一个单链表的头节点 head,实现一个调整单链表的函数,使得每K个节点之间为一组进行逆序,并且从链表的尾部开始组起,头部剩余节点数量不够一组的不需要逆序。(不能使用队列或者栈作为辅助)
9. 【算法题】假设我们有一个队列,可能存放几千万上亿的数据,我们应该如何设计这个队列?写出来看看?(提问:这个队列是只需要在头尾添加和删除吗?双向队列?答:是的)
10. 【算法题】一个二维矩阵,从左到右是升序,从上到下是降序,找一个数是否存在于矩阵中(类似于二叉查找树)
02 二面(Redis+JVM...)
前面面试官已经问了你三道算法了,那我就随便问一道吧:翻转链表(面试官:能不能用c写)....(然后让我一边写一边跟他讲redis)
1. 你知道redis有哪几种数据类型吗?你比较熟悉哪几种?为什么?
2. 讲讲redis里面的哈希表吧
3. 一个URL从浏览器输入到响应页面,整个过程是怎么样的,能讲得多详细就讲多详细。
4. 你说HTTP可以进行多路复用,具体是怎么复用?如果服务器挂掉或者客户端挂掉,会怎么样?
5. HTTP的各种头你了解吗?每种头具体是什么作用?说一下
6. 你说arp会进行广播,会造成网络风暴,那应该怎么解决?
7. 你知道CDN吗?说一下
8. BIO NIO AIO说一下?epoll了解吗?用过吗?具体调用OS什么方法?webSocket呢?
9. 创建进程调用的是OS哪些方法?具体说说
10. 我们聊聊JAVA吧,你了解JVM吗?给我讲讲
11. JVM具体会在什么时候进行垃圾回收?JMM具体说说?
12. 垃圾回收算法具体说说?各种垃圾回收器了解吗?什么时候执行STOP THE WORLD?
03 三面(高冷总监)
感觉应该是总监,看起来很高冷,可能就是「压力面」,从容应对就好。
1. 我们聊聊JAVA吧,如何将一个Java对象序列化到文件里?
2. 修改对象A的equals方法的签名,那么使用HashMap存放这个对象实例的时候,会调用哪个equals方法?
3. Object类的equal和hashCode方法重写,为什么?
4. 现在我要求设计一个容器,容器满的时候生产者阻塞,容器空的时候消费者阻塞(我跟他讲了一下BlockingQueue和Condition,然后用Condition来写)
5. 二叉树的最大路径
04 HR面(谈工资啦)
1. 自我介绍一下吧
2. 你的学习方法是什么样的?项目中遇到的最大困难是什么以及如何解决的?
3. 就你申请的这个职位,你认为你还欠缺什么?
4. 如果通过这次面试我们录用了你,但工作一段时间却发现你不适合这个职位,你怎么办?
5. 如果你的工作出现失误,给本公司造成经济损失,你认为该怎么办?
6. 在五年的时间内,你的职业规划?
7. 你理想中的工资薪酬是多少呢?
8. 那你有什么想问我的?
这里分享一下精心整理的Java面试资料(PDF文档)及学习笔记导图,希望能够帮助到有需要的Java工程师朋友们,省的大家再去网上花时间找资料了!
面试资料领取方式:点击链接加入【java架构技术交流】
大厂面试 Java架构面试专题学习笔记导图(领取方式):点击链接加入【java架构技术交流】
学习导图 Redis如果觉得有所收获的话可以关注我和转发分享给更多的程序猿们哦,在这里祝愿每一个求职者都能够进入自己如愿以偿的公司拿到心仪的offer~
网友评论