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