「一入 Java 深似海 」系列课程 一到八期

「一入 Java 深似海 」系列课程 一到八期

34 讲

限时优惠:¥512.00 ¥1024.00 立省 512 元

课程简介

「一入 Java 深似海 」系列是小马哥 2019 年在 SegmentFault 平台发布的全新付费课程,内容围绕 Java 生态体系而展开,从编程语言编程模型代码设计框架实现以及架构实践等,致力于将个人经验悉数分享给诸位,无论您是刚入门学习的新人,还是从业数年的朋友希望能够从中得到一点启发。

个人简介

小马哥,Java 劝退师,Apache 和 Spring Cloud 等知名开源架构成员。

Github : https://github.com/mercyblitz

微信/微博:mercyblitz

授课方式

课程全程安排在线上完成,通过在线直播和课后录播两种方式(暂时无法提供文件)。

时间安排

课程将采用周期直播的方式,围绕单个主题深入讨论,具体时间和细节请参考【内容详情】。

优惠活动

早鸟用户

早鸟用户将享受推广期限时折扣,请及时关注当前页面的最新优惠活动,点击“这里”,了解最新优惠活动。

全日制在校大学生

  • 普通大学生:凭学生证,享受半价优惠
  • 品学兼优者:凭奖学金证书,领取“半价优惠”折上折

    • 甲等(一等):7折
    • 乙等(二等):8折
    • 丙等(三等):9折

特殊福利

  • 贫困/残疾/特殊:提供相关证明,申请免费资格

    命运或许对您不公平,然而努力就有希望~
  • 职业军人、退伍军人、预备役
  • 年满 60 周岁者

内容详情

提示:课程内容和时间可能根据实际情况作出调整,请及时关注最新的信息

第一期:Java 语言基础与代码设计

第一节:Java 语言基础

  • 主要内容

    • Java 面向过程编程:介绍 Java 中主要的数据结构、方法调用、执行流程
    • Java 面向对象基础:针对面向对象三大特性“封装性、派生性、多态性”作出具体化的说明
    • Java 函数式基础:针对 Java 8 Lambda 语法特性展开讨论,包括“函数式接口、默认方法、方法引用” 等方面,着重探讨函数式编程设计
    • Java 模块化基础:主要围绕 Java 动态代理,字节码提升
    • 课程总结

第二节:Java 面向对象设计(上)

  • 主要内容

    • 类/接口设计:介绍类、抽象类、接口命名、访问性设计以及“封装性、派生性、多态性”技巧
    • 枚举设计:理解枚举引入的意义以及变化,介绍 JDK 中常见枚举的设计
    • 课程总结

第三节:Java 面向对象设计(下)

  • 主要内容

    • 泛型设计:了解泛型使用场景以及限制,通过 JDK 以及开源项目领悟其中的设计模式
    • 方法设计:介绍方法命名、返回类型、参数类型、名称以及数量的设计模式
    • 课程总结

第四节:Java 函数式设计

  • 主要内容

    • 函数式设计:讨论函数式设计技巧,如 SupplierConsumer 以及 Function 在日常开发中的运用
    • Stream API:使用场景、常见操作以及注意事项
    • Stream API 设计:根据 Stream API 的特点,结合“SCFP”的特性从中设计相关的函数接口
    • 课程总结

第二期:Java 集合框架

第一节 Java 模块化设计

  • 主要内容

    • 模块化构建:Java、Maven、IDE 等构建方式
    • 模块化迁移:类库迁移、依赖管理分析、迁移案例等)
    • 模块化设计:模块解析、模块API 设计
    • 模块化反射:模块内省、模块运行时调整、模块注解
    • 课程总结

第二节 Java 集合(Collections)框架基础运用

  • 主要内容

    • 语义接口:包括 CollectionSetListQueueMap 等核心接口
    • 内建实现:讨论 JDK 中内建的集合接口实现,并且说明同类实现中的使用场景,如 VectorArrayList 以及 LinkedList 场景
    • 抽象实现:介绍 Java 集合框架的骨架实现,如 AbstractCollectionAbstractSet以及 AbstractList 等抽象类

第三节 Java 集合(Collections)框架高级运用

  • 主要内容

    • Wrapper 实现:unmodifiable、synchronized 集合接口的使用场景
    • 适配实现:讨论Set 转变为 Map,以及 Deque 实现 LIFO 的 Queue 实现
    • 特殊实现:如 WeakHashMapIdentityHashMap 等特殊实现的使用场景
    • 工厂方法:ListSet 以及 Map 的便利工厂方法运用,以及单体和副本的操作方法

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

  • 主要内容

    • 排序算法:主要讨论 JDK 中出现过的排序算法,如 Insertion Sort、Merge Sort 、以及 TimSort,包括基本思路、时间和空间复杂度
    • 搜索算法:讨论二进制搜索算法,如 Collections#binarySearch 方法

第三期:Java 并发基础

第一节:Java 线程与进程

  • 主要内容

    • Java 线程状态:理解 Java 线程状态(Thread.State)实际意义
    • Java 线程生命周期:介绍 java.lang.Thread API 启动、停止等生命周期方法,如:Thread.startThread.interruptThread.interrupted,并理解为什么弃用 Thread.stop, Thread.suspendThread.resume 方法
    • Java 线程通讯:实战 Java 线程之间通讯,以及父子线程中通讯的方式
    • Java 进程管理:介绍管理当前 JVM 进程、管理子进程以及 Java 9 API 在进程中的提升
    • 面试题解析:解析 Java 线程与进程相关的面试题

第二节:Java 并发编程基础

  • 主要内容

    • Java 并发理论基础:理解线程安全(Thread Safety)、阻塞同步( Blocking Synchronization)非阻塞同步(Non-Blocking Synchronization)、 临界区(Critical Section)、锁(Lock)、监视器(Monitor)以及重进入(Reentrant)等
    • Java 同步原语:从 JDK 级别到 JVM 级别,深度分析和理解 Java synchronizedvolatile 以及 CAS 操作等同步原语
    • Java 线程 Liveness:实战演示 Java 线程死锁(DeadLock)和饥饿(Starvation)
    • Java 并发经典模型:实战演示 Java 并发场景下的生产者和消费者模型
    • 面试题解析:解析 Java 并发基础面试题

第三节:Java 并发框架(J.U.C)基础运用

  • 主要内容

    • Java 并发锁:介绍包括重进入锁(ReentrantLock)、重进入读写锁(ReentrantReadWriteLock)、邮票锁(StampedLock)等运用
    • Java 原子操作:理解 Atomic* API 以及 *Adder API 使用场景
    • Java 并发限制:包括 CountDownLatchCyclicBarrier 以及 Semaphore
    • Java 线程池:掌握 ExecutorThreadPoolExecutorScheduledExecutorService 以及 CallableFuture API 正确使用
    • 面试题解析:解析 J.U.C 相关的面试题

第四节:Java 并发框架(J.U.C)高级运用

  • 主要内容

    • Java 并发集合框架:掌握 CopyOnWrite*ConcurrentSkipList*ConcurrentHashMap 以及 *BlockingDueue API 使用场景和实现差异
    • Java 7 Fork/Join 框架:掌握 Java 7 Fork/Join 框架的使用以及理解使用场景
    • Java 8 CompletableFuture 设计:分享 CompletableFuture 设计技巧
    • Java 9 Flow 框架:Flow API 理解 Reactive Streams 框架的实现原理,并且解读 JDK 9 内建实现在 Reactive Streams API,如 HttpClient 实现
    • 面试题解析:解析 Java 并发集合框架等相关的面试题

第四期:Java 并发原理

第一节:OS 并发原理

第二节:Java 内存模型(Java Memory Model)

第三节:Java 并发框架(J.U.C) AQS 原理

第四节:JVM 并发实现

第五期:Java 存储管理

第一节:Java 类的层次

第二节:Java 内存分配

第三节:Java 传统垃圾回收器

第四节:Java G1 垃圾回收器

第六期:Java 垃圾回收器调优

第一节:Java 传统垃圾回收调优

第二节:Java G1 垃圾回收器调优(上)

第三节:Java G1 垃圾回收器调优(下)

第四节:Java Shenandoah 垃圾回收器调优

第七期 Java 元编程

第一节 Java 反射

第二节 Java Beans

第三节 Java APT

第四节 Java 装配

第八期 Java I/O

第一节 Java I/O 流

第二节 Java 文件系统

第三节 Java NIO 2

第四节 Java NIO

社区交流

  • 小马哥 VIP 交流群:571055366

    VIP 交流群仅提供给报名的小伙伴,敬请谅解!

课程资源

相关课程

Java 微服务实战系列课堂

购买须知:
1、本课程为虚拟产品,一经购买,概不退款(讲师特别声明除外)
2、在使用过程中,遇到任何问题,请邮件联系:pr@sifou.com
3、划线价说明:商品展示的划横线价格为参考价,并非原价。该价格仅供您参考。

版权声明:讲者在本产品上发表的全部原创内容(包括但不限于文字、视频、图片等)著作权均归讲师本人所有。未经讲师授权许可,观众用户不得以任何载体或形式使用讲师的内容。

5.0 3条评价

李晓辉 · 2022-03-05

在第二期:第三节中:Java 集合框架高级运用中:
小马哥说一个问题没有想明白,RandomAccess 接口为什标记在ArrayList,而没有标记在List接口中?
我的理解:List 代表的是可重复的集合元素,RandomAccess 随机访问,可以通过get(int index) 数组的下标的位置进行随机访问。而List 的具体实现中LinkedList 是通过链表,可以随机访问链表头和尾,但没有办法随机访问链表中的元素,只能线性查找,所以我认为jdk 的接口设计的是合理的 

李超 · 2020-04-23

后期还会做类似的系列吗

mercyblitz · 2020-04-23

正在计划中...

darkforest · 2020-01-30

物有所值