1. 每日一面

蚂蚁金服一面

  1. Java 容器有哪些,哪些是同步容器,哪些是并发容器
  2. ArrayList 和LinkedList 的插入和访问的时间复杂度
  3. java反射原理, 注解原理
  4. 新生代分为几个区?使用什么算法进行垃圾回收?为什么使用这个算法?
  5. HashMap在什么情况下回扩容,或者有哪些操作会导致扩容?
  6. HashMap put方法的执行过程
  7. HashMap检测到hash冲突后,将元素插入在链表的末尾还是开头?
  8. 1.8 还采用了红黑树,讲讲红黑树的特性,为什么人家一定要用红黑是而不是AVL,B树之类的;
  9. https 和http 的区别,有没有用过其他安全传输手段?
  10. 线程池的工作原理,几个重要参数,然后给了具体几个参数分析线程池会怎么做,最后问阻塞队列的作用是什么?
  11. Linux怎么查看系统负载情况?
  12. 请详细描述SpringMVN处理请求全流程
  13. Spring 一个Bean 的装配过程
  14. 讲一讲AutomicInteger 为什么要用CAS而不是synchronized?

线程会单独拷贝一份数据到自己的工作空间,只有sync代码块被执行完才会将数据从工作内存刷到主内存,所以,指令重排为什么会导致多线程数据不一致的问题,应该是volatile的内存可见性是解决数据不一致问题的原因