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