阿里面试三面止步

面的是阿里CBU部门

3.15 CBU一面(将近80分钟)

  • 项目方面
    问了项目相关的,如何定义接口规范啊,如何做项目架构实现(SpringIOC,SpringMVC的自实现),业务(也就是CRUD,没啥难度),讲了LRU缓存的实现。项目大概15分钟左右。
  • 基础方面
    1. JVM内存模型(运行数据区的各种区域,以及功能(栈帧里面的那些也讲了)),然后讲到GC,GC算法,堆的分布(老年代,新生代,以及它们的分配,垃圾回收算法的选择)
      补充问到:当eden区不断增大的情况下,survivor区不断减小会导致什么情况?
    2. InnoDB存储引擎(从InnoDB的特性出发,行锁,全文索引,聚蔟索引,必须含有主键(没有主键怎么办,如何选择),为什么是B+树,而不是B树,而不是红黑树,磁盘IO,以及B+树和B树的区别),然后就是InnoDB的MVVC实现(版本号如何进行各种数据库操作)。
    3. 类加载机制(从类加载,验证,准备,解析,初始化,使用,卸载角度讲述,类加载讲类加载器(三种,如何定义用户加载器),然后就是各个阶段做了什么)
    4. 线程池,刚开始没听清楚,以为是原生实现线程池,后面才知道讲的是TheadPoolExecutor,然后就是讲参数,讲流程,讲拒绝策略。
    5. ThreadLocal,讲了底层实现,讲了ThreadLocal的目的,解决了什么问题。后面的ThreadLocal的key是弱引用(没答出来,确实没注意),然后就是ThreadLocal在线程池里面使用会怎么样。
    6. 冒泡算法
    7. TCP 为什么三次连接,TCP拥塞控制(慢开始,拥塞避免,快重传,快恢复,里面的窗口变量)和流程控制
    8. 就是各种奖项的问,做了什么。
    9. 补充下,还问了一些JUC的一些东西,CountDownLatch,Semaphore,CyclicBarrier

3.19 CBU二面(40分钟左右)

  • 项目方面
    就是问了下项目的实现,就不多说了
  • 基础方面
    1. Redis和Memcached的区别,我问面试官需不需要讲一下其他的东西(比如RDB,AOF的实现),他说不用,直接讲区别。我还想多说点拖点时间呢
    2. 类加载的双亲委派原则,解释就行,不用讲其他的
    3. 设计模式(单例模式,工厂模式,使用场景,单例模式的实现(4种))
    4. 设计原则(说了5大设计原则,忘了接口隔离原则),问了依赖倒置原则,里氏替换原则,合成复用原则,讲了下继承带来的问题,合成复用原则的使用场景。
    5. LRU缓存的设计,为什么采用数据存放点,为什么不使用Redis
    6. Redis的淘汰机制,为什么淘汰
    7. Redis的惰性删除,删除策略,为什么要用这个策略。
    8. Redis的分布式锁的实现,从mysql的唯一索引,到setnx,到expire到set指令原子性到redlock等。讲了Redis分布式锁可能解决不了的问题。
    9. 秒杀场景的设计(高并发问题,超卖问题,如何解决,缓存击穿如何解决,BloomFilter,BloomFilter的底层实现,容量和容错率。如何说了下前端方面怎么做。)
    10. 就是问了下最近面了几个部门,我说还有一个,然后就给过了。

3.30 CBU三面 (51分钟)

  • 项目方面
    问了自己实现的SpringIOC的整个流程,直接细节到了代码,说了一遍没听清楚,然后又说了一遍。问了LRU缓存的设计,后面就是直接口述LRU缓存的实现(代码)。问了注解用代码是如何写的(我这记不清楚啊),然后就是问注解是如何自己解析的,我说可以通过Class对象,获取到注解信息,从而判断。
  • 基础方面
    1. 问了Redis的线程模型,单线程模式,怎么实现的,说了IO多路复用,然后就是epoll,然后介绍了IO多路复用模型的其他实现,对比,然后就是问我Redis的epoll实现,我这个好像有点懵。
    2. 线程的状态(NEW,RUNNABLE,BLOCKED,TIME_WAITING,WAITING)少了一种,然后就是BLOCKED 和 WAIT的区别
    3. 锁,我讲了synchronize,reentrantlock和锁升级的过程,从无锁状态到偏向锁到轻量级锁到重量级锁(markword,和cas操作替换线程id,然后问我cas是什么,我说比较和替换,Compare and swap,然后我说底层是通过硬件的cmpxchg命令保证的)。然后就是我们的ReentrantLock,将了AQS的底层(双向链表,Node节点(Share,Exclusive,waitStatus),state变量(对不同的实现,所代表的含义不同),然后就是acquire方法和release方法的流程。reentrantlock的公平和非公平(没说),好像是被打断了)
    4. 口述LRU算法的实现
    5. 类加载,class.forname 和 classloader的区别,双亲委派原则。被问到不使用双亲委派原则,如何自定义java.lang.Integer会怎么样(我自定义过 java.lang.Integer,使用直接抛出异常,说包违法)。可能还是不够深入。
    6. 就是问了自己的缺点和优点,和奖项的项目和做了什么
    7. 没有给反问的机会。

顺带说下笔试的情况

3.25笔试的,第一题采用回溯法,AC10%,第二题没看。

最后我感觉三面确实状态不太好,有些紧张,回答的不是很好,感觉要挂,然后问了我那可爱的内推人,内推人说:简历放备选池了,我说不过的是因为基础不行吗,好像沟通不够顺畅。就这样阿里三面结束了。希望淘系用户增长可以捞我(一面过了)。在此攒攒rp,希望春招顺利鸭。

#阿里巴巴##Java工程师##实习##面经#
全部评论
太难了。。
2 回复
分享
发布于 2020-03-31 11:07
大佬加油
1 回复
分享
发布于 2020-03-31 11:15
联想
校招火热招聘中
官网直投
老哥的项目是自己实现了spring框架嘛?实现到了什么程度呢?
1 回复
分享
发布于 2020-03-31 13:00
龟龟,这么强都不行
1 回复
分享
发布于 2020-04-04 10:48
这都不过的话还有谁能过呢。。
1 回复
分享
发布于 2020-04-05 10:28
请问楼主,面试的问题要回答上90%以上才有可能过吗
1 回复
分享
发布于 2020-03-31 11:08
三面面试官职级是p9吗?
点赞 回复
分享
发布于 2020-03-31 11:20
请问楼主面试的是CBU测试开发实习生岗位吗?
点赞 回复
分享
发布于 2020-03-31 11:36
大佬加油(ง •̀_•́)ง
点赞 回复
分享
发布于 2020-03-31 12:58
加油💪,等结果的时候建议投一下招行信用卡中心,门槛较低,福利待遇还阔以,点击链接内推免简历筛选! https://cmbjob.ccc.cmbchina.com/WeChatRecruit/positionlist.html?refereeId=96cc1571-139c-4ee7-900e-c65c4811529f&refereeCode=27bce894-42ea-47f3-bc01-8747f06d1da7&deptId=003&recruitType=2&positionClass=
点赞 回复
分享
发布于 2020-03-31 15:46
P9难顶啊 我今晚也是三面 很慌
点赞 回复
分享
发布于 2020-03-31 16:16
这么强还没过吗
点赞 回复
分享
发布于 2020-03-31 16:37
三面挂了还能被其它部门捞起来吗?
点赞 回复
分享
发布于 2020-03-31 16:45
简历给个?现在释放后还不能被其他人捞起,只能拿到简历主动导入
点赞 回复
分享
发布于 2020-03-31 17:22
是春招的实习还是大三暑期实习呀
点赞 回复
分享
发布于 2020-03-31 18:13
请问二面的LRU那个问题是怎么答的呢
点赞 回复
分享
发布于 2020-03-31 20:20
可以考虑下钉钉哦~我们团队海量 hc!jingtian.yjt艾特alibaba-inc.com
点赞 回复
分享
发布于 2020-03-31 20:31
考虑 bilibili吗
点赞 回复
分享
发布于 2020-03-31 20:41
楼主厉害,我下一面也要到p9了😂
点赞 回复
分享
发布于 2020-03-31 21:05
想问下楼主LRU的缓存怎么实现是怎么回答的,发现阿里好喜欢问这个
点赞 回复
分享
发布于 2020-03-31 21:15

相关推荐

25 212 评论
分享
牛客网
牛客企业服务