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