头条 java 面试题之 - 头条三面

一面

  • 1、concurrent包下面用过哪些?
  • 2、countdownlatch功能实现
  • 3、synchronized和lock区别,重入锁
  • 4、thread和runnable的区别
  • 5、AtomicInteger实现原理(CAS自旋)
  • 6、java并发sleep与wait、notify与notifyAll的区别
  • 7、如何实现高效的同步链表
  • 8、java都有哪些加锁方式(synchronized、ReentrantLock、共享锁、读写锁等)
  • 9、设计模式(工厂模式、单例模式(几种情况)、适配器模式、装饰者模式)
  • 10、maven依赖树,maven的依赖传递,循环依赖

二面

  • 1、synchronized和reentrantLock的区别,synchronized用在代码快、方法、静态方法时锁的都是什么?
  • 2、介绍spring的IOC和AOP,分别如何实现(classloader、动态代理)
  • 3、JVM的内存布局以及垃圾回收原理及过程讲一下,讲一下CMS垃圾收集器垃圾回收的流程,以及CMS的缺点
  • 4、redis如何处理分布式服务器并发造成的不一致
  • 5、OSGi的机制
  • 6、spring中bean加载机制,bean生成的具体步骤,ioc注入的方式
  • 7、spring何时创建applicationContext
  • 8、listener是监听哪个事件?
  • 9、介绍ConcurrentHashMap原理,用的是哪种锁,segment有没可能增大?
  • 10、解释mysql索引、b树,为啥不用平衡二叉树、红黑树
  • 11、Zookeeper如何同步配置

三面

  • 1、Java线程池ThreadPoolEcecutor参数,基本参数,使用场景
  • 2、MySQL的ACID讲一下,延伸到隔离级别
  • 3、dubbo的实现原理,说说RPC的要点
  • 4、GC停顿原因,如何降低停顿?
  • 5、JVM如何调优、参数怎么调?
  • 6、如何用工具分析jvm状态(visualVM看堆中对象的分配,对象间的引用、是否有内存泄漏,jstack看线程状态、是否死锁等等)
  • 7、描述一致性hash算法(Redis)
  • 8、再谈谈消息队列