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