上周面经(网易有道,腾讯)
网易有道
一面:(很久之前的了)(45min)
1.上来手撕一个链表反转
2.问tcp拥塞控制,流量控制
3.数据库事务隔离级别,可能出现的问题
4.由3问题导出mvcc的概念,让说出自己理解的部分
5.SpringBean生命周期。
6.git命令,没答好,其实他想问我gitmerge与git rebase的区别
7.再次写代码,给定一个字符串,输出最长回文子串
意外收到二面现场面通知
二面
问的比较深
1.代码实现根号2,保留小数点后10位。
2.手撕一致性hash
3.问数据库的锁机制,从表锁问到行锁,每讲一个点都需要说清楚为什么。就这个扯到了mvcc,binlog,redolog,undolog。
4.synchronized关键字底层原理,从无锁讲到重量级锁。synchronized这种悲观锁为什么开销大,你是怎么理解的。
5.Java8新特性,用过哪些。
6.jvm虚拟机除了可以用在Java上,还可以用到其他语言上吗?
7.加锁解锁过程中,线程内具体的操作了解过吗?(真的很深层次了,考察你对常见的问题的深入理解)
腾讯
一面:csig,中间件
1.项目
2.项目中单进程模型,怎样做到的高并发。(这个我没考虑过,下来查了一下,servlet是单实例多线程的模型。具体的可能会涉及到tomcat最大连接数,最大线程数的概念)
3.代码中有线程池的概念吗?如果结合你的项目设计线程池,你应该怎么设计
4.redis集群中保证高可用,哨兵概念,持久化机制,redis是单进程的,持久化过程怎么进行。redis中有哪些数据结构,简单说一下,你项目中存的内容都用过哪些数据结构。redis 有序集合的底层是什么,跳表的特点有哪些,具体实现是什么。比如插入过程说一下。
5.redis的IO模型,从select讲到了poll,epoll,详细将epoll。为什么epoll只拷贝一次,而另外两种需要拷贝多次。具体是通过什么机制实现的。回调,哪里体现到了回调。回调函数源码看过吗?写过吗?
6.分布式系统了解过吗(csig中间件团队,我这真没搞过)
7.TCP 拥塞控制,流量控制说一下,滑动窗口
8.怎么判断网络上发生了拥塞,重传?失序?(提示了quic算法 ppi算法)
9.tcp_reuse ,timestamp参数(具体的time_wait参数相关)大量time_wait需要做的处理
10.为什么time_wait是2MSL,2MSL时长是多少,为什么需要将time_wait设置减小,调整时间有什么意义。(需要再深入再详细一些)如何让time_wait快速回收。
11.tcp里面的接收窗口(没get到点)。接收窗口如果是0,什么情况。详细说一下。
12.tcp粘包(没看过啊)
二面(T3.3大佬面的,佩服佩服,状态已灰)
1.Java中异步调用或者说异步IO实现了解吗?我说了说咱们项目中,做异步解耦的一个思想。
2.TCP中RTT,RTO相关计算公式,给解释一下。给了提示,tcp传输一组数据要用多长时间。
3.操作系统层面,CPU调用线程完成任务的过程,面试官提示我软中断,我感觉回答不上来。
4.讲一下DFS过程,口述。说思想即可。然后问了一个有向图判断循环引用的问题。我回答拓扑排序和dfs都可以。然后让我讲了讲在实际应用场景中,哪一个效率更高,为什么。
5.线程上下文切换为什么越频繁越耗费资源。
6.一开始还问了一个比较开放的题目,结合gc回收机制,说一说你在java编码过程中需要注意的规范
#腾讯##网易有道##面经##Java工程师#