1. Java语言
        1. 数据类型、关键字作用、包装类、字符串等
        2. 面向对象的特性:继承、封装、多态
        3. 集合框架:整体设计、源码设计、多线程问题
        4. Java8:Stream API(流水线机制)、lambda、函数式编程等
        5. 并发编程:synchronized 、 J.U.C 、原子类、CountDownLatch等
          1. synchronized: 作用、实现原理、锁升级、
          2. volatile: 内存语义、JMM等
          3. AQS内部源码实现、LockSupport、并发控制类中的Sync内部类实现
          4. J.U.C:AtomicX(CAS)、XXAdder、Lock(ReentrantLock、ReentrantReadWriteLock)、CyclicBarrier、CountDownLatch
          5. Java协程、Thread、线程状态、Callable、FutureTask、Runnable、Object中的线程相关方法
          6. 阻塞队列(DelayQueue、ArrayBlockingQueue、LinkedBlockingQueue)、实现一个阻塞队列的多种方法
          7. 线程池:使用、队列的选择、参数、状态流、怎么实现线程共享、Executors、ThreadPoolExecutor、Fork/Join线程池
          8. 并发容器:ConcurrentHashMap、CopyOnWriteArrayList、ConcurrentSkipListMap
          9. 生产者与消费者、多线程协作打印字符串、哲学家就餐问题等
        6. Java虚拟机:
          1. Java内存区域:堆、栈(虚拟机栈、本地方法栈)、程序计数器、元空间(方法区)
          2. 辣鸡回收算法、辣鸡收集器
          3. 类加载的周期、双亲委派机制、各个类加载器的作用
        7. Java代码规范