腾讯一面-暑期实习-IDC部门-后台开发
下午刚面完,一个半小时的八股盛宴。回忆的不全,想起来了再补充。
Java基础:
所有对象的公共类?Object类的公共方法有哪些,随便说几个你常用的?你刚才说了toStirng(),什么时候会调用toString()方法? |
反射了解吗? |
HaspMap、HashTable、ConcurrentHashMap三者的共同点和区别。这些集合的key可以为null吗?为什么HashTable的键不能为null? |
红黑树的查询时间复杂度,插入时间复杂度。 |
线程池了解吗?启动线程池有哪些方法?如果现在有个8核CPU,你的核心线程数设置多少? |
JVM了解吗?类的加载过程有哪些?双亲委派机制了解吗?知道打破双亲委派机制的场景吗?(tomcat) |
gc了解吗?gc有哪几种?什么时候会触发full gc? 程序开始或者结束的时候会触发full gc吗?如果你设计一个垃圾回收器,你会怎么设计full gc的触发时刻? |
gc清理的是什么东西?是只清理JVM的空间吗? |
为什么使用多线程?多线程是为了解决什么问题? |
Spring:
注解的底层原理?元注解都有哪些? |
Mysql:
mysql的索引结构。 |
Mysql的事务了解吗?ACID的实现原理。 |
你刚才说了redo log,除了它还有别的日志吗? |
redo log存的什么东西? |
mysql的锁了解吗?有哪些锁?间隙锁左右区间怎么设置?为什么是左开右闭(联想间隙锁是为了解决什么问题)?什么是幻读? |
Redis:
Redis和Mysql的区别 |
Redis分布式锁了解吗?SetNX是针对单个资源的,如果有100个资源,你怎么上锁?你说使用消息队列,但是消息队列会导致串行化执行,导致用户等待时间过长,再想想。有没有减少用户等待时间的方法?Redis集群也仅是能缓解,再下去研究一下。(完全不会,瞎答) |
项目里的DAU数据为什么用Bitmap存储?为什么不用mysql存储?为什么不选择使用select xx count(*)来统计?(面试官推荐使用mysql存储,特定用户类型可以使用Bitmap存储) |
计网:
TCP四次挥手 |
TCP关闭连接后操作系统需要释放哪些资源?(四元组) |
TCP和UDP区别?分别有哪些使用场景 |
你觉得腾讯会议用的什么协议?(自研协议,基于UDP,实现更可靠,类似QUIC)了解QUIC吗?为什么HTTP3要使用QUIC? |
ES:
ES分词器了解吗?都有哪些分词器?为什么选择ik分词器? |
手撕:
不用递归实现二叉树后序遍历
反问:
1.介绍一下部门情况
2.自己有哪些地方可以加强