阿里,钉钉一面
视频面,1个多小时
- 自我介绍
- 面向对象特点,以及在平时开发中具体体现(答得很烂,说了个将重读代码封装为工具类),说一下接口和抽象类的区别(只答了单继承和多实现),实际开发中是如何选择是使用接口还是抽象类的(不知道咋答)
- 说一下hashmap以及应用场景,说一下concurrenthashmap以及应用场景(说了个spring的单例池就是用的这个)
- spring如何解决循环依赖(三级缓存)
- 有没有遇到过内存溢出,如何解决(确实没遇到过,就简单说了下堆栈溢出,也没说解决方案)
- 说一下java内存模型(八股),垃圾回收主要发生在哪些区域
- 说一下垃圾回收的机制(不是很明白要答什么,说了那三个清理算法),说一下CMS回收器的回收流程(背)
- 线程池相关问题(八股,创建参数,拒绝策略,任务提交的不同情况),核心线程怎么回收(这个真不知道)
- 线程安全问题(锁),说一下lock相较于synchronized的优缺点,以及何时使用(这个不太会,lock对象可以设置超时时间这个居然忘记了,寄)
- 说一下CAS机制(背),在数据库里有哪里体现了了CAS机制嘛(答了个MVCC机制),介绍一下MVCC(背)
- 除了mysql还用过哪些数据库(redis),应用场景(缓存),为什么选择redis而不是其它类似的技术(真不会,没想过),了解过redis相关底层原理吗(不太会,因为还没背过,都去背高可用相关应用去了)
- 设计模式了解吗,用到过哪些,体现了什么设计原则(答了个策略模式,开闭原则),还有哪些设计模式体现了开闭原则(装饰器,工厂,其它的想不到了,真没专门背过),说下为什么要遵循开闭原则(答的易于扩展,说的不是很清除)
- 用过哪些springcloud相关的中间件吗(答了个NACOS,但是说只是尝试使用过),说一下微服务架构需要注意哪些点(凭感觉说了些,模块间调用,以及模块出现异常的解决方案啥的)
- 笔试题 : 写一个生产者消费者模型,一个线程往集合插入1-100的数,一个线程从集合中取出数字相加并打印最终结果(其实不难,但是因为用的是在线编辑器,脱离了IDEA的提示就有点难受了,已经对IDEA有依赖了,最后交上去的代码逻辑上没问题,但是应该过不了编译)
总结一下,面试官迟到了半个小时,不过人还是很好的,全程微笑,不会的还会提示一下。但是其实自己是不抱希望的,因为之前的部门面试已经凉了,而且实际面的情况也不太行。估计会凉,就当积累经验了。
#阿里巴巴信息集散地##面试经过#