本人二本菜鸡,想要一个大厂offer,期间投了很多大厂,基本都是石沉大海,需要笔试的基本都没了,面试我的都是不需要笔试的。在4.15号投的爱奇艺,没想到4.16号面试官就来约面试,这里刚开始看见来电显示北京感觉就不简单,接到电话时感觉说话都在发抖,手也在发抖,把面试拖了一天,17号面试,在此期间就疯狂复习,感觉那天都快猝死了。
17号下午三点,提前五分钟进入腾讯会议,面试官很准时。此次面试经验如下:
1.自我介绍(balabala)
2.从简历技能点上第一点开始问,hashmap
叫我简单介绍一下hashmap,问面试官要听1.7还是1.8的,面试官要听1.8的那就开始说, 我直接从源码从上往下说,说到put流程后我说的比较深,面试官叫我说浅一点,这里把put流程说完,然后面试官说还熟悉哪些map?我自己把自己带进坑里,说什么sortmap,马上没两句就说不出来了,马上笑着和面试官说:其实我熟悉的是concurrenthashmap,马上改了,这里和他聊到了CAS。
3.然后又说看我简历上写了AQS
就开始聊这个,聊的比较深,中间说到了condition锁,也就是那个静态内部类,聊到这里估计花了25分钟。
4.聊到condition锁,然后问synchronize和lock的区别,
没说多少就让我继续说下面的,出了一个场景题,买不同的商品要加 synchronize还是reentrantlock,我直接选reentrantlock,说并发状态下reentrantlock性能更好,面试官说JDK8synchronize优化了的,性能不比reentrantlock差,这里说完给我细心讲解,还说叫我下来可以思考一下(没时间了)
5.看你简历上写了线程池,说一下各个参数,问了一个细节:
假设有2个线程正在工作,核心线程数为3,最大线程数5,活跃时间为60s,线程空闲了60s后消亡的是哪里的线程?
6.spring的核心:IOC AOP。
- 项目AOP用在哪里?
- 为什么要AOP?
- 静态代理和动态代理区别?
你有碰见过循环依赖吗,怎么解决?上来一套singletonfactories和其余两个缓存懒得敲了,三级缓存解决,这里他说我说的太深了,说浅一些,我说autowired,他要的就是实际使用层面的,说可以再浅一点,结果面试官说让每个实体类的属性尽量互不干涉就行了,在源头避免。我:???
- beanFactory和factorybean区别?
bean生命周期和创建流程。这里说到了@beanpostprocessor这个注解,我是背的八股文,这个具体干啥不是很清楚,他说是bean的前置处理器还有啥的,面试官对spring框架了解极深,我说什么他都非常清楚,而且教我怎么使用,怎么配aop。
7.springboot自动装配原理(balabala)
8.简历上写了MySQL,了解哪些?我说主要索引吧,问:你了解哪些索引?(balabala)
9.B树和B+树区别?
这里开始说关键数啥的非核心,看面试官好像不太想听,直接说核心,b+树非叶子节点不储存数据了,每个叶子节点有一个互相指向对方的引用,这里面试官立马就激动了起来,很明显他就想听这个。
10.hash索引和b+树索引区别?
这个我只说了无序啥的,他告诉我说b+树叶子节点因为有指向对方的指针块,范围查询更快。“要知其然,还要知其所以然” 我:微笑。
11.说一下mongodb和MySQL区别?
慌了,这个没用过,我紧张的连关系型数据库都忘了,卡住了,面试官居然看出来了,说你是不是要说关系型数据库,我:对对对!我都忘了究竟是hbase是文档型数据库还是mongodb才是,胡乱答mongodb是文档型数据库,结果面试官没往下问了,说:好,定位你说对了。我:窃喜
12.最后问JVM,
这里大概60分钟了,没啥时间了,我点了一下堆,虚拟机栈,程序计数器,方法区,本地方法栈这几个名词而已,就不问了。我:微笑。
13.jdk8新特性,lamda和流式api
我这里面的膨胀了,说这玩意儿,这东西啥的口水话,人彻底放松了。
14.说一下注册中心的地位
这里我的比喻不太合适,面试官说我说的是配置中心,我说我用的nacos把注册中心和配置中心整合在一起了,面试官一下就笑了,说很好,“说明你是真的用过nacos的”。
以上便是我这次爱奇艺一面的面经,在此之间,我也发现面试之前刷题是非常非常有必要的,而我就反复刷了这份最新的“Java互联网工程师1000题(附解析)”,其中超级多的题目正是面试官最喜欢问的,这也让我轻松的通过了接下来的二面+三面!
注:Java互联网工程师1000题(附解析),我这边自行整理成哦了如下的pdf如需刷题学习,可提供原件下载☛☛☛☛原件PDF
Java互联网工程师1000题(附解析)内容覆盖:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等技术栈
1.Redis 示例
2.并发编程
3.spring cloud 面试题
整理不易希望各位领取到这份PDF的朋友珍惜资源,后续还会分享更多Java面试