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