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