1. 每日一面
蚂蚁金服一面
- Java 容器有哪些,哪些是同步容器,哪些是并发容器
- ArrayList 和LinkedList 的插入和访问的时间复杂度
- java反射原理, 注解原理
- 新生代分为几个区?使用什么算法进行垃圾回收?为什么使用这个算法?
- HashMap在什么情况下回扩容,或者有哪些操作会导致扩容?
- HashMap put方法的执行过程
- HashMap检测到hash冲突后,将元素插入在链表的末尾还是开头?
- 1.8 还采用了红黑树,讲讲红黑树的特性,为什么人家一定要用红黑是而不是AVL,B树之类的;
- https 和http 的区别,有没有用过其他安全传输手段?
- 线程池的工作原理,几个重要参数,然后给了具体几个参数分析线程池会怎么做,最后问阻塞队列的作用是什么?
- Linux怎么查看系统负载情况?
- 请详细描述SpringMVN处理请求全流程
- Spring 一个Bean 的装配过程
- 讲一讲AutomicInteger 为什么要用CAS而不是synchronized?
线程会单独拷贝一份数据到自己的工作空间,只有sync代码块被执行完才会将数据从工作内存刷到主内存,所以,指令重排为什么会导致多线程数据不一致的问题,应该是volatile的内存可见性是解决数据不一致问题的原因