Java 基础篇

Java 语言的基础也是我们阅读源码和进行代码调优的基础。

Java 基础主要包含以下部分:
  1. 语言基础
  2. 多线程
  3. 并发包中常用的并发容器(J.U.C)
语言基础
  • Java 的面向对象
  • Java 语言的三大特征:封装、继承和多态
  • Java 语言数据类型:

内置数据类型(byte、short、int、float、double、boolean、char) 引用数据类型:在 Java 中,引用类型的变量非常类似于 C/C++ 的指针,引用类型指向一个对象,指向对象的变量是引用变量,比如对象、数组

  • Java 的自动类型转换,强制类型转换

  • String 的不可变性,虚拟机的常量池,String.intern() 的底层原理

  • Java 语言中的关键字:final、static、transient、instanceof、volatile、synchronized的底层原理

  • Java 中常用的集合类的实现原理: ArrayList/LinkedList/Vector、SynchronizedList/Vector、HashMap/HashTable/ConcurrentHashMap 互相的区别以及底层实现原理

  • 反射机制

  • 动态代理的实现方式

  • CAS、乐观锁与悲观锁、数据库相关锁机制、分布式锁、偏向锁、轻量级锁、重量级锁、monitor

  • 锁优化
    、锁消除、锁粗化、自旋锁
    、可重入锁、阻塞锁、死锁

  • 死锁的原因

  • 死锁的解决办法

  • CountDownLatch、CyclicBarrier 和 Semaphore 三个类的使用和原理

多线程
  • 并发和并行的区别

  • 线程与进程的区别

  • 线程的实现、线程的状态、优先级、线程调度、创建线程的多种方式、守护线程

  • 自己设计线程池、submit() 和 execute()
    、线程池原理

  • 为什么不允许使用 Executors 创建线程池

  • 死锁、死锁如何排查
    、线程安全和内存模型的关系

  • ThreadLocal 变量

  • Executor 创建线程池
    的几种方式:

    • new FixedThreadPool(int nThreads)
      new CachedThreadPool()
      new SingleThreadExecutor()
      new ScheduledThreadPool(int corePoolSize)
      new SingleThreadExecutor()
  • ThreadPoolExecutor 创建线程池、拒绝策略

  • 线程池关闭的方式

并发容器(J.U.C)

  • JUC 包中 List 接口的实现类:CopyOnWriteArrayList
  • JUC 包中 Set 接口的实现类:CopyOnWriteArraySet、ConcurrentSkipListSet
  • JUC 包中 Map 接口的实现类:ConcurrentHashMap、ConcurrentSkipListMap
  • JUC包中Queue接口的实现类:ConcurrentLinkedQueue、ConcurrentLinkedDeque、ArrayBlockingQueue、LinkedBlockingQueue、LinkedBlockingDeque

你可能感兴趣的:(Java 基础篇)