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