[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"\u002Fresource\u002Fdocument\u002Flist?undefined":3,"\u002Fresource\u002Fdocument\u002Fquery\u002Ftsrkqvb6zpmtwh0n?undefined":462,"\u002Fresource\u002Fadvertise\u002Flist?type=all?undefined":467},{"data":4,"status":460,"success":461},[5,148,202,291,332,370,420],{"books":6,"desc":145,"id":8,"image":146,"title":147},[7,40,63,78,93,105,117],{"cateId":8,"chapters":9,"desc":36,"id":11,"time":37,"title":38,"video":39},1,[10,15,18,21,24,27,30,33],{"bookId":11,"id":12,"indexOrder":13,"name":14},24,"8egfulw98v3h680j",0,"JavaSE 笔记（一）走进Java语言",{"bookId":11,"id":16,"indexOrder":13,"name":17},"pew6po6wrou23pk3","JavaSE 笔记（二）面向过程编程",{"bookId":11,"id":19,"indexOrder":13,"name":20},"eldst1fgrbdkmfs7","JavaSE 笔记（三）面向对象基础",{"bookId":11,"id":22,"indexOrder":13,"name":23},"48zphgkpjto8cath","JavaSE 笔记（四）面向对象高级篇",{"bookId":11,"id":25,"indexOrder":13,"name":26},"6r4llai92yc15j98","JavaSE 笔记（五）泛型程序设计",{"bookId":11,"id":28,"indexOrder":13,"name":29},"k6fmxd6qabgkwm9i","JavaSE 笔记（六）集合类与IO",{"bookId":11,"id":31,"indexOrder":13,"name":32},"qrd0xfttsz32gpqg","JavaSE 笔记（七）多线程与反射",{"bookId":11,"id":34,"indexOrder":13,"name":35},"td5tgn04nqmkrryt","JavaSE 笔记（八）GUI程序开发","基于Java25全新录制的SE课程",2025,"JavaSE 核心内容","https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV163GGz2E8c",{"cateId":8,"chapters":41,"desc":59,"id":8,"time":60,"title":61,"video":62},[42,44,46,49,51,53,55,57],{"bookId":8,"id":43,"indexOrder":13,"name":14},"ibeeuwsbbi00undq",{"bookId":8,"id":45,"indexOrder":13,"name":17},"dncxjecdv4wciqcp",{"bookId":8,"id":47,"indexOrder":13,"name":48},"jviyz2hsht9ete5k","JavaSE 笔记（三）面向对象基础篇",{"bookId":8,"id":50,"indexOrder":13,"name":23},"qb9i6q9fap7bg1cc",{"bookId":8,"id":52,"indexOrder":13,"name":26},"hnkrjrkm3hjzeq6s",{"bookId":8,"id":54,"indexOrder":13,"name":29},"erpm32wduoaaqmrx",{"bookId":8,"id":56,"indexOrder":13,"name":32},"lfqtvxr7azumcwja",{"bookId":8,"id":58,"indexOrder":13,"name":35},"qs7gqok56gzc6idr","2022年制作的JavaSE版本",2022,"JavaSE 22年旧版","https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1YP4y1o75f\u002F",{"cateId":8,"chapters":64,"desc":75,"id":66,"time":60,"title":76,"video":77},[65,69,72],{"bookId":66,"id":67,"indexOrder":13,"name":68},2,"g96k66kczovvbm1i","JVM 笔记（一）走进JVM",{"bookId":66,"id":70,"indexOrder":13,"name":71},"ydd7n3jg8unc3clg","JVM 笔记（二）内存管理",{"bookId":66,"id":73,"indexOrder":13,"name":74},"r9dq37de0kaeauoi","JVM 笔记（三）类与类加载","了解Java的底层运作机制","Java JVM 虚拟机","https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1Er4y1r7as\u002F",{"cateId":8,"chapters":79,"desc":90,"id":81,"time":60,"title":91,"video":92},[80,84,87],{"bookId":81,"id":82,"indexOrder":13,"name":83},3,"asncyye9ya18gfar","JUC 笔记（一）再谈多线程",{"bookId":81,"id":85,"indexOrder":13,"name":86},"5tr1sm4ho6ygpt9q","JUC 笔记（二）并发编程核心",{"bookId":81,"id":88,"indexOrder":13,"name":89},"1scf51z5300mzxkh","JUC 笔记（三）并发编程进阶","你也可以成为多线程的主宰者","Java JUC 并发编程","https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1JT4y1S7K8\u002F",{"cateId":8,"chapters":94,"desc":102,"id":96,"time":60,"title":103,"video":104},[95,99],{"bookId":96,"id":97,"indexOrder":13,"name":98},4,"eedesc445ygiqhil","NIO 笔记（一）基础内容",{"bookId":96,"id":100,"indexOrder":13,"name":101},"ndz9t0uunrmfmv4n","NIO 笔记（二）Netty框架专题","编写畅快的高性能网络服务器","Java NIO 网络编程","https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1ar4y1J7mC\u002F",{"cateId":8,"chapters":106,"desc":114,"id":108,"time":60,"title":115,"video":116},[107,111],{"bookId":108,"id":109,"indexOrder":13,"name":110},5,"9890i8ofuadpwy2b","[扩展篇] Java 9-17新特性介绍",{"bookId":108,"id":112,"indexOrder":13,"name":113},"tsrkqvb6zpmtwh0n","[扩展篇] JavaSE关键字总结 笔记","精彩仍在继续，不要停止脚步","其他内容","https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1tU4y1y7Fg\u002F",{"cateId":8,"chapters":118,"desc":141,"id":120,"time":142,"title":143,"video":144},[119,123,126,129,132,135,138],{"bookId":120,"id":121,"indexOrder":13,"name":122},6,"4db9h32opv7imszh","JavaSE 笔记（一）面向过程编程",{"bookId":120,"id":124,"indexOrder":13,"name":125},"c93u3v37br7hgn1q","JavaSE 笔记（二）面向对象基础篇",{"bookId":120,"id":127,"indexOrder":13,"name":128},"yglsjde9gi1jxkcb","JavaSE 笔记（三）泛型与集合类",{"bookId":120,"id":130,"indexOrder":13,"name":131},"ilhi987n986rmvo3","JavaSE 笔记（四）异常机制",{"bookId":120,"id":133,"indexOrder":13,"name":134},"pqv38vexmenglk4k","JavaSE 笔记（五）IO",{"bookId":120,"id":136,"indexOrder":13,"name":137},"jiq41n87i9ia7ilw","JavaSE 笔记（六）多线程",{"bookId":120,"id":139,"indexOrder":13,"name":140},"wn7x2mge9ws79zps","JavaSE 笔记（七）反射","此版本为早期录制的旧版本",2021,"JavaSE 21年旧版","https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1Gv411T7pi\u002F","包含JavaSE基础路线全部教程笔记，打下坚实的基础","https:\u002F\u002Fpic2.zhimg.com\u002F80\u002Fv2-bf1a927f037a79f4d57d9ae543430a0d_1440w.webp","JavaSE 系列笔记 ☕️",{"books":149,"desc":199,"id":66,"image":200,"title":201},[150,166,178],{"cateId":66,"chapters":151,"desc":162,"id":153,"time":163,"title":164,"video":165},[152,156,159],{"bookId":153,"id":154,"indexOrder":13,"name":155},21,"iqbc2haub31bwqtz","Lombok 极速上手",{"bookId":153,"id":157,"indexOrder":13,"name":158},"ijay2hay19kn1k031","Mybatis 快速上手",{"bookId":153,"id":160,"indexOrder":13,"name":161},"ru4ogh2waocpn4jo","Maven 快速上手","JavaWeb阶段必须扩展知识点",2024,"常用知识讲解","https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1gb421J7ok\u002F",{"cateId":66,"chapters":167,"desc":175,"id":169,"time":163,"title":176,"video":177},[168,172],{"bookId":169,"id":170,"indexOrder":13,"name":171},22,"ek20yvb6huhxizx7","JavaWeb 笔记（一）计算机网络基础",{"bookId":169,"id":173,"indexOrder":13,"name":174},"pgevws6w2krkffa4","JavaWeb笔记（二）Java与数据库","全面升级的JavaWeb课程","JavaWeb 网站开发","https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1kS421X7rq\u002F",{"cateId":66,"chapters":179,"desc":196,"id":181,"time":142,"title":197,"video":198},[180,184,187,190,193],{"bookId":181,"id":182,"indexOrder":13,"name":183},7,"ggwwj09j2vkfftvd","JavaWeb 笔记（一）Java网络编程",{"bookId":181,"id":185,"indexOrder":13,"name":186},"sauvq105istskjaz","JavaWeb 笔记（二）数据库基础",{"bookId":181,"id":188,"indexOrder":13,"name":189},"xgbeasmvrhxx9tn4","JavaWeb 笔记（三）Java与数据库",{"bookId":181,"id":191,"indexOrder":13,"name":192},"k7dfwua3bsezvw9q","JavaWeb 笔记（四）前端基础",{"bookId":181,"id":194,"indexOrder":13,"name":195},"ycpagby2v7j4p728","JavaWeb 笔记（五）后端开发","搭建属于自己的Web网站","JavaWeb 旧版","https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1CL4y1i7qR\u002F","包含JavaWeb路线全套笔记，从零开始搭建自己的网站！","https:\u002F\u002Fpic3.zhimg.com\u002F80\u002Fv2-df3b38e3012258ed70c23b586309e3f6_1440w.webp","JavaWeb 系列笔记 🚛",{"books":203,"desc":288,"id":81,"image":289,"title":290},[204,220,235,255,273],{"cateId":81,"chapters":205,"desc":216,"id":207,"time":217,"title":218,"video":219},[206,210,213],{"bookId":207,"id":208,"indexOrder":13,"name":209},8,"h7sjo5oy0l03607e","SSM笔记（一）Spring基础",{"bookId":207,"id":211,"indexOrder":13,"name":212},"eve8gq72qmdb46sg","SSM笔记（二）SpringMvc基础",{"bookId":207,"id":214,"indexOrder":13,"name":215},"63v73g0zh1qlr6fk","SSM笔记（三）SpringSecurity基础","Spring的探索之路从这里开始",2023,"JavaSSM 基础部分","[\"https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1Kv4y1x7is\u002F\", \"https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1Lh4y1M7kx\u002F\", \"https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1fV411M7aS\u002F\"]",{"cateId":81,"chapters":221,"desc":232,"id":223,"time":217,"title":233,"video":234},[222,226,229],{"bookId":223,"id":224,"indexOrder":13,"name":225},16,"0k66v5r6slsfuog4","SpringBoot笔记（一）核心内容",{"bookId":223,"id":227,"indexOrder":13,"name":228},"bqlrnc2yvkaxo8s1","SpringBoot笔记（二）数据交互",{"bookId":223,"id":230,"indexOrder":13,"name":231},"wci9lb9tgea866jt","SpringBoot笔记（三）前后端分离","SpringBoot全新重制版","SpringBoot 新版","https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1xu4y1m7UP\u002F",{"cateId":81,"chapters":236,"desc":252,"id":238,"time":60,"title":253,"video":254},[237,240,243,246,249],{"bookId":238,"id":239,"indexOrder":13,"name":225},9,"e43gl1ilygps032v",{"bookId":238,"id":241,"indexOrder":13,"name":242},"emnmd8nzfdb3hr50","SpringBoot笔记（二）Git版本控制",{"bookId":238,"id":244,"indexOrder":13,"name":245},"jjlolj5igvttvyhv","SpringBoot笔记（三）Redis数据库",{"bookId":238,"id":247,"indexOrder":13,"name":248},"skgr4ivb5curdoux","SpringBoot笔记（四）其他框架介绍",{"bookId":238,"id":250,"indexOrder":13,"name":251},"le91fqhu4dqui1k4","SpringBoot笔记（五）Linux系统","逐步走向企业级开发","SpringBoot 旧版","https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1UL411V7f3\u002F",{"cateId":81,"chapters":256,"desc":270,"id":258,"time":60,"title":271,"video":272},[257,261,264,267],{"bookId":258,"id":259,"indexOrder":13,"name":260},10,"oejzo0l77zeb6a7e","SpringCloud笔记（一）微服务基础",{"bookId":258,"id":262,"indexOrder":13,"name":263},"f6eya9taaelsl35p","SpringCloud笔记（二）微服务进阶",{"bookId":258,"id":265,"indexOrder":13,"name":266},"35v1hbsfcdgagdnw","SpringCloud笔记（三）微服务应用",{"bookId":258,"id":268,"indexOrder":13,"name":269},"a782u84512tyuo1m","SpringCloud笔记（四）消息队列","体验微服务架构带来的魅力","SpringCloud 进阶","https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1AL4y1j7RY\u002F",{"cateId":81,"chapters":274,"desc":285,"id":276,"time":142,"title":286,"video":287},[275,278,280,282],{"bookId":276,"id":277,"indexOrder":13,"name":209},11,"efjw75u8a251qxk5",{"bookId":276,"id":279,"indexOrder":13,"name":212},"guc134xb7sl78vju",{"bookId":276,"id":281,"indexOrder":13,"name":215},"u8ekxxucowr2b1tm",{"bookId":276,"id":283,"indexOrder":13,"name":284},"vkpmw9wbej21nei6","SSM笔记（四）MySQL进阶","此教程为2021年旧版教程","JavaSSM 旧版","https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1xL4y1H7Tq\u002F","包含Spring全套框架笔记，从开始到Spring Boot，以及众多运维小知识。","https:\u002F\u002Fpic4.zhimg.com\u002F80\u002Fv2-28c3144421220d7c048703281bc34f63_1440w.webp","Spring 系列笔记 🍏",{"books":292,"desc":329,"id":96,"image":330,"title":331},[293,308],{"cateId":96,"chapters":294,"desc":305,"id":296,"time":60,"title":306,"video":307},[295,299,302],{"bookId":296,"id":297,"indexOrder":13,"name":298},12,"jd3e8u5cmvx5gco6","C语言（一）计算机思维导论",{"bookId":296,"id":300,"indexOrder":13,"name":301},"lqv77apvx82nkkio","C语言（二）基础语法",{"bookId":296,"id":303,"indexOrder":13,"name":304},"xb0b9t37gyv96xns","C语言（三）高级特性","包含高等院校需要教授的全部内容","C语言程序设计","https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1Cr4y137os\u002F",{"cateId":96,"chapters":309,"desc":326,"id":311,"time":60,"title":327,"video":328},[310,314,317,320,323],{"bookId":311,"id":312,"indexOrder":13,"name":313},13,"8a046ps2e4w6k4py","数据结构与算法（一）线性结构篇",{"bookId":311,"id":315,"indexOrder":13,"name":316},"3ma8db91f9zrnkja","数据结构与算法（二）树形结构篇",{"bookId":311,"id":318,"indexOrder":13,"name":319},"0lsjm59k7cgu4tpr","数据结构与算法（三）散列表篇",{"bookId":311,"id":321,"indexOrder":13,"name":322},"0qzy7bogo0g2pusa","数据结构与算法（四）图结构篇",{"bookId":311,"id":324,"indexOrder":13,"name":325},"6gmcxcikcilyxblj","数据结构与算法（五）排序算法篇","虽然很难，但是它是考研必学科目","数据结构与算法","https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV13W4y127Ey\u002F","你的内心一直有一个坚定的声音在告诉你，一定要考上一名研究生，向着未来前进吧！","https:\u002F\u002Fpic2.zhimg.com\u002F80\u002Fv2-ac128404efb29ce1c9d1ccc61024f1d1_1440w.webp","C语言 系列笔记 🥬",{"books":333,"desc":367,"id":108,"image":368,"title":369},[334,349,358],{"cateId":108,"chapters":335,"desc":346,"id":337,"time":163,"title":347,"video":348},[336,340,343],{"bookId":337,"id":338,"indexOrder":13,"name":339},17,"urw2e6gg1lprv65w","Kotlin（一）基础语法",{"bookId":337,"id":341,"indexOrder":13,"name":342},"t7lnl87f74f3v1ju","Kotlin（二）类与对象",{"bookId":337,"id":344,"indexOrder":13,"name":345},"v1zzvki0knb1xvml","Kotlin（三）高级特性","包含Kotlin语言完整基础部分","Kotlin程序设计基础","https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1P94y1c7tV\u002F",{"cateId":108,"chapters":350,"desc":355,"id":352,"time":163,"title":356,"video":357},[351],{"bookId":352,"id":353,"indexOrder":13,"name":354},18,"ovbzpe7065bye1st","Kotlin扩展（一）","包含Kotlin额外扩展知识","Kotlin扩展篇","https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1Hg4y1m7Ca\u002F",{"cateId":108,"chapters":359,"desc":364,"id":361,"time":163,"title":365,"video":366},[360],{"bookId":361,"id":362,"indexOrder":13,"name":363},19,"3at7ybv04dmjc0wp","Gradle基础教程","Gradle配置教程（Kotlin）","Gradle教程","https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1Fc411x7xF\u002F","Kotlin让JVM平台焕发新的生机，让语言的表达更加优美","https:\u002F\u002Fpic2.zhimg.com\u002F80\u002Fv2-be815568f7c79c64cdaa171b0409786d_1440w.webp","Kotlin 系列笔记 ☘️",{"books":371,"desc":418,"id":120,"title":419},[372,391,403],{"cateId":120,"chapters":373,"desc":387,"id":375,"time":388,"title":389,"video":390},[374,378,381,384],{"bookId":375,"id":376,"indexOrder":13,"name":377},26,"zjf5qapwqtqiohcn","JavaScript笔记（一）基础语法",{"bookId":375,"id":379,"indexOrder":13,"name":380},"95jc6sjyjwcp9pvp","JavaScript笔记（二）核心知识",{"bookId":375,"id":382,"indexOrder":13,"name":383},"j35cdc1qz8dzq7pn","JavaScript笔记（三）进阶知识",{"bookId":375,"id":385,"indexOrder":13,"name":386},"sdhodlihphnpcg37","JavaScript笔记（四）前端基础","包含JavaScript最新语法规范讲解",2026,"JavaScript教程","https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1xq6gBgESU",{"cateId":120,"chapters":392,"desc":400,"id":394,"time":37,"title":401,"video":402},[393,397],{"bookId":394,"id":395,"indexOrder":13,"name":396},23,"bsisgazdftiz3o9c","HTML5笔记（一）基础内容",{"bookId":394,"id":398,"indexOrder":13,"name":399},"njol93fs34gfwuzf","HTML5笔记（二）高级内容","包含HTML基础内容和相关知识点","HTML5核心教程","https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1BrBiYNEWg",{"cateId":120,"chapters":404,"desc":415,"id":406,"time":37,"title":416,"video":417},[405,409,412],{"bookId":406,"id":407,"indexOrder":13,"name":408},25,"jo74ciirtg8wh90y","CSS笔记（一）基础入门",{"bookId":406,"id":410,"indexOrder":13,"name":411},"ap5ixyomoejuw4ue","CSS笔记（二）盒模型和布局",{"bookId":406,"id":413,"indexOrder":13,"name":414},"4djgk5xy1lzpiuf2","CSS笔记（三）变换和过渡","包含CSS3基础内容和相关知识点","CSS3核心教程","https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1sQeEzFEKi","包含Web前端学习路径全部教程笔记，打下坚实的基础","Web前端 系列笔记",{"books":421,"desc":458,"id":423,"image":368,"title":459},[422,432,450],{"cateId":423,"chapters":424,"desc":429,"id":426,"time":163,"title":430,"video":431},100,[425],{"bookId":426,"id":427,"indexOrder":13,"name":428},20,"o0ab271mkdsas87","Markdown基础语法","编写简洁而又优美的文档","Markdown教程","https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1eJ4m157kC",{"cateId":423,"chapters":433,"desc":447,"id":435,"time":60,"title":448,"video":449},[434,438,441,444],{"bookId":435,"id":436,"indexOrder":13,"name":437},14,"6386mh7anqt4tzyv","设计模式（一）面向对象设计原则",{"bookId":435,"id":439,"indexOrder":13,"name":440},"8ftkb38wfn6ox0ug","设计模式（二）创建型",{"bookId":435,"id":442,"indexOrder":13,"name":443},"i1msql1k8y70etey","设计模式（三）结构型",{"bookId":435,"id":445,"indexOrder":13,"name":446},"5434a3cyyjvwhs8s","设计模式（四）行为型","使你的编码水平得到质的飞跃","设计模式系列","https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1u3411P7Na\u002F",{"cateId":423,"chapters":451,"desc":456,"id":453,"time":60,"title":457},[452],{"bookId":453,"id":454,"indexOrder":13,"name":455},15,"zj9uvg0sp3b0sok8","Docker 容器技术 笔记","这里包含其他中间件课程笔记","其他中间件笔记","我们对知识的探索从未停止，只有不断地学习，才能走向美好的未来！","其他笔记分类 🌽",200,true,{"data":463,"status":460,"success":461},{"bookId":108,"content":464,"id":112,"indexOrder":66,"introduction":465,"lastUpdate":466,"name":113},"![image-20230814155420145](https:\u002F\u002Fs2.loli.net\u002F2023\u002F08\u002F14\u002FwqSQEOFuztl6vHA.png)\n\n# Java关键字总结\n\n我们在JavaSE阶段中学习了几乎所有的Java关键字（剩余关键字我们在SE路线的其他篇章中介绍过）这里，我们来对这些关键字进行一次详细的总结。\n\n在Java中（截止Java17版本）目前一共有53个关键字、2个保留字、3个特殊常量，总共58个关键字，这里我们分为下面的几大类来进行总结。\n\n## 数据类型（10个）\n\n基本数据类型包括四个整数类型：`int`、`long`、`short`、`byte`，两个浮点类型：`float`、`double`，一个字符类型：`char`，还有一个比较特殊的`boolean`类型，它们的所占空间大小为：\n\n- byte 字节型 （8个bit，也就是1个字节）范围：-128~+127\n- short 短整形（16个bit，也就是2个字节）范围：-32768~+32767\n- int 整形（32个bit，也就是4个字节）最常用的类型：-2147483648 ~ +2147483647\n- long 长整形（64个bit，也就是8个字节）范围：-9223372036854775808 ~ +9223372036854775807\n- float 单精度浮点型 （32bit，4字节）\n- double 双精度浮点型（64bit，8字节）\n- char 字符型（16个bit，也就是2字节，它不带符号）范围是0 ~ 65535\n- boolean 布尔型（大小依不同JVM实现决定）\n\n当然，某些时候我们的方法可能没有返回值，此时我们需要使用`void`类型来表示无返回值：\n\n```java\npublic void test(){\n    \n}\n```\n\n在 Java 10 版本之后，新增一个`var`关键字来自动进行类型推断：\n\n```java\npublic static void main(String[] args) {\n    \u002F\u002F String a = \"Hello World!\";   之前我们定义变量必须指定类型\n    var a = \"Hello World!\";   \u002F\u002F现在我们使用var关键字来自动进行类型推断，因为完全可以从后面的值来判断是什么类型\n}\n```\n\n以上10个关键字都是数据类型相关的关键字。\n\n***\n\n## 特殊常量（3个）\n\n在Java中，有着三个特殊常量值，首先就是`boolean`类型：\n\n* `true`  -  真\n* `false`  -  假\n\n布尔类型只有两个值，要么是真要么是假，没有其他的情况，因此我们一般在进行流程判断时就会使用到布尔类型值作为判断依据。\n\n当然，除了基本数据类型会存在特殊常量，引用类型同样存在：\n\n* `null`   -   表示空，不引用任何对象\n\n当一个引用类型变量的值为null时，访问对象任意属性和方法时都会出现空指针异常，因为此时并没有引用任何一个对象。\n\n***\n\n## 流程控制（10个）\n\n流程控制语句相关的关键字也是非常多的，首先是分支语句：`if`、`else`、`switch`、`case`，这四个关键字是我们在分支条件中会常常用到的：\n\n```java\nif (condition) {\n    \n} else {\n    \n}\n```\n\n有些时候我们也需要循环语句来完成一些批量操作，我们可以使用`for`、`while`、`do`这三个关键字来实现循环结构：\n\n```java\ndo {\n    \n} while (condition);\n```\n\n对于分支和循环，我们还会对其进行进一步地控制，比如加速循环或是跳出循环等，我们会用到：\n\n* `break`   -    用于跳出循环、结束switch中的case块。\n* `continue`   -   用于加速循环的进行。\n\n我们也可以使用`return`关键字来结束整个方法：\n\n```java\npublic static void main(String[] args) {\n    return;\n}\n```\n\n它的作用有：\n\n* 直接结束当前方法\n* 返回方法的运行结果（返回值）\n\n以上10个关键字都是用于流程控制的。\n\n***\n\n## 访问控制（6个）\n\n首先我们需要介绍一下`final`关键字，这个关键字的用途很多：\n\n* 将变量声明为常量，首次赋值后无法被修改（无论是基本类型还是引用类型）\n* 将类表明为终态，此类将无法被继承。\n* 将方法表明为终态，此方法将无法被重写。\n\n接着是三个权限修饰符：`public`、`private`、`protected`，不同的权限修饰符决定了外部对当前内容的访问权限：\n\n|           | 当前类 | 同一个包下的类 | 不同包下的子类 | 不同包下的类 |\n| :-------: | :----: | :------------: | :------------: | :----------: |\n|  public   |   ✅    |       ✅        |       ✅        |      ✅       |\n| protected |   ✅    |       ✅        |       ✅        |      ❌       |\n|   默认    |   ✅    |       ✅        |       ❌        |      ❌       |\n|  private  |   ✅    |       ❌        |       ❌        |      ❌       |\n\n我们可以使用`package`关键字来表明当前类所处的包：\n\n```java\npackage com.test;\n\npublic class Main {\n  \n}\n```\n\n对于非同包下的类或是非默认导入包下的类，我们需要使用`import`关键字进行导入之后才可以使用：\n\n```java\nimport java.util.Arrays;\n\npublic class Main {\n    public static void main(String[] args) {\n        Arrays.asList();\n    }\n}\n```\n\n以上6个关键字是与访问控制相关的关键字。\n\n***\n\n## 类与对象（16个）\n\n首先，如果我们要声明一个新的类型，肯定是要用到`class`关键字的，它主要有两个功能：\n\n* 声明一个新的类型。\n* 获取类的Class对象（基本类型和引用类型都有对应的Class对象）\n\n```java\npublic static void main(String[] args) {\n    Class\u003CString> clazz = String.class;   \u002F\u002F任意类型都可以直接.class来获取对应的Class对象\n    System.out.println(clazz.getName());\n}\n```\n\n我们可以使用`new`关键字直接调用类的构造方法进行对象创建：\n\n```java\npublic static void main(String[] args) {\n    Object o = new Object();\n}\n```\n\n我们可以使用`this`关键字来表示当前对象本身：\n\n* 表示当前对象本身。\n* 在类内部使用当前类对象的属性。\n* 在类内部调用当前类对象的方法。\n* 调用当前类的构造器。\n* 表示外部类的对象属性和方法。\n\n同样的，如果我们需要使用父类定义的内容，可以使用`super`关键字：\n\n* 在类内部使用父类的属性。\n* 在类内部调用父类的方法。\n* 调用父类的构造器。\n* 表示外部类的父类属性和方法。\n\n当我们需要将一个类作为抽象类时，可以为其添加`abstract`关键字：\n\n* 将类型声明为抽象类，抽象类可以具有抽象方法。\n* 将方法声明为抽象方法，不需要实现方法体，而是交给子类实现。\n\n```java\nabstract class Test {\n    abstract void hello();\n}\n```\n\n我们可以使用`extends`关键字来指明继承关系，但是只能继承一个类：\n\n```java\npublic class Main extends Number{\n\n}\n```\n\n对于接口的定义，我们可以使用`interface`关键字：\n\n```java\npublic interface Cloneable {\n  \t\n}\n```\n\n当我们实现接口时，就需要使用`implements`关键字：\n\n```java\npublic class Main implements Cloneable {\n  \n}\n```\n\n特别的，我们可以为接口中的抽象方法添加默认实现，需要添加`default`关键字：\n\n```java\ndefault Stream\u003CE> stream() {\n    return StreamSupport.stream(spliterator(), false);\n}\n```\n\n这个关键字有两个作用：\n\n* 为接口中的抽象方法添加默认实现。\n* 为switch语句指定其他分支。\n\n当我们要判断某个对象是否为某个类型或是某个类型\u002F接口的实现时，可以使用`instanceof`关键字：\n\n```java\npublic static void main(String[] args) {\n    Object obj = \"你干嘛哎哟\";\n    System.out.println(obj instanceof String);\n}\n```\n\n对于类中的属性，我们可以将其声明为`static`静态的，表示这些属性是属于类的，而不是对象：\n\n```java\npublic static \u003CT> List\u003CT> asList(T... a) {\n    return new ArrayList\u003C>(a);\n}\n```\n\n```java\npublic static void main(String[] args) {\n    Arrays.asList(\"AAA\");   \u002F\u002F类属性可以直接通过类名.进行使用\n}\n```\n\n我们还可以使用`enum`关键字来定义枚举类型：\n\n```java\npublic enum Status{\n    HAPPY, SAD\n}\n```\n\n在Java14中，新增了记录类型，我们可以直接使用`record`关键字创建一个记录类型：\n\n```java\npublic record Account(String username, String password) {  \u002F\u002F直接把字段写在括号中\n\n}\n```\n\nLombok的噩梦来了。\n\n在Java17中，正式新增了密封类型，密封类的作用就是**限制类的继承**，包含三个新的关键字`sealed`、`non-sealed`、`permits`。\n\n```java\npublic sealed class A permits B{   \u002F\u002F在class关键字前添加sealed关键字，表示此类为密封类型，permits后面跟上允许继承的类型，多个子类使用逗号隔开\n\n}\n```\n\n只允许我们自己写的类继承A，但是不允许别人写的类继承A，就可以像上面这样实现了。\n\n以上关键字都是我们在面向对象中认识的。\n\n***\n\n## 异常处理（6个）\n\n当我们要抛出异常时，可以直接使用`throw`关键字：\n\n```java\npublic static void main(String[] args) {\n    throw new RuntimeException();\n}\n```\n\n我们也可以将需要外部处理的异常通过`throws`关键字列出：\n\n```java\npublic void test() throws IOException, ReflectiveOperationException {\n    \n}\n```\n\n对于异常的处理，我们可以使用`try-catch`语句块来完成：\n\n```java\npublic static void main(String[] args) {\n    try (FileInputStream stream = new FileInputStream(\"hello.txt\")){\n        \n    } catch (IOException e){\n        e.printStackTrace();\n    }\n}\n```\n\n对于那些无论是否发生异常都必须要在最后执行的内容，我们可以使用`finally`语句块：\n\n```java\npublic static void main(String[] args) {\n    try (FileInputStream stream = new FileInputStream(\"hello.txt\")){\n\t\t\n    } catch (IOException e){\n        e.printStackTrace();\n    } finally {\n        System.out.println(\"我必须执行！\");\n    }\n}\n```\n\n我们还介绍了`assert`断言语句，当后面的条件不满足时，会直接抛出错误：\n\n```java\npublic static void main(String[] args) {\n    assert 1 == 1;\n}\n```\n\n以上都是异常处理中会使用到的一些关键字。\n\n***\n\n## 多线程（2个）\n\n在多线程环境下，同步问题显得尤为重要，我们可以使用`synchronized`关键字，来添加同步代码块或是同步方法：\n\n```java\npublic static void main(String[] args) {\n    synchronized (Main.class) {\n        \n    }\n}\n```\n\n只有获取到对应的锁之后，才能进入到同步代码块中，这样同一时间只能有一个线程执行这段代码。\n\n我们在JUC篇中讲解了一个新的关键字`volatile`，这个关键字是用于保证可见性的，我们之前说了，如果多线程访问同一个变量，那么这个变量会被线程拷贝到自己的工作内存中进行操作，而不是直接对主内存中的变量本体进行操作，下面这个操作看起来是一个有限循环，但是是无限的：\n\n```java\npublic class Main {\n    private static int a = 0;\n    public static void main(String[] args) throws InterruptedException {\n        new Thread(() -> {\n            while (a == 0);\n            System.out.println(\"线程结束！\");\n        }).start();\n\n        Thread.sleep(1000);\n        System.out.println(\"正在修改a的值...\");\n        a = 1;   \u002F\u002F很明显，按照我们的逻辑来说，a的值被修改那么另一个线程将不再循环\n    }\n}\n```\n\n虽然我们主线程中修改了a的值，但是另一个线程并不知道a的值发生了改变，所以循环中依然是使用旧值在进行判断，因此，普通变量是不具有可见性的。\n\n此时我们可以使用`volatile`关键字来解决，此关键字的第一个作用，就是保证变量的可见性。当写一个`volatile`变量时，JMM会把该线程本地内存中的变量强制刷新到主内存中去，并且这个写会操作会导致其他线程中的`volatile`变量缓存无效，这样，另一个线程修改了这个变时，当前线程会立即得知，并将工作内存中的变量更新为最新的版本。\n\n它的功能如下：\n\n* 保证变量的可见性。\n* 防止指令重排序。\n* 不保证原子性。\n\n***\n\n## 其他（5个）\n\n这里需要介绍一个我们从来没有介绍过的关键字`strictfp`，它的使用频率极低，这个关键字作用很简单：\n\n* strictfp可以保证浮点数运算的精确性，而且在不同的硬件平台会有一致的运行结果。\n\n一旦使用了strictfp来声明一个类、接口或者方法时，那么所声明的范围内Java的编译器以及运行环境会完全依照浮点规范IEEE-754来执行。因此如果想让浮点运算更加精确，而且不会因为不同的硬件平台所执行的结果不一致的话，那就可以使用关键字strictfp来解决，而在Java17之后直接调整为始终严格，所有这里我们只做了解就行。\n\n我们在讲解Object类时，会发现有一些方法添加了`native`关键字：\n\n```java\n@IntrinsicCandidate\npublic native int hashCode();\n```\n\n可以看到这种方法时没有方法体的，也就是说没有实现，而真正的实现是由C\u002FC++编写的，我们在JVM篇中有详细介绍，各位小伙伴如果感兴趣的话可以去看看。\n\n此外，我们在学习IO时认识了对象流，我们可以让类实现序列化接口，并将类序列化为二进制数据存放到文件中，当时我们说，如果不希望某个属性被序列化，就可以添加`transient`关键字：\n\n```java\npublic class Main {\n    transient String name;\n}\n```\n\nJava中还有两个保留字，目前没有任何作用，但是就是有：`goto`、`const`","在Java中（截止Java17版本）目前一共有53个关键字、2个保留字、3个特殊常量，总共58个关键字，这里我们分为下面的几大类来进行总结。","2025-07-04 23:40:43",{"data":468,"status":460,"success":461},[469,474],{"id":8,"image":470,"link":471,"name":472,"type":473},"\u002Fimage\u002Fadv\u002Frainyun-2025-06.webp","https:\u002F\u002Fwww.rainyun.com\u002Fitbaima_","雨云优惠购","cloud",{"id":66,"image":475,"link":476,"name":477,"type":478},"\u002Fimage\u002Fadv\u002Fsimcard-2025-11.webp","https:\u002F\u002Fmall.itbaima.cn","号卡优惠","simcard"]