前言
在看面试题之前先看看几组对话吧:
其实我收集了很多很多的内容,但是篇幅的原因,我就不一一罗列了,我也经常看到群里朋友说看完我一些文章之后拿到不错offer,说真的我还有很多技术栈还没写,能拿offer主要还是靠大家,不过大家在我文章有所收获我是很开心的。
特别是很多读者都是10k以内到 14k -18k什么的,在我大厂同学眼里可能没什么因为大家应届进去就是很高的base了,但是我知道对很多朋友来说,太重要了,这样的一次机会不亚于一次重生。
因为我所有的业余时间基本上都是写文章,写稿子,拍视频,剪视频,所以大家给我私聊,我不一定都会回,但是我基本上都会去看一下,很多时候难免有所感慨,有很多读者像写信一样的表达他的经历,表达他的感情。
有感动,有感慨,说真的写东西本身就是我的一个兴趣爱好,我也没想到能写到今天这样了,偶尔和身边的朋友聊起都觉得很神奇,更没想到的就是还真的能帮助到很多朋友,说真的我其实没想过能帮到这么多人,甚至现在这么多人认识我,知道我。
读者经常说拿着我的简历模板去面试,结果被面试官问,这不是敖丙的简历模板嘛?我觉得真的是哭笑不得,不过表现欲极强的我还是很开心。
还有小伙伴在地铁上看到别人看我的文章,看我的视频,我也觉得诶好像有那么点意思哈,丙也算是出圈了。
最近时间也多了起来,我会慢慢恢复技术文的更新的(毕竟大家年中跳槽的都在准备了嘛哈哈),暖不暖吧?
下面呢就是一位读者分享他几次面试的面试题总结,答案在我之前写过的文章中基本上都能找到,一二面都是偏基础的大家看看基本上就是这些东西,我都提到过,三四面就很偏项目了,所以大家还是要好好准备项目哟。
大厂面试题
域起网络 ----- 一家游戏公司30分钟 电话面试
1、讲一下GC的过程
2、什么样的对象会被老年代回收
3、为什么要设置S0,S1区
4、什么样的对象可以作为GC roots
5、多线程的异步调用怎么实现的
6、讲讲你最常用的单例模式 (我答的双重检测)
7、双重检测的INSTACNE为什么要用voliate修饰
8、voliate怎么保证可见性的
9、Sychonized的作用是什么
10、Sychonized 和 lock的区别
11、排序算法以及时间复杂度
12、讲讲代理模式
13、网络编程有了解吗,讲讲TCP/UDP的区别
14、为什么UDP速率比TCP快
跟谁学(文思海辉)-- 视频面试 44分钟
1、JVM调优的工具和命令,jstat 查看状态都有哪些
2、线程的状态
3、wite 不需要时间吗 sleep 和 wite 锁的区别
4、线程池了解过吗,7种参数
5、线程池的阻塞队列用的最多的是什么
6、ArrayBlockingQuene 和 LinkdeBlockingQuene的区别是什么
7、ArrayList 和 LinkedList的区别是什么
8、ArrayList为什么查询比较快,查询是怎么查的
9、List的线程安全实现有哪些
10、CopyOnWriteList 的写锁是怎么加的锁
11、项目中遇到挑战在哪里
12、Oracle和 Mysql的隔离级别为什么不同
13、怎么查看Mysql的sql执行情况
14、Explain sql 中参数
15、Redis中的zset和Three set有什么区别
16、Three set是怎么实现排序的
17、还知道哪些可以排序的树 我说的B+ 树
18、B+树的运用场景,我说的Mysql中的索引
19、是所有索引都用的B+ 树吗,哪些用了
20、一道算法题 写一个数字反序的方法 我写的没有考虑溢出的情况
快手 -- 视频面试30分钟
1、谈一下项目
2、谈一下对IOC和AOP的理解
3、Memchached 和 Redis 的区别
4、Redis的持久化实现
5、Redis的淘汰策略
6、定期删除和惰性删除的区别、优缺点
7、IOC的原理是什么
8、Hashmap的底层实现和原理
9、手写一个,实现map的put方法
学堂在线 -- 视频面试20分钟
1、说下spring事务,@Transition 这个注解在哪些情况下不会生效
2、Synchronized 基本原理
3、Synchronized和ReentrantLock 都是可重入锁,他们俩是怎么实现可重入的
4、线程池的工作原理和7个参数
5、Volatile的用处
6、JVM在什么情况下会发生YoungGC和FullGC
7、Redis的淘汰机制
8、类加载机制说一下
9、快速排序的基本实现
10、Mysql优化是怎么优化的,索引失效的情况都有哪些
11、实现一个抢红包的算法,怎么实现
12、让你实现一个LRU算法,怎么实现
销售易 -- 视频面试 30分钟
1、项目说了很多
2、Spring是怎么管理Bean的
3、你们公司用AOP都做了什么
4、AOP的实现原理是什么
5、为什么JDK动态代理要实现接口,CGLIB不用实现
6、CGLIB动态代理的实现方式
7、如果让你实现AOP,你会怎么实现
8、Redis的基本数据类型
9、Redis的hash是怎么实现的
10、Redis的事务是怎么实现的
11、Redis的淘汰机制
12、LRU是怎么实现的
13、HashMap的实现原理
14、HashMap中哪里用到了数组
15、HashMap的扩容机制
16、你能想到别的方法进行数组的扩容吗
17、为什么链表要转换成红黑树
18、链表是怎么转换成红黑树的
19、SpringBoot自动装配的原理
20、AutoConfigurationImportSelector这个类是怎么实现的
21、SpringApplication对象是怎么创建的
22、Spring循环依赖怎么解决的
搜狐一面 -- 视频面试 50分钟
1、JVM垃圾回收机制
2、怎么判断当前对象能否被回收
3、对象首次创建的话创建在哪个区(新生代还是老年代,新生代哪个区)
4、解释一下stop the world
5、Stop the world 过程中,如果有新的垃圾产生怎么办
6、我说我们项目用的是JDK1.6,面试官就问,1.8和1.6都有哪些区别
7、有了解过1.8的stream流吗
8、HashMap1.8和1.8之前的区别,以及底层实现
9、HashMap为什么不是线程安全的
10、HashMap还会造成什么问题(1.8之前头插法会导致死循环)
11、实现HashMap线程安全的有哪些(我答了三种)
12、CurrentHashMap的底层原理,以及1.8和之前的区别
13、详细讲讲CAS的工作原理
14、CAS的ABA问题怎么解决的
15、你常用的线程池有哪些
16、线程池的7个参数
17、SingleThreadExecutor和CachedThreadPool为什么不推荐使用,会出现哪些问题
18、写一个冒泡排序
19、写一个算法,快乐数(LeetCode原题),我一开始用递归写,会出现死循环的状态,面试官超好提醒我,然后花了很长时间修改算法,通过
20、Mybatis有了解它的插件吗
21、MybatisTemplate 有了解吗
22、Redis的五个参数
23、Redis的事务,我Muliti事务开始,然后写了五个key,其中有一个失败了,Redis怎么处理的,会回滚吗
24、Redis事务和Mybatis事务有什么区别
25、Redis主从复制了解吗
26、Redis主服务器是怎么给从服务器写入数据的
27、看你还了解Docker,(简单说了一下玩过一点点)
美团(美团地图)一面 -- 视频面试 50分钟
1、聊了十多分钟做的项目
2、你们公司自研的Spring和市面上流行的Spring有什么不一样
3、Redis主要用来干嘛的
4、Redis的持久化方式
5、Redis的事务有了解吗(我说了使用的基本命令和mybatis、mysql的区别)
6、你对你们经常使用的集合底层有了解吗
7、HashMap的底层原理,1.8以及之前的,线程安全实现方式
8、Sychonized和ReentrantLock 的区别
9、Volatile的作用是什么
10、对JVM垃圾回收器有了解吗
11、CMS垃圾回收器说一下工作原理
12、堆和栈的区别
13、JVM的调优
14、try{}catch{}finally{}中,如果finally{}中的返回值+1,返回的是多少,会改变返回结果吗
15、线程池有了解吗,它的工作原理
16、固定长度的线程池有什么缺点
17、Mysql和Oracle你用的最大的区别是什么(我说了两者的事务隔离级别,以及mysql中的Explain和oracle当中的Explain plan for的区别)
18、Mysql的聚簇索引和非聚簇索引有了解吗
19、看你做过Sql优化,讲讲你做了哪些优化
20、Mysql回表知道是什么吗
21、SpringMVC的工作流程是什么
22、一道简单的算法题,反转链表,我说这题我前段时间专门leetcode上练过,我算法不好,这段时间主要是复习基础了,面试官夸我基础很扎实,应该二面稳了,面试体检极佳
美团(美团地图)二面 -- 视频面试 40分钟
1、是个小姐姐程序员,聊了聊项目
2、问了下我们公司现在项目用到的技术栈
3、和一面一样问了下我们公司自研的Spring有哪些不一样
4、同样讲了讲oracle和mysql的区别
5、讲讲不可重复读是什么
6、Jdk1.8有了解过CompletableFuture吗(我没有了解过,流下来没技术的眼泪)
7、那你知道Future吗(好像是Callable的时候返回值会用到它,又流下了没技术的眼泪)
8、写一个算法题吧,牛客网的 密码合格校验,写了十多分钟,全是靠if else解决的
小姐姐也说,这个写的没问题,但是需要更多的考虑更好的办法,比如借助java自带的工具类等等。
9、说一些和技术无关的,你对你自己的技术发展有什么想法(我就说,平时会多看看技术公众号,看B站学习技术,会关注很多新技术然后跟着学习,想去更大的平台通过实际场景的应用丰富自己的阅历)
美团(美团打车)一面 -- 视频面试 40分钟
1、String,StringBuild,StringBuff的区别
2、StringBuff为什么是线程安全的
3、ArrayList和LinkedList的区别是什么
4、以上二位是线程安全的吗,怎么实现线程安全
5、Vector实现线程安全的原理是什么
6、多线程编程中你知道哪些都是保证线程安全的
7、Volatile的底层实现是什么
8、线程池了解吗,说说工作原理
9、内存溢出说一下
10、栈溢出说一下
11、要实现一个OOM和栈溢出,怎么实现
12、说一下你常用的垃圾回收器
13、Stop the world 解释一下
14、CMS的工作流程是什么
15、Spring中bean的作用域
16、Spring中bean的生命周期说一下
17、说一下你在项目中遇到的印象深刻的问题是什么,有什么收货
18、Redis的持久化怎么实现的
19、写一道编程题,leetcode 第一道经典题目--两数之和
20、对美团打车有什么想了解的吗(问了下美团打车和滴滴高德打车的区别)
字节跳动 视频面试 -- 30分钟
1、简单介绍了一下项目
2、HashMap介绍一下
3、为什么要用红黑树的结构
4、红黑树一般都会用在哪些场景中
5、Oracle的索引了解吗
6、Mysql的索引底层实现是什么
7、B+树的实现原理了解吗
8、Mysql事务特性了解吗,具体说一说
9、Mysql的事务隔离级别了解吗
10、Mysql的事务隔离级别是怎么实现的
11、算法题:[(5,7),(1,6),(15,50),(60,90),(35,37)] 合并二元数组 输出[(1,7),(15,50),(60,90)]
12、算法题:分层打印二叉树
13、算法题:反转链表起网络
总结
答案在我过往文章都有,大家需要自行查阅哟,需要清晰一点的整理,去我的GitHub就可以了,上面基本上是我所有文章和资料的合集了。
另外,敖丙把自己的面试文章整理成了一本电子书,共 1630页!目录如下
过往文章和资料:https://github.com/AobingJava/JavaFamily 面试资料公号回复【资料】即可 或者百度云直接下载 面试资料链接:http://pan.baidu.com/s/1i3vmGfV 密码:moy8
希望大家都能找到心仪的工作,都有跟开头读者一样跟我分享喜悦的一天,如果你觉得坚持不下去的时候,想想你进去之后能拿到的薪资待遇,我想你会坚持住的,还是那句话,不是一番梅彻骨,怎得梅花扑鼻香。
我是敖丙,你知道的越多,你不知道的越多,我们下期见!
人才们的 【三连】 就是敖丙创作的最大动力,如果本篇博客有任何错误和建议,欢迎人才们留言!
文章持续更新,可以微信搜索「 三太子敖丙 」第一时间阅读,回复【资料】有我准备的一线大厂面试资料和简历模板,本文 GitHub https://github.com/JavaFamily 已经收录,有大厂面试完整考点,欢迎Star。