前言
昨晚半夜,一个学Java的老弟突然打电话告诉我他拿到了腾讯T3的offer,说实话,我有点诧异。。。
这老弟也是渣硕一枚,之前因为疫情找了一份离家近的普通工作,实习月薪5K,后来基本控制住了,就想跳槽去投岗了腾讯的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面试学习文档小编已经帮你整理好了,有需要的朋友点赞+关注我后,点击此处领取Java、大厂面试学习资料哦
数套Java刷题PDF
java后端面试题解析
2.JVM面试解析
3.23种设计模式知识要点
4.MySQL20高频面试解析
5.ZK面试解析
6.Redis面试专题上下篇
7.并发编程面试解析上下篇
8.Spring面试专题
9.SpringBoot面试专题
10.SpringMVC面试专题
11.SpringCloud面试专题
12.Tomcat面试专题
13.Nginx面试专题
14.Kafka面试专题
15.MyBatis面试专题