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