背景介绍
本人是广东某二本科班,无比赛无项目,学校带学院后缀的那种,至今没有面试官听过我的学校,这两个月不断挣扎,曾与阿里、腾讯面试官面对面讨论技术,最终成功斩获多家名企的感谢信,包括但不限于阿里、腾讯、字节、美团、网易,人称“感谢信收藏家”,收获感upup~
下面是我面试的时候面试官问到的一些问题,记录下来分享给大家~
一面(视频面) 1小时30分钟
1、类加载机制概念、加载步骤、双亲委托机制、全盘委托机制、类加载器种类及继承关系
2、如何实现让类加载器去加载网络上的资源文件?怎么自定义类加载器?自定义的加载器还符合双亲委托机制吗?怎么打破双亲委托机制?
3、实例化对象的方式有几种?
4、由Object类的clone方法引申到深复制和浅复制的区别
5、反射的概念、用法、实践
6、Java内存模型和JVM内存结构
7、有一台4核8G的机器,该给JVM里的堆区和虚拟机栈分配多大的内存?(初始值、最大值、堆区年轻代和老年代的分配比例等等)
8、堆内存中的年轻代分配内存过少或过多分别有什么影响?复制算***导致Stop-the-World吗?
9、哪些参数可以设置JVM中的内存分配?
10、需要在线程范围内去共享一个变量,怎么实现?ThreadLocal源码实现、Key弱引用导致的内存泄露、怎么避免?
(这道题我一直理解成在多个线程之间去共享变量,说了volatile,面试官一直说不对,后来我猜意识到是在线程范围内共享量....)
11、volatile的作用、实现机制、缓存—致性实现
12、AtomicInteger原子类的作用、源码实现机制
13、CAS无锁算法概念、源码实现机制、Unsafe类源码延伸到HotSpot虚拟机对应的C++方法再延伸对应的汇编函数
14、ReentrantLock中非公平锁的源码实现、AQS源码实现、为什么需要自旋锁?锁膨胀的过程?
15、线程池的使用场景、常用参数、拒绝策略
16、阻塞队列的种类、底层数据结构和使用场景
17、手写BIO的Socket编程、BIO和NIO的区别
18、Netty线程模型、零拷贝、粘包拆包、心跳机制、Pipeline源码
19、责任链模型、策略模式、模板模式、设计模式里的原则
20、Top K问题,找到上千万个数字中从大到小的前10个数字
21、MySQL中的聚集索引和稀疏索引区别、索引是越多越好吗?什么样的字段适合建索引?
22、索引覆盖和回表的概念、怎么避免回表?
23、为什么采用B+树而不用AVL树?
24、事务的底层实现
25、MVCC的概念及实现机制
26、Redis为什么这么快?为什么不用多线程?
27、哈希表查询的时间复杂度、哈希冲突的解决方法?
28、Sorted Set的应用场景、跳表的实现、查询和插入的时间复杂度?
29、Dubbo的应用场景、底层通信组件、服务降级、负载均衡、接口暴露、序列化方式、让你实现一个简单的RPC框架你会怎么做?
30、Zookeeper的应用场景、watch机制、领导者选举算法、ZK实现分布式锁
31、对称加密、非对称加密、数字证书、HTTPS的连接过程、SSL加密一定安全吗?SSL在哪—层实现加密?
32、OSI七层协议?路由器工作在那—层?HTTP、TCP、FTP、DNS工作在哪—层?
33、ARP协议的作用及流程
34、Git的操作、代码冲突的解决方法
35、Redis的缓存穿透、缓存雪崩、数据—致性的解决方案
36、Elasticsearch的倒排索引、index和document的概念、脑裂问题
37、RabbitMQ应用场景、生产/消费者和发布/订阅模式概念和应用、数据丢失问题
38、商品超卖的解决方法、MySQL乐观锁和Redis乐观锁
二面(视频面)50分钟
1、Hashmap和Concurrenthashmap
2、线程池核心参数、拒绝策略
3、SynchroQueue的应用场景?可以存几个元素?
4、Lock的公平锁和非公平锁的怎么实现的
5、说说AQS
6、Lock是怎么给线程分配锁的?
7、Spring Bean的生命周期
8、说一说Spring的AOP
9、SpringBoot启动过程的源码
10、怎么学习开源框架
11、Netty零拷贝?心跳机制?粘包拆包?
12、ASM怎么实现cglib
13、说—说数据库有哪些索引?聚簇索引和非聚簇索引区别?什么是索引覆盖和回表?什么是索引下推?
14、二叉树和B+树的区别
15、了解哪些常用的Linux命令
16、Linux根目录下有哪些文件夹
17、JVM常用命令
18、jstat的常用参数
19、进程通信方式
20、Linux线程调度方式
21、Linux的缓存有几级
22、Redis的删除策略?
22、什么是分布式?分布式和微服务有什么联系?CAP理论听过吗?为什么CAP理论最多职能满足两个?
23、算法:环形链表入口
HR面(电话面) 18分钟
没有自我介绍,直入主题。
1、你觉得笔试难度怎么样?
2、我看你前几轮的综合成绩都蛮高的,未来想在北京发展吗?
3、像广州深圳杭州互联网公司都很多,为什么投了北京的岗位呢?
4、我可能比较直白一点,你的学历在我们这些候选人里面是比较低的,你觉得你的优势在哪里?
总结
- 总体感觉比较重视基础,所以 Java 那些基本功一定要扎实。然后,网络部分也要格外重视。
- 面试官对于一些问题问的非常深入。
分享
很多同学可能会觉得我是一个不知名的二本院校出来的学生,却能拿到京东的offer,很惊讶!不要惊讶,其实面试前多刷题阅读资料多看源码再做些项目,静下心,不浮躁。相信我,大厂offer你也可以拥有!
下面我就把我平时会用到的面试资料分享给大家!有需要这些面试资料的读者朋友帮忙点赞后,私信我【面试资料】就可以了(一定要记得关注我,不然没办法回复陌生人私信)。
面试题及解析总结
大厂面试场景
知识点总结
一共有30个专题,足够读者朋友们应付面试啦,也节省朋友们去到处搜刮资料自己整理的时间!已经有读者朋友靠着这一份Java面试知识点指导拿到不错的offer了。