在看面试题之前先看看几组对话吧:
其实我收集了很多很多的内容,但是篇幅的原因,我就不一一罗列了,我也经常看到群里朋友说看完我一些文章之后拿到不错offer,说真的我还有很多技术栈还没写,能拿offer主要还是靠大家,不过大家在我文章有所收获我是很开心的。
特别是很多读者都是10k以内到 14k -18k什么的,在我大厂同学眼里可能没什么因为大家应届进去就是很高的base了,但是我知道对很多朋友来说,太重要了,这样的一次机会不亚于一次重生。
因为我所有的业余时间基本上都是写文章,写稿子,拍视频,剪视频,所以大家给我私聊,我不一定都会回,但是我基本上都会去看一下,很多时候难免有所感慨,有很多读者像写信一样的表达他的经历,表达他的感情。
有感动,有感慨,说真的写东西本身就是我的一个兴趣爱好,我也没想到能写到今天这样了,偶尔和身边的朋友聊起都觉得很神奇,更没想到的就是还真的能帮助到很多朋友,说真的我其实没想过能帮到这么多人,甚至现在这么多人认识我,知道我。
读者经常说拿着我的简历模板去面试,结果被面试官问,这不是敖丙的简历模板嘛?我觉得真的是哭笑不得,不过表现欲极强的我还是很开心。
还有小伙伴在地铁上看到别人看我的文章,看我的视频,我也觉得诶好像有那么点意思哈,丙也算是出圈了。
最近时间也多了起来,我会慢慢恢复技术文的更新的(毕竟大家年中跳槽的都在准备了嘛哈哈),暖不暖吧?
下面呢就是一位读者分享他几次面试的面试题总结,答案在我之前写过的文章中基本上都能找到,一二面都是偏基础的大家看看基本上就是这些东西,我都提到过,三四面就很偏项目了,所以大家还是要好好准备项目哟。
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快
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、一道算法题 写一个数字反序的方法 我写的没有考虑溢出的情况
1、谈一下项目
2、谈一下对IOC和AOP的理解
3、Memchached 和 Redis 的区别
4、Redis的持久化实现
5、Redis的淘汰策略
6、定期删除和惰性删除的区别、优缺点
7、IOC的原理是什么
8、Hashmap的底层实现和原理
9、手写一个,实现map的put方法
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算法,怎么实现
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循环依赖怎么解决的
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,(简单说了一下玩过一点点)
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上练过,我算法不好,这段时间主要是复习基础了,面试官夸我基础很扎实,应该二面稳了,面试体检极佳
1、是个小姐姐程序员,聊了聊项目
2、问了下我们公司现在项目用到的技术栈
3、和一面一样问了下我们公司自研的Spring有哪些不一样
4、同样讲了讲oracle和mysql的区别
5、讲讲不可重复读是什么
6、Jdk1.8有了解过CompletableFuture吗(我没有了解过,流下来没技术的眼泪)
7、那你知道Future吗(好像是Callable的时候返回值会用到它,又流下了没技术的眼泪)
8、写一个算法题吧,牛客网的 密码合格校验,写了十多分钟,全是靠if else解决的
小姐姐也说,这个写的没问题,但是需要更多的考虑更好的办法,比如借助java自带的工具类等等。
9、说一些和技术无关的,你对你自己的技术发展有什么想法(我就说,平时会多看看技术公众号,看B站学习技术,会关注很多新技术然后跟着学习,想去更大的平台通过实际场景的应用丰富自己的阅历)
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、对美团打车有什么想了解的吗(问了下美团打车和滴滴高德打车的区别)
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。