{ "java": { "node_id": "java-65faac79c55243fba87e6e67b3a45e31", "keywords": [], "children": [ { "Java初阶": { "node_id": "java-4954429a60de4bb6873ccae89d58bb2d", "keywords": [], "children": [ { "Java概览": { "node_id": "java-214cab4de0e9459393d5f0fde32f2ce0", "keywords": [], "children": [ { "编辑Java源代码": { "node_id": "java-4744df73a92b434593040c21501362c3", "keywords": [ "输出", "main", "程序入口" ], "children": [] } }, { "编译Java程序": { "node_id": "java-3c458ea864a540468e0b10cd82df0662", "keywords": [ "hello world", "app" ], "children": [] } }, { "Java的运行机制": { "node_id": "java-2af8b309ed874ad6bd06c6f2363d098d", "keywords": [ "runtime", "运行机制" ], "children": [] } }, { "根据CLASSPATH环境变量定位类": { "node_id": "java-4ddfc05dbbe54300905f404c1ed1b4f9", "keywords": [ "classpath" ], "children": [] } }, { "Maven基础": { "node_id": "java-66561dccfcfc4dbba2ff57b11d548146", "keywords": [ "maven", "构建" ], "children": [] } } ] } }, { "Java的基本语法": { "node_id": "java-f8b97f6cc56d4dc1a761e4a19ed41c10", "keywords": [], "children": [ { "Java的基本语法格式": { "node_id": "java-964a698a506e45ce8d6976667d80f479", "keywords": [ "语法", "Hello World" ], "children": [] } }, { "Java中的注释": { "node_id": "java-406f21ba8f6a473d932df4ddbf8b72a0", "keywords": [ "注释 " ], "children": [] } }, { "Java中的关键字": { "node_id": "java-e16c7862e7cc4feeb54cf6a42dd65cef", "keywords": [ "关键字", "keyword" ], "children": [] } } ] } }, { "Java中的变量与常量": { "node_id": "java-af40aff3bc1a4ad983412b9bf0b593ad", "keywords": [], "children": [ { "变量的定义": { "node_id": "java-cf7105c4e7ad45b4a69b63eb519a2782", "keywords": [ "变量", "赋值", "定义" ], "children": [] } }, { "变量的数据类型": { "node_id": "java-f6d0c186d3bc470c85f676ba83af9979", "keywords": [ "变量", "类型" ], "children": [] } }, { "Java中的常量": { "node_id": "java-ca6c820c18884a02af4697c461e2b488", "keywords": [ "常量", "定义", "变量", "final" ], "children": [] } }, { "变量的作用域": { "node_id": "java-67ba0b3e5c7f409ab8b6406a399e9469", "keywords": [ "常量", "定义", "作用域" ], "children": [] } } ] } }, { "Java中的运算符": { "node_id": "java-af3e87a1ff564216bf8a629abf88927d", "keywords": [], "children": [ { "比较运算符": { "node_id": "java-f81239ab0b894bfcbf6624e26a8b7feb", "keywords": [ "大于", "小于", "等于", "比较", "不等于" ], "children": [] } }, { "逻辑运算符": { "node_id": "java-70daa526bab0471faa4f01148acfbd46", "keywords": [ "逻辑运算符", "组合", "优先级" ], "children": [] } }, { "算术运算符": { "node_id": "java-f8d2cf0514c54c7782ca728058055b67", "keywords": [ "算术运算符", "优先级" ], "children": [] } } ] } }, { "选择结构语句": { "node_id": "java-64d93237ebeb4e25a7da69b46e5b0382", "keywords": [], "children": [ { "if条件语句": { "node_id": "java-6593228b35c043ffb4616789d1b13d18", "keywords": [ "条件", "控制", "分支", "if" ], "children": [] } }, { "switch条件语句": { "node_id": "java-f96966e0c35949d39d1eab17805f3104", "keywords": [ "条件", "控制", "分支", "switch" ], "children": [] } } ] } }, { "循环结构语句": { "node_id": "java-6852746f95ce495e87d3d241307207d7", "keywords": [], "children": [ { "dowhile循环": { "node_id": "java-71d8079f28fb4fde91bc1a3156ac1f0f", "keywords": [ "循环", "do", "while" ], "children": [] } }, { "for循环语句": { "node_id": "java-e9474b337f4d4dee8fc52adbdf9a8046", "keywords": [ "循环", "for" ], "children": [] } } ] } }, { "集合": { "node_id": "java-877b5d06fd904a0d8cc08f8c47b1e3c0", "keywords": [], "children": [ { "Collection接口": { "node_id": "java-218e8bd352484f8fa11ac90ecbbc905c", "keywords": [ "集合", "collection" ], "children": [] } }, { "List接口": { "node_id": "java-348f9c1558564ec89d650d09a3624c51", "keywords": [ "集合", "list", "列表" ], "children": [ { "List接口简介": { "keywords": [], "children": [], "node_id": "java-a65c6affd9d24c05aac81eb991fa544f", "title": "List接口简介" } }, { "ArrayList集合": { "keywords": [], "children": [], "node_id": "java-e617fbd29e3e416c980229a8f23ae0a7", "title": "ArrayList集合" } }, { "LinkedList集合": { "keywords": [], "children": [], "node_id": "java-8de89dae93b345ed947abe5cf9f9d572", "title": "LinkedList集合" } } ] } }, { "Collection集合遍历": { "node_id": "java-bdc0a08e3f6a4bf0b0de6b9ea01625d1", "keywords": [ "集合", "迭代", "iteratable" ], "children": [ { "Iterator遍历集合": { "keywords": [], "children": [], "node_id": "java-71c08f278be9482492f5746259d7fd0c", "title": "Iterator遍历集合" } }, { "foreach遍历集合": { "keywords": [], "children": [], "node_id": "java-16725289376e4ff8ba87f63b82f362bc", "title": "foreach遍历集合" } }, { "JDK 8的forEach遍历集合": { "keywords": [], "children": [], "node_id": "java-33bb9663a9e941c19e0e28bfdc9cfc0c", "title": "JDK 8的forEach遍历集合" } } ] } }, { "Set接口": { "node_id": "java-f772778d75db409cac92cb1ee312cccb", "keywords": [ "集合", "set" ], "children": [ { "Set接口简介": { "keywords": [], "children": [], "node_id": "java-80d1ea8eb29b4d42927df1703fd18027", "title": "Set接口简介" } }, { "HashSet集合": { "keywords": [], "children": [], "node_id": "java-70d9c1df4141440f815dcab59fb5d2fe", "title": "HashSet集合" } }, { "TreeSet集合": { "keywords": [], "children": [], "node_id": "java-5e236f021e0545638e9785a3dde8a870", "title": "TreeSet集合" } } ] } }, { "Map接口": { "node_id": "java-33a934d07e404de8aaea72d55daa3ce9", "keywords": [ "集合", "字典", "map" ], "children": [ { "Map接口简介": { "keywords": [], "children": [], "node_id": "java-d5f0355891b4454f959628df25004459", "title": "Map接口简介" } }, { "HashMap集合": { "keywords": [], "children": [], "node_id": "java-7e4b2b11a68a485e97706575f8a53995", "title": "HashMap集合" } }, { "Map集合遍历": { "keywords": [], "children": [], "node_id": "java-4f293ef4f50f441d8e45935103f4c70f", "title": "Map集合遍历" } }, { "TreeMap集合": { "keywords": [], "children": [], "node_id": "java-90d9396d834d409181104119600f5ced" } }, { "Properties集合": { "keywords": [], "children": [], "node_id": "java-4c352b41a0c1470da4a65df2e237a0c0" } } ] } }, { "Java集合框架": { "node_id": "java-af0bf70f564b4ac68a7fadda69d55086", "keywords": [], "children": [ { "集合接口与实现分离": { "keywords": [], "children": [], "node_id": "java-077624845de241b7b7fc51ff1b596357", "title": "集合接口与实现分离" } }, { "泛型实用方法": { "keywords": [], "children": [], "node_id": "java-22ea8a449e214efdb7d4e7c6207ff976", "title": "泛型实用方法" } } ] } }, { "链表": { "node_id": "java-50c0e10eced549039c49293435e40ef0", "keywords": [ "集合", "链表" ], "children": [] } }, { "数组列表": { "node_id": "java-08a75e2b204c4d638240e4f36401ae0b", "keywords": [ "集合", "ArrayList" ], "children": [] } }, { "散列集": { "node_id": "java-6eb945bfd79f4e3dac367d0e8db88a40", "keywords": [ "集合", "HashSet" ], "children": [] } }, { "树集": { "node_id": "java-4dc2b8d29131460cbcc5bd4e3991ecde", "keywords": [ "集合", "树" ], "children": [] } }, { "映射": { "node_id": "java-bb218b0f20ee4c16bcaa48b535d315ce", "keywords": [ "集合", "映射", "字典" ], "children": [ { "基本映射操作": { "keywords": [], "children": [], "node_id": "java-e5ffd95da6854271921fcd063a8e9474", "title": "基本映射操作" } }, { "更新映射条目": { "keywords": [], "children": [], "node_id": "java-27cbca6c546945238e456fd1402f59b4", "title": "更新映射条目" } }, { "映射视图": { "keywords": [], "children": [], "node_id": "java-f48bf1d3221842f9b45543b1705f870c", "title": "映射视图" } }, { "弱散列映射": { "keywords": [], "children": [], "node_id": "java-ad195243648f4d1b851248f893dbeadd" } }, { "链接散列集与映射": { "keywords": [], "children": [], "node_id": "java-d4b78c6364334984b1c8deea06e6e4d0" } }, { "枚举集与映射": { "keywords": [], "children": [], "node_id": "java-a83f26fffc33412cac3e404b57283586" } }, { "标识散列映射": { "keywords": [], "children": [], "node_id": "java-2f1a04fac2d742e3956e8f633d7fab60" } } ] } }, { "遗留的集合": { "node_id": "java-98b609c0de1544bf955cd3e1996224f7", "keywords": [], "children": [ { "属性映射": { "keywords": [], "children": [], "node_id": "java-192390a65e7749569e55494126db91e6", "title": "属性映射" } }, { "栈": { "keywords": [], "children": [], "node_id": "java-e133d7889d4a4eddbd93fdad42ae04a5", "title": "栈" } }, { "位集": { "keywords": [], "children": [], "node_id": "java-cc16eefb70744aea9126a1b697d20502", "title": "位集" } } ] } }, { "编写equals和hashCode": { "node_id": "java-90cabf0047784e21a0a9b7f00e9384c1", "keywords": [ "判等", "hash", "equals" ], "children": [] } }, { "使用TreeMap": { "node_id": "java-8df541994a114973ad2dd4c0b75ddd36", "keywords": [ "集合", "TreeMap", "字典" ], "children": [] } }, { "使用Properties": { "node_id": "java-f1c333aa7bc841eba4e2f5bb6df4b144", "keywords": [ "属性", "字典", "集合" ], "children": [] } }, { "使用Deque": { "node_id": "java-ec8164100ab240c3b447f3ca9eee34bf", "keywords": [ "集合", "队列" ], "children": [] } } ] } }, { "操作符": { "node_id": "java-4f70d5f63f1547bc882e57f29b2e5531", "keywords": [], "children": [ { "算术操作符": { "node_id": "java-384f969cb93145d28df617f4bcb448ff", "keywords": [ "算术操作符" ], "children": [ { "一元加、减操作符": { "keywords": [], "children": [], "node_id": "java-4bc48dc6ab4246bdb83adbabade26959", "title": "一元加、减操作符" } } ] } }, { "自动递增和递减": { "node_id": "java-a2701de90c2c430bb4613717dad28ea7", "keywords": [ "递增", "递减" ], "children": [] } }, { "关系操作符": { "node_id": "java-acf4c95b6deb4a138fe7076b65db68eb", "keywords": [ "关系运算" ], "children": [ { "测试对象的等价性": { "keywords": [], "children": [], "node_id": "java-16c4fd7348aa467e9127ba633a22a5b1", "title": "测试对象的等价性" } } ] } }, { "逻辑操作符": { "node_id": "java-1383285d96584ec093b1d02f93fe983d", "keywords": [ "逻辑", "布尔", "bool", "boolean" ], "children": [ { "短路": { "keywords": [], "children": [], "node_id": "java-cd873cea5a47486aa325d241d78e65c3", "title": "短路" } } ] } }, { "按位操作符": { "node_id": "java-3bf3d2855fa54c0488d83f1e8ca6e3f8", "keywords": [ "位运算", "bit", "比特" ], "children": [] } }, { "移位操作符": { "node_id": "java-f848b67ebedf465b9020a90a4dea7435", "keywords": [ "位运算", "左移", "右移" ], "children": [] } }, { "三元操作符if-else": { "node_id": "java-a874d6cd73524e4799e7f09a4903815f", "keywords": [ "逻辑", "三元运算符" ], "children": [] } }, { "字符串操作符 + 和 +=": { "node_id": "java-aed19deb463244338daf71891a55b4c1", "keywords": [ "字符串" ], "children": [] } } ] } }, { "控制执行流程": { "node_id": "java-103baafcb24742d4992cc2db595e9a95", "keywords": [], "children": [ { "if-else": { "node_id": "java-d695608ab0484250b9b793667ffb4252", "keywords": [ "流程控制", "if", "else" ], "children": [] } }, { "for": { "node_id": "java-9c8fa6eb2b5a4d7e93adf961c17e052b", "keywords": [ "流程控制", "for", "循环", "foreach" ], "children": [] } }, { "switch": { "node_id": "java-27e3cd1721af45a18a0f73d80db6157c", "keywords": [ "流程控制", "switch" ], "children": [] } }, { "通过异常处理错误": { "node_id": "java-1ee4794ed59f4680b5cd801ced6e26f0", "keywords": [ "异常", "错误", "try", "catch", "finally" ], "children": [ { "概念": { "keywords": [], "children": [], "node_id": "java-22d139aee4b640beaff3f5f983c9f4e8", "title": "概念" } }, { "捕获异常": { "keywords": [], "children": [ { "try块": { "keywords": [], "children": [], "node_id": "java-9483eeb4d68842488b3acbc8c9764322", "title": "try块" } }, { "异常处理程序": { "keywords": [], "children": [], "node_id": "java-34829a03d7b041198477e09029c37f49" } }, { "f?inally子句": { "keywords": [], "children": [], "node_id": "java-27871ba11aeb4aefa542e4ac87620018" } }, { "try-with-Resources语句": { "keywords": [], "children": [], "node_id": "java-20c0416fd93848d182e67ffa2cc67e35" } }, { "分析堆栈轨迹元素": { "keywords": [], "children": [], "node_id": "java-fc4ca42328554153846c7ac13704d030" } } ], "node_id": "java-a2f7a14e5a2743e297ae25d808b6a5aa", "title": "捕获异常" } }, { "创建自定义异常": { "keywords": [], "children": [], "node_id": "java-c2463f0ab5784161a9b3c086ca8f31ff" } }, { "异常说明": { "keywords": [], "children": [], "node_id": "java-c3aea15c0f494a078ffd747a1f3dd271" } }, { "捕获所有异常": { "keywords": [], "children": [ { "栈轨迹": { "keywords": [], "children": [], "node_id": "java-9741356278ec4ecda2af9baddde74e01" } }, { "重新抛出异常": { "keywords": [], "children": [], "node_id": "java-81f1f5af115648338a8ea8d11f2c0ec1" } }, { "异常链": { "keywords": [], "children": [], "node_id": "java-dc3ceecd4a0943dcb4e1e18d0e6131ca" } } ], "node_id": "java-e821208680094805a93e1e6f46bca86d" } }, { "Java标准异常": { "keywords": [], "children": [ { "特例: RuntimeException(运行时异常)": { "keywords": [], "children": [], "node_id": "java-27967b17e29d4855907f199a4172fe9e" } } ], "node_id": "java-cce481b5ed99444e8205d59de0c80d55" } }, { "使用finally进行清理": { "keywords": [], "children": [ { "finally用来做什么": { "keywords": [], "children": [], "node_id": "java-1d8dfbe207ab4ee289783363fabb2eef" } }, { "在return中使用finally": { "keywords": [], "children": [], "node_id": "java-2185abe1d4d947e09953dd9c0b690a30" } }, { "缺憾:异常丢失": { "keywords": [], "children": [], "node_id": "java-5c49dbfd363c4a6da7c3f8b7f4f8e6e3" } } ], "node_id": "java-8cb3b3570df04f34a49497691839c64a" } }, { "构造器": { "keywords": [], "children": [ { "使用构造器执行初始化": { "keywords": [], "children": [], "node_id": "java-f1f617dafd7c4cff9fa6ab53a8c4a24f" } }, { "构造器重载": { "keywords": [], "children": [], "node_id": "java-6774bbb97e27423090f2446f14f370b5" } } ], "node_id": "java-0b5559794c0d42f6b323e0db663d4e20" } }, { "异常匹配": { "keywords": [], "children": [], "node_id": "java-54a2a15979ac4d5db7813bb86d9d3ba4" } }, { "其他可选方式": { "keywords": [], "children": [ { "历史": { "keywords": [], "children": [], "node_id": "java-9fd5d926c8714cb8b533735e2516af3b" } }, { "观点": { "keywords": [], "children": [], "node_id": "java-8adfa2512354498fa87e1272412372a1" } }, { "把异常传递给控制台": { "keywords": [], "children": [], "node_id": "java-c977e83a138c492197e596c052f61901" } }, { "把“受检查异常”转换为“不受检查的异常”": { "keywords": [], "children": [], "node_id": "java-b8e0c52eb6734b78b5903d46f7ed8b8d" } } ], "node_id": "java-fcc8f860a91547a69eb95aa905a36e11" } }, { "异常使用指南": { "keywords": [], "children": [], "node_id": "java-db2eed2dbf644d468f2b83cd15f736d2" } } ] } }, { "函数": { "node_id": "java-ffcf94730fe04ecd92196c684f3496b1", "keywords": [ "函数", "function" ], "children": [] } } ] } }, { "类和接口": { "node_id": "java-dbcdebbc3d584d0797d3bc16ef2191b7", "keywords": [], "children": [ { "类和面向对象": { "node_id": "java-0593e0b9c9f74799a204d697f0db488b", "keywords": [], "children": [] } }, { "抽象类": { "node_id": "java-968fb08ea9294e3c99aab38cbfe916cb", "keywords": [ "面向对象", "抽象类", "接口" ], "children": [] } }, { "接口": { "node_id": "java-1aabc6ccf62b49b4bbcabcd9a03c30a5", "keywords": [ "面向对象", "类型", "接口" ], "children": [] } }, { "匿名类": { "node_id": "java-a999491b97f44593a18e14690efaad34", "keywords": [ "面向对象", "匿名类", "lambda" ], "children": [] } } ] } }, { "IO初步": { "node_id": "java-b9fa688f8fe74e19b6e4b599982a60cc", "keywords": [], "children": [ { "字节流": { "node_id": "java-3ea06f6d049d4c079a88747ffd0cc51e", "keywords": [], "children": [] } }, { "File类": { "node_id": "java-046d129404f14676af135da42fea658b", "keywords": [], "children": [] } } ] } } ] } }, { "Java中阶": { "node_id": "java-fb87e1c12a1e40b0b9efbd01639098f6", "keywords": [], "children": [ { "IO": { "node_id": "java-6205d98db8c64cfaae6dced8c2f96caa", "keywords": [], "children": [ { "流概述": { "node_id": "java-e1c8737089d94cae84ea9ecab09b9448", "keywords": [ "流", "stream", "input", "output" ], "children": [] } }, { "RandomAccessFile": { "node_id": "java-f0e7b123620946dfacb89f7a0c9c1acc", "keywords": [ "随机", "访问", "文件", "file" ], "children": [] } }, { "输入输出流": { "node_id": "java-804ad7f6a5644463a9401eaf318912aa", "keywords": [ "input", "output", "stream", "输入", "输出" ], "children": [ { "输入流": { "keywords": [], "children": [], "node_id": "java-31c61c28f4f14905a0284be89b245dcf", "title": "输入流" } }, { "输出流": { "keywords": [], "children": [], "node_id": "java-de7d542804424ec0986fa6ca0fd2ec45", "title": "输出流" } } ] } }, { "文件输入输出流": { "node_id": "java-278e7dd44bcf4edea9e1fc3cbe2b4b10", "keywords": [ "file", "input", "output", "文件", "输入", "输出", "reader", "writer" ], "children": [ { "FileInputStream类与FileOutputStream类": { "keywords": [], "children": [], "node_id": "java-0aba4828a38347a9b703e7c3ae608530", "title": "FileInputStream类与FileOutputStream类" } }, { "FileReader类与FileWriter类": { "keywords": [], "children": [], "node_id": "java-d95e2c9886a6441d8a2cdf3710d5204e", "title": "FileReader类与FileWriter类" } } ] } }, { "对象序列化": { "node_id": "java-be6c0bba441f4c53bd8a274e2a7cb917", "keywords": [ "序列化", "serialize", "serializable" ], "children": [] } }, { "ZIP压缩输入输出流": { "node_id": "java-379430dd6ef84b66978f07619c063bad", "keywords": [ "zip", "unzip", "input", "output", "stream", "压缩", "解压", "流" ], "children": [ { "压缩文件": { "keywords": [], "children": [], "node_id": "java-2119c3a172d24aab804d8ffaed6ddd18", "title": "压缩文件" } }, { "解压缩ZIP文件": { "keywords": [], "children": [], "node_id": "java-554dc7711b104ed9a80c5a6b7c1489ee", "title": "解压缩ZIP文件" } } ] } }, { "InputStream类型": { "node_id": "java-aef1d1bfefa5418f96794bf66bb8e59c", "keywords": [ "stream", "input", "输入", "流" ], "children": [] } }, { "OutputStream类型": { "node_id": "java-95760417f20e4254b9afca36d12c6059", "keywords": [ "output", "stream", "输出", "流" ], "children": [] } } ] } }, { "使用JDBC操作数据库": { "node_id": "java-1f18d16e22634169bb10c57300d0cbef", "keywords": [], "children": [ { "JDBC概述": { "node_id": "java-e525dd82742940e49b520309333a334e", "keywords": [ "jdbc", "驱动", "database", "driver" ], "children": [ { "JDBC-ODBC桥": { "keywords": [], "children": [], "node_id": "java-5decb41b064a492db20362e136c0b2e2", "title": "JDBC-ODBC桥" } }, { "JDBC技术": { "keywords": [], "children": [], "node_id": "java-e89787459ec64fbeb80a9ba3cc7eac54", "title": "JDBC技术" } }, { "JDBC驱动程序的类型": { "keywords": [], "children": [], "node_id": "java-df3cd40dc360446296cf9c97f3a72e61", "title": "JDBC驱动程序的类型" } } ] } }, { "数据库操作": { "node_id": "java-5343c7cd78b84d08a66ee736c1eb2cc0", "keywords": [ "数据库", "操作", "添加", "修改", "删除", "查询", "事务", "transaction" ], "children": [ { "数据库基础": { "keywords": [], "children": [], "node_id": "java-6217b237af9545cb8ea45e2390827761", "title": "数据库基础" } }, { "数据查询": { "keywords": [], "children": [], "node_id": "java-d836337812bc438a8c527df151870250", "title": "数据查询" } }, { "动态查询": { "keywords": [], "children": [], "node_id": "java-d54f7e1e96ad44d3bf7240f694e2e53c", "title": "动态查询" } }, { "添加、修改、删除记录": { "keywords": [], "children": [], "node_id": "java-f2f1d3facff943e9b169dbb6a43a5004" } }, { "数据库基础知识": { "keywords": [], "children": [ { "什么是数据库": { "keywords": [], "children": [], "node_id": "java-668c52db99de4dad9483809106b38932" } }, { "数据库的种类及功能": { "keywords": [], "children": [], "node_id": "java-70a72823b0534f5e9bc397af6b3674f1" } }, { "SQL语言": { "keywords": [], "children": [], "node_id": "java-93da6e5c26914eb7926261276e4b3d3c" } } ], "node_id": "java-987b58f5cc48422f899ac000d51c5bae" } }, { "向数据库发送SQL语句": { "keywords": [], "children": [], "node_id": "java-a78e2ce00e4a443e9caccf68836c259c" } }, { "处理查询结果集": { "keywords": [], "children": [], "node_id": "java-98f0846a37ce4528b8a44c656cbc1bef" } }, { "顺序查询": { "keywords": [], "children": [], "node_id": "java-10964bbc05c6429aa0a416ffe3d72530" } }, { "模糊查询": { "keywords": [], "children": [], "node_id": "java-bb40f3c631dc4da9a045c47a5a2fcdab" } }, { "预处理语句": { "keywords": [], "children": [], "node_id": "java-d57228f74f1d4a2da114c47357729b28" } } ] } } ] } }, { "NIO": { "node_id": "java-9b64ef6ba2ad4aa6bc8875e178c13fd9", "keywords": [], "children": [ { "NIO概述": { "node_id": "java-79ba209c09a94832a20ec6e6dec55d0c", "keywords": [ "nio" ], "children": [] } }, { "Buffer(缓冲器)": { "node_id": "java-ee223c3171384d6295cbf7d95e8dba61", "keywords": [ "buffer", "缓冲" ], "children": [] } }, { "Channel(通道)": { "node_id": "java-bda5083be04d4d12ad140618cf67331f", "keywords": [ "channel", "通道" ], "children": [] } }, { "字符集和Charset": { "node_id": "java-11ce8b474f544b38bc0908fafa6fb58d", "keywords": [ "字符集", "charset" ], "children": [] } }, { "文件锁": { "node_id": "java-c3509c1f71e24b07ac83752ae3627286", "keywords": [ "file", "文件", "lock", "锁" ], "children": [] } }, { "Path接口": { "node_id": "java-1eb6cdbd7f724f37b39038765ddc2465", "keywords": [ "Paths", "Path", "路径" ], "children": [] } }, { "Files工具类": { "node_id": "java-08085addb1a84f1f9ffb20c893f6bc2c", "keywords": [ "文件", "file" ], "children": [] } } ] } }, { "网络编程": { "node_id": "java-3acf810f7b7a44e9827c1edd5aebde63", "keywords": [], "children": [ { "网络编程基础": { "node_id": "java-b99a081bd1e9444ba7793989c076b3b2", "keywords": [ "网络", "通信", "协议" ], "children": [ { "网络通信协议": { "keywords": [], "children": [], "node_id": "java-a79ddcf9777d4af48bc5a260933a2e82", "title": "网络通信协议" } }, { "IP地址和端口号": { "keywords": [], "children": [], "node_id": "java-37985b5801644ce4a823966c72d8db97", "title": "IP地址和端口号" } }, { "InetAddress": { "keywords": [], "children": [], "node_id": "java-081281446cac46e6ace10be5b85ed596", "title": "InetAddress" } }, { "UDP与TCP协议": { "keywords": [], "children": [], "node_id": "java-2d97da4c84734adc97ef08a8f338bdd0" } } ] } }, { "UDP通信": { "node_id": "java-ad7adbefa9884534b1c2b15e858b26a1", "keywords": [ "network", "udp", "网络" ], "children": [ { "UDP通信简介": { "keywords": [], "children": [], "node_id": "java-0fbfa7442076484683006362f10305cc", "title": "UDP通信简介" } }, { "DatagramPacket": { "keywords": [], "children": [], "node_id": "java-e2a796a931bf4aa7bb204a05d18dd2ca", "title": "DatagramPacket" } }, { "DatagramSocket": { "keywords": [], "children": [], "node_id": "java-c498a7116c9548b283eac0a3bc3e9766", "title": "DatagramSocket" } }, { "UDP网络程序": { "keywords": [], "children": [], "node_id": "java-1d8a509258aa48b99c8870aa2ea2f7da" } }, { "UDP案例——聊天程序": { "keywords": [], "children": [], "node_id": "java-2648409476dd4809aab31299bb47a782" } } ] } }, { "TCP通信": { "node_id": "java-bba8a2e28c33480e8570580098cd91cc", "keywords": [ "network", "tcp" ], "children": [ { "TCP通信简介": { "keywords": [], "children": [], "node_id": "java-0e32134022e94f13a89fc1536e8b7dc9", "title": "TCP通信简介" } }, { "ServerSocket": { "keywords": [], "children": [], "node_id": "java-61d6532c567640bbb369c1880f584d47", "title": "ServerSocket" } }, { "Socket": { "keywords": [], "children": [], "node_id": "java-90bf889f7fc04403aa109f638bb7bb28", "title": "Socket" } }, { "简单的TCP网络程序": { "keywords": [], "children": [], "node_id": "java-c084edbe768a4d43bcf551c5d3b37fa3" } }, { "多线程的TCP网络程序": { "keywords": [], "children": [], "node_id": "java-dcc1f999ffc84bb69344c2a233f516c4" } }, { "TCP案例——文件上传": { "keywords": [], "children": [], "node_id": "java-fcc2a6b66f9a4cbf954d86635df20a8a" } } ] } }, { "Java的基本网络支持": { "node_id": "java-060dcdef58434de8b4d1711b5eca7dbe", "keywords": [ "network" ], "children": [ { "使用URLDecoder和URLEncoder": { "keywords": [], "children": [], "node_id": "java-a5ada59a43024cd080ed2a7ad6ba8bb7", "title": "使用URLDecoder和URLEncoder" } }, { "URL、URLConnection和URLPermission": { "keywords": [], "children": [], "node_id": "java-9042eac8712642c98c5fc9e4a5165dc0", "title": "URL、URLConnection和URLPermission" } } ] } }, { "使用代理服务器": { "node_id": "java-b1848e5682bc42e485c839ac68bd852b", "keywords": [ "network", "proxy" ], "children": [ { "直接使用Proxy创建连接": { "keywords": [], "children": [], "node_id": "java-b5efe86ed01b464799fc32edc3e2862f", "title": "直接使用Proxy创建连接" } }, { "使用ProxySelector自动选择代理服务器": { "keywords": [], "children": [], "node_id": "java-bcc6e1c8fbe248278f3d55e61f282ec8", "title": "使用ProxySelector自动选择代理服务器" } } ] } }, { "Java 11标准化的HTTP Client": { "node_id": "java-3d3197e6f25543b88b083186ce2ec427", "keywords": [ "websocket", "get", "post", "delete", "put", "请求" ], "children": [ { "发送同步GET请求": { "keywords": [], "children": [], "node_id": "java-f6d4f9e683b84e53ad0b1c5c2c9c4988", "title": "发送同步GET请求" } }, { "发送带请求体的请求": { "keywords": [], "children": [], "node_id": "java-f1d63ba6664747239aa3b84f697b1a84", "title": "发送带请求体的请求" } }, { "发送异步请求": { "keywords": [], "children": [], "node_id": "java-d0d1295efbec421b87d66ca663629d36", "title": "发送异步请求" } }, { "WebSocket客户端支持": { "keywords": [], "children": [], "node_id": "java-c43622cc970e4f159433f441d9b3aeec" } }, { "基于WebSocket的多人实时聊天": { "keywords": [], "children": [], "node_id": "java-b6be48e26bf5490f8337daad17059e6c" } } ] } } ] } }, { "类型信息": { "node_id": "java-55dc68cbe8c045b284bed1584080cddb", "keywords": [], "children": [ { "Class对象": { "node_id": "java-9fc47826a4df46f1b40f2d5dfd932d03", "keywords": [ "class", "类", "面向对象" ], "children": [ { "类字面常量": { "keywords": [], "children": [], "node_id": "java-16ceaee391ff4ec0a520211b5d0dc506", "title": "类字面常量" } }, { "泛化的Class引用": { "keywords": [], "children": [], "node_id": "java-e2c66e3ba49746de87779dcab4a686f7", "title": "泛化的Class引用" } }, { "新的转型语法": { "keywords": [], "children": [], "node_id": "java-27e7ea709e5b448fbd0dcadb70d425b6", "title": "新的转型语法" } } ] } }, { "类型转换前先做检查": { "node_id": "java-cae01437e592476297c0d7bce89505d5", "keywords": [ "instanceof", "类型" ], "children": [ { "使用类字面常量": { "keywords": [], "children": [], "node_id": "java-5d348625455e40ba82b46a569d3c9719", "title": "使用类字面常量" } }, { "动态instanceof": { "keywords": [], "children": [], "node_id": "java-92f8dd9e046b407481302197423e95aa", "title": "动态instanceof" } }, { "递归计数": { "keywords": [], "children": [], "node_id": "java-a66273b2dcdf46249ceb1b88cd3c90cb", "title": "递归计数" } } ] } }, { "instanceof与Class的等价性": { "node_id": "java-1a20843259da4f4db3d64a422ed5c936", "keywords": [ "类型" ], "children": [] } }, { "反射:运行时类信息": { "node_id": "java-cc942f61388f4bd4ac0434bc15cd2fb6", "keywords": [ "annotation", "标注" ], "children": [ { "类方法抽取器": { "keywords": [], "children": [], "node_id": "java-5149ec714a624c8da96f195b7de73419", "title": "类方法抽取器" } }, { "Class类与Java反射": { "keywords": [], "children": [ { "访问构造方法": { "keywords": [], "children": [], "node_id": "java-6dd73a33a7aa42f8b60f237a539568fe", "title": "访问构造方法" } }, { "访问成员变量": { "keywords": [], "children": [], "node_id": "java-5dd955d5f50747feb3ed19c8ee1ba8b2" } }, { "访问方法": { "keywords": [], "children": [], "node_id": "java-c9513a7b28ec47bfa13c0656e7196f55" } } ], "node_id": "java-9be972504f4440079f535753d8d73811", "title": "Class类与Java反射" } }, { "使用Annotation功能": { "keywords": [], "children": [ { "定义Annotation类型": { "keywords": [], "children": [], "node_id": "java-e06a14d142c04858a017baf0ab1adf29" } }, { "访问Annotation信息": { "keywords": [], "children": [], "node_id": "java-f8aa68a5a30f450ca21af672448a653f" } } ], "node_id": "java-f288867c2d654836b9d93af8790b67b0" } }, { "声明异常入门": { "keywords": [], "children": [], "node_id": "java-d35d19ec1d154b9d9e6e06a147305f9e" } }, { "资源": { "keywords": [], "children": [], "node_id": "java-c03a7a45c5c246ceba0ac3df1e426fb6" } }, { "利用反射分析类的能力": { "keywords": [], "children": [], "node_id": "java-170ca43f1b46492d94594937635cda12" } }, { "使用反射在运行时分析": { "keywords": [], "children": [], "node_id": "java-046f5ea7441847a0be59cd9b07cefa2c" } }, { "使用反射编写泛型数组": { "keywords": [], "children": [], "node_id": "java-0a28c7f21a6a4a48ba3ad52eb364410f" } }, { "访问字段": { "keywords": [], "children": [], "node_id": "java-111c415f827c4db698e003a2365357e9" } }, { "调用方法": { "keywords": [], "children": [], "node_id": "java-6a24720b8a4c4102aef7aa8c5ddeb870" } }, { "调用构造方法": { "keywords": [], "children": [], "node_id": "java-d7ab012406a049518931e809cc364c81" } }, { "获取继承关系": { "keywords": [], "children": [], "node_id": "java-9e70bf59fb9d4a52b22981b15001f420" } } ] } }, { "动态代理": { "node_id": "java-f079a49449c8434ab6c81e9e0dc250a3", "keywords": [ "proxy" ], "children": [] } }, { "空对象": { "node_id": "java-d4b3c48d08fe4bba984b37412d2c9374", "keywords": [ "空对象" ], "children": [ { "模拟对象与桩": { "keywords": [], "children": [], "node_id": "java-79ecb6c77f734cbaba7264deb8ca2a22", "title": "模拟对象与桩" } } ] } } ] } }, { "深入研究容器": { "node_id": "java-70cb4c11f816418c827357d9cc9f1036", "keywords": [], "children": [ { "Collection的功能方法": { "node_id": "java-20cad95081b4475aaac1c1ebf7af0253", "keywords": [], "children": [] } }, { "List的功能方法": { "node_id": "java-9b88053034ba4b0d9648d6c4f17cc055", "keywords": [ "list", "数据结构" ], "children": [] } }, { "Set和存储顺序": { "node_id": "java-b05c87e8213248c585fe4466964f18f3", "keywords": [ "set", "数据结构" ], "children": [] } }, { "队列": { "node_id": "java-399bb3c227b4410ab30897c508c2710e", "keywords": [ "队列", "queue", "数据结构" ], "children": [ { "优先级队列": { "keywords": [], "children": [], "node_id": "java-a17735f4ca70413cb8053faf3b11db21", "title": "优先级队列" } }, { "双向队列": { "keywords": [], "children": [], "node_id": "java-088b40b3ec034906b2147ffb9bd97b91", "title": "双向队列" } } ] } }, { "理解Map": { "node_id": "java-d330e163db2d47adbe7ea42b66bd35ec", "keywords": [ "map", "字典", "数据结构" ], "children": [ { "性能": { "keywords": [], "children": [], "node_id": "java-4ecb278ae1c849e88e67f0de13e88ec0", "title": "性能" } }, { "SortedMap": { "keywords": [], "children": [], "node_id": "java-b2019b3c3f5f48efaf16d5fcda4ab22e", "title": "SortedMap" } }, { "LinkedHashMap": { "keywords": [], "children": [], "node_id": "java-455d76b244e84f2a8d62ce4d2f546214", "title": "LinkedHashMap" } } ] } }, { "选择接口的不同实现": { "node_id": "java-37015af770cb4a248775952a300008df", "keywords": [ "数据结构" ], "children": [ { "性能测试框架": { "keywords": [], "children": [], "node_id": "java-ab0d376e43cc44da80b4954054eeca9d", "title": "性能测试框架" } }, { "对List的选择": { "keywords": [], "children": [], "node_id": "java-0827bea6ef504e5cbb462bce56893a7d", "title": "对List的选择" } }, { "微基准测试的危险": { "keywords": [], "children": [], "node_id": "java-f900efdf13e84d668476fa6150381f52", "title": "微基准测试的危险" } }, { "对Set的选择": { "keywords": [], "children": [], "node_id": "java-eab8ea85ddd5464888fd8e6f4277f127" } }, { "对Map的选择": { "keywords": [], "children": [], "node_id": "java-7cc209ce394f4cfaad6845aaf2b59312" } } ] } }, { "Collections实用方法": { "node_id": "java-c13b32f668a246cc8e41e04d0b66ef15", "keywords": [ "数据结构" ], "children": [ { "List的排序和查询": { "keywords": [], "children": [], "node_id": "java-96ef5521b9ea47a6b7b4ba7d9e3b66a7", "title": "List的排序和查询" } }, { "设定Collection或Map为不可修改": { "keywords": [], "children": [], "node_id": "java-7a7a4d7e8d234834a8ee9a9e89aca406", "title": "设定Collection或Map为不可修改" } }, { "Collection或Map的同步控制": { "keywords": [], "children": [], "node_id": "java-103035017b954141a825adce390593fa", "title": "Collection或Map的同步控制" } } ] } } ] } }, { "注解": { "node_id": "java-812cb6c0100f4a0bad2ec95488e7add7", "keywords": [], "children": [ { "基本语法": { "node_id": "java-2a49f5098abf48ec8e9234d2fe460ff0", "keywords": [ "注解", "annotation" ], "children": [ { "定义注解": { "keywords": [], "children": [], "node_id": "java-9da72212f00d4634bb4a41816a6c6373", "title": "定义注解" } }, { "元注解": { "keywords": [], "children": [], "node_id": "java-e9cfa24eb43646cdb4530abdea7828e6", "title": "元注解" } } ] } }, { "使用apt处理注解": { "node_id": "java-6402d711460f4e1c88b1e3dba3afbfed", "keywords": [ "apt", "注解", "annotation" ], "children": [] } }, { "基于注解的单元测试": { "node_id": "java-243e8ec70c8648779a56f2a2cc7472ad", "keywords": [ "junit", "单元测试", "测试", "annotation" ], "children": [ { "将@Unit用于泛型": { "keywords": [], "children": [], "node_id": "java-778a97d11dfe4373b20080ce72b104e8", "title": "将@Unit用于泛型" } }, { "不需要任何“套件”": { "keywords": [], "children": [], "node_id": "java-88b23041c80c4551a59f2ef8fee4ed3c", "title": "不需要任何“套件”" } }, { "实现@Unit": { "keywords": [], "children": [], "node_id": "java-52985edbfc4d43c294ef641f2be124fe", "title": "实现@Unit" } }, { "移除测试代码": { "keywords": [], "children": [], "node_id": "java-12dbc9262a89470a8856d7dbb4224125" } } ] } } ] } }, { "并发": { "node_id": "java-03692e56e729461fa95f570620c8d073", "keywords": [], "children": [ { "并发的定义": { "node_id": "java-9d3054b74ec749d491a681acdc225e78", "keywords": [ "并发" ], "children": [ { "更快的执行": { "keywords": [], "children": [], "node_id": "java-fdb6213b58e74216b74613175b4925fc", "title": "更快的执行" } }, { "改进代码设计": { "keywords": [], "children": [], "node_id": "java-6169cb2332d140d0afa88cd219a21eba", "title": "改进代码设计" } } ] } }, { "线程属性": { "node_id": "java-0b21dc367e884f39815b221faf1d929e", "keywords": [ "thread", "线程", "并发", "并行" ], "children": [ { "中断线程": { "keywords": [], "children": [], "node_id": "java-4ccf91e926b548c79f3502fe7e72c301", "title": "中断线程" } }, { "守护线程": { "keywords": [], "children": [], "node_id": "java-8c992e3f10814c21bd65c0a78fbdaf78", "title": "守护线程" } }, { "线程名": { "keywords": [], "children": [], "node_id": "java-ae11718ecefd44f1b7d490def20f1b7c", "title": "线程名" } }, { "未捕获异常的处理器": { "keywords": [], "children": [], "node_id": "java-f4a0fc3aa5a64184b4d12f2bf347b3d5" } } ] } }, { "线程状态": { "node_id": "java-b260140e4e924bc283d2d32c54955dbe", "keywords": [ "thread", "线程", "并发", "并行" ], "children": [ { "新建线程": { "keywords": [], "children": [], "node_id": "java-cae8cf168615440ba1790fe654a47e55", "title": "新建线程" } }, { "可运行线程": { "keywords": [], "children": [], "node_id": "java-9be56d2a991f4dea839c68854bb6c9cb", "title": "可运行线程" } }, { "阻塞和等待线程": { "keywords": [], "children": [], "node_id": "java-e06bd95cb2504c07827c2c81a88a2f7f", "title": "阻塞和等待线程" } }, { "终止线程": { "keywords": [], "children": [], "node_id": "java-0ba3f448d6de4b16b02516f52b551b2d" } } ] } }, { "线程之间的协作": { "node_id": "java-2fef8d64e43d4685b3d065e808cc5ccc", "keywords": [ "thread", "线程", "并发", "并行" ], "children": [ { "wait()与notifyAll()": { "keywords": [], "children": [], "node_id": "java-0f812098999a4df2a9b41955308ba530", "title": "wait()与notifyAll()" } }, { "notify()与notifyAll()": { "keywords": [], "children": [], "node_id": "java-abcb15b0ad184d03a5753e33bb8ebdf7", "title": "notify()与notifyAll()" } }, { "生产者与消费者": { "keywords": [], "children": [], "node_id": "java-5325268f4ff84234b18b52a40fa15021", "title": "生产者与消费者" } }, { "任务间使用管道进行输入输出": { "keywords": [], "children": [], "node_id": "java-b60c4015c9e643c0866fdbd5bf907776" } } ] } }, { "死锁": { "node_id": "java-77e8c6c51528479fa522adb1f785ab7a", "keywords": [ "thread", "线程", "并发", "并行", "死锁 " ], "children": [] } }, { "线程安全的集合": { "node_id": "java-e3ba655bce1247869ed7a66eed4eb9ab", "keywords": [ "thread", "线程", "并发", "并行" ], "children": [ { "阻塞队列": { "keywords": [], "children": [], "node_id": "java-c19c9015f3254441b359f8c77f2064ea", "title": "阻塞队列" } }, { "映射条目的原子更新": { "keywords": [], "children": [], "node_id": "java-69635e4cd3a84037ab6715a53d7664bd", "title": "映射条目的原子更新" } }, { "对并发散列映射的批操作": { "keywords": [], "children": [], "node_id": "java-8e154a8000944afcb2d9a18da8b43680", "title": "对并发散列映射的批操作" } }, { "并发集视图": { "keywords": [], "children": [], "node_id": "java-7cb205a0b7014e329f429be5f25d64f7" } }, { "写数组的拷贝": { "keywords": [], "children": [], "node_id": "java-e8873f2f78a64203b681e00536806448" } }, { "并行数组算法": { "keywords": [], "children": [], "node_id": "java-d29e14c52c544690bce9b05c1a669a71" } }, { "较早的线程安全集合": { "keywords": [], "children": [], "node_id": "java-32f3143dddff4cad846b9523d791c7b6" } } ] } } ] } } ] } }, { "Java高阶": { "node_id": "java-da97ad5ea7384ee887da397960bda54a", "keywords": [], "children": [ { "行为抽象和Lambda": { "node_id": "java-c27b22579e67443393ef5a56f7f4103e", "keywords": [], "children": [ { "流和行为抽象": { "node_id": "java-6ce501c500764b2d83e45c771851bbbb", "keywords": [ "流", "stream" ], "children": [] } }, { "Lambda表达式": { "node_id": "java-ae8e6e72898e486b9f13a49b05153424", "keywords": [ "lambda", "高阶函数", "方法引用", "SAM", "函数式接口" ], "children": [] } }, { "流": { "node_id": "java-77d7a80503af4222b7fdd0a06d1daf30", "keywords": [ "流", "stream" ], "children": [] } }, { "收集器": { "node_id": "java-7c542cc5627641658709b32d137bf56c", "keywords": [ "流", "stream", "collect" ], "children": [] } }, { "分组": { "node_id": "java-8caebdd0f650484d898bfe13d9eb6b14", "keywords": [ "流", "stream", "group by" ], "children": [] } }, { "分区": { "node_id": "java-500c7743d79d45fc90d96844d58eb786", "keywords": [ "流", "stream", "partition by" ], "children": [] } } ] } }, { "Optional": { "node_id": "java-276424b96cfd4f43955531c41fc8edcb", "keywords": [], "children": [ { "Optional与Null": { "node_id": "java-200100112c1048058e39283469c5a1c2", "keywords": [ "optional", "null" ], "children": [] } }, { "一致性": { "node_id": "java-2b578ee5d69e4564ad37ffc6bd73fbd9", "keywords": [ "optional", "null" ], "children": [] } } ] } }, { "Java异步任务": { "node_id": "java-e4be92eca59c45959621a84d04159ca4", "keywords": [], "children": [ { "线程与进程": { "node_id": "java-9cd8a5a3c9544be3979c77426d717abd", "keywords": [ "并发", "并行", "线程", "thread" ], "children": [] } }, { "Future与CompletableFuture": { "node_id": "java-d7aa82a2918e450bab8dccc58ff6b1c8", "keywords": [ "并发", "异步", "future" ], "children": [] } } ] } } ] } } ] } }