腾讯 CDG Java后端 面试经验分享
各种面经总结、面试技巧、Java所有面试知识总结都在个人gihub了,
欢迎关注:[JavaNotesForInterview](https://github.com/QiuYukang/JavaNotesForInterview)
一面
2021.03.18 90min 腾讯CDG
- 智力题:一个蛋糕切三刀分成四块,有哪些切法
- 算法题:
- 平时使用的技术栈
- HashMap多线程存在什么问题?怎么解决?除了ConcurrentHashMap外自己写代码怎么解决。
- sychronized和ReentrantLock的使用方法有什么区别?
- 公平锁和非公平锁的区别?synchronized是一种非公平锁?
- 线程的生命周期和状态?
- 进程间通信的方式有哪些?
- 有没有多线程编程的经验?
- ThreadLocal的原理和使用场景?
- 如何确定对象是否需要被回收?垃圾回收算法有哪些?
- 说说CMS和G1垃圾收集器的区别?
- 年轻代回收的过程?年轻代为什么要分E区/S0和S1区(为什么要两个S区)
- 对象什么时候进入老年代?什么是大对象,由什么参数决定?
- TCP头部长度和格式?TCP默认窗口大小?数据太大怎么办?分片后会乱序嘛?出现差错了怎么办?
- HTTP和HTTPS默认端口?HTTP头部格式?
- binlog所有相关的东西?和undo log以及redo log的存储形式的不同?【mark】
- MySQL主从复制的过程,binlog怎么使用的?
- 分库分表怎么做,有没有试过分库分表?
- 一张表的并发量和什么有关?【CPU核数、连接数、表的互斥访问数】;并发数量大致是多少?
- 在B+树中查找的过程是怎么样的?
- 主键索引和唯一索引的区别?
- gap lock是什么?
- 主服务器怎么确定从服务器同步完成了呢?同步失败了怎么办?
- 数据库分库分表?一个分表后的数据库实例能顶住多大的并发请求(500左右)?
- 未来的规划?
- 项目中的难点在哪里,解决了什么问题?
- IEEE比赛中印象最深刻的地方?
- 项目中的收获
面试官反馈:简历项目没有亮点?没有把难点说出来?没有可深挖的东西。
二面
2021.03.24 50min 腾讯CDG
- 项目的构成(还是没给面试官描述清楚,被打断了)
- Java的Socket编程有没有用过?用的哪种模式?(应该说没用过,但是了解过)
- 项目里的Socket编程用的哪种模式?
- TCP/HTTP都用的现成的接口?
- TCP如何保证可靠传输?
- TCP TIME_WAIT状态在哪里出现?
- JVM内存区域
- 说说GC(从垃圾的判定、垃圾回收算法、分代回收理论来说)
- 了解G1吗
- MySQL用的什么存储引擎?
- MySQL事务的隔离级别?
- 可重复读怎么实现的(加锁?那岂不是串行化了?只加行锁?读写锁?读快照?啥啊)。
- 读写是否加锁,什么时候加锁?写加锁那就不能并发了啊?(行锁,可以并发,不是表锁?)
- SELECT ... FOR UPDATE干嘛的?(加X行锁,加了之后呢)
- SQL注入了解吗?
- B+树有什么特点吗?(从存储结构、叶子节点的构成来说)
- 怎么处理日志打印,并发量高的接口怎么打印日志,存文件的时候需要注意什么?(应该反问面试官到底怎么做)
- 项目里面的技术难点?
- 共享内存了解吗?
- 进程间通信了解吗?
三面
2021.03.27 25min
- 数据库的索引有哪些?【B+树索引(聚集索引、非聚集索引)、哈希索引、全文索引】
- 事务的隔离级别有哪几种?
- 事务并发控制怎么做的?
- 事务备份的checkoutpoin机制是怎么样的?
- 网络方面常见的IO模型
- 操作系统的内存管理是怎么做的?【页式管理+多级页表和快表】
- 文件系统了解吗?
- Redis怎么做容灾?
- Redis内存怎么管理的?【16个数据库,过期键删除策略,内存淘汰策略】
- 微服务方面有了解嘛?
- 高并发有了解吗?