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