一些写在前面的话
首先作为一个“好兵”,我从不打无准备的仗,毕竟知己知彼才能游刃有余。无论现在的你处于什么水平,技术拥有怎样的深度,都不得不承认,任何时候都需要你能够主动地去学习,面试也要提前做准备。如果你的职业发展有更长远的打算和规划,那就更应该沉稳下来,脚踏实地,一步一步。
腾讯一面
-
mysql索引结构?
-
redis持久化策略?
-
RDB:快照形式是直接把内存中的数据保存到一个dump的文件中,定时保存,保存策略。 当Redis需要做持久化时,Redis会fork一个子进程,子进程将数据写到磁盘上一个临时RDB文件中。当子进程完成写临时文件后,将原来的RDB替换掉。
-
AOF:把所有的对Redis的服务器进行修改的命令都存到一个文件里,命令的集合。使用AOF做持久化,每一个写命令都通过write函数追加到appendonly.aof中。aof的默认策略是每秒钟fsync一次,在这种配置下,就算发生故障停机,也最多丢失一秒钟的数据。 缺点是对于相同的数据集来说,AOF的文件体积通常要大于RDB文件的体积。根据所使用的fsync策略,AOF的速度可能会慢于RDB。 Redis默认是快照RDB的持久化方式。
-
zookeeper节点类型说一下;
-
zookeeper选举机制?
-
zookeeper主节点故障,如何重新选举?
-
syn机制?
-
线程池的核心参数;
-
threadlocal的实现,原理,业务用来做什么?
-
spring di的原理;
-
四次挥手;
-
gcroot选择;
-
标记清除算法的过程,标记清楚算法如何给对象分配内存空间?
-
cms算法的缺点;
腾讯二面
-
correnthashmap?
-
threadlocal原理?
-
hashmap;
-
Java数据类型,同步机制;
-
讲讲贪心算法;
-
如果线上用户出现502错误你怎么排查?
-
并发量很大,服务器宕机。你会怎么做?
腾讯三面
-
syn和lock的区别,哪个更好?怎么选择?
-
hashmap源码,为什么8个节点变成红黑树 又为什么到了6个节点才恢复为链表?
-
缓存穿透,怎么解决?
-
负载均衡算法,实现;
-
轮询和随机的缺点;
-
分布式服务治理;
-
dns迭代和递归的区别;
-
算法题:最长回文串;这道牛客题霸上有原题,大家可以去看看:NC17最长回文串
-
为什么连接的时候是三次握手,关闭的时候却是四次握手?
总结
因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,“你发的FIN报文我收到了”。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。
最后我为大家准备了一些Java架构学习资料,学习技术内容包含有:Spring,Dubbo,MyBatis, RPC, 源码分析,高并发、高性能、分布式,性能优化,微服务 高级架构开发等等,点击这里免费获取。