阿里云Java开发暑期实习一面面经
2022.3.28
1、自我介绍,平时怎么学知识(博客,看书),有无和别人交流(无)
2、volatile(可见性,读写屏障)
3、ConcurrentHashMap结构(数组+链表/红黑树),有没有线程安全问题(可能有,比如putAll)
4、put方法(找索引,CAS,遍历,加锁插入)
5、get方法(想不起来了)
6、size方法(baseCount+CountCells),需要加锁吗(1.8前算两次,不一样加锁再算,1.8后不需要)
7、ConcurrentHashMap的分段体现在哪里(只对修改的节点加锁)
8、还知道什么并发集合,除了ConcurrentHashMap和HashTable(不知道了)
9、MySQL底层(用B+树作索引)
10、什么是B+树,和B树有什么区别(叶子节点,链表)
11、MySQL有哪些索引的分类(聚集,非聚集,联合)
12、联合索引(用abc举例),给定一个abc索引,查a=xx,c=xx,b=xx怎么走(最左匹配,a后面的不走索引)
13、Spring的AOP原理(动态代理)
14、AOP使用的具体例子(不知道)
15、Netty如何解决粘包拆包问题(定长,换行,自定义分隔符)
16、为什么要序列化(为了传输对象)
17、做项目时难点在于哪里(前期设计),如何多考虑出现的问题(联想,头脑风暴),如果无法完全考虑到怎么办(尽力,在所难免,只能修改)
18、git常用命令(提交一条龙),多人修改一个分支出现问题怎么办(不会)
总结
面试体验挺好,但有些我确实不会,很尴尬。。。
面经刚写好,官网一查已经挂了。。。