Java 集合底层原理与并发实战精讲
很多 Java 开发者在处理高并发或数据量大的场景时,常因对集合底层机制理解不透而导致内存溢出或性能瓶颈。本课直击核心痛点,以 ArrayList 和 ConcurrentHashMap 为切入点,通过手写源码模拟,让你不再死记硬背 API,而是真正掌握扩容机制、线程安全原理及时间复杂度优化逻辑。适合已掌握基础语法,想从"会用"进阶到"懂原理"的开发者。建议按顺序学习:先理解数组与集合的时间复杂度关系,再深入 ArrayList 的 add、get、remove 源码与扩容逻辑,最后转入 ConcurrentHashMap 的分段锁原理与手写模拟。
前后端交互与异步数据处理
掌握理论后,如何将其应用到工程中?课程重点讲解 Servlet 过滤器链的使用、上下文获取,以及如何利用 Axios 与后端进行无刷新交互。通过 Fastjson 处理 JSON 数据、改造注册登录流程等实战案例,将后端接口与前端异步请求无缝串联,解决前后端数据传输中的编码与解析难题。学完本部分,你将能独立搭建包含登录注册、参数校验与响应处理的完整前后端交互流程,理解过滤器链如何拦截和转发请求,以及异步请求中数据格式的转换与校验逻辑。
学习路径与资料配套建议
建议先从 ArrayList 源码入手,理解数组增删查的底层开销,再深入 ConcurrentHashMap 的多线程并发控制。配合资料包中的视频进行跟读,遇到难点可反复回看手写集合模拟部分。学完后应能独立回答集合扩容触发条件、多线程环境下的线程安全方案以及 Ajax 请求的完整流程。资料包中的实战代码可直接作为练习模板进行修改和调试,巩固所学知识。动手重写集合模拟代码,是检验理解程度最有效的手段,不要只停留在观看层面。
课程目录
ArrayList集合源码解读 01.数据结构数组的时间复杂度.mp4 48.27M 02.为什么arraylist集合增加删除效率非.mp4 20.20M 03.简单纯手写arraylist集合.mp4 16.29M 04.arraylist集合add方法源码解读.mp4 38.10M 05.arraylist集合扩容源码解读源码解读.mp4 17.48M 06.arraylist集合get方法源码解读.mp4 4.10M 07.arraylist集合remove方法源码解读.mp4 26.36M 08.arraylist 与vector 区别.mp4 18.24M 09.总结arraylist集合源码.mp4 7.86M axios(ajax) 01.过滤器基本使用常见场景.mp4 48.55M 02.过滤器拦截配置.mp4 32.64M 03.过滤器链.mp4 32.11M 04.登录注册加上过滤器.mp4 89.00M 05.获取当前上下文.mp4 6.27M 06.axios(ajax)发送请求.mp4 64.25M 07.axios验证用户名称是否存在.mp4 80.79M 08.js解析json数据.mp4 34.71M 09.fastjson用法.mp4 50.26M 10.ajax json改造注册代码.mp4 98.76M ConcurrentHashMap原理低层 01.第一节-concurrenthashmap1.7源码解读课程.mp4 16.68M 03.第三节-为什么多线程情况下不推荐使用hashta.mp4 20.28M 04.第四节-concurrenthashmap1.7实现原理_.mp4 30.85M 05.第五节-简单模拟手写concurrenthashmap_bat.mp4 34.91M 06.第六节-concurrenthashmap扩容原理_batch.mp4 5.64M 07.第七节-concurrenthashmap无参构造函数原理.mp4 13.88M 08.第八节-concurrenthashmap无参构造函.mp4 69.61M 09.第九节-concurrenthashmapput方法原理0.mp4 36.13M 10.第十节-concurrenthashmapput方法原理02.mp4 47.69M 11.第十一节-concurrenthashmapput方法原理.mp4 28.61M 12.第十二节-concurrenthashmapput方法原理0.mp4 29.10M 13.第十三节-concurrenthashmapput方法原理05_ba.mp4 37.01M 14.第十四节-concurrenthashmapput方法原理06.mp4 18.55M 15.第十五节-concurrenthashmapput1.7源码总结_.mp4 18.98M cookie与session 01.什么是会话技术?.mp4 26.06M 02.cookie基本用法.mp4 41.55M 03.cookie原理细节.mp4 30.51M 04.session的用法.mp4 30.05M 05.session的原理.mp4 53.07M 06.session的细节分析.mp4 62.92M 07.使用session用户登录.mp4 98.17M 08.使用cookie记住密码.mp4 39.67M 09.编写注册代码.mp4 78.39M 10.注册图形验证码.mp4 73.93M HashMap7与8之间的区别 01.第一节-hashmap扩容源码解读课程安排.mp4 27.11M 02.第二节-hashmap核心参数有那些_b.mp4 79.78M 03.第三节-hashmap初始容量扩容原理01_batc.mp4 35.83M 04.第四节-hashmap初始容量扩容原理02_batch.mp4 26.94M 05.第五节-hashmapput方法源码解读01.mp4 25.35M 06.第六节-hashmapput方法源码解读02.mp4 55.85M 07.第七节-hashmap的modcount的作用_.mp4 24.79M 08.第八节-hashmap提前阈值扩容原理_batch.mp4 35.56M 09.第九节-hashmap8与hashmap7扩.mp4 26.44M 10.第十节-误区hashmap扩容的是否会重新计.mp4 36.34M 11.第十一节-hashmap1.7扩容底层实现原理01_ba.mp4 66.70M 12.第十二节-hashmap1.7扩容底层实现原理02_.mp4 37.07M 13.第十三节-hashmap1.7扩容如何实.mp4 58.31M 14.第十四节-模拟hashmap1.7扩容死循环.mp4 21.01M 15.第十五节-为什么jdk官方不承认1.7扩容死.mp4 11.61M 16.第十六节-hashmap1.8如何避免多线.mp4 43.89M 17.第十七节-hashmap8扩容与运算高位与.mp4 47.20M 18.第十八节-hashmap8扩容与运算高位与低位.mp4 34.05M 19.第十九节-为什么加载因子是0.75而不是1.mp4 14.43M 20.第二十节-hashmap如何存放1万条key效率最高.mp4 14.63M 21.第二十一节-hashmap1.7与1.8有那些区别_batch.mp4 25.59M HashMap基于Lru实现缓存淘汰算法 01.第一节-为什么hashmap是无序集合_batc.mp4 26.76M 02.第二节-linkedhashmap有序集合原理 _batc.mp4 32.22M 03.第三节-缓存淘汰算法底层实现的.mp4 26.72M 04.第四节-linkedhashmap的使用_batch.mp4 34.08M 05.第五节-手写lru缓存淘汰算法_batch.mp4 23.04M 06.第六节-为什么hashmap不使用取模运算_batc.mp4 22.81M 07.第七节-java右移2底层实现原理_batch.mp4 26.67M 09.第九节-hashcode无符号右移16位原理_batch.mp4 24.52M 10.第十节-^异或运算的原理_batch.mp4 12.04M 11.第十一节-hashmap计算hash值的原理_batch.mp4 17.74M 12.第十二节-hashmap与运算的实现原理_b.mp4 14.33M 13.第十三节-为什么n-1变成一个奇数01_batc.mp4 20.82M 14.第十四节-为什么n-1变成一个奇数02_b.mp4 25.13M 15.第十五节-hashmap如何实现降低hash冲突概.mp4 8.33M ? 08.第八节-java左移2底层实现原理_bat.mp4 7.53M HashMap集合 01.hashmap集合基本特点.mp4 36.20M 02.map集合中的常用方法.mp4 38.00M 03.hashset集合用法.mp4 18.35M 04.手写hashset集合.mp4 13.05M 05.hashset集合没有get方法.mp4 7.43M 06.hashset存入学生对象不允许重复.mp4 48.57M 07.hashmap集合常用get方法.mp4 31.17M 08.hashmap集合遍历方式一.mp4 10.96M 09.hashmap集合遍历方式二.mp4 10.77M 10.hashmap集合遍历方式三.mp4 5.85M 11.hashmap集合存入学生对象.mp4 16.03M 12.hashcode方法重写注意事项.mp4 78.89M 13.hashmap常见的面试题.mp4 17.00M 14.基于arraylist手写hashmap集合.mp4 50.99M 15.key的hash算法原理.mp4 31.57M 16.什么是hash冲突问题.mp4 14.68M 17.如何解决hash冲突问题.mp4 12.29M 18.手写hashmap集合put方法.mp4 15.47M 19.手写hashmap集合get方法.mp4 26.45M 20.hashmapkey存放自定义对象.mp4 61.39M 21.arraylist存放hashmap.mp4 11.81M 22.hashmap 集合存放arraylist集合.mp4 17.44M 23.hashmap统计每个字符出现的次数.mp4 40.99M 24.collections单列集合操作工具类.mp4 27.88M 25.hashmap集合散列概念.mp4 26.49M 26.linkedhashmap有序.mp4 20.63M 27.linkedhashset.mp4 21.71M 28.手写linkedhashset.mp4 17.76M 29.生成10个不允许重复随机数.mp4 12.40M HashMap原理之手get和put方法 01.第一节-hashmap8源码解读课程安排_b.mp4 37.97M 02.第二节-为什么重写equals还要重写hashc.mp4 58.86M 03.第三节-hashmap如何避免内存泄露问题_.mp4 34.04M 04.第四节-基于arraylist集合实现hashmap_ba.mp4 35.79M 05.第五节-三种不同时间复杂度区别_batc.mp4 20.68M 06.第六节-基于数组下标方式实现hashmap_batc.mp4 40.74M 07.第七节-基于链表方式解决hash碰撞问题.mp4 41.52M 08.第八节-hashmap如何遍历链表数据_batch.mp4 19.13M 09.第九节-hashmap如何存放key为null_bat.mp4 23.26M 10.第十节-第一次课hashmap源码解读总结.mp4 36.01M ideaDeubg工具 01.debug如何调试程序.mp4 33.61M 02.debug调试偶数和.mp4 20.24M 03.idea分析栈帧链.mp4 48.79M 04.idea断点调试如何设置条件.mp4 18.24M 05.idea在debug模式下改变变量的值.mp4 18.39M 06.idea如何清除断点.mp4 10.18M 07.idea断点如何回退.mp4 10.77M 08.逢七过.mp4 35.95M 10.比较数组是否相同.mp4 20.37M 11.数组中查找元素.mp4 38.82M 12.评委打分.mp4 73.06M 13.如何反转一个数组.mp4 37.93M ? 09.数组元素求和.mp4 28.40M idea开发工具使用 01.如何安装idea开发工具.mp4 32.64M 02.idea如何创建项目.mp4 30.23M 03.idea工程模块的划分.mp4 23.64M 04.idea常用辅助快捷键.mp4 19.09M 05.idea操作模块.mp4 8.22M javaAPI和工具类 01.什么是api.mp4 39.23M 02.如何使用帮助文档.mp4 24.44M 03.object类.mp4 46.57M 04.控制输出对象原理.mp4 30.56M 05.重写object父类中tostring方法.mp4 26.25M 06.string字符串.mp4 15.04M 07.string类中的equals方法.mp4 15.57M 08.三种不同方式实现用户登录.mp4 46.79M 09.登录加上三次登录重试机会.mp4 30.92M 10.object父类中的equals方法.mp4 35.31M 11.重写object父类中的equals方法.mp4 51.92M 12.instanceof 关键字的用法.mp4 77.01M 13.tring类中equals方法源码解读.mp4 35.85M 14.string类中equals方法如何比较两个字符.mp4 65.37M 15.遍历遍历字符串的原理.mp4 33.74M 16.replace替换方法.mp4 20.79M 17.split分割方法.mp4 13.60M 18.ascii码字符对照表.mp4 24.98M 19.统计大小写字符个数代码分析.mp4 32.34M 20.代码实现统计大小写字符出现的次数.mp4 29.79M 21.ndexof.mp4 33.32M 22.stringapi帮助文档.mp4 13.70M 23.jdk9为何要将string的底层实现由char数组.mp4 8.73M 24.java元空间的概念.mp4 68.29M 25.math类.mp4 65.02M 26.sytem.mp4 31.94M 27.arrays类中常用方法.mp4 29.58M 28.工具类的设计.mp4 28.90M 29.包装类概念.mp4 34.11M 30.integer的用法.mp4 20.65M 31.string类中valueof方法.mp4 22.94M 32.string如何转化成int类型.mp4 22.44M 33.包装类的基本规则.mp4 29.51M 34.integer包装类底层设计原理.mp4 63.90M 35.java中基本数据类型和包装类型的区别.mp4 18.61M 36.装箱和拆箱设计原理.mp4 32.99M 37.字符串中的数据排序.mp4 33.86M 38.date日期.mp4 41.93M 39.date常用方法.mp4 20.39M 40.simpledateformat格式化日期.mp4 26.07M 41.simpledateformat将字符串转化成d.mp4 14.19M 42.dateutils工具类设计.mp4 35.05M 43.calendarapi使用.mp4 36.22M 44.calendar修改日期.mp4 17.18M 45.二月份有多少天.mp4 26.43M javaio流文件操作 01.什么是io.mp4 28.50M 02.file类创建文件.mp4 37.37M 03.file类常见判断方法.mp4 20.88M 04.file类常见获取方法.mp4 22.36M 05.相对路径与绝对路径区别.mp4 28.68M 06.file类删除操作.mp4 18.93M 07.循环删除多个文件.mp4 25.49M 08.递归算法求阶乘.mp4 22.53M 09.画图演示递归算法.mp4 25.32M 10.debug调试递归算法.mp4 9.89M 11.递归算法注意事项.mp4 19.84M 12.递归算法遍历目录.mp4 23.11M 13.递归算法删除目录.mp4 8.22M 14.io流概念.mp4 13.31M 15.io流的分类.mp4 11.29M 16.字节输出流.mp4 19.30M 17.字节写入数据常用三种方式.mp4 31.80M 18.字节流写入数据换行和追加写.mp4 22.69M 19.正确方式关闭io资源.mp4 15.72M 20.fileinputstream单个字节读取文件.mp4 23.48M 21.read方法循环优化.mp4 17.58M 22.read方法读取数据优化.mp4 8.16M 23.字节流文件内容拷贝.mp4 21.35M 24.字节流读取字节数组数据.mp4 20.28M 25.字节流以字节数组读取数据原理.mp4 67.68M 26.字节流以1024字节数组读取方式.mp4 30.84M 27.字节流复制图片.mp4 16.69M 28.什么是缓冲流.mp4 20.43M 29.字节缓冲区流-写入数据.mp4 28.65M 30.字节缓冲流-读取数据.mp4 17.28M 31.字节缓冲区复制视频.mp4 17.03M 32.字节流与缓存流复制视频效率对比.mp4 36.33M 33.一个汉字存储占用多少字节.mp4 21.85M 34.编码和解码乱码问题.mp4 40.60M 35.字符流写入文本数据.mp4 25.70M 36.字符流读取文本数据.mp4 14.47M 37.字符流写入数据五种方式.mp4 26.06M 38.字符输入流读取数据.mp4 29.15M 39.字符流拷贝文本文件.mp4 14.25M 40.filewriterfilereader.mp4 35.49M 41.字符缓冲流.mp4 44.04M 42.字符缓冲流写入数据换行操作.mp4 19.88M 43.字符缓冲流读取数据换行操作.mp4 22.14M 44.字符缓冲流拷贝java代码.mp4 18.60M javase基础 javaSe零基础之基础语法 02.第二节-学会了java就业方向有哪些.mp4 7.32M 03.第三节-计算机编程语言发展的历史.mp4 8.58M 04.第四节-Java跨平台的原理.mp4 12.28M 05.第五节-JRE、JDK、JVM之间的区别.mp4 4.23M 06.第六节-如何下载JDK11安装包.mp4 8.37M 07.第七节-JavaSE&JavaEE&JavaME之间的区.mp4 16.68M 08.第八节-如何安装JDK11演示.mp4 9.85M 09.第九节-如何打开命令提示符窗口.mp4 4.69M 1.第一节-java语言的发展历史.mp4 9.55M 10.第十节-在dos命令提示符窗口常用命.mp4 19.43M 11.第十一节-为什么需要配置JDK环境.mp4 9.91M 12.第十二节-如何配置JDK的环境变量.mp4 24.30M 13.第十三节-编写第一个HelloWorld程序.mp4 18.12M 14.第十四节-HelloWorld案例常见错误演示.mp4 9.08M 15.第十五节-如何安装notepad.mp4 8.73M 16.第十六节-notepad编写第一个java程序.mp4 10.00M 17.第十七节-Java中的注释使用说明.mp4 13.56M 18.第十八节-什么是关键字.mp4 7.19M 19.第十九-什么是常量.mp4 17.00M 20.输出常量值.mp4 18.00M 21.数据类型.mp4 25.24M 22。如何定义变量.mp4 31.15M 23、定义变量常见的问题.mp4 34.07M 24.标识符.mp4 37.87M 25.自动与强制类型互换.mp4 31.58M 26.算数运算符.mp4 26.40M 27。字符的操作.mp4 32.94M 28.字符串的操作.mp4 16.91M 29.i的用法.mp4 34.75M 30.i的用法.mp4 8.47M 31.i的练习题.mp4 20.36M 32.i的用法.mp4 23.21M 33.关系运算符.mp4 29.52M 34. 35.第三十五节-逻辑运算符.mp4 0.21kb 35.逻辑运算.mp4 13.50M 36.短路运算符.mp4 24.98M 37.第三十八节-短路运算符之双或者.mp4 13.38M 38三元表达式用法.mp4 17.52M 39.三元运算符案例01.mp4 12.15M 40.三元运算符案例01.mp4 12.15M 41.三元运算代码优化.mp4 8.70M 42.第四十三节-三元运算符案例02.mp4 24.96M 44.scanner打印机用法.mp4 21.90M 45,scabber类实现求.mp4 10.94M 46.第四十六节-流程控制语句.mp4 5.64M 47.第四十七节-if判断语句的写法.mp4 14.98M 48.第四十八节-if和else的用法.mp4 12.24M 49.第四十九节-if判断语句案例奇偶数.mp4 14.41M 50.第五十节-多重if判断语句.mp4 18.44M 51.第五十一节-多重if判断语句案例.mp4 16.75M 52.第五十二节-switch语句的用法.mp4 43.37M 53.switch语句春夏秋.mp4 47.12M 54.第五十四节-for循环语句用法.mp4 48.44M 55.第五十五节-for循环输出5-1.mp4 26.68M 56.第五十六-求和案例.mp4 29.27M 57.第五十七-求偶数和.mp4 14.31M 58.第五十八节-水仙花数.mp4 36.52M 59.第五十九-水仙花总数.mp4 4.85M 60.第六十节-while循环.mp4 24.53M 61.第六十一节-珠穆拉玛峰.mp4 21.50M 62.第六十二节-do.while循环语句.mp4 25.49M 63.第六十三节-死循环.mp4 24.22M 64.第六十四-三种不同循环语句区别.mp4 20.99M 65.第六十五节-break和continue区别.mp4 20.93M 66.第六十六节-嵌套for循环语句.mp4 53.62M ? 67.第六十七节-random随机数.mp4 23.63M ? 68.第六十八节-猜数字游戏.mp4 26.15M javase面向对象 01.面向对象概述.mp4 33.28M 02.类如何定义.mp4 38.35M 03.对象的使用.mp4 47.42M 04.学生类.mp4 18.69M 05.单个对象内存图.mp4 41.75M 06.new多个对象内存地址.mp4 17.50M 07.new多个对象存放指向同一个内.mp4 20.54M 08.成员变量与局部变量的区别.mp4 33.57M 09.private.mp4 43.03M 10.this关键字使用01.mp4 47.01M 11.this的原理.mp4 18.60M 12.什么是构造方法.mp4 14.37M 13.使用构造方法注意事项.mp4 30.12M 14.构造方法的作业题.mp4 40.84M 15.idea自动生成模板类.mp4 14.26M 16.this使用细节问题.mp4 32.55M 17.什么是封装.mp4 12.11M 18.什么是继承.mp4 32.13M 19.画图分析继承模式.mp4 24.73M 20.idea如何生成继承类图.mp4 19.50M 21.继承模式的优缺点.mp4 15.52M 22.如何判断使用继承模式.mp4 6.71M 23.继承中的变量访问特点.mp4 27.96M 24.super关键字用法.mp4 14.88M 25.super访问父类中的构造方法.mp4 35.04M 26.访问父类中的成员方法.mp4 13.55M 27.什么是方法重写.mp4 21.90M 28.权限修饰符.mp4 52.01M 29.方法重写注意事项.mp4 24.66M 30.画图分析java中的继承注意事项.mp4 28.89M 31.继承作业题构造方法给成员属性赋值.mp4 32.52M 32.继承作业题set方法给成员属性赋值.mp4 12.28M 33.package的作用.mp4 29.10M 34.package细节问题.mp4 29.16M 35.import导入包.mp4 26.13M 36.import导入包细节问题.mp4 11.75M 37.final关键字最终态.mp4 11.23M 38.fina关键字修饰局部变量.mp4 22.88M 39.static关键字.mp4 23.28M 40.画图分析静态变量访问特征.mp4 28.34M 42.静态关键字应用场景.mp4 19.40M 43.static修饰常量.mp4 24.02M 44.main方法细节问题.mp4 40.82M 45..main访问特点.mp4 21.48M 46.idea如何设置main注入参数.mp4 16.07M 47.多态概念基本概念.mp4 28.82M 48.多态的访问特点.mp4 32.35M 49.多态机制的优缺点-上.mp4 31.69M 50.多态机制的优缺点-下.mp4 28.94M 51.多态的转型.mp4 27.59M 52.画图分析多态的转型.mp4 26.85M 53.抽象类的概念.mp4 33.84M 54.抽象的特点.mp4 33.04M 55.抽象类定义有参构造方法.mp4 43.18M 56.画图分析抽象类的案例.mp4 18.51M 57.抽象的类案例代码编写.mp4 51.48M 58.abstract关键字不能和哪些关键字共.mp4 14.89M 59.接口的定义特点.mp4 32.31M 60.接口中成员变量访问特点.mp4 23.12M 61.接口中成员方法访问特点.mp4 13.34M 62.接口中是没有构造方法.mp4 20.44M 63.猫和狗接口版本思路分析.mp4 12.47M 64.猫和狗接口版本代码演示.mp4 49.17M 65.类和接口的关系.mp4 42.68M 66.抽象类和接口的区别.mp4 25.17M 67.门与报警(抽象类和接口组合).mp4 24.25M ? 41.静态关键字访问特点.mp4 31.38M java多线程快速入门 01.第一节-多线程第一次课程内容安排.mp4 30.64M 02.第二节-什么是线程、进程.mp4 32.02M 03.第三节-为什么在进程中还需要线.mp4 8.97M 04.第四节-为什么需要使用多线程与.mp4 33.34M 05.第五节-使用多线程一定提高效率吗.mp4 51.88M 06.第六节-多线程的应用场景有哪些呢.mp4 14.78M 07.第七节-同步与异步之间的区别.mp4 8.66M 08.第八节-继承thread类创建线程.mp4 28.28M 09.第九节-实现runnable接口创建线程.mp4 16.05M 10.第十节-使用callable和future创建线.mp4 54.21M 11.第十一节-使用线程池的方式创建线程.mp4 8.86M java多线程如何通讯 01.第一节-什么是线程安全问题.mp4 47.38M 02.第二节-如何解决线程安全问题.mp4 48.45M 03.第三节-synchronized锁基本的用.mp4 28.35M 04.第四节-synchronized锁基本的用法02.mp4 27.28M 05.第五节-synchronized死锁问题.mp4 32.58M 06.第六节-如何诊断synchronized死锁问题.mp4 11.04M 07.第七节-如何保证线程同步问题.mp4 11.26M 08.第八节-springmvc接口中使用sync.mp4 29.77M 09.第九节-使用wait、notify注意事项.mp4 32.42M 10.第十节-wait、notify生产者与消.mp4 39.71M 11.第十一节-wait、notify生产者与消费者.mp4 45.82M java多线程锁使用 01.第一节-画图分析wait与notify实现原.mp4 52.41M … 共 1226 条





