昨晚半夜,一个学Java的老弟突然打电话告诉我他拿到了腾讯T3的offer,说实话,我有点诧异。。。
这老弟也是渣硕一枚,去投岗了腾讯的Java后台开发岗位。等了一个星期后简历被放回池子里了,眼看着提前批马上就要截止了,都以为他秋招首站就和腾讯无缘了,正想着该怎样安慰他受伤的小心灵,谁料腾讯那边居然就直接打电话过来通知小老弟去面试。万万没想到,一路下来,半月过去,他居然披荆斩棘“混进”了腾讯T3,着实牛掰。出于好奇,我特意去找了这位小老弟,想知道他的一些面试技巧和秘籍,然后跟我大概的说了下面试过程,并且他的法宝很简单——刷题。而且,在准备面试之前,起码是刷了数套的Java面试PDF,哥们关系比较铁,也将这些刷题PDF全部传授于我的。
想着既然这么有用,我也想拿出来献宝一下,所以老铁们注意啦!
腾讯面试问题(整理了一下小老弟的回忆)
- 自我介绍+项目
- 什么是重载、重写、各种情况下的重载重写,final关键字,linkedList、ArrayList、HashMap源码、创建线程四种方式等一系列Java基础问题
- 什么是反射,反射作用是什么?讲这里的时候我顺便拓展到了EventBus框架的反射机制
- 双检锁单例模式为什么那样设计?二次判空的原因,volatile关键字两个关键作用及其实现原理(底层加lock,读写语义,指令重排)
- 线程同步的方法,synchronized关键字底层是怎么实现的,对象锁、类锁、锁监视器
- ReentrantLock与synchronized的区别,公平性非公平性是如何体现的,顺便讲了AQS和CAS
- 你用过哪些设计模式?解决了什么问题?提到单例模式,构造者模式,观察者模式,讲了其在各个框架里面的应用
- TCP 三次握手、4次挥手
- redis 和 memcached 什么区别?为什么高并发下有时单线程的 redis 比多线程的memcached 效率要高?
- 在选择缓存时,什么时候选择 redis,什么时候选择 memcached
- 跟Synchronized相比 ,可重入锁ReentrantLock其实现原理有什么不同 ?
- 除 了 ReetrantLock, 你 还 接 触 过 JUC 中 的 哪 些 并 发 工 具 ?
- mysql都有什么锁,死锁判定原理和具体场景,死锁怎么解决?
- sql查询语句确定创建哪种类型的索引?如何优化查询?
- HashMap 是线程安全的吗,为什么不是线程安全的(最好画图说明多线程环境下不安全)?
- 如何判断一个对象是否存活?(或者 GC 对象的判定方法)
- mysql 索引 B+ 树
- 判断索引是否加上(explain)
- 假设数据库需要保存一年的数据,每天一百万条数据,一张表最多存一千万条数据,该咋设计表?
- 进程安全(没反应过来问进程安全,说了临界区,信号量)
- 具体实现并发安全(java sychronized,lock,cas,redis)
- 讲一下哈希表的底层细节,让你设计一个线程安全的哈希表,会怎么设计
- 编程题 二维数组判断岛屿连接(小老弟用bfs+memo说大体对了,写的冗余了)
- 手撕代码,数组内两个子区间交换
- linux内核是否支持多进程或多线程accept()同一个listenfd。。。
脑容量有限,小老弟回忆的不多,我也只记住这些了...
数套Java刷题PDF
- java后端面试题解析
- JVM面试解析
- 23种设计模式知识要点
- MySQL20高频面试解析
- ZK面试解析
- Redis面试专题上下篇
- 并发编程面试解析上下篇
- Spring面试专题
- SpringBoot面试专题
10.SpringMVC面试专题
- SpringCloud面试专题
- Tomcat面试专题
- Nginx面试专题
- Kafka面试专题
- MyBatis面试专题
- BAT常见81题(JVM+Redis+多线程高并发+集合框架+数据库)
- 各大厂面经面试题集锦