【面经】5月10日 阿里大文娱优酷/一面/1h
自我介绍
项目介绍(背景、用户群体、用户量、难点)
Java:
面向对象的理解(封装、继承、多态)
创建对象的方式,说三种(只说了个new,面试官说还有反射,其他的可以下去了解一下)
集合说一下
ArrayList和LinkedList区别?使用的注意事项?(数组和链表的区别。注意事项说了不要让ArrayList频繁扩容)
如果ArrayList初始化容量为100,而我添加了101个元素,会报错吗?(不会,会扩容)
HashMap的put的过程(计算桶索引、插入节点、扩容)
你说的是jdk 1.8之后的put过程,1.8之前的put过程了解过吗?(1.8之前没有红黑树,在插入的时候只会按照链表的逻辑插入)
线程池的核心参数?(顺着执行流程把所有的参数说了一遍)
JVM常见的GC算法?(标记-清除、复制、标记-整理)
哪种GC算法是最快的?(复制,因为它在回收垃圾的时候是直接把整个区域清除掉,而不需要像标记-整理一样又扫描一遍)
Spring:
常见注解(bean相关的,autowired/resource/mapper/service/controller;AOP相关的,advice/before/after)
AOP底层原理?(动态代理,JDK动态代理/cglib动态代理)
AOP使用场景?(业务场景里有一些代码复用的逻辑,比如统计接口执行时间、日志记录)
关于事务的注解是什么?(transactional,然后说了一下传播机制参数propagation的required/nested)
分布式事务了解过吗?平常用到过没?(没有)
MySQL:
常见的数据引擎,以及他们索引的区别?(innodb、myisam)
innodb索引底层原理?(B+树、回表查询)
什么样的数据适合做索引?(区分度高、数据类型占用空间比较大、不经常用)
给你一个场景,一个用户表,数据量kw级别。里面有一个身份证号码,适不适合建立索引?如果是另外一个字段状态,这个字段只会有10种取值,适不适合建索引?
数据结构:
排序算法挑一个你熟的,说一下平均/最快/最慢的时间复杂度和对应的场景(快排)
设计模式:
了解过的设计模式?(单例、责任链、Reactor)
设计题:
高并发系统要考虑的点?(经典八股)
其他:
你没有上过班吧?看你有一些项目经验。
你会更偏向于算法、工程、业务哪一个?
反问:
部门做什么?(点播、直播)
在哪?(北京、杭州、上海都有,上海偏算法、北京偏业务和工程,杭州偏算法)
实习生进去做什么?会有培训吧?
总结:问的都蛮基础的,不是很深,但是广度算是我面的最广的一个了,基本上什么都问了,从语言、框架、计算机基础,到系统设计。面试官人也挺好的,体验极佳。