头条Java实习岗面经
一面 45min
(因为一面结束后立马进行二面,且二面的问题太多了,所以一面问题可能记不太全。。)
面试官上来就说:我们开始吧,然后直接问我问题了。我内心:?我我我还没自我介绍呢。。。
TCP三次握手,为什么是三次?如果客户端最后一次ACK服务端没收到怎么办?
MySQL的事务隔离级别有哪些?什么是幻读,如何避免幻读?MySQL的可重复读是如何实现的?
进程通信有哪些方法?举例说明。
手写代码题:合并两个有序链表,写完后用刚刚写的函数写合并K个有序链表,分析时间复杂度。Leetcode原题。
二面 1h 10min
Http连接和TCP连接的区别?
Http 2.0, 1.1和1.0的区别?每个版本有哪些弊端,又是如何解决的?TCP黏包问题怎么解决?
多个线程同时从一个队列里取任务时如何尽可能地避免竞争?
如何理解Spring IOC和AOP?他们之间的联系?Spring IOC在整个Spring框架中起了什么样的作用?Spring的代理有哪些?实现思想?
你知道哪些设计模式?什么是访问者模式?
MySQL有哪些索引?B+树索引和哈希索引的区别?为什么索引结构用B+树而不用二叉树?二叉平衡树和B+树的比较?
若线程池要按时间顺序执行线程,现依次往线程池里提交多个任务并要求他们在给定时间执行,请问如何高效地保证这些线程按顺序执行?
代码题:手写Trie树的插入算法
面试官问我有什么问题要问的,我说你们部门主要用的技术栈有哪些?面试官说用go和python比较多。我顿时明白为什么头条面试问Java基础问的那么少了!
HTTP和TCP深入问下去我真的答不上来,不过二面面试官还蛮好的,对于我答得不全的问题他还用自己的理解跟我简单讲了一下,不会的问题也给了我一些思考方向的提示,给这位小哥哥点赞!
大概2小时候收到hr电话约三面。
#面经##字节跳动##实习#