我相信各位小伙伴们或多或少都对 Java 的相关岗位的面试都有一定的了解,知道面试官一定会对某个知识点进行一系列的穷追猛打,直到你默默不语……
基础篇
--------Java工程师的进阶之路 基础篇(一)
- Java语言主要特点
- Java语言和C++语言的区别
- JDK、JRE、JVM之间的关系
- Java应用程序与小程序之间的区别
- Java面向对象编程三大特性: 封装 继承 多态
--------Java工程师的进阶之路 基础篇(二)
- 字符型常量和字符串常量的区别?
- Java中的String为什么不可变?
- String、StringBuffer、StringBuilder的区别是什么?
- Java的自动装箱与拆箱的实现原理?
- Java的重载和重写的区别是什么?
- Java的接口和抽象类的区别是什么?
- Java的对象实体与对象引用有何不同?
- Java的对象相等与引用相等有何不同?
- Java的成员变量与局部变量的区别有哪些?
- Java的静态方法和实例方法有何不同?
--------Java工程师的进阶之路 基础篇(三)
- Java中的构造方法的作用和特性
- Java中的 final 关键字
- Java中的 static 关键字
- Java中的 volatile 关键字
- Java中的 transient 关键字
- Java中的 synchronized 关键字
- Java中的异常处理和类层次结构
- Java中的hashcode()方法和equals()方法
- Java中IO流以及BIO,NIO,AIO的区别
- 线程和进程的基本概念以及之间的关系
容器篇
-------- Java工程师的进阶之路 容器篇(一)
- Java容器分类图
- Collection接口(ArrayList、LinkedList、Vector、Stack)
- Set接口(HashSet、TreeSet、LinkedHashSet、EnumSet)
- Map接口(HashMap、HashTable、TreeMap、WeakHashMap)
- Iterator接口
--------Java工程师的进阶之路 容器篇(二)
Java容器——List详解
- List 接口
- AbstractList(Iterator 实现、for-each 删除元素、subList 实现)
- ArrayList(MAX_ARRAY_SIZE、ArrayList 扩容、batchRemove)
- LinkedList(存储结构与迭代器)
- CopyOnWriteArrayList
--------Java工程师的进阶之路 容器篇(三)
Java容器——Map详解
- AbstractMap(EntrySet、键视图和值视图)
- HashMap(HashMap 实现原理、resize 实现、迭代器构建、Java 1.8 性能改进)
- treeMap(TreeMap 实现原理、红黑树)
- ConcurrentHashMap(实现原理)
并发篇
-------- Java工程师的进阶之路 并发篇(一)
Java并发-线程池
- 线程池的优势
- 线程池的主要参数
- 线程池的执行流程
- 线程池的阻塞队列
- 线程池的饱和策略
- 线程池的配置选择
- Java提供的线程池
- execute()和submit()方法
--------Java工程师的进阶之路 并发篇(二)
Java并发-Executor
- Executor框架的结构
- Executor类和接口示意图
- Executor框架的使用示意图
- ThreadPoolExecutor
- ScheduledThreadPoolExecutor
- Future接口
- Runnable接口和Callable接口
-------- Java工程师的进阶之路 并发篇(三)
Java并发-锁
- 乐观锁 VS 悲观锁(CAS自旋、AtomicInteger)
- 自旋锁 VS 适应性自旋锁
- 无锁 VS 偏向锁 VS 轻量级锁 VS 重量级锁(synchronized、无锁、偏向锁、轻量级锁、重量级锁)
- 公平锁 VS 非公平锁(公平锁、非公平锁、ReentrantLock)
- 可重入锁 VS 非可重入锁(可重入锁、非可重入锁、ReentrantLock和synchronized)
- 独享锁 VS 共享锁(ReentrantRea