{ "java": { "node_id": "java-cd78d5d1fb3749ecbc21ee6e8542a724", "keywords": [], "children": [ { "Java初阶": { "node_id": "java-71a99d2763734420aee110c5c5b904d8", "keywords": [], "children": [ { "Java概览": { "node_id": "java-379b792dde024090a7ed43b392ece2c5", "keywords": [], "children": [ { "编辑Java源代码": { "node_id": "java-55cfe3ca4d8f4611855475c2ea3737af", "keywords": [ "输出", "main", "程序入口" ], "children": [] } }, { "编译Java程序": { "node_id": "java-5fa1abbd66474a9e98f62e3e172dbdfb", "keywords": [], "children": [] } }, { "Java的运行机制": { "node_id": "java-1c7f65aae3e344c39de8791b67e1fbb7", "keywords": [], "children": [] } }, { "根据CLASSPATH环境变量定位类": { "node_id": "java-45cdc91007ba431e87124a6a9c15725e", "keywords": [], "children": [] } } ] } }, { "Java的基本语法": { "node_id": "java-fc5d065c53404449bf726b5e441706c1", "keywords": [], "children": [ { "Java的基本语法格式": { "node_id": "java-efb87004230b4680a32c6584112c6f20", "keywords": [ "输出", "循环", "for" ], "children": [] } }, { "Java中的注释": { "node_id": "java-c668b26b90ab4982bd906933809d6049", "keywords": [], "children": [] } }, { "Java中的关键字": { "node_id": "java-0021d9d14dfc429cab17b4dd912651b6", "keywords": [], "children": [] } }, { "Java中的标识符": { "node_id": "java-1d41e245176e437e8103e481bc91aa3b", "keywords": [], "children": [] } } ] } }, { "Java中的变量与常量": { "node_id": "java-19afc527fd62401aaf89ff81a250d624", "keywords": [], "children": [ { "变量的定义": { "node_id": "java-b8e6eab222ad4a06b53b4d00182769db", "keywords": [ "变量", "赋值", "定义" ], "children": [] } }, { "变量的数据类型": { "node_id": "java-ac26535850ef4aaf8bb9fec08bc47825", "keywords": [], "children": [] } }, { "Java中的常量": { "node_id": "java-37cc072d202340f5ae3a6e829416edc7", "keywords": [ "常量", "定义", "变量", "final" ], "children": [] } }, { "变量的作用域": { "node_id": "java-4657e7685f1543ddbaba55b2562b4ec9", "keywords": [ "常量", "定义", "作用域" ], "children": [] } } ] } }, { "Java中的运算符": { "node_id": "java-624bba5cef024d2d8ebf54ded569343d", "keywords": [], "children": [ { "比较运算符": { "node_id": "java-e858a75415dd4f6cb36cb023f4bb9ed8", "keywords": [ "大于", "小于", "等于", "比较", "不等于" ], "children": [] } }, { "逻辑运算符": { "node_id": "java-79c8e7f14bee4898a52f3103a29ae564", "keywords": [ "逻辑运算符", "组合", "优先级" ], "children": [] } }, { "算术运算符": { "node_id": "java-5d46f8b7ac974df8a24a04805c4a167b", "keywords": [ "算术运算符", "优先级" ], "children": [] } } ] } }, { "选择结构语句": { "node_id": "java-630751c514da49b9b675fddc5b2d0418", "keywords": [], "children": [ { "if条件语句": { "node_id": "java-d4a802d353d648a0a4c90daf60774cf3", "keywords": [], "children": [] } }, { "switch条件语句": { "node_id": "java-180cf0806d374fa4b10fdaebcc946d89", "keywords": [], "children": [] } } ] } }, { "循环结构语句": { "node_id": "java-672a697e644041cda2a90dc1ca90d2a9", "keywords": [], "children": [ { "do…while循环语句": { "node_id": "java-9814a131da364cd0a3933b640ddb421c", "keywords": [], "children": [] } }, { "for循环语句": { "node_id": "java-911127b38b884ab4bb5a35365c41833b", "keywords": [], "children": [] } } ] } }, { "集合": { "node_id": "java-43b99c9c823a4ff798631990686d3088", "keywords": [], "children": [ { "集合概述": { "node_id": "java-3b6988c9edda4332ab2b2bde76ce74ba", "keywords": [], "children": [] } }, { "Collection接口": { "node_id": "java-73271e880f0843f69437427bfc557ff2", "keywords": [], "children": [] } }, { "List接口": { "node_id": "java-c6a5d8d2c6394aae9ba504a2d2e922e8", "keywords": [], "children": [ { "List接口简介": { "keywords": [], "children": [], "node_id": "java-9027b2dc889a4898b4cc4197d6b2fe21", "title": "List接口简介" } }, { "ArrayList集合": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "ArrayList集合" } }, { "LinkedList集合": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "LinkedList集合" } } ] } }, { "Collection集合遍历": { "node_id": "java-04044ad9b1914b928a0f48be4478f9ac", "keywords": [], "children": [ { "Iterator遍历集合": { "keywords": [], "children": [], "node_id": "java-ba1b82874f154652bffd62c7b7b542ab", "title": "Iterator遍历集合" } }, { "foreach遍历集合": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "foreach遍历集合" } }, { "JDK 8的forEach遍历集合": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "JDK 8的forEach遍历集合" } } ] } }, { "Set接口": { "node_id": "java-243249b52e4449d1acc2f61ac3d492c4", "keywords": [], "children": [ { "Set接口简介": { "keywords": [], "children": [], "node_id": "java-bd790481aa4d405383426891c6e4ef2a", "title": "Set接口简介" } }, { "HashSet集合": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "HashSet集合" } }, { "TreeSet集合": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "TreeSet集合" } } ] } }, { "Map接口": { "node_id": "java-585898e24579448980def03a33fd553c", "keywords": [], "children": [ { "Map接口简介": { "keywords": [], "children": [], "node_id": "java-5ec3563f06184fa29eb5748b33ca4450", "title": "Map接口简介" } }, { "HashMap集合": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "HashMap集合" } }, { "Map集合遍历": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "Map集合遍历" } }, { "TreeMap集合": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "Properties集合": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } } ] } }, { "常用工具类": { "node_id": "java-61ba5b89d4284c1b9d59436bce805640", "keywords": [], "children": [ { "Collections工具类": { "keywords": [], "children": [], "node_id": "java-a07f943448184bf985a9f929567ed94e", "title": "Collections工具类" } }, { "Arrays工具类": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "Arrays工具类" } } ] } }, { "聚合操作": { "node_id": "java-2d3c1265286d4b58a87650a633ba2373", "keywords": [], "children": [ { "聚合操作简介": { "keywords": [], "children": [], "node_id": "java-4c3e7ab968f04393af0c008d7ab6fcc7", "title": "聚合操作简介" } }, { "创建Stream流对象": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "创建Stream流对象" } }, { "Stream流的常用方法": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "Stream流的常用方法" } }, { "Parallel Stream(并行流)": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } } ] } }, { "Java集合框架": { "node_id": "java-860b3800347942d2857795251974730b", "keywords": [], "children": [ { "集合接口与实现分离": { "keywords": [], "children": [], "node_id": "java-9d394513b1664cfc9686a8593f23975c", "title": "集合接口与实现分离" } }, { "泛型实用方法": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "泛型实用方法" } } ] } }, { "集合框架中的接口": { "node_id": "java-b65776c30f4e4aaf99d8bc8b66855e7c", "keywords": [], "children": [] } }, { "链表": { "node_id": "java-bfbb4319eb60496583ace9aca561c7ab", "keywords": [], "children": [] } }, { "数组列表": { "node_id": "java-a8e9302bf3f34c67b6d0d1d1dd5b8e06", "keywords": [], "children": [] } }, { "散列集": { "node_id": "java-53a2b2fe37394f808059240a7a65c347", "keywords": [], "children": [] } }, { "树集": { "node_id": "java-b295e8ba38ed4e3c90ea0f7b0d70039e", "keywords": [], "children": [] } }, { "优先队列": { "node_id": "java-d2a2357798784f6fbcd875b94165e350", "keywords": [], "children": [] } }, { "映射": { "node_id": "java-7625240ab0254b198142c52926465f42", "keywords": [], "children": [ { "基本映射操作": { "keywords": [], "children": [], "node_id": "java-80f2c854a2eb484aab8f9b793999c99e", "title": "基本映射操作" } }, { "更新映射条目": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "更新映射条目" } }, { "映射视图": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "映射视图" } }, { "弱散列映射": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "链接散列集与映射": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "枚举集与映射": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "标识散列映射": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } } ] } }, { "算法": { "node_id": "java-61f2876689974eec9689c33ef8a3f4cb", "keywords": [], "children": [ { "二分查找": { "keywords": [], "children": [], "node_id": "java-ded68731826d4bce9d963538e39a10ef", "title": "二分查找" } }, { "简单算法": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "简单算法" } }, { "批操作": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "批操作" } }, { "编写自己的算法": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } } ] } }, { "遗留的集合": { "node_id": "java-7f1d9ed947de49588bb7c8a02e052c10", "keywords": [], "children": [ { "属性映射": { "keywords": [], "children": [], "node_id": "java-3b67670fa36943f086358d867932c6ab", "title": "属性映射" } }, { "栈": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "栈" } }, { "位集": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "位集" } } ] } }, { "Java集合简介": { "node_id": "java-91db3dd24ea34bca8c6e9d0935d33d9c", "keywords": [], "children": [] } }, { "编写equals方法": { "node_id": "java-8bfe31396801426e8ed6f8b8a8190b80", "keywords": [], "children": [] } }, { "编写equals和hashCode": { "node_id": "java-bb2a2b6d7b114799b01aa89bafbdab86", "keywords": [], "children": [] } }, { "使用TreeMap": { "node_id": "java-6d9ccc979da54411ac65fccd1a12071e", "keywords": [], "children": [] } }, { "使用Properties": { "node_id": "java-7b0b78c00f934f7f958dcf7107243ae1", "keywords": [], "children": [] } }, { "使用Deque": { "node_id": "java-ff4a16d20df24eda93d843749e777a76", "keywords": [], "children": [] } } ] } }, { "操作符": { "node_id": "java-d131f1a8df9446d383ed50bbd172c4bb", "keywords": [], "children": [ { "算术操作符": { "node_id": "java-a4cc291dc2264301a87f361de4b8d6ea", "keywords": [], "children": [ { "一元加、减操作符": { "keywords": [], "children": [], "node_id": "java-a6e0d49965584c4392cff18cb591a332", "title": "一元加、减操作符" } } ] } }, { "自动递增和递减": { "node_id": "java-f6e6b9e930ef46699788339fc7322f18", "keywords": [], "children": [] } }, { "关系操作符": { "node_id": "java-21247e52fb0849699959f78321bc855e", "keywords": [], "children": [ { "测试对象的等价性": { "keywords": [], "children": [], "node_id": "java-59cbb9821eed4c28a3e365e8ce963865", "title": "测试对象的等价性" } } ] } }, { "逻辑操作符": { "node_id": "java-a7a6076a60e140f18b63b6ea3574eed2", "keywords": [], "children": [ { "短路": { "keywords": [], "children": [], "node_id": "java-633e7df8ce304791b9981fccb636b3e8", "title": "短路" } } ] } }, { "按位操作符": { "node_id": "java-58320af2f24648198eda32c4da587b5d", "keywords": [], "children": [] } }, { "移位操作符": { "node_id": "java-0d405a41281d424ca00dca4e18c12b61", "keywords": [], "children": [] } }, { "三元操作符if-else": { "node_id": "java-27584561349847fa84c7905215131621", "keywords": [], "children": [] } }, { "字符串操作符 + 和 +=": { "node_id": "java-8fad68e2479a4e93875c6ca1746baef6", "keywords": [], "children": [] } }, { "类型转换操作符": { "node_id": "java-b075138ebd0145338459d7a9de46aef7", "keywords": [], "children": [ { "截尾和舍入": { "keywords": [], "children": [], "node_id": "java-805d92324ad14bf48a50084d9af74a8c", "title": "截尾和舍入" } }, { "提升": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "提升" } } ] } } ] } }, { "控制执行流程": { "node_id": "java-05024fbfd53a4d88978d6c78d7ff06bf", "keywords": [], "children": [ { "true和false": { "node_id": "java-09da728d4cac4f51bcb205b7170dd83b", "keywords": [], "children": [] } }, { "if-else": { "node_id": "java-85a126a6ba39488aaabd2d4015353175", "keywords": [], "children": [] } }, { "迭代": { "node_id": "java-73fd080a97c34ae2a89bd60c9510c409", "keywords": [], "children": [ { "do-while": { "keywords": [], "children": [], "node_id": "java-0238e72ddb834cde8c0059fb0a213d57", "title": "do-while" } }, { "逗号操作符": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "逗号操作符" } } ] } }, { "Foreach语法": { "node_id": "java-722dc1cccbc74369b9bff5ac580bc649", "keywords": [], "children": [] } }, { "return": { "node_id": "java-66019537247040fcbb6d74a29f47819f", "keywords": [], "children": [] } }, { "break和continue": { "node_id": "java-1b0927bc3a3342869b4fc981abf17ff6", "keywords": [], "children": [] } }, { "switch": { "node_id": "java-05144fa9daf94a64ad0667eab1d6cc9a", "keywords": [], "children": [] } }, { "通过异常处理错误": { "node_id": "java-d11b7f01004c443ea6226d174ba1e3fa", "keywords": [], "children": [ { "概念": { "keywords": [], "children": [], "node_id": "java-74dba10624904700bca41dd2cfab0d17", "title": "概念" } }, { "捕获异常": { "keywords": [], "children": [ { "try块": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "try块" } }, { "异常处理程序": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "f?inally子句": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "try-with-Resources语句": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "分析堆栈轨迹元素": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } } ], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "捕获异常" } }, { "创建自定义异常": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "异常说明": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "捕获所有异常": { "keywords": [], "children": [ { "栈轨迹": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "重新抛出异常": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "异常链": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } } ], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "Java标准异常": { "keywords": [], "children": [ { "特例: RuntimeException(运行时异常)": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } } ], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "使用finally进行清理": { "keywords": [], "children": [ { "finally用来做什么": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "在return中使用finally": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "缺憾:异常丢失": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } } ], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "构造器": { "keywords": [], "children": [ { "使用构造器执行初始化": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "构造器重载": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } } ], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "异常匹配": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "其他可选方式": { "keywords": [], "children": [ { "历史": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "观点": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "把异常传递给控制台": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "把“受检查异常”转换为“不受检查的异常”": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } } ], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "异常使用指南": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } } ] } }, { "函数": { "node_id": "java-f2482f12e0634885bdf6701a5a802c77", "keywords": [], "children": [] } } ] } }, { "类和接口": { "node_id": "java-e06f6fb888f940b4894e835d9afc9138", "keywords": [], "children": [ { "类和面向对象": { "node_id": "java-461a08a44ae845018b7f0356ea928085", "keywords": [], "children": [] } }, { "抽象类": { "node_id": "java-a02b334b2e364161badae34636a0284f", "keywords": [ "面向对象", "抽象类", "接口" ], "children": [] } }, { "接口": { "node_id": "java-5d28bfbed25f4ae2b4d21fc1f2222e49", "keywords": [ "面向对象", "类型", "接口" ], "children": [] } }, { "匿名类": { "node_id": "java-b06b5b2c7a6b44cc87744168729b31e6", "keywords": [ "面向对象", "匿名类", "lambda" ], "children": [] } } ] } }, { "IO初步": { "node_id": "java-7731719237a149f4b72ed3fdf17a16fb", "keywords": [], "children": [ { "字节流": { "node_id": "java-5a6948bd7d6d4057ad78dc6923dc4061", "keywords": [], "children": [] } }, { "File类": { "node_id": "java-4293c5bec0cb415fac5e1d80be8f6113", "keywords": [], "children": [] } } ] } } ] } }, { "Java中阶": { "node_id": "java-b4719189dc7544228ef1b578548be47f", "keywords": [], "children": [ { "IO": { "node_id": "java-3dc422fd227a45db83e38ba6fe0003c0", "keywords": [], "children": [ { "流概述": { "node_id": "java-9d6d81f6283d414ba54d97cb25373b7c", "keywords": [], "children": [] } }, { "RandomAccessFile": { "node_id": "java-3c0553280d2a4b60983a5ae18e7112a4", "keywords": [ "随机", "访问", "文件" ], "children": [] } }, { "输入输出流": { "node_id": "java-4395c520c7514a97a792922acd5937bb", "keywords": [], "children": [ { "输入流": { "keywords": [], "children": [], "node_id": "java-a397c10e1a904c419811483b97c8d8b9", "title": "输入流" } }, { "输出流": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "输出流" } } ] } }, { "文件输入输出流": { "node_id": "java-132615c6b56b4ea883622abf5b81128d", "keywords": [], "children": [ { "FileInputStream类与FileOutputStream类": { "keywords": [], "children": [], "node_id": "java-a42ac36c7aae462f9ef8edf8b6212528", "title": "FileInputStream类与FileOutputStream类" } }, { "FileReader类与FileWriter类": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "FileReader类与FileWriter类" } } ] } }, { "对象序列化": { "node_id": "java-ec1081c263a84d41b692d4821d8254e6", "keywords": [], "children": [] } }, { "ZIP压缩输入输出流": { "node_id": "java-822ae98d5b294e699b7ed1bc6ffb9425", "keywords": [], "children": [ { "压缩文件": { "keywords": [], "children": [], "node_id": "java-c2a40bea599142e1bafe5c65e5f49e92", "title": "压缩文件" } }, { "解压缩ZIP文件": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "解压缩ZIP文件" } } ] } }, { "InputStream类型": { "node_id": "java-fc2dfe1a80f64143b4ad339378ba61da", "keywords": [], "children": [] } }, { "OutputStream类型": { "node_id": "java-cc8c2e511db54a2ca2ee798f2cdbd03b", "keywords": [], "children": [] } } ] } }, { "使用JDBC操作数据库": { "node_id": "java-952e5473dc85415b8d737648a1d20351", "keywords": [], "children": [ { "JDBC概述": { "node_id": "java-150a9965d3e34a19943b4bd5ab2d31bb", "keywords": [], "children": [ { "JDBC-ODBC桥": { "keywords": [], "children": [], "node_id": "java-a045157a68894eacb0e79c72bea465c8", "title": "JDBC-ODBC桥" } }, { "JDBC技术": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "JDBC技术" } }, { "JDBC驱动程序的类型": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "JDBC驱动程序的类型" } } ] } }, { "数据库操作": { "node_id": "java-fd66a76b04b84d8da4454f6f9728aca0", "keywords": [ "数据库", "操作", "添加", "修改", "删除", "查询" ], "children": [ { "数据库基础": { "keywords": [], "children": [], "node_id": "java-bd09b1ca4af648e2a5435f96d4704e4b", "title": "数据库基础" } }, { "数据查询": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "数据查询" } }, { "动态查询": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "动态查询" } }, { "添加、修改、删除记录": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "数据库基础知识": { "keywords": [], "children": [ { "什么是数据库": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "数据库的种类及功能": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "SQL语言": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } } ], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "向数据库发送SQL语句": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "处理查询结果集": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "顺序查询": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "模糊查询": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "预处理语句": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } } ] } } ] } }, { "NIO": { "node_id": "java-3f06cb54c165459b85d0c7f225e6acb7", "keywords": [], "children": [ { "NIO概述": { "node_id": "java-5daee2a48ed2413fa38467811ea5ee23", "keywords": [], "children": [] } }, { "Buffer(缓冲器)": { "node_id": "java-e622e94340ee4f00ae2aec33047cb19f", "keywords": [], "children": [] } }, { "Channel(通道)": { "node_id": "java-1cbb9d1ea7c74caeaf8d88c2aad75965", "keywords": [], "children": [] } }, { "字符集和Charset": { "node_id": "java-984b508fc9a54650aa9509eeb198f925", "keywords": [], "children": [] } }, { "文件锁": { "node_id": "java-338c2cfa55b346a0a0cd4dfc61c40ae6", "keywords": [], "children": [] } }, { "Path接口": { "node_id": "java-386113b4f6274eb591e1f01b39f0c8ce", "keywords": [ "Paths", "Path" ], "children": [] } }, { "Files工具类": { "node_id": "java-868e1323bfdf4c239a6552a45a30d48d", "keywords": [], "children": [] } } ] } }, { "网络编程": { "node_id": "java-94b280240e7c4f67b1512eb20fd9beaa", "keywords": [], "children": [ { "网络编程基础": { "node_id": "java-59e7173695814c90858bc221e8688329", "keywords": [ "网络", "通信", "协议" ], "children": [ { "网络通信协议": { "keywords": [], "children": [], "node_id": "java-8573a8cf4f914940b790785687f38b34", "title": "网络通信协议" } }, { "IP地址和端口号": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "IP地址和端口号" } }, { "InetAddress": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "InetAddress" } }, { "UDP与TCP协议": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } } ] } }, { "UDP通信": { "node_id": "java-f031c1ea305e4617bb1d9f2c4d41f009", "keywords": [], "children": [ { "UDP通信简介": { "keywords": [], "children": [], "node_id": "java-9118d12d817b45e5a69ecdaca6283d01", "title": "UDP通信简介" } }, { "DatagramPacket": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "DatagramPacket" } }, { "DatagramSocket": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "DatagramSocket" } }, { "UDP网络程序": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "UDP案例——聊天程序": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } } ] } }, { "TCP通信": { "node_id": "java-d1499a6f75a04d038344ce776d1c658a", "keywords": [], "children": [ { "TCP通信简介": { "keywords": [], "children": [], "node_id": "java-8664d9e4dcc04e77a24cfd6445635315", "title": "TCP通信简介" } }, { "ServerSocket": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "ServerSocket" } }, { "Socket": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "Socket" } }, { "简单的TCP网络程序": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "多线程的TCP网络程序": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "TCP案例——文件上传": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } } ] } }, { "网络编程的基础知识": { "node_id": "java-0a41df2154834670a9facf2ff7530d6b", "keywords": [], "children": [ { "网络基础知识": { "keywords": [], "children": [], "node_id": "java-1cf4ca055b604ea49c6b762596371c71", "title": "网络基础知识" } } ] } }, { "Java的基本网络支持": { "node_id": "java-1e8ef0cdeec443d8addaaa79b760c6b1", "keywords": [], "children": [ { "使用URLDecoder和URLEncoder": { "keywords": [], "children": [], "node_id": "java-f880ae75add64feaae9a85ea7c9367b2", "title": "使用URLDecoder和URLEncoder" } }, { "URL、URLConnection和URLPermission": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "URL、URLConnection和URLPermission" } } ] } }, { "基于TCP协议的网络编程": { "node_id": "java-a89aa3ff88c1429396c8c20e12c17801", "keywords": [], "children": [ { "TCP协议基础": { "keywords": [], "children": [], "node_id": "java-7e9947e48fc6409b93ba1e3b5002e247", "title": "TCP协议基础" } }, { "使用ServerSocket创建TCP服务器端": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "使用ServerSocket创建TCP服务器端" } }, { "使用Socket进行通信": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "使用Socket进行通信" } }, { "记录用户信息": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "半关闭的Socket": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "使用NIO实现非阻塞Socket通信": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "使用AIO实现非阻塞通信": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } } ] } }, { "基于UDP协议的网络编程": { "node_id": "java-e424fbf24fc84b339db1b836c54ce647", "keywords": [], "children": [ { "UDP协议基础": { "keywords": [], "children": [], "node_id": "java-f28b8ebe51b34e4db9b94cfa6b0cbac7", "title": "UDP协议基础" } }, { "使用DatagramSocket发送、接收数据": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "使用DatagramSocket发送、接收数据" } }, { "使用MulticastSocket实现多点广播": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "使用MulticastSocket实现多点广播" } } ] } }, { "使用代理服务器": { "node_id": "java-cb9fdf69e28f40aca9ef741b9c8bc925", "keywords": [], "children": [ { "直接使用Proxy创建连接": { "keywords": [], "children": [], "node_id": "java-367580927af845268b72979f1e1e16be", "title": "直接使用Proxy创建连接" } }, { "使用ProxySelector自动选择代理服务器": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "使用ProxySelector自动选择代理服务器" } } ] } }, { "Java 11标准化的HTTP Client": { "node_id": "java-dd60957a0a7f4155a68aea7c6807d504", "keywords": [ "websocket", "get", "post", "delete", "put", "请求" ], "children": [ { "发送同步GET请求": { "keywords": [], "children": [], "node_id": "java-01931200f6684a0bba54c8fe79070301", "title": "发送同步GET请求" } }, { "发送带请求体的请求": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "发送带请求体的请求" } }, { "发送异步请求": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "发送异步请求" } }, { "WebSocket客户端支持": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "基于WebSocket的多人实时聊天": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } } ] } } ] } }, { "类型信息": { "node_id": "java-7b912e7b9d1547e9ba78b26cb78e254c", "keywords": [], "children": [ { "Class对象": { "node_id": "java-1133afe68c004a0ea2ad957f0acb061e", "keywords": [], "children": [ { "类字面常量": { "keywords": [], "children": [], "node_id": "java-b94faa1fac2c4ffe8f8fcbdc8fc89ee9", "title": "类字面常量" } }, { "泛化的Class引用": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "泛化的Class引用" } }, { "新的转型语法": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "新的转型语法" } } ] } }, { "类型转换前先做检查": { "node_id": "java-48593d705752415e95c42b09d36bc2a4", "keywords": [ "instanceof" ], "children": [ { "使用类字面常量": { "keywords": [], "children": [], "node_id": "java-76e90c4c1397452b9569be2a05553053", "title": "使用类字面常量" } }, { "动态instanceof": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "动态instanceof" } }, { "递归计数": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "递归计数" } } ] } }, { "注册工厂": { "node_id": "java-c4cbf0c25cbf47c4892a5f6635be9826", "keywords": [], "children": [] } }, { "instanceof与Class的等价性": { "node_id": "java-feca89c3fb9e4bcaba3f1f95e8ad4753", "keywords": [], "children": [] } }, { "反射:运行时类信息": { "node_id": "java-42b26ca8a2384dcfb02fca6e159ace67", "keywords": [ "annotation" ], "children": [ { "类方法抽取器": { "keywords": [], "children": [], "node_id": "java-aa383e03d51a4ea588ee1b04192ab556", "title": "类方法抽取器" } }, { "Class类与Java反射": { "keywords": [], "children": [ { "访问构造方法": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "访问构造方法" } }, { "访问成员变量": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "访问方法": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } } ], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "Class类与Java反射" } }, { "使用Annotation功能": { "keywords": [], "children": [ { "定义Annotation类型": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "访问Annotation信息": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } } ], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "声明异常入门": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "资源": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "利用反射分析类的能力": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "使用反射在运行时分析": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "使用反射编写泛型数组": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "访问字段": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "调用方法": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "调用构造方法": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "获取继承关系": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } } ] } }, { "动态代理": { "node_id": "java-f7be740717c442c4a489a8c8d675f38c", "keywords": [], "children": [] } }, { "空对象": { "node_id": "java-dec42155c7904f7e9d00a37b5013470d", "keywords": [], "children": [ { "模拟对象与桩": { "keywords": [], "children": [], "node_id": "java-0109d4ae23934645bc817fd2ac423854", "title": "模拟对象与桩" } } ] } } ] } }, { "深入研究容器": { "node_id": "java-ca51e8798bc84a47b13a58c8d734ac34", "keywords": [], "children": [ { "Collection的功能方法": { "node_id": "java-e4ee5c02d364431f901c2851e2bebdc0", "keywords": [], "children": [] } }, { "List的功能方法": { "node_id": "java-6a6a4fabc4e34b5d985e4787fda4793f", "keywords": [], "children": [] } }, { "Set和存储顺序": { "node_id": "java-d29c64a86fbb49b88cc2eaa7b39375b4", "keywords": [], "children": [] } }, { "队列": { "node_id": "java-3b1d3953fd724d1f87c1e95918bc2d0c", "keywords": [ "队列", "queue" ], "children": [ { "优先级队列": { "keywords": [], "children": [], "node_id": "java-ed2bb9f0663541629eccc6d1f8fa78fb", "title": "优先级队列" } }, { "双向队列": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "双向队列" } } ] } }, { "理解Map": { "node_id": "java-154f1448c9f04d7d950de1273760288f", "keywords": [], "children": [ { "性能": { "keywords": [], "children": [], "node_id": "java-8e3af4dbb58c4465921095cd49a8ebce", "title": "性能" } }, { "SortedMap": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "SortedMap" } }, { "LinkedHashMap": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "LinkedHashMap" } } ] } }, { "选择接口的不同实现": { "node_id": "java-553c2f460603478f9d4047e1b4d78af1", "keywords": [], "children": [ { "性能测试框架": { "keywords": [], "children": [], "node_id": "java-6170302493d94af4a4a2377fb349b30a", "title": "性能测试框架" } }, { "对List的选择": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "对List的选择" } }, { "微基准测试的危险": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "微基准测试的危险" } }, { "对Set的选择": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "对Map的选择": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } } ] } }, { "Collections实用方法": { "node_id": "java-3805023f872947c4874b6e7bab06c1a7", "keywords": [], "children": [ { "List的排序和查询": { "keywords": [], "children": [], "node_id": "java-3bdeb8d490114bcd856b7da73e037dad", "title": "List的排序和查询" } }, { "设定Collection或Map为不可修改": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "设定Collection或Map为不可修改" } }, { "Collection或Map的同步控制": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "Collection或Map的同步控制" } } ] } } ] } }, { "注解": { "node_id": "java-baada6303aca42f0b2f7882a3446fdf9", "keywords": [], "children": [ { "基本语法": { "node_id": "java-132c631a618e4828b4c69316d6163ec3", "keywords": [], "children": [ { "定义注解": { "keywords": [], "children": [], "node_id": "java-98201a6f1e8a445ea49972461f824686", "title": "定义注解" } }, { "元注解": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "元注解" } } ] } }, { "使用apt处理注解": { "node_id": "java-8b0806d4d89948598ac95e5c19b53298", "keywords": [], "children": [] } }, { "基于注解的单元测试": { "node_id": "java-352f523c7ad54583a0097cf171015d83", "keywords": [], "children": [ { "将@Unit用于泛型": { "keywords": [], "children": [], "node_id": "java-14e84a2913724dfc9e77bf2cd2dfc17c", "title": "将@Unit用于泛型" } }, { "不需要任何“套件”": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "不需要任何“套件”" } }, { "实现@Unit": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "实现@Unit" } }, { "移除测试代码": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } } ] } } ] } }, { "并发": { "node_id": "java-2477cdd2265348da836b2116f5fe73b6", "keywords": [], "children": [ { "并发的定义": { "node_id": "java-66090dfe673e48a5a14c6ee846c4fc97", "keywords": [], "children": [ { "更快的执行": { "keywords": [], "children": [], "node_id": "java-4f4e7e1bf6714da0a24705e5cb433e71", "title": "更快的执行" } }, { "改进代码设计": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "改进代码设计" } } ] } }, { "线程属性": { "node_id": "java-785476f0c71e437cadeb502a74dd86ed", "keywords": [], "children": [ { "中断线程": { "keywords": [], "children": [], "node_id": "java-689a856b2abb4cbb93fe6252c2eab816", "title": "中断线程" } }, { "守护线程": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "守护线程" } }, { "线程名": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "线程名" } }, { "未捕获异常的处理器": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } } ] } }, { "线程状态": { "node_id": "java-7a4a0e08d7424b5896f2325f732bdeee", "keywords": [], "children": [ { "新建线程": { "keywords": [], "children": [], "node_id": "java-f1fece37484743eeab27863607dd9fde", "title": "新建线程" } }, { "可运行线程": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "可运行线程" } }, { "阻塞和等待线程": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "阻塞和等待线程" } }, { "终止线程": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } } ] } }, { "线程之间的协作": { "node_id": "java-5e82993df31e4989ac4b128c08cf0823", "keywords": [], "children": [ { "wait()与notifyAll()": { "keywords": [], "children": [], "node_id": "java-5c28af969c6b4771825c907aac1480b0", "title": "wait()与notifyAll()" } }, { "notify()与notifyAll()": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "notify()与notifyAll()" } }, { "生产者与消费者": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "生产者与消费者" } }, { "任务间使用管道进行输入输出": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } } ] } }, { "死锁": { "node_id": "java-372114d043a04070ad690f2753b5083b", "keywords": [], "children": [] } }, { "线程安全的集合": { "node_id": "java-aa0b95d8960b4d12a2c9d9e90894a793", "keywords": [], "children": [ { "阻塞队列": { "keywords": [], "children": [], "node_id": "java-cc7d9f6eee604e51ad6efead3710b3ab", "title": "阻塞队列" } }, { "映射条目的原子更新": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "映射条目的原子更新" } }, { "对并发散列映射的批操作": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8", "title": "对并发散列映射的批操作" } }, { "并发集视图": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "写数组的拷贝": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "并行数组算法": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } }, { "较早的线程安全集合": { "keywords": [], "children": [], "node_id": "569d5e11c4fc5de7844053d9a733c5e8" } } ] } } ] } }, { "Maven基础": { "node_id": "java-13e82ac770bb42f3a6076274c28ead94", "keywords": [], "children": [] } } ] } }, { "Java高阶": { "node_id": "java-f03087d9779b41a1acf435e3eb6e28f7", "keywords": [], "children": [ { "行为抽象和Lambda": { "node_id": "java-401df00d53964647a4fa249007f30a8b", "keywords": [], "children": [ { "流和行为抽象": { "node_id": "java-fb711fb0dfbb40db974476ea2d9faf9d", "keywords": [], "children": [] } }, { "Lambda表达式": { "node_id": "java-a3b60740abe74bb8a6c16dec381d31c4", "keywords": [ "lambda", "高阶函数", "方法引用", "SAM", "函数式接口" ], "children": [] } }, { "流": { "node_id": "java-9f8b0da343fd415c9b29380647b0f1f8", "keywords": [], "children": [] } }, { "收集器": { "node_id": "java-0f1fc49b2e1c41368403ca2239810920", "keywords": [], "children": [] } }, { "分组": { "node_id": "java-bbff17faa9a04aebbe14c62caccc2309", "keywords": [], "children": [] } }, { "分区": { "node_id": "java-05498c81f6be42a2a44ddb4de0178420", "keywords": [], "children": [] } } ] } }, { "Optional": { "node_id": "java-c3a2ef586dd7449788102b631419992f", "keywords": [], "children": [ { "Optional与Null": { "node_id": "java-36a3b51a36624ee8930794d64da6b22a", "keywords": [], "children": [] } }, { "一致性": { "node_id": "java-6a0ad22b08cd4520b453904d832936ea", "keywords": [], "children": [] } } ] } }, { "Java异步任务": { "node_id": "java-267da81d131440de883b62376f5fc38b", "keywords": [], "children": [ { "线程与进程": { "node_id": "java-5dcc74ab2617434f91ae6aa1ba0ac661", "keywords": [], "children": [] } }, { "Future与CompletableFuture": { "node_id": "java-90f4b7c696464886af9c8de8cbd95338", "keywords": [], "children": [] } } ] } } ] } } ] } }