Added 3 comprehensive interview documents covering Netty and Java NIO: **1. Netty Core Principles (Netty核心原理.md)** - Core components: Channel, EventLoop, ChannelPipeline, ByteBuf - Reactor threading model (single/multi-threaded, master-slave) - ByteBuf vs Java NIO ByteBuffer - Zero-copy implementation (4 approaches) - ChannelPipeline and ChannelHandler - TCP sticky/unpacking problem solutions - Heartbeat mechanism **2. Java NIO Core Principles (Java NIO核心原理.md)** - NIO vs BIO comparison - Three core components: Channel, Buffer, Selector - Selector multiplexing mechanism - Channel vs Stream differences - Buffer core attributes and usage - Non-blocking I/O implementation - Zero-copy with transferTo and MappedByteBuffer **3. Netty Practice Scenarios (Netty实战场景.md)** - High-performance RPC framework design - WebSocket server implementation - Million-connection IM system architecture - Memory leak detection and resolution - Graceful shutdown implementation - Heartbeat and reconnection mechanisms Each document includes: - Detailed problem descriptions - Complete code examples (Java) - Architecture diagrams - Best practices - Performance optimization tips - P7-level bonus points Total: 3 documents, covering: - Theoretical foundations - Practical implementations - Production scenarios - Performance tuning - Common pitfalls Suitable for backend P7 interview preparation. Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
236 lines
6.9 KiB
JSON
236 lines
6.9 KiB
JSON
{
|
|
"main": {
|
|
"id": "cfc31b234f9d0e88",
|
|
"type": "split",
|
|
"children": [
|
|
{
|
|
"id": "32f5a06066909fa8",
|
|
"type": "tabs",
|
|
"children": [
|
|
{
|
|
"id": "fcbc762a80282002",
|
|
"type": "leaf",
|
|
"state": {
|
|
"type": "markdown",
|
|
"state": {
|
|
"file": "questions/02-数据库/MyBatis核心原理.md",
|
|
"mode": "source",
|
|
"source": false
|
|
},
|
|
"icon": "lucide-file",
|
|
"title": "MyBatis核心原理"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"direction": "vertical"
|
|
},
|
|
"left": {
|
|
"id": "276b96a5bbc9d368",
|
|
"type": "split",
|
|
"children": [
|
|
{
|
|
"id": "2374cad907aa10ed",
|
|
"type": "tabs",
|
|
"children": [
|
|
{
|
|
"id": "16a7ce8de420dd10",
|
|
"type": "leaf",
|
|
"state": {
|
|
"type": "file-explorer",
|
|
"state": {
|
|
"sortOrder": "alphabetical",
|
|
"autoReveal": false
|
|
},
|
|
"icon": "lucide-folder-closed",
|
|
"title": "文件列表"
|
|
}
|
|
},
|
|
{
|
|
"id": "d44f4fc7eab3f4fb",
|
|
"type": "leaf",
|
|
"state": {
|
|
"type": "search",
|
|
"state": {
|
|
"query": "",
|
|
"matchingCase": false,
|
|
"explainSearch": false,
|
|
"collapseAll": false,
|
|
"extraContext": false,
|
|
"sortOrder": "alphabetical"
|
|
},
|
|
"icon": "lucide-search",
|
|
"title": "搜索"
|
|
}
|
|
},
|
|
{
|
|
"id": "facb2114dd375ef7",
|
|
"type": "leaf",
|
|
"state": {
|
|
"type": "bookmarks",
|
|
"state": {},
|
|
"icon": "lucide-bookmark",
|
|
"title": "书签"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"direction": "horizontal",
|
|
"width": 300
|
|
},
|
|
"right": {
|
|
"id": "302ba9ccf0f34d23",
|
|
"type": "split",
|
|
"children": [
|
|
{
|
|
"id": "c307a3a357cfa8f6",
|
|
"type": "tabs",
|
|
"children": [
|
|
{
|
|
"id": "c4d3c0b53796add6",
|
|
"type": "leaf",
|
|
"state": {
|
|
"type": "backlink",
|
|
"state": {
|
|
"file": "questions/02-数据库/MyBatis核心原理.md",
|
|
"collapseAll": false,
|
|
"extraContext": false,
|
|
"sortOrder": "alphabetical",
|
|
"showSearch": false,
|
|
"searchQuery": "",
|
|
"backlinkCollapsed": false,
|
|
"unlinkedCollapsed": true
|
|
},
|
|
"icon": "links-coming-in",
|
|
"title": "MyBatis核心原理 的反向链接列表"
|
|
}
|
|
},
|
|
{
|
|
"id": "8767022e398a069a",
|
|
"type": "leaf",
|
|
"state": {
|
|
"type": "outgoing-link",
|
|
"state": {
|
|
"file": "questions/02-数据库/MyBatis核心原理.md",
|
|
"linksCollapsed": false,
|
|
"unlinkedCollapsed": true
|
|
},
|
|
"icon": "links-going-out",
|
|
"title": "MyBatis核心原理 的出链列表"
|
|
}
|
|
},
|
|
{
|
|
"id": "fd81199af1061e2b",
|
|
"type": "leaf",
|
|
"state": {
|
|
"type": "tag",
|
|
"state": {
|
|
"sortOrder": "frequency",
|
|
"useHierarchy": true,
|
|
"showSearch": false,
|
|
"searchQuery": ""
|
|
},
|
|
"icon": "lucide-tags",
|
|
"title": "标签"
|
|
}
|
|
},
|
|
{
|
|
"id": "14164e0847f558c7",
|
|
"type": "leaf",
|
|
"state": {
|
|
"type": "all-properties",
|
|
"state": {
|
|
"sortOrder": "frequency",
|
|
"showSearch": false,
|
|
"searchQuery": ""
|
|
},
|
|
"icon": "lucide-archive",
|
|
"title": "添加笔记属性"
|
|
}
|
|
},
|
|
{
|
|
"id": "90b517de1aa00c75",
|
|
"type": "leaf",
|
|
"state": {
|
|
"type": "outline",
|
|
"state": {
|
|
"file": "questions/02-数据库/MyBatis核心原理.md",
|
|
"followCursor": false,
|
|
"showSearch": false,
|
|
"searchQuery": ""
|
|
},
|
|
"icon": "lucide-list",
|
|
"title": "MyBatis核心原理 的大纲"
|
|
}
|
|
},
|
|
{
|
|
"id": "c33e9c75c2a885af",
|
|
"type": "leaf",
|
|
"state": {
|
|
"type": "git-view",
|
|
"state": {},
|
|
"icon": "git-pull-request",
|
|
"title": "Source Control"
|
|
}
|
|
}
|
|
],
|
|
"currentTab": 5
|
|
}
|
|
],
|
|
"direction": "horizontal",
|
|
"width": 300
|
|
},
|
|
"left-ribbon": {
|
|
"hiddenItems": {
|
|
"switcher:打开快速切换": false,
|
|
"graph:查看关系图谱": false,
|
|
"canvas:新建白板": false,
|
|
"daily-notes:打开/创建今天的日记": false,
|
|
"templates:插入模板": false,
|
|
"command-palette:打开命令面板": false,
|
|
"bases:新建数据库": false,
|
|
"obsidian-git:Open Git source control": false
|
|
}
|
|
},
|
|
"active": "16a7ce8de420dd10",
|
|
"lastOpenFiles": [
|
|
"10-中间件/Netty实战场景.md",
|
|
"10-中间件/Java NIO核心原理.md",
|
|
"10-中间件/Netty核心原理.md",
|
|
"10-中间件",
|
|
"16-LeetCode Hot 100/从前序与中序遍历序列构造二叉树.md",
|
|
"16-LeetCode Hot 100/路径总和.md",
|
|
"16-LeetCode Hot 100/对称二叉树.md",
|
|
"16-LeetCode Hot 100/翻转二叉树.md",
|
|
"16-LeetCode Hot 100/二叉树的最大深度.md",
|
|
"16-LeetCode Hot 100/二叉树的中序遍历.md",
|
|
"16-LeetCode Hot 100/最小栈.md",
|
|
"16-LeetCode Hot 100/除自身以外数组的乘积.md",
|
|
"16-LeetCode Hot 100/最长连续序列.md",
|
|
"16-LeetCode Hot 100/完全平方数.md",
|
|
"16-LeetCode Hot 100/最大正方形.md",
|
|
"16-LeetCode Hot 100/柱状图中最大的矩形.md",
|
|
"16-LeetCode Hot 100/单词搜索.md",
|
|
"16-LeetCode Hot 100/子集.md",
|
|
"16-LeetCode Hot 100/最长回文子串.md",
|
|
"16-LeetCode Hot 100/括号生成.md",
|
|
"16-LeetCode Hot 100/删除链表的倒数第N个结点.md",
|
|
"16-LeetCode Hot 100/电话号码的字母组合.md",
|
|
"16-LeetCode Hot 100/盛最多水的容器.md",
|
|
"16-LeetCode Hot 100/三数之和.md",
|
|
"16-LeetCode Hot 100/无重复字符的最长子串.md",
|
|
"16-LeetCode Hot 100/两数相加.md",
|
|
"16-LeetCode Hot 100",
|
|
"00-项目概述/项目概述.md",
|
|
"00-项目概述",
|
|
"questions/15-简历面试",
|
|
"questions/14-Web3与区块链",
|
|
"12-面试技巧",
|
|
"08-算法与数据结构",
|
|
"questions/13-Golang语言",
|
|
"questions/12-面试技巧",
|
|
"questions/11-运维"
|
|
]
|
|
} |