序号 年份 标题 讲师 集数 时长 来源 完结
1 2021 JavaSE入门教程(上) IT楠老师 189 33h B站
- [x]

| | 2 | 2021 | JavaSE进阶教程(下) | IT楠老师 | 180 | 33h | B站 |
- [x]

| | 3 | | ON JAVA | | | | | | | 4 | | Java面试神技 | | | 21h | B站 |
- [x]

| | 5 | | JVM面试天花板 | | | 2h | | | | 6 | | 手写JVM框架 | | | 6h | | | | 7 | | 如何进行 JVM 调优 | | | 1h | | | | 8 | | Java面试60问 | | | | | | | 9 | | IntelliJ IDEA 视频教程全集 | | | 3h | | | | 10 | 2020 | Java开发工程师必磕知识点 | |
| 26h | | | | | | Java 模式设计 | | | 4h | | | | | | Java阿里京东美团面试题及答案 | | | 33h43m | | | | | | Java11 新特性 | | | 4h | | | | | | 95%面试逼问的 Java 性能调优知识点 | | | 6h | | | | | 2019 | Java 架构师培训 | | | 31h10m | | | | | | Java 高级架构师 | |
| 24h46m | | | | | | Java 大数据集合 | | | 3h35m | | | | | | | | | | | | | | | | | | | | |

1. JavaSE入门与进阶

课程目录:JavaSE入门教程(M1-M17)

2.1 计算机的组成 3.1 基础数据类型:整型 4.1 流程控制语句:顺序控制 5.1 IDEA的安装和设置 6.1 算法简介 7.1 面向对象开篇 8.1 包的概念和命名规则 9.1 超级数组1 10.1 继承概述 11.1 多态概述 12.1 抽象类概述 13.1 静态代码块和实例代码块 14.1 编译还是解释 15.1 API概述 16.1 Math类的常用方法 17.1 异常概述
2.2 命令提示符和基本设置 3.2 基础数据类型:浮点型 4.2 条件控制语句 5.2 注释 6.2 冒泡排序 7.2 100 个汽车怎么表示 8.2 引入其他包的类 9.2 超级数组2 10.2 继承代码实现 11.2 多态代码示例 12.2 接口概述 13.2 字节码分析代码块 14.2 计算一个对象在内存的大小 15.2 IDEA生成API文档 16.2 BigDecimal深入讲解 17.2 常见Error演示
2.3 二进制存储 3.3 浮点型的取值范围 4.3 流程控制语句:if条件的注意点 5.3 数组的定义和内存 6.3 二分查找法 7.3 汽车的封装和内存布局 8.3 权限修饰符 9.3 超级数组3 10.3 子类和父类的构造顺序 11.3 动态、静态、解析、加载 12.3 再聊抽象和接口 13.3 各种代码块的执行顺序 14.3 类加载流程 15.3 日期常识 16.3 Random类详解 17.3 深入理解异常
2.4 二进制加法 3.4 基础数据类型:char和字符集 4.4 嵌套分支 5.4 数据结构简述 6.4 时间复杂度和空间复杂度 7.4 成员变量 8.4 new对象做了什么 9.4 超级链表1 10.4 super关键字 11.4 字节码解析 12.4 软件设计原则1 13.4 静态变量和成员变量的赋值 14.4 类加载器源码阅读 15.4 date类详解 16.4 Arrays工具类的使用 17.4 常见的检查性异常
2.5 原码、反码、补码 3.5 定义变量(标识符) 4.5 switch分支 5.5 数组的遍历 6.5 归并的思路 7.5 成员方法 8.5 构造器深入理解 9.5 超级链表2 10.5 super和this对比 11.5 方法在栈内的调用 12.5 软件设计原则2 13.5 静态方法和成员方法 14.5 双亲委派机制 15.5 Calendar详解 16.5 数组拷贝 17.5 常见的Runtime异常
2.6 进制转化 3.6 变量命名规范 4.6 for循环 5.6 数组中查找元素 6.6 二维数组的深度理解 7.6 参数和返回值 8.6 this关键字 9.6 超级链表3 10.6 重写 11.6 阅读字节码了解分派过程 12.6 模板方法设计模式 13.6 静态方法和静态常量的使用场景 14.6 运行时数据区 15.6 日期格式化和工具类封装 16.6 System获取系统属性 17.6 理解异常抛出
2.7 二进制的逻辑运算 3.7 标识符 4.7 break和continue 5.7 数组中查找最大值 6.7 杨辉三角的实现 7.7 return关键字 8.7 getter和setter 9.7 超级链表代码优化 10.7 final关键字 11.7 重载方法的静态分派过程 12.7 策略设计模式1 13.7 内部类 14.7 引用计数和根可达算法 15.7 Instant详解1 16.7 Stringbuilder和StringBuffer性能对比 17.7 自定义异常实战
2.8 网络 3.8 算术运算符 4.8 作业:水仙花数 5.8 数组中的元素交换 6.8 数组结语 7.8 递归调用导致内存溢出 8.8 String构造器 9.8 拆机链表排序性能比较 10.8 Object类详解 11.8 重载和重写的综合案例 12.8 策略设计模式2 13.8 单例设计模式:懒汉和饿汉 14.8 垃圾回收算法 15.8 Instant详解2
17.8 异常链
2.9 初识Java 3.9 i++和++i 4.9 嵌套for循环 5.9 数组的扩容 7.9 斐波那契数列和阶乘 8.9 String内存分析和笔试题 9.9 超级数组修改 10.9 Hash算法简介 11.9 属性没有多态性
13.9 静态内部类实现单例 14.9 垃圾回收器简介 15.9 LocalDate详解 17.9 throw、throws、finally
2.10 安装Java 3.10赋值运算符 4.10 给for循环打标签 5.10 数组反转 7.10 方法的重载 8.10 String常用方法 9.10 BUG调试 10.10 常见Hash算法和String的 hash 11.10 对象转型 13.10 匿名内部类 14.10 JVM指令和GC日志 15.10 DateTimeFormatter详解 17.10 笔试题与总结
2.11 HelloWorld程序 3.11 逻辑运算符的进阶 4.11 while循环深入 5.11 作业 7.11 可变参数 8.11 转义符 9.11 基于超级数组实现队列和栈 10.11 toString方法
13.11 箭头函数和函数式接口 15.11 各种时间类的转化和总结
2.12 安装目录 3.12 赋值、三元、位移运算符 4.12 do-while语句 5.12 Debug解决问题 7.12 作用域 8.12 统计单词出现的次数 9.12 基于队列的银行取票机系统 10.12 equals方法 13.12 箭头函数改造策略模式
2.13 环境变量配置 3.13 基础数据类型的转型 4.13 作业:猜数字小游戏 7.13 总结 8.13 包装类和自动拆装箱 10.13 finalize和clone方法 13.13 值传递和引用窜地
2.14 切换java 11 3.14 字符型的运算 4.14 简单总结 8.14 Integer笔试题
13.14 值传递深入案例

3.15 浮点数的精度丢失
13.15 main方法深入

2. JavaSE进阶

课程目录:JavaSE进阶教程(M1-M17)

18.1 superArray改成能存储所有对象 19.1 进程、线程、上下文切换 20.1 syncronized的使用 21.1 并发编程的三大特性 22.1 树的概念 23.1 集合概述 24.1 迭代器的使用:集合的遍历 25.1 JUnit单元测试简介 26.1 IO流概述 27.1 注解的概念 28.1 网络入门、MAC、IP 29.1 动力Chat:搭建 30.1 NIO介绍
18.2 泛型类 19.2 创建无返回值的线程 20.2 锁升级过程和原理 21.2 证明volatile不具备原子性 22.2 二叉树的概念 23.2 接口简介 24.2 迭代器的原理 25.2 JUnit断言和注解 26.2 转义字符 27.2 元注解和注解的本质 28.2 交换机 29.2 动力Chat:工具类 30.2 用户态、内核态、系统调用
18.3 泛型方法 19.3 创建含有返回值的线程 20.3 死锁 21.3 cas深入理解 22.3 二叉树的存储方式 23.3 list的使用方式 24.3 增强for循环 25.3 性能对比:HashTable和concurrentHashMap 26.3 文件类详解 27.3 常见的注解 28.3 路由器 29.3 动力Chat:登录伪代码实现 30.3 系统终端、DMA、位图
18.4 泛型的继承 19.4 创建线程的好处、效率和异步 20.4 锁重入 21.4 aqs知识铺垫 22.4 二叉树的遍历 23.4 set的使用 24.4 迭代中删除元素 25.4 性能对比:ArrayList和LinkedList 26.4 找到文件夹中所有的图片 27.4 反射到底是什么 28.4 IP地址的分类 29.4 动力Chat:方法抽取和常量类 30.4 select模型
18.5 泛型通配符 19.5 守护线程 20.5 wait和notify 21.5 aqs源码解决:上锁 22.5 二叉树的遍历代码实现 23.5 map的使用 24.5 LinkedHashMap初探 25.5 JDK1.8:接口的静态属性和默认方法 26.5 深入了解流和流的分类 27.5 Class对象的获取方式 28.5 域名详解 29.5 动力Chat:给服务器发送消息 30.5 poll和epoll
18.6 泛型擦除 19.6 线程的生命周期 20.6 线程相关方法总结 21.6 aqs源码阅读:释放锁 22.6 先序遍历使用栈实现 23.6 ArrayList源码:构造 24.6 LRU算法的缓存 25.6 JDK1.8:函数式接口 26.6 输入流详解 27.6 反射类的基本使用 28.6 网络七层模型和 TCP/IP协议栈 29.6 动力Chat:修复bug 30.6 nio中的buffer和channel
18.7 泛型擦除和多态的冲突 19.7 CPU多缓存架构 20.7 interrupt方法 21.7 公平锁和非公平锁的区别 22.7 使用队列完成层次遍历 23.7 ArrayList的扩容 24.7 TreeMap详解 25.7 JDK1.8:Optional详解 26.7 输出流详解 27.7 反射操作:成员变量 28.7 七层参考模型2 29.7 动力Chat:多线程改造,多人登录 30.7 NIO服务端编写
18.8 静态和泛型 19.8 缓存行、可见性和乱序执行 20.8 线程退出 21.8 trylock和lock区别 22.8 查找二叉树 23.8 linkedList源码接卸 24.8 Collections工具类 25.8 函数式编程 26.8 复制文件 27.8 发射操作:方法 28.8 TCP协议三次握手和四次挥手 29.8 动力Chat:给特定人发消息 30.8 NIO小程序
18.9 引入枚举 19.9 Java内存模型 20.9 locksupport 21.9 原子类 22.9 红黑树、B树和B+树的概念 23.9 HashMap基本原理 24.9 并发修改异常 25.9 Stream流的创建 26.9 异常补货和资源释放 27.9 发射操作:构造器 28.9 UDP协议 29.9 动力Chat:群发
18.10 字节码分析枚举的本质 19.10 指令重排验证 20.10 lock锁 21.10 线程池的概念 22.10 动画演示 23.10 HashMap源码:构造 24.10 HashTable和Vector 25.10 终止操作:find-match-foreach 26.10 自动释放资源 27.10 发射操作:注解 28.10 Socket编程是什么
18.11 枚举的常用方法 19.11 内存屏障和对象半初始化 20.11 读写锁 21.11 线程池的源码
23.11 HashMap源码:put方法 24.11 CopyOnWriteList 25.11 终止操作:统计 26.11 字符流 27.11 作业:基础工作 28.11 InetAddress详解
18.12 没觉的方法、静态导入 19.12 内存可见性
21.12 自定义线程池 23.12 计算下标的方法 24.12 ConcurrentHashMap 1.8 实现 25.12 求工资最高的员工信息 26.12 处理流的好用方法 27.12 路径变全限定名 28.12 URL详解
18.13 枚举实现单例设计模式 19.13 线程争抢 21.13 线程工厂 23.13 HashMap源码:扩容 24.13 1.7 和 1.8 在 HashMap 的区别 25.13 终止操作:规约 26.13 深入理解序列化和反序列化 27.13 代码优化:添加文件工具类 28.13 Socket实现 TCP
18.14 枚举小结 19.14 窗口售票 21.14 CountDownLauch和CycleBarier 23.14 HashMap源码:get和总结 24.14 循环链表问题和分段锁 25.14 终止操作:分组 26.14 浅拷贝和深拷贝 27.14 加入应用上下文 28.14 Socket实现 UDP
19.15 线程安全的实现方案 21.15 信号量Semaphore 23.15 HashSet的源码 24.15 guava提供的不可变集合 25.15 终止操作:归集 26.15 作业:新增和查看商品 27.15 注解解析器 handler
21.16 单例终结 25.16 中间操作:过滤 26.16 作业:优化 27.16 总结
25.17 中间操作:映射
25.18 中间操作:排序和peek
25.19 其他中间操作和联系