最近有个好朋友换工作了,面了腾讯后端,跟他要了份面试真题,大家一起来探讨一下,哈哈~
腾讯后端一面 1.JVM内存模型这个可以复习一下《深入理解Java虚拟机》第12章(Java内存模型和线程)
2.cms和g1有没有了解过,它们有什么区别
-
CMS收集器是老年代的收集器,可以配合新生代的Serial和ParNew收集器一起使用;
-
G1收集器收集范围是老年代和新生代,不需要结合其他收集器使用;
-
CMS收集器以最小的停顿时间为目标的收集器;
-
G1收集器可预测垃圾回收的停顿时间
-
CMS收集器是使用“标记-清除”算法进行的垃圾回收,容易产生内存碎片
-
G1收集器使用的是“标记-整理”算法,进行了空间整合,降低了内存空间碎片。
这个点是可以看《深入理解Java虚拟机》第三章,垃圾收集器与内存分配策略哈
3.谈谈你对垃圾回收的了解,什么时候发生垃圾回收,回收过程可以讲JVM中一次完整的GC流程是怎样的,对象如何晋升到老年代,如Minor GC,Major GC,full GC这几个讲清楚,还有对象存活判断方法,还有垃圾回收算法,复制算法等等
这个点也是可以看《深入理解Java虚拟机》第三章,垃圾收集器与内存分配策略哈
4.对于数据的一致性是怎么保证的 5.Redis集群有没有了解过,主从和选举是怎么样子的6.看你们公司使用的是MySQL,你们使用的是哪种存储引擎,为什么?MyISAM和InnoDB的区别7. 索引的底层数据结构是什么,为什么选择这种数据结构
8. SQL优化,怎么判断需要优化,从哪些方面着手优化 9.手写代码:设计一个分布式自增id生成服务 腾讯后端二面 1.有没有了解过网络安全问题,常见的网络攻击有哪些,原理是什么,可以怎么解决 2.平时在开发接口或者设计项目的时候如何保证安全性的 3.使用Redis集群时可能会存在什么问题 4.有没有了解过cap和base原则 5.zk是如何保证一致性的 6.你如何设计一个能抗住大流量的系统,说说设计方案 7.有没有了解过缓存策略有哪些


