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