9.5 阿里一面
共65min,问题45min+做题20min
1. zookeep的实现原理是什么?znode如何实现更新(不道啊)?zookeeper怎么实现的高可用?
2. rpc框架除了dubbo还用过啥?dubbo和hessian什么区别?
3. 类加载器有哪些?类加载的过程是什么?(阿巴阿巴)
4. mysql的底层怎么实现的?mysql的各种隔离级别如何实现的?(不是问类型和内容,是如何..)
5. 聊聊垃圾回收原理?cms和g1什么区别?
6. 如果有一个很大很大的对象,应该放在新生代还是老年代?为什么?
7. 进程&线程&协程的区别?(重点聊协程)
8. 聊聊虚存?原理是什么?如何实现换页?多进程情况下如果内存压力没这么大了,对于还在运行的进程的分页情况会变化吗?
9. 线程池的几种实现方式?
10. 一个场景:有20个线程,分成5组,每组4个线程,内部要并发,组与组之间要顺序执行,如何实现?(采用队列+线程池的办法)
11. 一个场景:秒杀,如何设计一个redis+mysql的结构,让其能承载很高的qps而不被打挂?
(1)设计本地缓存+redis缓存的多级缓存(提示了一下)
(2)如何保证redis和mysql的一致性?
(3)这个过程中,如果redis挂了咋办?如果mysql挂了咋办?(没答上来,提示了一个一致性检查的机制,后面学习一下)
手撕:在访问日志中,查找访问次数最多的ip,同时构建一个查询系统,根据输入的start_time end_time, 查询符合条件的ip
(写了结构体,用堆排序,但是忘记考虑时间因素)
#阿里面试##秋招#