/蚂蚁课堂第九期/& ~3 f4 J- B- k2 e9 I5 N& r2 i
├──000.第九期-开班相关说明 1 k* `* b1 s; k+ i; d! ~
| ├──01.第一节-每特教育第九期上课时间安排_ev.mp4 46.42M" ~/ [" l3 M7 K% E6 v% a3 [3 Z7 _
| ├──02.第二节-常用开发的工具整理_ev.mp4 23.62M
; L/ O8 ^# D( O& C, {, G| ├──03第三节-程序员如何选择电脑配置_ev.mp4 14.96M; d9 n% k+ O& L( H* I/ w
| ├──04.第四节-腾讯课堂上课标题不一致的问题_ev.mp4 15.43M- W! k" H) G. m" E3 @* @
| ├──05.第五节-第九期新增了哪些知识点01_ev.mp4 51.65M
6 `2 r. Z- f5 T| ├──06.第六节-第九期新增了哪些知识点02_ev.mp4 94.98M1 X. G$ Y8 p9 G/ e- d" Q
| ├──07.第七节-程序员开发资料如何下载_ev.mp4 14.52M
7 d8 M( J! s7 S8 w% X7 Y* |! M| └──09.00每特教育第九期开班相关说明_ev.mp4 261.55M9 U- S/ i4 ~# h) y! j& c
├──001.第九期-基础知识回顾之掌握Java反射自定义注解底层设计原理与封装限流的框架 * T. S8 w5 g; C6 p
| ├──01.第一节-反射与自定义原理课程安排_ev.mp4 13.74M
. i: ^ |0 I: k3 ?# P| ├──02.第二节-什么是反射&反射基本概念_ev.mp4 35.03M
1 p) D! o$ _4 v, j| ├──03.第三节-反射的应用场景_ev.mp4 12.23M) k' Y; @# b/ H5 N
| ├──04.第四节-反射机制使用的三种方式_ev.mp4 53.71M8 A' \* X/ ]; d
| ├──05.第五节-使用反射机制初始化对象_ev.mp4 24.12M
- y5 y4 b+ [* j6 `5 \| ├──06.第六节-反射如何给属性赋值_ev.mp4 34.06M: A9 c! N# D5 a9 Q+ n
| ├──07.第七节-使用反射机制调用方法_ev.mp4 29.83M
8 i, @- p& G/ Y( ]| ├──08.第八节-反射如何越过泛型检查_ev.mp4 19.40M
# |# a# c) g+ x7 L| ├──09.第九节-注解的基本概念与介绍_ev.mp4 60.26M
% v. A+ M6 c/ S, r2 M4 S- {# V| ├──10.第十节-使用guava对微服务接口实现限流_ev.mp4 18.25M
+ j$ P0 Z" ~5 F3 X& E' W9 t| ├──11.第十一节-使用aop环绕通知拦截目标方法01_ev.mp4 36.20M: d0 O! J7 L3 K5 `/ ^9 p( C
| ├──12.第十二节-使用aop环绕通知拦截目标方法02_ev.mp4 73.28M" E6 W! o4 N! i
| ├──13.第十三节-使用aop+反射+自定义注解实现限流框架_ev.mp4 58.76M
Q3 M/ _, ~+ N1 u/ x| └──资料.zip 195.75kb
& q8 I, J$ t. E$ E' R9 X% M├──002.第九期-基础知识回顾之多线程快速入门与实际项目如何整合多线程
* K4 L- P+ ]* ?7 \, Y" b% ?| ├──01.第一节-多线程第一次课程内容安排.mp4 72.27M. l: \2 Y% A& g; k
| ├──02.第二节-什么是线程、进程.mp4 73.12M G5 c) u6 H) o( n) O8 j1 z
| ├──03.第三节-为什么在进程中还需要线程呢.mp4 19.45M
) R2 k: {6 ^. [; ~| ├──04.第四节-为什么需要使用多线程与单与并行区别.mp4 70.28M
1 h( |5 O N- z0 p| ├──05.第五节-使用多线程一定提高效率吗.mp4 117.94M
1 y' y6 q B0 X: \| ├──06.第六节-多线程的应用场景有哪些呢.mp4 33.20M
" W7 T* `9 f* |! J" m4 B| ├──07.第七节-同步与异步之间的区别.mp4 19.40M
2 H, }) \7 U4 D u7 I2 z0 G! D| ├──08.第八节-继承Thread类创建线程.mp4 62.27M3 o) ]: Z" v8 E0 ]+ ?' i4 ?" y6 r$ ^
| ├──09.第九节-实现Runnable接口创建线程.mp4 36.71M' z. | t) f0 x/ ?' n3 l
| ├──10.第十节-使用Callable和Future创建线程.mp4 126.13M
8 P# [9 E/ H, ]( {& A9 W6 f; L| ├──11.第十一节-使用线程池的方式创建线程.mp4 22.31M
0 ^3 e- a- `: ]1 N| ├──12.第十二节-@Async异步注解创建线程.mp4 85.50M* X1 i# _ b( o5 {( ^
| └──13.第十三节-手写@Async异步注解.mp4 126.41M1 `5 ]' e8 b1 Y! S# l3 W9 p
├──003.每特教育第九期-基础知识回顾之synchronized锁使用与线程之间如何实现通讯 ! \ L, L9 t' S
| ├──01.第一节-什么是线程安全问题.mp4 105.82M
% f. y/ @9 k4 N( h ]" L* A) S| ├──02.第二节-如何解决线程安全问题.mp4 110.17M+ Y, D' H" [6 n' g- w, s
| ├──03.第三节-synchronized锁基本的用法01.mp4 67.59M
7 R0 s. ~- i- _! c; Q) Y# q| ├──04.第四节-synchronized锁基本的用法02.mp4 63.04M- h3 ^+ Q! M5 e; E3 s: j
| ├──05.第五节-synchronized死锁问题.mp4 74.18M1 e8 `2 H+ m! S8 a/ v! r, F9 x6 o
| ├──06.第六节-如何诊断synchronized死锁问题.mp4 25.14M3 S( l! a& B% V" w
| ├──07.第七节-如何保证线程同步问题.mp4 21.51M
# T" @5 u( C! t8 n6 Y% W# || ├──08.第八节-springmvc接口中使用synchronized.mp4 72.19M, P6 Z6 v: V4 i. {
| ├──09.第九节-使用wait、notify注意事项.mp4 60.46M2 q. K, t* G6 o5 h' G3 |
| ├──10.第十节-wait、notify生产者与消费者模型01.mp4 89.50M4 f. m% t; i4 @
| ├──11.第十一节-wait、notify生产者与消费者模型02.mp4 104.08M2 Y5 V* R9 W. t! A; f
| └──code.zip 810.47kb% x- A; j! O: v( m9 R: r* v! x, K
├──004.第九期-基础知识回顾之多线程核心API与Lock锁使用
2 y# k3 O+ c6 E+ Y| ├──01.第一节-画图分析wait与notify实现原理.mp4 225.03M
7 w9 `) K) T; R+ m| ├──02.第二节-join方法底层的设计原理.mp4 123.76M
% n) `% V& j6 P! h7 }8 l| ├──03.第三节-多线程底层七种状态.mp4 95.29M% m, }$ I1 n( Q0 S) y w
| ├──04.第四节-sleep防止CPU占用100%.mp4 45.25M
) M. w1 z! {$ Y$ q| ├──05.第五节-守护与用户线程的区别.mp4 31.01M/ m5 M- ^+ H0 q# A( Y4 [+ Y
| ├──06.第六节-如何安全的停止一个线程.mp4 66.24M
2 g3 f4 v( h# \0 n, g! e9 b, ^| ├──07.第七节-lock与synchronized的区别.mp4 26.09M$ F& I8 I2 }: o5 Q# r2 s: H9 F
| ├──08.第八节-简单演示lock锁使用方式01.mp4 76.73M
6 p6 n% ^/ v) t1 L0 Z: \| ├──09.第九节-简单演示lock锁使用方式02.mp4 22.20M
' _/ m! C4 i! o* M. w/ J| ├──10.第十节-lock的condition用法.mp4 44.71M
: l! f! o9 {3 Q# z| ├──11.第十一节-多线程的yield方法使用.mp4 29.52M' e( E) l0 S* u; d
| ├──12.第十二节-多线程的优先级.mp4 34.72M" m5 ~5 \8 [ p( @/ O
| ├──13.第十三节-wait与sleep之间的区别.mp4 31.54M# L6 x L3 O( S+ S
| └──14.第十四节-为什么wait和notify在object父类中.mp4 19.68M
* ^/ f1 ], ~: v* v/ X2 B├──005.第九期-基础知识回顾之多线程综合实战案例与纯手写日志框架
% f' @) Z1 k/ L. p* ]- ?; k| ├──01.第一节-字节码指令角度分析线程安全问题.mp4 134.05M
! A# x! k* ?2 \. ~9 a5 ?, F+ \| ├──02.第二节-画图分析字节码指令角度分析线程安全问题.mp4 60.39M
/ m: x! M: ~: U7 }0 E3 k; v| └──03.第三节-Callable与FutureTask原理分析01.mp4 3.38M& j$ q5 E- r' E+ s6 @4 c
├──006.第九期-JUC并发编程之CAS原子类底层原理
( p6 Y# r: f" K8 J, A| └──01.第一节-什么是悲观锁.mp4 5 D9 B* r2 ^' S
├──007.第九期-JUC并发编程之基于cas+LockSupport锁手写锁的升级过程
# I p! l3 {6 E0 j+ A| ├──01.第一节-如何手写重入锁.mp4 139.08M; G0 m8 c$ B: }: K
| ├──02.第二节-代码纯手写重入锁.mp4 94.05M+ m* r" p; f+ V
| ├──03.第三节-偏向锁轻量级锁重量级锁应用场景01.mp4 100.96M
0 V3 _" k& P/ b1 r, X9 W# m| ├──04.第四节-偏向锁和轻量锁和重量锁引用场景02.mp4 104.22M, x* e# v0 C) W' A# u: X
| ├──05.第五节-画图分析手写cas锁底层原理.mp4 53.34M6 u- ~5 w9 \0 g& X" `6 m7 ~3 z* B
| ├──06.第六节-手写轻量锁升级的过程.mp4 86.87M" ]) @5 e8 U0 A' K3 j5 {
| ├──07.第七节-源码调试手写轻量锁升级过程.mp4 98.88M' }) S3 x ~( i4 ?# h1 G2 V
| ├──08.第八节-纯手写轻量锁升级过程课程疑问总结.mp4 18.00M
+ Q4 y8 y) o. \% X7 L| ├──09.第九节-偏向锁与重入锁之间的区别.mp4 60.84M
. v* V+ x& a0 L# X* W| ├──10.第十节-公平锁与非公平锁的区别.mp4 99.69M
5 R, R6 o6 {: W+ Q: w4 J' g| └──资料.zip 195.75kb
0 U" [" [, ?+ P7 o2 ~* T' D├──008.第九期-JUC并发编程之从对象角度获取synchronized升级过程 ) N. W7 J/ e' k. |3 q
| ├──01.第一节-偏向锁轻量级锁重量级锁应用场景.mp4 100.96M: c2 w9 b2 M) ~3 ~! ]$ ^
| ├──02.第二节-java对象的布局底层实现原理.mp4 159.15M5 l# C+ e$ G% f6 A" O2 r0 \
| ├──03.第三节-new出一个对象至少占用多少字节.mp4 41.60M, @6 g6 T- S8 L) K
| ├──04.第四节-对象内存中offset作用.mp4 69.37M
7 l6 E& ^6 o. V1 T4 N- A6 L( d/ `+ h| ├──05.第五节-通过对象头获取锁的升级信息.mp4 129.76M
! z2 [7 V" U U) ?0 u( d3 C. H| ├──06.第六节-如何在对象头获取HashCode.mp4 80.04M1 V1 z0 O4 A1 Y2 Y; k
| ├──07.第七节-如何从对象头获取偏向锁.mp4 67.54M2 o# L7 X$ h' }) p/ ?$ H
| ├──08.第八节-如何从对象头获取轻量锁.mp4 67.50M: l& y* w( Z% v y) e; `
| ├──09.第九节-完整链演示锁的升级过程.mp4 98.03M
& b( L2 p! d2 F) m O| ├──10.第十节-如何从对象头锁的信息课程总结.mp4 40.32M
% ^2 E1 @- i2 `| └──资料.zip 195.75kb
# C& l+ g) D |% ~9 P1 n; b├──009.第九期-JUC并发编程之synchronized锁升级过程原理分析 * N2 Y* i. t- c3 z! i% l2 }
| ├──01.第一节-简单回顾对象头与锁的升级过程.mp4 75.54M* I% A+ K: ?8 B' Q
| ├──02.第二节-画图分析synchronized轻量锁获取锁实现原理.mp4 126.88M
3 q! r- Y6 k+ K, A, ?2 j| ├──03.第三节-画图分析synchronized轻量锁释放锁原理.mp4 182.59M# L8 w# g) w- }5 p/ F" T1 A% {8 O4 \, d
| ├──04.第四节-画图分析synchronized轻量锁释放锁原理.mp4 20.13M" F7 ?2 F) r2 Z! H! z9 o
| ├──05.第五节-字节码角度分析Monitor指令.mp4 96.66M/ m. }( _* L1 l0 d$ _6 D: f
| ├──06.第六节-Monitor指令分析.mp4 66.26M
. D+ I1 |, B( h; x6 T, [3 d2 W1 G| ├──07.第七节-Monitor虚拟机源码解读分析.mp4 105.59M
/ v, W$ B# B d' f| └──资料.zip 195.75kb
# n" }* } S5 ?3 ]├──010.第九期-JUC并发编程之画图分析synchronized锁的升级过程
* L: ]$ S x) s+ p, Q3 g1 W| ├──01.第一节-synchronized终极底层原理总结介绍.mp4 29.59M
5 s- X4 `* \' t) q, _| ├──02.第二节-画图分析synchronized偏向锁原理01.mp4 113.32M
! o' d. F0 M0 D; {| ├──03.第三节-画图分析synchronized撤销原理.mp4 53.70M
@' L- o6 A* K2 q, G% v: \| ├──04.第四节-画图分析synchronized轻量级锁原理.mp4 117.94M! B* o& p$ J* F& Y3 i
| ├──05.第五节-画图分析synchronized重量级锁原理.mp4 53.03M
4 G" v; z, H4 B7 B- A8 I* A| ├──06.第六节-画图分析synchronized批量重偏向锁.mp4 144.78M/ R$ j# ?/ i l6 e
| ├──07.第七节-画图分析synchronized批量撤销.mp4 65.36M
! L7 S+ L7 e7 T6 e| ├──08.第八节-synchronized锁的粗化.mp4 16.57M
$ M: t' r+ w1 _$ @| ├──09.第九节-synchronized锁的消除.mp4 23.10M
: Z) P. k1 G! J% }% k- |7 w6 A| └──09.第十节-完整文字版本总结synchronized原理.mp4 130.39M
. ]3 o# O, m4 N# W# j5 H1 ]9 O├──011.第九期-JUC并发编程之Threadlocal如何避免内存泄漏问题 9 |) W( Q I; W9 r! M
| ├──01.第一节-Threadlocal原理解析课程内容安排.mp4 18.68M9 |4 ~: J' ^9 X
| ├──02.第二节-Threadlocal基本的用法.mp4 40.69M8 G; O) E7 @, d' d2 f4 y- ^
| ├──03.第三节-Threadlocal应用场景有哪些..mp4 49.72M
" p5 j" \ o" {# N0 w" Y9 v| ├──04.第四节-Threadlocal真实例子讲解..mp4 112.83M
7 J3 M* U* `0 f1 Y3 `/ ~| ├──05.第五节-内存泄漏与内存溢出区别.mp4 27.33M
- |: b6 K8 l4 N ]6 _| ├──06.第六节-什么是强引用.mp4 52.39M
# X2 b4 P' p$ [$ h! @* }| ├──07.第七节-什么是软引用.mp4 62.72M- \! s; o- r2 Q, f- x- T. C
| ├──08.第八节-什么是弱引用.mp4 26.65M
& q' ^* R6 H1 }+ T4 t* P% q| ├──09.第九节-Threadlocal底层源码解读.mp4 116.00M) w: h. f z g1 a1 x
| ├──10.第十节-Threadlocal内存泄漏原因分析01.mp4 108.27M
' G) x2 Y1 [+ w* v" z| ├──11.第十一节-Threadlocal内存泄漏原因分析.mp4 77.47M
% [9 L3 Y3 G# [, a| └──12.第十二节-Threadlocal课程内容总结.mp4 45.19M
+ |/ ~3 m" f/ Q4 O" t( W├──012.第九期-JUC并发编程之Java内存模型底层原理 5 f$ o$ J5 e$ l
| ├──01.第一节-为什么需要加上Volatile.mp4 66.14M6 j1 t7 b6 k7 L- T" }
| ├──02.第二节-Volatile关键字基本概述.mp4 28.95M4 b: S8 A c: w6 W j: n0 D4 C- _4 M1 {
| ├──03.第三节-Volatile基本用法.mp4 43.80M, ?; S8 c ^/ }2 r9 q
| ├──04.第四节-cpu多级缓存的作用.mp4 67.52M7 P# L( x5 ?! k4 _8 f
| ├──05.第五节-为什么会发生线程可见性.mp4 66.93M5 c i% ^/ y4 A7 C! X3 o
| ├──06.第六节-什么是java内存模型.mp4 59.49M# G }9 a9 I8 V7 h( ~% E# v; Z% ?0 W
| └──07.第七节-JMM八大同步规范.mp4 128.58M( ^9 n, d: I5 N8 b. a) y. `
├──013.第九期-JUC并发编程之Volatile关键字底层原理 + R. G9 k. c+ O" z: ?# b
| ├──01.第一节-volatile关键底层实现原理.mp4 115.97M. f2 G, v6 s( O6 A/ Z1 `
| ├──02.第二节-mesi缓存一致性协议原理.mp4 79.47M
3 ~, d( s- o" h8 O& @| ├──03.第三节-为什么volatile不能够保证原子性.mp4 65.48M
_+ f# |2 J0 Y5 u) x, ~| ├──04.第四节-为什么System.out.println保证线程的可见性.mp4 70.83M$ S3 e& T; F9 Z1 f+ x" i5 p1 z& u3 A
| ├──05.第五节-什么是重排序.mp4 27.98M5 l4 ~9 ?$ o) _8 ?
| ├──06.第六节-多线程的情况下发生重排序结果会有哪些影响.mp4 67.93M0 T! ?7 k! n! F. u; d" ^
| └──07.第七节-演示多线程情况下重排序产生的问题.mp4 110.29M
q- ]# f( e# j- Z" o. e├──014.第九期-JUC并发编程之单例模式七种写法与如何破解单例 $ C- n- o" l, {" |7 z
| ├──01.第一节-什么是单例模式.mp4 21.38M9 A1 D6 n3 Y P* s
| ├──02.第二节-懒汉式线程不安全.mp4 38.62M9 @$ W! C$ i$ [- a
| ├──03.第三节-懒汉式线程安全.mp4 34.46M
0 X: b% ]8 ?- [) ]8 D5 v| ├──04.第四节-懒汉式双重检验锁.mp4 61.68M4 o" q6 w3 `' S9 {. m4 M! b# M% R
| ├──06.第六节-饿汉式.mp4 37.00M
0 p0 W2 b' Y# c| ├──07.第七节-静态代码单例.mp4 12.83M( S& {2 D U5 Q0 W% a' T1 p, o
| ├──08.第八节-静态内部类的形式.mp4 48.44M4 @! m( u! x/ x v
| ├──09.第九节-枚举单例.mp4 52.32M
1 I: d+ A, |- b5 X e| ├──10.第十节-反射如何破解单例模式.mp4 138.96M6 ~* H/ F% j# G
| ├──11.第十一节-序列化如何破解单例.mp4 43.07M/ B9 y1 W' R( v
| ├──12.第十二节-序列化如何防止单例破解.mp4 98.67M+ s ^3 ?% u7 S+ Q! i6 H, u
| ├──13.第十三节-java真的能够实现真正意义上单例吗.mp4 16.90M! V3 E- M' ^. B6 F
| ├──14.第十四节-反射破解枚举单例.mp4 80.85M
- h+ j! t3 r7 Y, ]+ x0 J| └──15.第十五节-枚举如何防御反射破解单例.mp4 68.00M" e' b- f- m' ^0 ~
├──015.第九期-JUC并发编程之内存屏障实现原理 9 E1 r% O3 n% k. V; {
| ├──01.第一节-什么是缓存行.mp4 105.03M
$ p# P3 I% m- D( s| ├──02.第二节-为什么加上Volatile效率变低01.mp4 36.13M. l3 s0 ~: |+ T0 b" G) N
| ├──02.第二节-为什么加上Volatile效率变低02.mp4 157.13M% {' R/ W9 E- d
| ├──03.第三节-@sun.misc.Contended.mp4 21.88M
2 y. F9 v0 O; D) A, [) c. k" ?8 ?| ├──04.第四节-重排序有哪些好处.mp4 29.82M' y4 q [) P, c" J; H0 ]
| ├──05.第五节-编译与处理器重排序.mp4 181.91M
: N& o6 _/ M3 e3 C5 q' C% u| ├──06.第六节-双重检验锁单例为什么需要加上Volatile.mp4 129.80M
: J, ^6 c+ n- k2 O| ├──07.第七节-内存屏障如何保证可见性和禁止重排序.mp4 132.53M/ z) b) Z: l. C8 f' V {4 O
| ├──08.第八节.unsafe类调用内存屏障实现禁止重排序.mp4 73.86M
) s/ x% w- X% ?, N% b| ├──09.第九节-写内存屏障的疑问.mp4 16.62M
' \0 k! N- W: U' i| ├──10.第十节-happens-before规则.mp4 47.00M8 x7 h1 W) D7 O) i
| └──资料.zip 195.75kb( V# m# L( L$ ^: y
├──016.第九期-JUC并发编程之BlockingQueue实现原理
3 z( Z1 j6 p0 [3 o| ├──01.第一节-队列模型的架构设计.mp4 58.38M
' V6 e% D, R1 M# y5 d| ├──02.第二节-数组与链表结构模型.mp4 88.81M% |" G) }$ j ^( X5 D9 W% ]
| ├──03.第三节-基于链表实现队列原理.mp4 70.13M9 @; E Y6 B% {4 {3 Y- ^! D8 E
| ├──04.第四节-简单回顾lock锁的使用.mp4 29.03M8 U2 }4 W5 V: P2 A! ~( h; o
| ├──05.第五节-Arrayblockingqueue的用法01.mp4 143.44M
3 ]' T$ [- O3 ]" e4 t6 s+ V! c| ├──06.第六节-Arrayblockingqueue的用法02.mp4 66.14M
) Q$ {2 }0 d) `+ X1 W| ├──07.第六节-Arrayblockingqueue的用法03.mp4 30.21M5 z5 F0 R/ ?2 q: {0 u* |" ^
| ├──08.第八节-纯手写Arrayblockingqueue存储功能.mp4 95.97M$ n% x9 _6 f# d4 a/ A* M) L
| ├──09.第九节-基于Arrayblockingqueue实现生产者与消费者模型.mp4 117.37M! s0 T7 |3 e" S. g
| ├──10.第十节-Arrayblockingqueue阻塞功能如何实现.mp4 116.21M
4 f0 `: z# e+ T5 ?: ~/ V, w8 S| ├──11.第十一节-完善手写Arrayblockingqueue.mp4 59.09M4 a9 d$ B1 L; X8 z
| └──12.第十二节-Linked与arraylBlockingQueue区别.mp4 102.53M
- J9 |' Y2 F. F* F. l4 `- j├──017.第九期-JUC并发编程之线程池底层实现原理 # k3 t0 W2 \; `
| ├──01.第一节-为什么使用线程池.mp4 110.47M9 C- f/ S' B# g, z3 E
| ├──02.第二节-线程池的作用有哪些.mp4 76.25M: ~& v' y" L" v; O9 `% d
| ├──03.第三节-线程池四种创建方式.mp4 53.44M
4 u6 A0 M8 z0 k$ M| ├──04.第四节-线程池之可定长度和单例线程池.mp4 29.03M! ?7 \9 \8 ]- R0 V K
| ├──05.第五节-可定时线程池.mp4 11.49M3 d$ I/ l3 H' Q% t& r
| ├──06.第六节-手写线程池底层实现原理思路.mp4 83.17M* M) r2 X4 D2 j
| ├──07.第七节-代码纯手写线程池.mp4 84.77M
1 Y: m8 I6 n+ R; |4 i- y| ├──08.第八节-代码手写线程池之如何停止线程池.mp4 53.67M
' l; C2 j, l- T# S| ├──09.第九节-手写线程池如何避免cpu飙高的问题.mp4 173.31M
8 F8 a2 b+ c g' n' c| ├──10.第十节-threadpoolexcutor核心参数.mp4 69.30M
5 A2 g, `3 e# g% G1 B) K# b| ├──11.第十一节-如何自定义线程池.mp4 149.56M
- Y% x" w9 m& N9 w| ├──12.第十二节-为什么阿里巴巴Java开发手册中强制要求线程池不允许使用Executor.mp4 27.67M% j& g1 a# Y' {
| ├──13.第十三节-线程池队列满了如何处理呢拒绝策略.mp4 73.96M6 ]' b4 l% {5 q& x
| ├──14.第十四节-如何自定义线程池名称.mp4 38.96M
: n" x f, g k+ O0 ~( Q9 \| ├──15.第十五节-线程池五种状态.mp4 48.67M4 o5 ?7 d% K4 d) {, }# z* [% x
| ├──16.第十六节-线程池内部底层实现原理.mp4 108.76M7 ] M& l8 S+ H' ~$ k
| ├──17.第十七节-线程池内部工作线程如何一直运行状态.mp4 35.04M
& G: h1 h6 l+ I$ n| ├──18.第十八节-线程池核心线程数如何配置.mp4 116.52M
4 _& x) U4 h! Y( S* I| └──19.第十九节-SpringBoot如何整合线程池.mp4 21.34M: v. _0 X4 p: S! b
├──018.第九期-JUC并发编程之AQS底层实现原理
6 U8 }( l8 o0 B0 ?- t| ├──01.第一节-什么是AQS.mp4 46.94M
6 |( K0 S- V- a3 o0 F$ j| ├──02.第二节-简单回顾AQS设计知识点.mp4 40.95M2 U% ^) u* D3 d- J: B
| ├──03.第三节-简单回顾CAS底层原理.mp4 50.95M
" J& [6 G5 R8 g {& ?( || ├──04.第四节-简单回顾locksupport.mp4 25.21M* F2 ]0 F% a& O( J) z
| ├──05.第五节-lock锁源码解读.mp4 124.17M
) @6 O! g# O3 f. C& e& z| ├──06.第六节-非公平锁源码解读01.mp4 43.87M
( r& n2 S% J9 A6 w || ├──07.第七节-非公平锁源码解读02.mp4 329.45M
5 b6 |% a( {: g| ├──08.第八节-lock双向链表结构疑问.mp4 30.40M; y0 H9 o( c* U+ e3 I
| ├──09.第九节-AQS中为什么头结点是为空的01.mp4 40.61M+ }( d+ `8 U O, A2 J) o. c4 @
| ├──10.第十节-AQS中为什么头结点是为空的02.mp4 8.11M
, m5 w3 `0 [, N" j- K| ├──11.第十一节-简单回顾AQS基本实现原理.mp4 163.20M
/ ?, y2 O6 N1 q' r2 T6 Y| ├──12.第十二节-AQS源码分析之如何阻塞一个线程01.mp4 151.25M
F- g* i7 z9 D3 @0 || ├──13.第十三节-AQS源码分析之如何阻塞一个线程02.mp4 107.83M
3 _% u4 F O( }2 L0 s| ├──14.第十四节-AQS源码之重入锁如何实现.mp4 38.64M/ Z0 {. ^( A. O6 P! }0 S5 e
| ├──15.第十五节-Lock锁如何释放锁的.mp4 157.70M
0 S4 ? L) H4 \$ f| ├──16.第十六节-Lock底层公平与非公平锁实现区别.mp4 31.09M8 s' N- ^6 Z$ z& B+ C
| └──17.第十七节-AQS源码总结.mp4 11.67M' A' ~. T: i4 d3 }) }8 g7 {
├──019.第九期-JUC并发编程之Lock锁的condition源码解读 ) ^: z' j8 q: V/ _
| ├──01.第一节-回顾等待池与锁池之间的区别.mp4 118.41M
2 O( U- `( t& _| ├──02.第二节-等待池源码解读.mp4 57.07M
1 l4 ~) V2 B7 u$ p: z1 E- p| ├──03.第三节-await方法底层源码解读01.mp4 102.70M/ F5 H6 W z3 \5 N
| ├──04.第四节-await方法底层源码解读02.mp4 149.64M
. r9 F/ O) a* \% g| └──05.第五节-如何唤醒等待池中的线程.mp4 94.99M" d) K8 X4 l# Y Z3 F( z1 E
├──020.第九期-JUC并发编程之Semaphore源码解读 $ B4 E9 k: Z; k' V; l# y0 ]& Y
| ├──01.第一节-Semaphore基本用法.mp4 146.38M( h) D6 D! V* @. _
| ├──02.第二节-Semaphore如何实现限流.mp4 70.42M- u0 C3 N1 O1 ?; r! k" b9 ^
| ├──03.第三节-Semaphore源码解读01.mp4 340.08M! N: Q% X8 P) Q1 s" y1 O; R% g
| ├──04.第四节-Semaphore源码解读02.mp4 108.15M- [/ U5 |, J: ]
| └──资料.zip 195.75kb
& S- Q& @. ^% G├──021.第九期-JUC并发编程之CyclicBarrier源码解读
. U( n; O3 Q6 G| ├──01.第一节-CyclicBarrier用法.mp4 115.10M9 U* ^/ H8 B/ A5 s, ]) ?
| ├──02.第二节-CyclicBarrier源码解读.mp4 147.63M p g" R8 k+ D8 t
| ├──03.第三节-CountDownLatch用法.mp4 58.93M
! w( ]1 B' z$ F R0 l r: S| ├──04.第四节-CountDownLatch源码解读01.mp4 67.84M" D7 e$ d8 a+ i" |( r
| ├──05.第五节-CountDownLatch源码解读02.mp4 102.67M
) f7 t; U3 l8 i& `/ y| ├──06.第六节-AQS源码总结01.mp4 156.02M
C+ K4 q$ ]. t/ v| ├──07.第七节-AQS源码总结02.mp4 56.82M; j4 u! c+ x# I, c& w6 E
| └──08.第八节-AQS源码总结03.mp4 107.12M" z) ?1 w- [7 q$ n& r5 ~0 Z. j
├──022.第九期-JUC并发编程之forkjoin底层原理
* F. J( y" e7 J: d| └──视频正在努力讲解中,后期讲解完毕会更新的.txt 0.08kb W! g4 w1 a( R% ~( |, Q
├──023.每特教育第九期-JUC并发编程之disruptor原理
; S1 Q* F; D3 R- z g7 ~| └──视频正在努力讲解中,后期讲解完毕会更新的.txt 0.06kb% n6 R" r6 \; y( _; M1 Z f
├──024.第九期-JVM专题之类加载器设计原理
$ ^/ N& X$ [& ? O| ├──01.第一节-类加载概念引入.mp4 68.54M7 N0 w0 q- S7 v, z# g
| ├──02.第二节-class文件读取的来源.mp4 12.71M
( d) G/ [0 t! S5 \) H| ├──03.第三节-类加载器的分类.mp4 177.72M
8 e5 [9 _4 o% A8 p$ D a| ├──04.第四节-什么是双亲委派机制.mp4 108.04M2 h/ y7 ~( z' n x
| ├──05.第五节-双亲委派机制案例演示.mp4 45.99M
# g0 C$ V( ^& H% R0 h# i @4 k| ├──06.第六节-双亲委派机制源码解读01.mp4 102.39M: i4 R; @4 g$ v
| ├──07.第七节-双亲委派机制源码解读02.mp4 22.76M
* V! o8 T' x/ z, \ a6 @| ├──08.第八节-双亲委派机制源码解读03.mp4 133.77M
+ @3 Y# k+ p) ^% E5 l/ h| ├──09.第九节-new一个对象class如何被加载.mp4 33.39M
; u" a3 B/ Z, d, z; m; F; h| ├──10.第十节-双亲委派机制原理细节分析.mp4 143.69M7 A B; S K$ @, m
| ├──11.第十一节-如何自定义一个类加载器.mp4 264.36M. x% r2 [+ }8 v$ Y# X
| ├──12.第十二节-如何手写一个热部署插件.mp4 71.67M
6 ~! G0 i& a, P| ├──13.第十三节-代码一步一步手写热部署插件01.mp4 157.07M* k! E, k3 J3 t1 p! R
| ├──14.第十四节-代码一步一步手写热部署插件02.mp4 149.31M
4 g, k0 D/ g- o4 n| └──15.第十五节-手写热部署插件的演示.mp4 42.19M
6 ], ^ I8 H: I" Q├──025.第九期-JVM专题之SPI破解双亲委派机制 U2 i [$ p6 [( [/ I8 j; Q: K
| ├──视频正在努力讲解中,后期讲解完毕会更新的.txt 0.04kb3 x' t& w* _$ A9 X/ d9 r
| └──资料.zip 195.75kb
4 N: Y* p) t) T6 [& ^ h├──026.第九期-JVM专题之栈帧内部结构分析
0 ]; H, D4 L' m% |. F* C' n| ├──01.第一节-什么是程序计数器.mp4 107.16M
1 V' i7 X0 m1 P7 T| ├──02.第二节-什么是栈01.mp4 58.22M4 P* C9 W3 G6 c P
| ├──02.第二节-什么是栈02.mp4 20.74M
9 W* ^8 l2 d; @# ^) T| ├──03.第三节-什么是栈帧.mp4 59.25M- S3 d! C. b7 u0 a7 T3 X. {
| ├──04.第四节-什么是局部变量表01.mp4 139.85M1 n+ b8 l' a9 `$ T
| ├──04.第四节-什么是局部变量表02.mp4 10.96M! }; d5 p. B# ^/ P! Y) t. f
| ├──06.第六节-站帧-局部变量表中-槽的概念.mp4 120.27M5 Z D m" ~) E, _
| ├──07.第七节-栈帧-局部变量表总结.mp4 11.05M
' E% z* O- {( Q# N: ^8 E; M| ├──08.第八节-栈帧-操作数栈分析01.mp4 171.89M
% a8 R/ Q3 B7 W$ W q- g| ├──08.第八节-栈帧-操作数栈分析02.mp4 44.08M9 b2 t: O9 P0 A5 a$ U
| ├──09.第九节-I++和++i的底层原理01.mp4 75.95M* _( y0 ]6 {# o. j4 c
| ├──09.第九节-I++和++i的底层原理02.mp4 67.21M/ Q' v4 A1 s+ D; ]$ k
| ├──10.第十节-什么是栈溢出01.mp4 7.03M( ]2 N) f- ~ d* D$ h
| ├──10.第十节-什么是栈溢出02.mp4 39.42M2 ]. C, u ~5 e5 ]4 f- X" a% H
| ├──10.第十节-什么是栈溢出03.mp4 37.79M- S* b+ o9 X( C/ y* B6 Y9 p
| └──10.第十节-什么是栈溢出04.mp4 38.97M
3 E k3 A6 O e6 ~5 z+ }├──027.第九期-JVM专题之字符串常量池原理 7 c7 J$ G* ?4 X0 b; e! N
| ├──01.第一节-什么是常量池.mp4 156.98M
& R' V" Y: V+ h' I8 n| ├──02.第二节-局部表与常量池关系.mp4 66.92M
* }% W" l( t8 X( ~3 P9 {2 Z; S: i5 A| ├──04.第四节-什么是动态连接.mp4 87.50M
' a" i! F" O' h0 q8 }- j! D4 P( F| ├──05.第五节-常量池分类.mp4 63.91M, `+ G1 Y! b0 r6 k# {+ a
| ├──06.第六节-JDK7之前的常量池.mp4 49.43M
/ c6 q7 F0 \7 D' A) ~) H| ├──07.第七节-String类源码解读.mp4 28.65M7 q$ a+ M( E, ]0 J3 L+ [! A
| ├──08.第八节-JDK1.7之前和1.8开始字符串常量池存储位置.mp4 33.56M; C6 g/ n1 j. R9 I, ?
| ├──09.第九节-string常见面试题.mp4 111.08M
/ [- h, y/ R4 N4 X| ├──10.第十节-字符串修改会创建几个对象.mp4 66.44M
/ w, a% F8 p; ?0 A {| ├──11.第十一节-字符串在编译阶段自动优化.mp4 43.89M
4 G/ q' p8 Q( v A| ├──12.第十二节-变量字符串相加的原理.mp4 116.42M
3 Q% n+ m% L9 u* H( o8 ]6 u4 t| ├──13.第十三节-stringbuilder底层实现原理.mp4 218.09M8 |) q* |" W( d( q
| ├──14.第十四节-stringbuilder扩容原理.mp4 69.95M7 [& L8 f4 o1 R! |, t8 E1 a }8 o' d- q
| ├──15.第十五节-字符串常见面试题总结.mp4 17.13M
% E4 p) \. X$ K/ B$ i! ^| ├──16.第十六节-字符串的延迟加载.mp4 57.96M; F t) `6 ~+ f% }
| └──17.如何证明字符串常量池是存放在堆中.mp4 48.69M- z( ~$ r- \6 H9 y# C
├──028.第九期-JVM专题之堆内存溢出&cpu飙高的问题
! f8 X+ b# m4 s8 _% q8 i0 _| ├──01.第一节-new一个对象底层如何存放.mp4 29.06M
8 q8 R3 T: z3 L7 E2 W. v8 _| ├──02.第二节-什么是内存泄漏问题.mp4 91.13M
& c4 x$ Q. ?5 ]1 ^6 _5 B. @1 [8 e| ├──03.第三节-堆内存溢出解决办法.mp4 103.78M
: m% ^2 o& _( J5 q1 W| ├──04.第四节-jps&jmap指令分析堆内存01.mp4 121.65M
% d1 v, a" j% X/ u5 {3 Z! b, s" Q| ├──04.第四节-jps&jmap指令分析堆内存02.mp4 9.28M
/ ]! Y' Y, ]0 R0 u/ B( M( W| ├──05.第五节-如何分析GC回收多次对象无法释放内存.mp4 133.92M
' G# w7 c F$ _$ T) M# f, s- l| ├──06.第六节-代码模拟内存泄漏问题.mp4 70.83M ?* o! C* \$ X" r5 R% Y
| ├──07.第七节-如何排查内存泄漏问题.mp4 72.46M
- e4 b8 D) F% X9 w2 D| ├──08.第八节-如何在linux环境下执行jps.mp4 41.38M5 |, r! i ^* M8 r- {" X+ O$ K
| ├──09.第九节-什么是cpu飙高的问题01.mp4 169.54M
2 j5 i! M. O$ ?* Y; R| ├──10.第十节-演示windows环境cpu飙高的问题.mp4 20.24M8 t; f8 f, A$ |8 I0 C1 D
| ├──11.第十一节-如何在linux环境排查cpu飙高的问题.mp4 130.58M
! D+ F- y' x% B| ├──12.第十二节-使用阿里巴巴Arthas排查linux环境cpu飙高的问题.mp4 78.86M
, L( a6 S1 F$ m p( C5 P3 d0 v| └──13.第十三节-实际生产环境中如何排查cpu飙高的问题.mp4 77.36M
9 m6 U2 i: ~4 _- U5 j├──029.第九期-堆内分代设计与GC日志分析
. f( \$ @( N, i% q| ├──01.第一节-堆内存细节内容安排.mp4 11.94M
4 N( @/ C* ]7 v4 l" z| ├──02.第二节-JDK7和JDK8中堆内存变化.mp4 43.17M& @) Z+ U+ n' d5 k7 b% }+ N" e( I
| ├──03.第三节-jps指令分析堆内存情况.mp4 83.86M
# z6 i4 u. B9 @2 f/ g" ]| ├──04.第四节--XXNewRatio新生代余与老年代比例配置.mp4 39.29M
1 Q$ ?4 l3 a, b/ | V$ G| ├──06.第六节-StoptheWorld机制.mp4 21.41M
. k7 N, @# M6 p| ├──08.第八节-GC的分类.mp4 36.35M) I; L- {" m$ ` a: _4 U- b+ }6 `, W
| ├──09.第九节-对象晋升的细节流程.mp4 128.16M
; Q. x) B" J- P* s* T ] s( `| ├──10.第十节-演示新生代MinorGC回收过程.mp4 92.18M5 K4 g+ U- l, L; O0 S$ `
| ├──11.第十一节-演示老年代FullGC回收过程.mp4 140.74M
* ?. D5 O r' g/ f| ├──12.第十二节-新生代GC日志分析.mp4 170.76M7 S1 r( ?% ?! r1 C8 H
| ├──13.第十三节-老年代GC日志分析.mp4 37.05M
3 }( l" \. D( I3 B% ]% I| ├──14.第十四节-元空间GC日志分析.mp4 7.75M
: ~1 J4 F; u# A$ A7 j| ├──15.第十六节-在线工具分析GC日志01.mp4 152.90M& t6 o! Q' G( U' V
| ├──16.第十五节-在线工具分析GC日志02.mp4 127.48M" V( W# q% S* U: p3 T1 x" h
| └──资料.zip 195.75kb
: L; c* M( O# U& ~├──030.第九期-内存逃逸分析
+ ?( I/ T5 c+ _5 j| ├──01.第一节-.new对象一定存放在堆中吗.mp4 53.63M
& j* q$ d4 K! X9 t/ U| ├──02.第二节-为什么new对象需要存放在栈中.mp4 80.12M
/ o" u' v, _6 H% B R| ├──03.第三节-.jlt内存逃逸作用域.mp4 70.46M, _$ Z9 N8 u. _% v- |# m
| ├──04.第四节-逃逸分析代码演示.mp4 111.92M
: Y3 T3 r+ f. C8 D$ G| ├──05.第五节-逃逸分析案例演示.mp4 37.16M
# ~. y- \4 z+ _ }0 w6 f| ├──06.第六节-锁的消除.mp4 43.47M0 ~; g! N2 |4 c2 {$ W
| └──07.第七节-.标量替换.mp4 106.73M
+ e$ ]) e( w* I1 @2 U├──031.第九期-永久代(元空间分析)---待整理视频
2 S& M4 R* H& Q0 U$ t! d7 T4 @├──032.第九期-JVM专题之引用技术法与GCRoot(可达分析算法) , @/ Z0 N' q2 q" u- m. }' a+ u
| ├──01.第一节-如何定义垃圾对象.mp4 72.46M
: R( w8 V- {+ \8 ^# R+ P% A# Y| ├──02.第二节-什么是引用技术算法.mp4 83.38M
: h+ y' M9 v, n2 V| ├──03.第三节-什么是引用计数法-循环依赖问题.mp4 100.30M0 I7 v+ l; }: p6 B5 O& h( c
| ├──04.第四节-GCRoot可达分析算法.mp4 82.90M
, P( ^/ h, t- L! O5 X| ├──05.第五节-GCRoot如何解决循环依赖问题.mp4 60.09M c9 O( t* W% ?) O" z
| ├──06.第六节-哪些对象可以作为GCRoot.mp4 9.48M
/ A$ M+ _) n) i% v* z) e- k+ t7 m| ├──07.第七节-通过mat分析GCRoot.mp4 104.76M, L7 {" w# s7 i$ P7 ?% [
| ├──08.第八节-通过MAT分析GCRoot循环依赖对象.mp4 63.22M6 ^2 L6 d* J9 Z1 T0 t" y
| ├──09.第七引用技术法与可达分析算法区别.mp4 33.65M
$ [( S' m: Z/ H| ├──10.第十节-finalize复活对象.mp4 142.01M
% s9 Q! `3 \, P. ?| └──11.第十一节-finalize方法的总结.mp4 62.05M1 `* E, B5 w7 q+ s& H1 c1 w' f
├──033.第九期-JVM专题之垃圾回收的算法(后期会修订)
' T: |* H6 N/ v% s7 b" _+ G| ├──01.第一节-指针碰撞与空闲列表.mp4 67.65M/ F6 G; O9 _7 p! U* H; L( x
| ├──02.第二节-标记清除算法01----改.mp4 43.92M
) S s# V a# t' L% v* U& || ├──03.第三节-标记清除算法疑问.mp4 55.10M
5 B. B) P% W2 x2 w| ├──04.第四节-标记复制算法01.mp4 74.11M$ C/ e' M4 g$ c' i( O
| ├──04.第四节-标记复制算法02.mp4 17.13M. M5 w3 r$ o* t. R- {6 h6 j$ r
| ├──04.第四节-标记复制算法03.mp4 46.06M) r6 b5 v5 \( R+ J8 O# f% O
| ├──04.第四节-标记复制算法04.mp4 11.68M" w( |" D& ~" w! k# _% L& G
| ├──04.第五节-标记复制算法应用场景.mp4 15.34M
4 Z/ f) ~! A+ \! ?0 p3 O| ├──05.第五节-标记压缩算法.mp4 44.74M" Z3 ^3 o" v o0 S0 }
| ├──06.第六节-垃圾回收算法总结.mp4 44.82M
& U( K( G8 w3 n1 K| ├──09.033.mp4 347.59M2 B! h3 P, x8 U8 ~
| └──新增移动对象&从新录制标记复制算法移动内存地址.txt & f0 F: A+ O! ~4 p. h9 c- H
├──034.第九期-JVM专题之对象定位访问与句柄池和直接引用
2 |4 S8 T0 ~/ u| ├──01.第一节-new对象晋升细节内容.mp4 128.16M
& Z/ m& u* M/ _, R9 L/ v" T| ├──02.第二节-new对象晋升细节内容总结.mp4 12.34M
: \5 X; \: f* q6 s y! k| ├──03.第三节-通过工具分析对象晋升的过程.mp4 81.58M
- A. \, u; }, [9 c- O/ ~| └──04.第四节-对象的定位访问句柄池与直接引用.mp4 62.88M
7 x8 a' s/ w$ F├──035.第九期-JVM专题之串行&并行收集器
, A6 A9 o# e9 H/ n| ├──01.第一节-为什么不建议调用System.gc();.mp4 22.29M
" _ B" c' \; F: [7 ~. L| ├──02.第二节-垃圾收集器与可达分析算法区别.mp4 22.45M
( q X# Z4 a. ]+ l3 J| ├──03.第三节-并行与并发收集器区别.mp4 60.08M
. _" u" A8 _" }( l: q2 q| ├──04.第四节-评估GC性能指标.mp4 97.37M/ I z% e0 b: ~9 A6 e
| ├──05.第五节-垃圾回收期发展历史.mp4 51.35M6 R( e4 {0 i/ X
| ├──06.第六节-七款经典收集器组合.mp4 93.30M7 Q% A- ]; a: t, R) p
| ├──07.第七节-如何查看默认垃圾收集器.mp4 41.29M
) v* h5 R4 I) `9 k8 H| ├──08.第八节-串行收集器特点.mp4 47.02M
! s8 ? d) `# S: b( O- n7 x& U1 a| ├──09.第九节-画图形式展示串行收集器.mp4 7.53M
9 z8 d4 L$ d$ |1 ~" {| ├──10.第十节-parnew新生代gc回收原理.mp4 55.75M
: c3 s" k$ H7 Z# h# d| ├──11.第十一节-串行与并行收集器之间区别.mp4 26.96M
4 X4 d2 w8 {* L: x| ├──12.第十二节-配置parnew新生代gc参数.mp4 13.24M' ], X- {& ~" `* L
| └──13.第十三节-并行回收的原理.mp4 54.63M
& r; I1 Y/ P. w6 j2 u1 ^; L8 \# u├──036.第九期-JVM专题之CMS收集器原理 3 G$ J( y( d5 o* e! a
| ├──01.第一节-为什么需要使用CMS收集器.mp4 75.89M
( N4 d' e1 ]6 P- c| ├──03.第三节-CMS之初始标记.mp4 62.84M
7 R6 z6 _3 d {, |1 F5 r4 W& v2 a| ├──04.第四节-CMS之并发标记.mp4 58.96M5 m. g1 h3 C" E' n5 M
| ├──05.第五节-CMS之重新标记.mp4 43.38M
# |/ I- p! W' y/ N5 _8 @1 G| ├──06.第六节-CMS并发清除.mp4 15.48M, \5 W* m6 c( E9 T; |2 G, O: g2 Z
| ├──07.第七节-CMS四次标记总结01.mp4 37.79M
* Q; \; l0 f' ?4 ^( P1 E| ├──08.第八节-CMS在什么时候清理堆内存垃圾.mp4 18.51M! D4 [/ T' N! |$ i3 n2 K& |/ E
| ├──09.第九节-CMS收集器的优缺点.mp4 49.27M) w4 ]9 V2 i" q+ g1 H/ h5 q
| ├──10.第十节-CMS收集器并发清除阶段缺陷.mp4 33.74M, @7 ~) R3 ~* v: \' V
| └──11.第十一节-CMS收集器参数设置.mp4 109.23M
9 l0 m+ ?' Q( ~* ?. r/ `2 N* Q6 w├──043.第九期-性能优化-MySQL实战分表分库
; p9 A$ b; [0 ^3 N9 ^* j| ├──01.第一节-什么是垂直拆分.mp4 27.13M
7 F4 l+ L* P& e/ a& m/ k4 M( s| ├──02.第二节-什么是水平拆分.mp4 134.25M
% t& y2 Q& }; z8 ]| ├──03.第三节-shadingjdbc与mycat之间的区别.mp4 38.56M: h& n" a0 s4 G4 [6 O) F7 U, F
| ├──04.第四节-shadingjdbc分配策略.mp4 63.64M
5 I3 o5 y/ S5 A* H$ ^4 q| ├──05.第五节-SpringBoot项目整合shadingjdbc.mp4 143.93M" y2 B6 p4 \" n, o H
| ├──06.取余分片算法优缺点.mp4 91.27M# Y: t8 Z) Z: N
| ├──07.日期分片算法优缺点.mp4 30.23M, E/ @. @( d6 F) [8 Y: g, h
| ├──08.其他分片算法优缺点.mp4 44.14M' w# i1 p0 ~8 q) t4 h3 N/ k6 }
| ├──11.shadingjdbc整合范围分片算法.mp4 136.25M
7 E, H F2 w, `| ├──12.单张表数量达到多少分表分库.mp4 13.13M
) {& H6 V1 @: J# z| ├──13.分表分库后shadingjdbc底层查询语句.mp4 101.31M
8 A0 u+ M. |0 L% R9 ~! \& W1 q& P| └──14.分表分库后分页如何查询.mp4 81.34M7 f q# Y j( J% y1 N
├──044.第九期-性能优化-MySQLBinlog原理
3 y# }6 L4 h7 X8 E, |- p! P4 \| ├──01.第一节-什么是binlog01.mp4 71.98M( O4 W" ?! P$ \5 p/ c; R
| ├──02.第二节-MySql集群架构设计原理.mp4 104.81M
* g* R3 _& i% p; Q| ├──03.第三节-基于docker安装mysql主节点.mp4 123.85M6 f# a( O( q7 b$ ] @* B4 z' w3 Q
| ├──04.第四节-基于docker安装mysql从节点.mp4 37.08M
3 f* k/ ?) o( h1 p$ `5 o! a| ├──05.第五节-演示mysql集群环境.mp4 173.76M- r: b) h! b% [5 T6 t7 M% W
| ├──06.第六节-如果发生mysql主从数据不一致怎么办.mp4 84.23M( ]$ Q* K+ w: `* S' q8 H/ o6 t7 Q
| └──07.第七节-误删除mysql数据如何恢复.mp4 80.76M
! C, [* P+ K+ q9 T6 d├──045.第九期-性能优化-Binlog实现数据同步 7 o6 L; f$ J: e3 k0 c
| ├──01.第一节-mysql与Redis如何实现数据同步.mp4 60.76M
4 u: M5 Z: J* @6 H" h| ├──02.第二节-canal同步数据原理.mp4 104.09M* h' ~' y* A9 ^# W$ `4 D; V
| ├──03.第四节-启动canal监听binlog.mp4 155.34M
5 A" u0 i, a! i* U& F( s| ├──04.第四节-如何将canal的数据同步到redis.mp4 118.75M
1 C/ H8 [& L; H$ X| ├──05.第五节-演示canal同步数据删除操作.mp4 65.30M+ Y+ `& u- S. y$ {. ~& {
| └──06.第六节-canal与mysql同步数据延迟问题.mp4 57.91M
8 F( y3 `5 N; l$ U├──047.第九期-性能优化-MySQLB+树索引细节问题 5 W$ d* d: ]" x/ X4 {
| ├──01.第一节-innodb为什么插入数据会根据主键索引排序.mp4 67.71M
& O" T4 U K0 C n4 f; O4 s6 \; e E| ├──02.第二节-innodb页的概念.mp4 197.68M
! I$ Y. I! f+ x9 m( r| ├──03.第三节-innodb页与页之间如何关联.mp4 45.67M" C( g& ]& d- H- U8 }
| ├──04.第四节-innodb页的分组概念.mp4 68.74M
( b% l- I! t( K& B" P1 \1 ?| └──05.第五节-一颗B+树三层可以存放多少条key.mp4 90.83M
" H. F# T) C5 @; K% \├──048.第九期-性能优化-MySQL查询语句优化 & s) l7 t0 e: [% v# L0 }
| ├──02.第二节-explain中的列select列.mp4 110.44M
4 b9 q* G) E/ L- G5 K5 ?+ R| ├──03.第三节-explain的type列all与index之间区别.mp4 75.94M# d% Y. P2 Q# {3 n$ t9 z
| ├──04.第四节-EXPLAINType需要达到什么级别.mp4 262.93M4 i1 K- R; `8 e, j) t: u: t) m4 {
| ├──05.第五节-EXPLAINkey的长度如何计算.mp4 107.11M
. I( }$ V2 j) F: z4 E| ├──06.第六节-mysql索引需要遵循遵循最佳左前缀法则.mp4 41.48M
4 e$ F( [% w" C( b, U* w- f| ├──07.第七节-mysql索引列上不要使用函数或.mp4 40.03M9 Z* n0 S) C5 X& z' p- r
| ├──08.第八节-尽量使用覆盖索引返回数据.mp4 92.45M# z, g2 x: u+ V7 Z- @
| ├──09.第九节-索引上使用like注意事项.mp4 55.20M+ j! \; i8 X, ~' l& g! b# V
| └──10.第十节-explain扩展列usingwhere与usingindex区别.mp4 157.74M
9 @9 d2 Y5 l! {; {, Z├──049.第九期-性能优化-MySQL排序如何优化 * z+ U" D( `( ]9 h
| ├──01.第一节-排序需要注意filesort.mp4 77.92M
; l' { [2 h, I# U1 e% S* M| ├──02.第二节.filesort排序设计原理.mp4 32.70M2 b" x$ P3 ?; i e; l1 K
| ├──03.第三节-排序如何避免filesor.mp4 102.72M. q* K( _/ p# G' i& O; w) x& ^
| ├──04.第四节-单路与双路排序设计原理.mp4 94.19M8 r9 h! J% k5 v' i" o: B4 Q
| ├──05.第五节-optimizer_trace(优化器跟踪).mp4 128.45M
2 ]+ c. K) l; `2 G2 ^5 b: ?| ├──06.第六节-optimizer_trace分析单路与双路排序.mp4 48.13M. [+ V* e( D. |- u
| └──资料.zip 195.75kb) T; X3 T9 v' }# d; Q/ [
├──050.第九期-性能优化-MySQL表连接join和分页优化
6 V. V) ]6 E, j) y$ C; {" K$ [| ├──01.第一节-表连接join引入.mp4 106.60M- k) B+ v4 b+ b# I" c' u" o
| ├──02.第二节-左、右、内连接区别.mp4 95.50M6 A# ^% s: N* f8 t4 q% |7 Y* i" }
| ├──03.第三节-左连接设计原理.mp4 66.57M6 g, J$ X& k% X% P% G! m8 k/ f
| ├──04.第四节-右连接设计原理.mp4 26.65M. Y$ W% ]5 c8 H
| ├──05.第五节-内连接设计原理.mp4 24.82M
$ o7 o- ]1 I: T| ├──06.第六节-表连接必须要加上索引.mp4 100.87M& k6 @- `8 K) O6 M9 Z# ]
| ├──07.第七节-in关键字需要遵循小表驱动大表.mp4 27.34M6 H3 B2 O) c+ {. J D7 c. p
| ├──08.第八节-exists关键字需要遵循小表驱动大表.mp4 20.35M
0 N5 \8 V! _1 F+ Z! }| └──09.第九节-分页如何查询优化.mp4 131.55M! B0 R5 Q+ E+ F$ I
├──051.第九期-性能优化-MySQL行锁与表锁原理
b8 I3 o$ z" x| ├──01.第一节-MySQL事务基本概念.mp4 113.76M
" o$ D3 q6 f3 _( Q| ├──02.第二节-MyISAM和InnoDB的区别有哪些?.mp4 73.44M7 v& ?: ]; _, \8 a) F, m! q# q
| ├──03.第三节-myisam存储引擎表锁与InnoDB行锁概念.mp4 107.70M$ s, [4 Z; a' }' m9 V
| ├──04.第四节-mysql中的行锁和表锁.mp4 79.98M1 i1 D p8 H3 F5 B5 P3 S0 Q, {% t
| ├──05.第五节-myisam存储引擎表读锁演示.mp4 92.67M! }7 `, b V: C; w# p# X
| ├──06.第六节-myisam存储引擎表写锁演示.mp4 51.39M% U3 J2 k, h" P) I/ g- v
| ├──07.第七节-演示InnoDB行锁.mp4 168.22M i' L& G- E c0 C, i7 f$ u
| └──08.第八节-forupdate演示.mp4 50.01M$ g- y0 S% {$ F# Y1 `$ {/ E+ E
├──052.第九期-性能优化-MySQL间隙锁&悲观锁&乐观锁 # t( v" H8 \' P
| ├──01.第一节-简单回顾forupdate用法.mp4 74.06M
5 z0 s9 }8 L" y0 |7 { X3 \| ├──02.第二节-悲观锁的用法.mp4 31.80M
# [5 a: |3 L5 m; _$ z6 B| ├──03.第三节.乐观锁实现原理.mp4 246.88M
# P) P Q q$ {, C5 h$ w| ├──04.第四节-什么是间隙锁.mp4 38.86M* g* j% z. }1 U- N) E
| └──05.第五节-注意行锁升级表锁.mp4 49.44M1 e' a( S5 _1 y6 _
├──053.第九期-性能优化-事务隔离级别&MVCC原理 & ]6 L7 } Z3 j" {9 a
| ├──01.第一节-事务隔离级别与mvcc课程安排_ev.mp4 20.20M' k9 |1 r1 e6 S \2 O* x" T
| ├──02.第二节-mysql事务隔离级别引入_ev.mp4 40.64M
& O1 E3 G+ D, y0 H. ]3 P| ├──03.第三节-mysql事务隔离级别之读取未提交_ev.mp4 52.20M
, S, ?8 A R, M| ├──04.第四节-mysql事务隔离级别之读已提交数据_ev.mp4 62.46M9 X: T: ?4 J4 W
| ├──05.第五节-mysql事务隔离级别之可重复读_ev.mp4 46.51M) [# w% D7 M% j3 N/ B
| ├──06.第六节-mysql幻读的基本概念_ev.mp4 23.65M% E0 u. `; L$ }6 y
| ├──07.第七节-mysql可重复读实现思路_ev.mp4 19.06M4 o+ Y$ U$ l3 A/ `4 P9 ^* D" _
| ├──08.第八节-mysql可重复能否解决幻读问题_ev.mp4 86.29M8 z. p+ P$ g1 m4 Y9 }" q
| ├──09.第九节-mysql事务隔离级别之串行化_ev.mp4 32.11M
) j7 @$ \( E& S| ├──10.第十节-MVCC基本的概念_ev.mp4 30.20M
* B H/ ^2 w2 O2 O$ Y2 M7 [4 Y| ├──11.第十一节-MVCC链表结构原理分析_ev.mp4 76.05M6 w7 J* V( x# E* |. P
| ├──12.第十二节-readview视图四个不同的属性_ev.mp4 67.97M# K+ K$ }- a$ F. k. E
| ├──13.第十三节-mvcc版本链判断规则之为什么当前session修改数据能够立即查看?_ev.mp4 24.83M
! H" I/ ?3 W# L( }. u| ├──14.第十四节-mvcc版本链判断规则之读取提交或者未提交数据原理_ev.mp4 83.76M7 w% L3 W/ H( ~8 L; B# J; k* y
| ├──15.第十五节-mvcc版本链判断规则之可重复读设计原理_ev.mp4 31.28M
/ m! Y6 R6 I3 q; }7 s# R| └──16.第十六节mvcc能否可以解决幻读问题?_ev.mp4 7.19M& y" U ^4 j5 k- {( p! J
1 R) ~8 Y) Y; M& t
6 e1 i8 }8 c' W! o$ n& Y
5 a* w; H- w& f+ r永久至尊VIP回复即可下载学习,非至尊VIP暂不支持下载此资源!- \8 {2 e! v+ X F
$ K- B* _. l/ @/ e5 `; T/ z1 \+ S W- Z" c* N' N
|