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