【面试题】
  1. hashCode()和equals()的区别
  2. LinkedHashMap 的实现原理?
  3. String、StringBuilder、StringBuffer 的区别
  4. 谈⼀下你对 volatile 关键字的理解
  5. 在 Java 程序中怎么保证多线程的运⾏安全?
【剑指offer】
  1. 按之字形顺序打印二叉树
思路:
  1. 看到这种有关顺序的,第一个就要想到用栈或队列实现。使用两个栈,一个存放奇数层,一个存放偶数层。
  2. 整形变量level表示层数,奇数层顺序打印,偶数层逆序打印。
  3. 处理奇数层时,stack2保存下一层的偶数层节点,先存左结点,再存右节点,这样等下次pop时就是右节点先打印;处理偶数层时,stack1保存下一层的奇数层节点,先存右结点,再存左节点,这样等下次pop时就是左节点先打印;