Java互联网架构师系统进阶课程(三期VIP)/ C2 N0 q" v% a
├──01JVM性能调优
6 Q; W7 H( x ~1 j: H% B' z8 F| ├──01 虚拟机的前世今生和Java内存区域(1) .mp4 758.12M6 C+ U( _9 U! f9 j, Q% c) n
| ├──02 深入理解Java内存区域(1) .mp4 835.55M
v6 A7 I" m) F. e% H9 _3 J* L| ├──03 玩转JVM中的对象及引用(1) .mp4 848.04M9 W5 s! y4 m8 ]
| ├──04 分代回收机制及垃圾回收算法(1) .mp4 762.68M! Z4 B; c7 o1 a, L+ c) o
| ├──05 JVM面试“核武器”JVM底层细节(1) .mp4 695.74M4 q. S p! f$ }' d: N$ G& t. j
| ├──06 Class文件结构及深入字节码指令(1) .mp4 942.99M
$ G: ?% @# h$ `| ├──07 类加载机制与类加载器(1) .mp4 995.21M3 l; y: ]6 s, K: C' V
| ├──08 方法调用的底层实现(1 .mp4 1.01G
0 \- M0 I4 k+ _% }1 K8 X- L| ├──09 Java语法糖及实现(1) .mp4 849.83M8 U' `' }, P6 ]* e- @7 \ |* @
| └──10 GC调优基础知识之工具篇(原生+Arthas)(1) .mp4 1.23G" R E( a* A5 `, T
├──02 JVM性能调优 : o/ ?1 N3 i/ h8 D9 Q& z
| ├──01 GC调优基础知识之工具篇(原生+Arthas)(2) .mp4 1.14G+ F8 G& N+ [% |8 f0 J/ k
| ├──02 JVM调优实战之CPU占用过高(1) .mp4 1.58G. ?/ e ~' E S
| ├──03 JVM性能调优之预估调优与问题排查(1) .mp4 1.02G/ X; r. n* z5 b N7 H: Y3 e4 v
| ├──04 玩转MAT,分析内存泄漏(1) .mp4 996.10M
9 w% D F7 W! o| ├──05 直接内存与JVM源码分析(1) .mp4 1.25G
$ T+ l, a9 [. x: i6 u8 t| └──06 JVM之大结局(1) .mp4 996.79M
) O6 Q' {- k; n- t" Z) z( w, n8 m├──03 并发编程 2 t; \( ?# Z4 x; S
| ├──01 java线程的本质、线程模型(1) .mp4 1.04G7 X! N& E% U4 {/ r# K( M, ~9 p
| ├──02 java线程run方法的本质(1) .mp4 1.19G
# V+ ~8 F. q; z6 u2 A| ├──03 synchronized关键字得原理分析一(1) .mp4 1.19G5 `, S, b0 K. t U. ^
| ├──04 synchronized关键字原理—锁的膨胀(1) .mp4 1.51G2 y# I# G- i2 I% p4 T
| ├──05 synchronized关键字原理-锁的膨胀过程(1 .mp4 1.88G; c# z/ m$ {3 d8 ]$ y$ Y* \6 [* K
| ├──06 synchronized关键字原理-锁的膨胀过程二(1) .mp4 1.22G, }, U6 n; r. M3 p$ ]& a* g
| ├──07 synchronized关键字原理-锁的膨胀过程三(1) .mp4 1.29G: c* U: v+ d5 v. O. E$ `
| ├──08 synchronized关键字的使用和优化(1) .mp4 1.13G
+ r* I5 p% {& A: Z| └──09 ReentranLock 的基本使用和设计模式(1) .mp4 1.05G w, c9 M+ Q. b
├──04 并发编程
2 Y0 a* K) ]# Y2 d4 W8 D- `| ├──01 aqs框架的源码分析(1) .mp4 1.28G/ c6 l" T) D# v; x' y. K9 n6 Q
| ├──02 ReentrantLock解锁流程和读写锁源码(1) .mp4 1.06G F9 k0 M' B! I" T c/ ?
| ├──03 aqs之读写锁原理分析(1) .mp4 1.16G
n2 i* R6 V h7 H9 J9 G| ├──04 juc工具类的使用和原理(1) .mp4 1.23G) V$ {9 g* L) l2 O' x! h
| ├──05 模拟线程池的原理实现(1) .mp4 1.19G+ x* v) i" O$ z
| ├──06 ThreadPoolExecutor线程池(1) .mp4 1.17G
9 Q* M) }+ S& j4 ^4 ^+ G5 c| ├──07 线程池源码分析(1) .mp4 1.35G# b4 ^+ I6 r8 X/ W q. b
| ├──08 如何解决JAVA的有序性和可见性(1) .mp4 946.77M
8 b. y" y( }: G$ P$ F/ v| ├──09 如何理解JAVA的内存模型(1) .mp4 977.11M2 u/ ^) @& T6 P
| └──10 currenthashmap源码分析(1) .mp4 1.35G
: o: T6 \+ b2 x& b0 P├──05 并发编程网络协议与netty
* x' s8 G' |( z5 j/ B5 c( ]| ├──01 forkjoin线程池得原理和应用(1) .mp4 898.41M
6 O( z/ O# V) G1 E| ├──02 网络协议和常用网络工具(1) .mp4 1.03G
! _7 l/ V7 H2 S6 ^$ w: ?| ├──03 Java原生网络编程(1) .mp4 1.30G
1 m7 P4 h9 ]3 O, d; D4 b: z| ├──04 Java原生网络编程2(1) .mp4 1.76G2 n' ^) z6 K3 y
| ├──05 Java原生网络编程3(1) .mp4 1.65G$ A% i9 K8 u7 _, D# m f
| └──06 Netty基础入门和应用(1) .mp4 1.78G
1 K) a v) S& N" p! W5 o├──06 网络协议
/ J5 w: `2 o2 e6 H| ├──01 Netty基础入门和应用2(1) .mp4 1.77G5 _1 n6 E% G1 t* m
| ├──02 Netty基础入门和应用3(1) .mp4 1.57G3 @6 i, T+ F! R$ t$ b& }, C; m- A
| ├──03 Netty基础入门和应用4(1) .mp4 2.27G9 N" J3 ^2 l0 \
| └──04 Netty进阶和实战(1) .mp4 1.29G
8 C) z# n& q Z, p! A4 Z├──07 网络协议与Netty 0 c0 e, y j0 `, y' k; i2 Q
| ├──01 Netty进阶和实战2(1) .mp4 1.64G. l. N# f/ F; o9 k" H
| ├──02 Netty进阶和实战3(1) .mp4 1.89G: }8 f0 Z. [* H$ `+ h' x
| ├──03 Linux和JDK对网络通信的实现(1) .mp4 1.13G- }3 s% E+ z: o) ~0 {. m* v
| ├──04 Linux和JDK对网络通信的实现2(1) .mp4 1.67G" s- J e4 g1 ~
| ├──05 Linux和JDK对网络通信的实现3(1) .mp4 1.36G3 Q9 p2 \5 W# a# k7 `% p6 u/ X
| ├──06 Linux和JDK对网络通信的实现4(1) .mp4 1.91G/ R: @8 {, F' C: x6 p4 a
| └──07 Netty源码解析(1) .mp4 1.96G
% J% y: ^8 g" W) l├──08 网络协议与NettySpring源码
- [* i- e W) n, q% j7 z| ├──01 Netty源码解析2(1) .mp4 2.03G. v$ d7 H9 h% l" f! a# m6 W) c* I9 @
| ├──02 Netty源码解析3(1) .mp4 1.82G
6 h2 g% P C v. I( ]8 T! X| ├──03 Netty源码解析4(1) .mp4 1.73G6 B2 d6 ?' n7 N7 e! ?
| ├──04 Netty源码解析5(1) .mp4 1.49G" U; k0 r& y; O; `
| └──05 spring源码编译和xml解析(1) .mp4 2.00G
5 w* x+ {# W+ X a( p' R├──09 Spring源码 * W2 U0 N$ O. ]
| ├──01 BeanDefinition和默认标签、自定义标签解析(1) .mp4 1.89G" Z6 ^- R e' W" u! G
| ├──02 component-scan标签解析和bean实例化初探(1) .mp4 1.98G
8 t/ w& @& H1 y| ├──03 BeanPostProcessor和Bean实例化初探(1) .mp4 2.07G D5 N, R9 d! p3 `" G/ b5 r
| └──04 bean的实例化和注解的收集(1) .mp4 2.11G) w; Y. w! b% y g. w3 T
├──10 Spring源码 ' L2 ?( z8 O; O; l1 N8 M( K7 g# B
| ├──1 @Autowired@PostConstruct@PreDestroy注解(1) .mp4 1.95G
- h! [4 t, X' B| ├──2 spring中循环依赖详解(1) .mp4 1.90G. ?, V6 K/ T8 a9 b5 D! y5 a
| └──3 spring中配置文件解析和Environment对象 .mp4 2.11G
8 y7 |7 u0 b3 E6 C: j├──11 spring源码
2 h# V. C3 {3 E; Q3 s0 a3 E| └──自定义scope和factoryBean接口(1) .mp4 2.08G
" O. C% {2 M! Z2 V- N% C├──12 Spring源码
" i4 g4 R! H0 |4 n| ├──1 ConfigurationClassPostProcessor类源码(1) .mp4 2.07G0 y- G a, s3 f, L! M
| ├──2 ConfigurationClassPostProcessor类源码2(1) .mp4 2.05G
# F5 r9 Y B) k7 S6 F9 \! l% v| ├──3 spring的实战代码案例1及AOP基础 .mp4 2.17G( z3 s& h. D, v4 W0 \9 V F- D
| ├──4 动态代理和AOP的初见 .mp4 2.05G
8 x! Z0 Q/ J; H& t6 K| └──5 代理的生成和链式调用流程 .mp4 2.34G y% w9 v% c. B. U& V' V* A% ?
├──13 Spring源码 $ K3 d' p( F0 Y# D
| ├──1 链式调用过程和AOP周边 .mp4 2.37G
& M3 Q& Z. D% J! P, F h| ├──2 spring的实战代码案例2之巩固AOP .mp4 2.39G" Z6 U$ A* K; \; x/ U+ P
| ├──3 spring的事务切面精讲1 .mp4 2.11G
1 k' X+ A( n h- C; u| └──4 spring的事务传播属性精讲 .mp4 2.26G
0 n3 w7 ]/ b- J, E7 P├──14 Spring源码
7 s# ?8 x9 h# O| ├──1 spring的事务传播属性精讲 .mp4 2.22G
; u. Q5 S7 r/ z& r| ├──2 缓存切面和异步切面 .mp4 2.32G* F" X+ x/ p0 v: s% k- J
| ├──3 缓存框架和springmvc零配置原理 .mp4 2.35G
3 ]* h! H6 c! W5 M| ├──4-1springmvc中请求的调用流程 .mp4 735.32M8 J, _% P- E3 _4 b- x- B# v
| ├──4-2 springmvc中请求的调用流程 .mp4 1.42G
7 y$ l: G0 y- r7 B7 N| └──5 JSON参数解析和视图响应 .mp4 2.08G0 H8 _8 R3 F1 O" m& ^8 ?
├──15 Spring源码mybatis
! F* T8 @4 Q. z! |5 z| ├──2 异常处理、拦截器和跨域问题 .mp4 2.43G
; z' o' a7 }( q9 X- ] N7 W| ├──3 springmvc实战、spring总流程归档 .mp4 2.24G
' D& ?+ T; X# y| ├──4 spring总流程归档 .mp4 2.15G
; Z) ?1 j( w/ i: `| ├──5 MyBatis开发重点知识 .mp4 1.02G
4 ~4 R4 u0 R6 v6 P2 \ l| ├──6 mybatis缓存使用和xml解析源码 .mp4 2.12G9 ~+ [* P0 W/ V C
| └──7 MyBatis开发重点知识 .mp4 856.80M) S0 R# w5 T+ m
├──16 MyBatis
3 G0 _3 e; A/ L| ├──1 全局xml解析和mapper中sql的解析 .mp4 2.15G
. Z8 e @( q* X1 _ s9 D3 `" Z# _| ├──2 SQL的执行之Executor组件 .mp4 2.24G+ D2 j- Y7 A& y
| ├──3 StatementHandler和ResultSetHandler组件 .mp4 2.30G
: K6 H( G O3 J8 Z1 j5 w3 `/ `$ }| ├──4 mybatis中的缓存原理和懒加载原理 .mp4 2.24G
; w9 t4 p5 k$ T4 Y3 T( || ├──5 mybatis的plugin和跟spring的整合 .mp4 2.00G
! J& {4 x% D9 i' W| └──6 mybatis跟spring整合自定义分页等插件原理 .mp4 2.17G% H$ V- O0 A W! R( Y! @
├──17 MySQL
6 q+ C9 H# T6 I' k| ├──1 自定义分页等插件及mybatis复习 .mp4 2.20G, h0 d4 G2 V; Q) I/ v8 q: c
| ├──2 全盘了解MySQL .mp4 2.36G
* Z* S2 ]2 g b! Z% p* _| ├──3 MySQL中表设计和数据类型优化 .mp4 2.06G
* E3 Z3 Y) D/ T; z/ B0 S% ^| └──4 高性能索引(一) .mp4 1.77G2 _) b0 A) m J/ F+ T3 Y Y( w
├──17 分布式常见场景解决方案实战MongoDB进阶 6 k/ C& `4 g8 A3 ~( d! h
| ├──1 session共享与单点登陆实战 .mp4 2.20G
U, V5 k$ O1 T7 I% ?+ j| ├──2 分布式任务调度实战 .mp4 2.36G$ R5 H* ~! B: T5 J }% t1 a/ r
| ├──3 MongoDb综 .mp4 2.06G
* S; j( h0 p7 r5 U5 q| └──4 MongoDb快速入门 .mp4 1.77G" S9 C( B, D G# }/ p
├──18 MongoDB进阶
. C9 G* ^, p8 ?7 y5 x0 ^| ├──1 MongoDb查询进阶- .mp4 2.26G
; Y1 f6 s& S( k; J# u- F+ F( d4 \| └──2 MongoDb操作进阶- .mp4 2.26G0 b8 S8 m: ^2 ?) i' x, w
├──18 MySQL ) D- S4 i" m9 E1 ^7 l5 D
| ├──1 高性能索引(二) .mp4 651.40M
1 O) u2 K' q- w8 q| └──2 高性能索引(三) .mp4 2.26G
9 L8 [: F/ B3 |) k- z. f├──19 MongoDB进阶spring源码分析 / x& g z1 s! g: \" D6 f, [
| └──1 MongoDb高级进阶 .mp4 1.97G
8 E+ }# E% S$ V- m( a7 e├──19 MySQL
& r. c, z# v; C, Y. {| ├──1 MySQL性能优化(一) .mp4 1.97G
8 H9 \& a3 f; W( o; w0 [| ├──2 MySQL性能优化(二) .mp4 2.15G
4 S9 U; f; o4 A' d| ├──3 MySQL的底层执行原理(一) .mp4 1.92G
& @# K @2 S4 F2 G| └──4 MySQL的底层执行原理(二) .mp4 1.81G$ p/ }/ Y0 p# P: a# }( ]6 n
├──20 MySQL ! m- ~7 }3 \3 b1 Z7 [. T1 O; X
| ├──1 MySQL的底层执行原理(三) .mp4 1.67G) [/ ?( A# E$ q+ V) ]9 u0 z! w
| └──2 InnoDB引擎底层解析 .mp4 1.69G! b0 C2 @) P+ h
├──21 MySQL . x8 G5 K' ^" Z, l2 j$ U
| ├──1 InnoDB引擎底层解析 .mp4 967.41M. O. B/ z0 P( q" C( W' d( r
| ├──2 事务的原理和MVCC .mp4 806.35M$ G& W; W4 r2 s+ V) q
| ├──3 事务的原理和MVCC(二) .mp4 789.24M
" ?5 v) V7 Y- k6 b7 e' Z; p$ K| └──4 MySQL中的锁、面试题和实战那些事 .mp4 795.23M( c5 ^4 @. C& C7 X
├──21 spring5源码分析
+ a! J% [8 _9 Y' Y% c: B| ├──1 循环依赖原理和Bean实例化大流程梳理- .mp4 1.75G& u3 ]5 k; t/ I& A
| └──2 @Bean@Import和bean的多例作用域- .mp4 1.55G) }/ N: K/ `8 O. k4 }
├──22 MySQLRocketMQ - l7 ?* n) e1 K+ \
| ├──1 MySQL中的锁、面试题和实战那些事(二)- .mp4 2.08G
' u& @( D5 ]4 L7 Y| ├──2 RocketMQ基础篇(上)- .mp4 1.90G
" T6 @: n+ @: \8 P| ├──3 RocketMQ基础篇(下)- .mp4 2.39G
5 K8 u% {% s, F6 G| └──4 RocketMQ内部机制-存储设计- .mp4 2.07G
2 i3 g: X$ r. ^- k% D, ?├──23 RocketMQ
* V- g$ l! ]2 ?9 e. M d4 p| ├──1 RocketMQ内部机制-高可用机制- .mp4 2.00G5 l- r- F( Q/ z9 r# ]5 y9 Z/ A
| └──2 RocketMQ实战-异步结构与流量削峰- .mp4 2.15G
% S. r% F* M/ x* l├──24 RocketMQ
" W# _0 a4 H- L9 R| ├──1 RocketMQ实战-限时订单与分布式事务- .mp4 2.24G
0 D( |& l) o$ v/ N- T| ├──2 RocketMQ源码分析-整体架构与NameServer- .mp4 2.13G5 Z! d% _; j: x9 Q9 S! N4 C+ q
| ├──3 RocketMQ源码分析-Producer与Store- .mp4 2.02G' C5 `( T0 d7 f5 ]4 f' u" @0 l8 i
| └──4 RocketMQ源码分析-Consumer- .mp4 2.05G, L6 d, t0 M' Q0 U8 _' _1 T
├──25 Dubbo
' G- n- S: b* n5 E3 Q8 S| ├──1 Dubbo源码探析--服务的暴露与消费过程- .mp4 2.02G
4 j0 B8 @! O* x3 j; l! v| └──2 Dubbo源码探析--服务的发布订阅过程- .mp4 2.02G" Z- ~1 I/ O1 o; t6 G) M/ _: j
├──回顾
$ e. m; d! i; V! h0 k/ u| ├──07 网络协议与Netty - c0 S" ^' e. v4 f
| ├──08 Netty高级进阶
6 _( c8 c, l4 C: X7 `0 Y( ?| ├──09 Tomcat系统进阶 + f4 _0 X {" z, p; S* M7 v
| ├──13 Spring源码
! A- R) j3 I* U4 S# [6 O2 D| ├──14 Spring源码 0 o3 F/ n0 W5 _8 Y1 N! n4 E& w, [
| ├──15 Spring源码
4 L3 }- M- O3 d: R; ^& }8 G# R| └──16 Redis高性能缓存数据库分布式常见场景解决方案实战
! s8 ~! ]# B4 \- h├──回顾$ \' X* J, U/ {" |$ E% q
| ├──07 网络协议与Netty
5 n9 n; o& v! `. B| | ├──02 深入学习Netty组件(1)- .mp4 623.23M9 P& H& P6 I1 n, J
| | ├──03 TCP粘包,半包问题和Netty编解码器框架(1)- .mp4 1.13G3 p" Y' a, p# S& X9 j
| | ├──04 序列化问题、实现UDP通信(1)- .mp4 1.67G
" q/ R" G( t& z| | ├──05 服务器推送技术-轮询、SSE和WebSocket(1)- .mp4 1.36G
1 Y* x+ A d ` K2 p4 X| | ├──06 基于Netty的WebSocket通信(1)- .mp4 1.91G+ ?+ ^0 z8 f! h# O/ G9 j
| | └──07 基于Netty实现自己的通信框架(1)- .mp4 1.96G
) z: Z( x( b i* ]8 J" v$ ^/ D* q| ├──08 Netty高级进阶 3 E) q" D. u8 O6 [5 J0 @
| | ├──01 BIO和NIO的源码解析(1)- .mp4 2.03G
" ?* p% _! F" c) Y| | ├──02 Netty源码解析(一)(1)- .mp4 1.82G
# \2 e2 T J {5 \| | ├──03 Netty源码解析(二)(1)- .mp4 1.73G7 _ T P H' B7 j& T: `; |
| | ├──04 操作系统网络底层原理和源码(一)(1)- .mp4 1.49G# G$ {( v; \4 u
| | └──05 操作系统网络底层原理和源码(二)(1)- .mp4 2.00G/ j' D1 a3 F" W( q9 k( x1 b ^) d, m
| ├──09 Tomcat系统进阶 + ?/ _5 O7 M) M* k1 u' c
| | ├──01 Tomcat源码解读(1) .mp4 1.98G1 H2 P4 m, f* W
| | └──02 Tomcat架构解析(1) .mp4 1.89G
p D2 f- \( k0 Y5 Y| ├──13 Spring源码
/ z8 b7 M: M( c$ Y3 X2 f1 A| | ├──1 数据库事务和spring如何管理事务(1)- .mp4 2.37G
% {: J0 N' G+ P4 d0 `5 u6 c| | ├──2 spring事务的传播属性和隔离级别源码讲解- .mp4 2.39G( S9 U9 e8 Y* [/ v/ Y
| | ├──3 事务隔离级别 cacheable缓存切面和异步切面- .mp4 2.11G' F3 U- v6 S" H( n
| | └──4 spring的实战代码案例2- .mp4 2.26G
# \# T" J$ q: ]6 \, Z- @( v3 v| ├──14 Spring源码
" Y6 L5 a2 }1 S1 q2 @3 Z3 U0 l; R| | ├──1 零xml配置整合springmvc和嵌入式tomcat- .mp4 2.22G
. {( e7 e* U+ C| | ├──2 springmvc请求响应核心调用流程和过滤器- .mp4 2.32G
5 J/ S: C" v3 I| | ├──3 特殊参数解析返回值解析视图渲染- .mp4 2.35G) ~) @. `' J$ v' S$ u* V2 x
| | ├──4 spring&springmvc大总结- .mp4 735.32M
( L5 o" C% Z# V1 H| | └──5 spring&springmvc大总结- .mp4 1.42G
" G5 h& H% b5 q| ├──15 Spring源码
1 `2 ~( w- s6 b3 d/ || | ├──1 静态视图、异常处理和拦截器- .mp4 2.23G
/ Y& E0 p5 [0 |" i m| | ├──2 搞定RocketMQ消息存储及事务- .mp4 2.43G9 d) z6 U/ y# W, E% s
| | ├──3 主从同步机制和与Spring整合- .mp4 2.24G
& ^5 y8 i, {( T, K5 a| | ├──4 RocketMQ限时订单实战- .mp4 2.15G, Y: A: s0 {- a9 l0 i
| | ├──5 RocketMQ源码解析- .mp4 1.02G% c6 n6 Q1 ]5 d! d* w
| | ├──6 Redis从入门到狂澜- .mp4 2.12G+ B/ s" i+ f) p, b7 ?: ]
| | └──7 RocketMQ源码解析- .mp4 856.80M
8 X7 O2 ] z$ @% e- ^1 z| ├──16 Redis高性能缓存数据库分布式常见场景解决方案实战
+ H0 i. ~1 [# m8 v6 d! S+ v| | └──1 BAT常见Redis场景设计实战- .mp4 2.15G
. T& Y* H# n) n$ [1 N| ├──3 spring的实战代码案例1(1)- .mp4 2.17G
7 m* u9 L9 ~3 J8 v b| ├──4 aop入口及aop中的各种advice和advisor(1)- .mp4 2.05G
* \+ _6 U! [0 s+ r0 u( Y# B* F( T9 `| └──5 AOP链式调用过程和cglib动态代理(1)- .mp4 2.33G
+ Z9 r9 f( G7 e├──资料 ; h' a2 C2 W% o) u
| ├──3.16 .zip 1.74G
- k V; S+ g9 Y. Q& W8 ]* M| ├──5.11 .zip 173.87M; R6 B/ @; m, S
| └──资料(Java-vip) .zip 585.04M2 ^. F7 a7 h" H" s0 m
├──Java高级进阶面试题目_享学课堂 .pdf 3.93M
: X! W0 j3 ^' P- |├──第三期课程(Java-vip) .zip 1.46G4 \& g" ]" J* _2 m$ O8 V D: y
└──享学首创年薪80W+对标P7岗架构师成长路线V7.0 .png 1.81M) l- G8 U& W: n D0 C' Y
( ]7 E* M$ r% y0 w9 ?
# T! E4 m5 v' r) {) R; E# e4 P: w( F% e! C6 o: M. q. g
永久至尊VIP回复即可下载学习,非至尊VIP暂不支持下载此资源!
5 [( ^6 U( d. I# Z: T$ y2 V3 R3 z
; [' r" r' X5 ]$ g9 @% u2 X5 X
, Q' j: r) H. L6 N7 j% k |