社招-java-阿里-菜鸟国际-一面电面【硬闯阿里之路3】
- AOP动态代理的实现方式和区别
- jdk 和 cglib
- 动态代理的实现方式
- 没答出,查了jdk通过反射,cglib通过继承
- ArrayList和LinkedList的区别?增加元素的时间复杂度?
- ArrayList, add(): O(n), remove(): O(n), get(): O(1), set(): O(1)
- LinkedList, add(): O(1), remove(): O(1), get(): O(n), set(): O(1)
- HashMap的底层实现
- HashMap如何解决哈希冲突
- 什么时候重写hashcode()和equals()
- jdk1.8中HashMap有什么变化
- jvm垃圾回收算法
- CMS垃圾回收器回收过程: initial mark -> concurrent mark -> remark -> sweep
- 线程池的参数如何作用?比如核心线程数=5,最大线程数=15,阻塞队列=10,来了6个任务,会创建几个线程?
- 创建5个线程,第6个线程入阻塞队列。如果阻塞队列满了,再创建线程至最大线程数;如果达到最大线程数,阻塞队列也满了,则走拒绝策略
- Linux文本去重的命令
- linux下文本去重
- awk ' !x[$0]++' file_name
- sort -u file_name
- sort file_name | uniq
- mysql大数据量分页如何查
- 先查主键,再查记录
- 什么是分布式事务?分布式事务如何保证数据一致性?
- 1.补偿性事务 2.后置提交优化 3.两阶段提交
- redis的过期策略
- 定期删除:定期随机抽取20个key检查过期并删除
- 惰性删除:读取key时检查到过期则删除
- redis淘汰策略
- LRU
- kafka如何保证消息可靠性?
- 重复发送,数据落地,确认信号
- push和pull有什么区别? // TODO
- 反问