java中高级面试题

JVM

  1. JVM内存模型结构
  2. 方法区和直接内存什么时候会oom?
  3. JVM收集器G1的内存模型和CMS的内存模型有什么不同?
  4. jvm调优用过吗?
  5. 如何查看java内存使用情况(jconsole、命令jmap、jstack等等) 集合

Arraylist、linkedlist差异,应用场景;

  1. HashMap在JDK1.8有哪些改动?
  2. HashCurrentMap和HashMap的区别在哪里?
  3. Hashmap什么时候使用红黑树?

多线程

  1. 线程的几种状态,请画出具体的状态流转图?
  2. Java wait、sleep的区别?
  3. volatile如何实现指令重排序?
  4. 线程池中的阻塞队列如果满了怎么办(拒绝策略)?
  5. Synchronized和AQS异同,AQS公平非公平如何实现;
  6. 多线程里面对一个整型做加减为啥不能用volatile;
  7. voliatile和synchonized有什么区别?synchonized和jdk提供的Lock包又有什么区别?

算法

  1. 二叉树宽度遍历
  2. 红黑树
  3. 数据结构的话,链表,树,图的基本知识得懂
  4. 了解树的先序遍历,中序遍历,后序遍历。图的广度优先搜索算法,深度优先搜索算法。
  5. 动态规划、贪婪算法

你可能感兴趣的:(android,java,java,多线程,数据结构,链表,二叉树)