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