4006-998-758
3000+课程任你选择
Java 核心技术(基础)
研发学院 Java 语言设计、Java 集合框架、Java 并发原理 开课时间:2022-12-16
小马哥

曾获得 SUN Java(SCJP、SCWCD、SCBCD)以及 Oracle OCA 等的职业认证。作为 Apache Dubbo PMC 和 Spring Cloud Alibaba 架构师之一,主要负责中间件开源项目、微服务架构衍进,以及 Cloud Native 基础设施建设,所参与的项目现已运行在数以百万级的集群服务器上。

除了日常编码工作,小马哥还时常发表一些技术前瞻性文章,比如:
《2019 中国 Java 发展趋势报告》
《Reactive programming 一种技术 各自表述》
《Dubbo Cloud Native 实践与思考》

查看老师详情
课程内容

课程大纲


第一节 Java 语言设计(上)

  类/接口设计:介绍类、抽象类、接口命名、访问性设计以及“封装性、派生性、多态性”技巧

  枚举设计:理解枚举引入的意义以及变化,介绍 JDK 中常见枚举的设计

  泛型设计:了解泛型使用场景以及限制,通过 JDK 以及开源项目领悟其中的设计模式

  方法设计:介绍方法命名、返回类型、参数类型、名称以及数量的设计模式

第二节 Java 语言设计(下)

  函数式设计:讨论函数式设计技巧,如 Supplier、Consumer 以及 Function 在日常开发中的运用

  模块化设计:类库迁移、依赖管理分析、迁移案例等、模块解析、模块API 设计

第三节 Java 核心 API 总览

  Java 基础类库:Java 语言(Lang)、数学(Math)、集合(Collections)、并发(Concurrency)和反射(Relfection)等

  Java 其他类库:Java I/O、Java Beans、序列化(Serialization)、管理扩展(JMX)和网络(Networking)

第四节 Java 集合框架

  语义接口:包括 Collection、Set、List、Queue 、Map 等核心接口

 内建实现:讨论 JDK 中内建的集合接口实现,并且说明同类实现中的使用场景,如 Vector、ArrayList 以及 LinkedList 场景

  抽象实现:介绍 Java 集合框架的骨架实现,如 AbstractCollection、AbstractSet以及 AbstractList 等抽象类

  适配实现:讨论Set 转变为 Map,以及 Deque 实现 LIFO 的 Queue 实现

  特殊实现:如 WeakHashMap、IdentityHashMap 等特殊实现的使用场景

第五节 Java 集合(Collections)框架算法运用

  排序算法:主要讨论 JDK 中出现过的排序算法,如 Insertion Sort、Merge Sort 、以及 TimSort,包括基本思路、时间和空间复杂度

  搜索算法:讨论二进制搜索算法,如 Collections#binarySearch 方法

第六节 Java 并发框架运用

  Java 并发锁:介绍包括重进入锁(ReentrantLock)、重进入读写锁(ReentrantReadWriteLock)、邮票锁(StampedLock)等运用

  Java 原子操作:理解 Atomic* API 以及 *Adder API 使用场景

  Java 并发限制:包括 CountDownLatch、CyclicBarrier 以及 Semaphore

 Java 线程池:掌握 Executor、ThreadPoolExecutor 、ScheduledExecutorService 以及 Callable 和 Future API 正确使用

第七节 Java 并发原理(上)

  Java 线程生命周期:介绍 java.lang.Thread API 启动、停止等生命周期方法,如:Thread.start、Thread.interrupt和 Thread.interrupted,并理解为什么弃用 Thread.stop, Thread.suspend 和 Thread.resume 方法

  Java 同步原语:从 JDK 级别到 JVM 级别,深度分析和理解 Java synchronized 、volatile 以及 CAS 操作等同步原语

第八节 Java 并发原理(下)

  Java 内存模型

  Java 并发 AQS 原理

第九节 Java ClassLoading

  Java 类对象

  Class 与 ClassLoader 之间的关系

  ClassLoader 双亲委派

  Java 类存储

第十节 Java Trouble-Shooting

  OOM 错误案例:分析 Java 内存泄露的症状,以及快速定位泄露位置(堆、Perm 或 Metasapce)以及解决方案

  CPU 过高案例:介绍高消耗CPU代码的常用分析方法,逐一排查可能性

  GC 案例:介绍 Young GC 和 Full GC 的基本表象,以及如何在代码实现中尽可能地避免 Full GC


返回上一级