腾讯24Java后端一二面面经
一面
1. 问项目。
2. https能否抵御重放攻击?
3. List remove第一个元素之后后面的元素会移动吗?
4. Hash map =new HashMap(50)这个过程中map进行了几次扩容?
5. 使cache命中率最高的算法是?
6. 无法保证每趟排序至少能将一个元素放到最终位置上的算法是?
7. 阻塞和非阻塞网络io有什么区别,分别有哪些应用场景?
8. 用浏览器打开一个网址的时候会用到哪些协议?
9. 应用程序的日志都要记录哪些内容?
10. Springbean如何保持线程安全? 使用局部变量可以保证安全,为什么不用实例变量?
11. 父子类静态代码块和构造函数的先后执行顺序?
12. 请列举ip地址和mac地址的区别?
13. 如何让三个线程按照指定顺序执行?
14. 手撕:对字符串Hello world! 进行反转,要求用递归的方法。
面试感受:难度稍微上来了,题目问的比较灵活,会按照实际的使用情况来提问,手撕算法属于网开一面。
二面
1. 拷打项目
2. 两个后端程序通过tcp进行数据传输,是否有可能有数据丢失?请举例子并且说明原因。
3. 怎么创建一个线程池?
4. 缓存区大小为8,根据最近五分钟访问次数排序,替换次数最少的缓存是哪种缓存算法?
5. 介绍一下spring的事务隔离级别?
6. 解释一下ioc和aop?
7. Mysql联合索引(a,b,c)相当于创建了a b c三个索引对吗?
8. 什么是半双工通信?
9. 实现接口的方法对访问修饰符有什么要求?
10. Spring cloud是如何实现高可用性的?
11. Mysql中innodb的主键索引跟其他索引的区别?
12. 聚簇索引中两个字段,一个类型是int,一个类型是varchar,在聚簇索引的叶子节点存储的数据类型是什么?
13. Jvm判断如何判断对象是否存活?常见的gcroot有哪些?堆里面的对象可以作为gcroot吗?
面试感受:因为项目那里问的比较多,所以时间不够用没出手撕。八股的问的部分难度不大,结合项目出的场景题不好答,需要对自己的项目足够的熟悉和了解。