美文网首页
阿里CBU面试

阿里CBU面试

作者: 漆黑的莫 | 来源:发表于2020-03-03 08:47 被阅读0次

一面-43min(一个小姐姐,特温柔)

1. 自我介绍

2. 介绍一下你最深刻的项目,项目架构是什么?(后面围绕项目展开提问)

说了深辅那个,这里讲了防止重复提交,组团购买的过期怎么实现,redis的缓存穿透问题

3. 课程购买时防止重复下单怎么实现的?

redis实现

4. 那为什么redis过期时间要设置成3秒?

我有点懵逼,吹过去了

缓存穿透你是怎么解决的?

参数校验+redsi缓存无效key一段时间

5. 缓存穿透你设置redis的过期时间是多少?为什么?

也懵逼

6. 拼团过期你是怎么删除的?怎么实现实时的过期?

定期删除+惰性删除

7. 拼团的惰性删除时,用户退款是进行的同步还是异步?异步的话是怎么实现的?

异步,先改数据库状态,再异步退款

8. String不可变的原理是什么?为什么要设计成不可变的?

char数组用final修饰的;
如果可变,字符串常量池引用会混乱;String缓存了自己的hash,如果可变,但是hash不会变,在HashMap、HashSet中会出现问题;String经常用作参数,如果可变则不安全。

9. StringBuilder和StringBuffer的区别?看过它们的源码吗?他们谁的性能高?

线程安全问题,StringBuffer使用了synchronized,StringBuilder性能较高

10. String str1 = "abc" 创建了几个对象?String str2 = "ab"+"c"创建了几个对象?

考察字符串常量池

11. ArrayList和LinkedList插入一条数据时谁的效率高?插入上万条数据时谁的效率高?

插一条数据分在什么位置插,如果末尾则差不多,如果中间则LinkedList;插入很多条的话考虑到ArrayList会扩容,LinkedList高

12. 实现线程池为什么不用Executors的静态方法生成固定的那几个?

FixedThreadPool和SingleThreadPool使用了无界队列,会出现OOM,CachedThreadPool和ScheduledThreadPool的最大线程池数设置为Integer.MAX_VALUE,也会出现OOM

13. 如果自己创建一个ThreadPoolExecutor,怎么设置核心线程池数和最大线程池数?

说一下几个参数的原理,但是在什么情况怎么设置我真的有点懵逼,和上面的redis为什么要设置那么长的过期一样。

14. 说一个你熟悉的排序算法,怎么实现的?

我说的冒泡

15. 说一个你熟悉的数据结构,你可以怎么实现?

我说的栈,分数组和链表实现,链表用头插法

16. 项目中用到的设计模式

代理模式

17. 你有什么要问的吗?(回答超详细)

我问:
1. CBU是一个什么部门?业务情况怎么样?
2. 这次提前批对后面的正式春招有影响吗?

相关文章

网友评论

      本文标题:阿里CBU面试

      本文链接:https://www.haomeiwen.com/subject/epmflhtx.html