diff --git a/docs/array/array.md b/docs/array/array.md index 677b370d5dd427d82a08ccd2349ed2130c72eb3a..9b802c7f18380c6f75647c1f9653b08da9c58b1e 100644 --- a/docs/array/array.md +++ b/docs/array/array.md @@ -1,5 +1,3 @@ -## 数组 - “哥,我看你之前的文章里提到,ArrayList 的内部是用数组实现的,我就对数组非常感兴趣,想深入地了解一下,今天终于到这个环节了,好期待呀!”三妹的语气里显得很兴奋。 “的确是的,看 ArrayList 的源码就一清二楚了。”我一边说,一边打开 Intellij IDEA,并找到了 ArrayList 的源码。 diff --git a/docs/array/print.md b/docs/array/print.md index 33902b1a0ff497ff5785210c5fa5e062bb36d7f9..6797901d02569bc8cdf87de40444c72ef151014b 100644 --- a/docs/array/print.md +++ b/docs/array/print.md @@ -1,5 +1,3 @@ -## 打印数组 - “哥,之前听你说,数组也是一个对象,但 Java 中并未明确的定义这样一个类。”看来三妹有在用心地学习。 “是的,因此数组也就没有机会覆盖 `Object.toString()` 方法。如果尝试直接打印数组的话,输出的结果并不是我们预期的结果。”我接着三妹的话继续说。 diff --git a/docs/basic-extra-meal/48-keywords.md b/docs/basic-extra-meal/48-keywords.md index 5c63b0fdcd22d3188e7884a70b70347033f9e8bd..170e3ab9f0e9cc536ab4285440cf3c46e527586d 100644 --- a/docs/basic-extra-meal/48-keywords.md +++ b/docs/basic-extra-meal/48-keywords.md @@ -1,5 +1,3 @@ -## Java 中常用的 48 个关键字 - “二哥,就我之前学过的这些 Java 代码中,有 public、static、void、main 等等,它们应该都是关键字吧?”三妹的脸上泛着甜甜的笑容,我想她在学习 Java 方面已经变得越来越自信了。 “是的,三妹。Java 中的关键字可不少呢!你一下子可能记不了那么多,不过,先保留个印象吧,对以后的学习会很有帮助。” diff --git a/docs/basic-extra-meal/annotation.md b/docs/basic-extra-meal/annotation.md index 3fd64d56de37cee8331b1320ab00f71d53f47a8b..822c46b7b67b0dbd2a7b4c66847e336873fd16d2 100644 --- a/docs/basic-extra-meal/annotation.md +++ b/docs/basic-extra-meal/annotation.md @@ -1,5 +1,3 @@ -## 注解 - “二哥,这节讲注解吗?”三妹问。 “是的。”我说,“注解是 Java 中非常重要的一部分,但经常被忽视也是真的。之所以这么说是因为我们更倾向成为一名注解的使用者而不是创建者。`@Override` 注解用过吧?但你知道怎么自定义一个注解吗?” diff --git a/docs/basic-extra-meal/box.md b/docs/basic-extra-meal/box.md index eacee6e7644d432eac0ea550817fcff5b19c3931..058f04b37f66fd4f602fb3b056148ce61b0cd188 100644 --- a/docs/basic-extra-meal/box.md +++ b/docs/basic-extra-meal/box.md @@ -1,4 +1,4 @@ -## 自动装箱与拆箱 + “哥,听说 Java 的每个基本类型都对应了一个包装类型,比如说 int 的包装类型为 Integer,double 的包装类型为 Double,是这样吗?”从三妹这句话当中,能听得出来,她已经提前预习这块内容了。 diff --git a/docs/basic-extra-meal/comparable-omparator.md b/docs/basic-extra-meal/comparable-omparator.md index 2cf7a17677511367473a88f006f9e3f6344a72e6..31849b873eb7a6033a676083ef04ce17b1ec3e15 100644 --- a/docs/basic-extra-meal/comparable-omparator.md +++ b/docs/basic-extra-meal/comparable-omparator.md @@ -1,4 +1,4 @@ -## 马蜂窝一面:Comparable和Comparator有什么区别? + 那天,小二去马蜂窝面试,面试官老王一上来就甩给了他一道面试题:请问Comparable和Comparator有什么区别?小二差点笑出声,因为三年前,也就是 2021 年,他在《Java 程序员进阶之路》专栏上看到过这题😆。 diff --git a/docs/basic-extra-meal/deep-copy.md b/docs/basic-extra-meal/deep-copy.md index ad46c602ad9989f4acde4c00d45d5727fde6d67c..5013062a7054ba9476055d4dca969b2312009769 100644 --- a/docs/basic-extra-meal/deep-copy.md +++ b/docs/basic-extra-meal/deep-copy.md @@ -1,4 +1,4 @@ -## 浅拷贝与深拷贝 + “哥,听说浅拷贝和深拷贝是 Java 面试中经常会被问到的一个问题,是这样吗?” diff --git a/docs/basic-extra-meal/enum.md b/docs/basic-extra-meal/enum.md index 300a6ab6ea1d1540a5db022293f9fd7557c9fff1..d2e59ea6bdd092ab10ecac722d71a81970db4226 100644 --- a/docs/basic-extra-meal/enum.md +++ b/docs/basic-extra-meal/enum.md @@ -1,4 +1,4 @@ -## 枚举 + “今天我们来学习枚举吧,三妹!”我说,“同学让你去她家玩了两天,感觉怎么样呀?” diff --git a/docs/basic-extra-meal/equals-hashcode.md b/docs/basic-extra-meal/equals-hashcode.md index 7e8f84d8c7be6090cf882d89e0fff287f91d8247..cb718fe418fc576b1652ff56a7f47f0721b435fe 100644 --- a/docs/basic-extra-meal/equals-hashcode.md +++ b/docs/basic-extra-meal/equals-hashcode.md @@ -1,4 +1,4 @@ -## 为什么重写 equals 时必须重写 hashCode 方法 + “二哥,我在读《Effective Java》 的时候,第 11 条规约说重写 equals 的时候必须要重写 hashCode 方法,这是为什么呀?”三妹单刀直入地问。 diff --git a/docs/basic-extra-meal/fanshe.md b/docs/basic-extra-meal/fanshe.md index cd2f4c21e774d9faa1030d05f7c8b0647512f02c..49f4cfd60f39d24fff845d14a4a98657fd3a0bee 100644 --- a/docs/basic-extra-meal/fanshe.md +++ b/docs/basic-extra-meal/fanshe.md @@ -1,4 +1,4 @@ -## 深入理解 Java 中的反射 + “二哥,什么是反射呀?”三妹开门见山地问。 diff --git a/docs/basic-extra-meal/generic.md b/docs/basic-extra-meal/generic.md index 41b45d25b783ce8888d880e5e57dd1c8ead85b26..020f134e1f4293f78cf2c883683e32a4bd773878 100644 --- a/docs/basic-extra-meal/generic.md +++ b/docs/basic-extra-meal/generic.md @@ -1,4 +1,4 @@ -## 泛型 + “二哥,为什么要设计泛型啊?”三妹开门见山地问。 diff --git a/docs/basic-extra-meal/immutable.md b/docs/basic-extra-meal/immutable.md index 2cd8e3715e55b28ac5ff3ff2ddb1818789bbd40d..bdd188ae444193697d07c46a1c9171661b1eaa65 100644 --- a/docs/basic-extra-meal/immutable.md +++ b/docs/basic-extra-meal/immutable.md @@ -1,4 +1,4 @@ -## 手撸了一个Java的不可变对象,很哇塞! + >二哥,你能给我说说为什么 String 是 immutable 类(不可变对象)吗?我想研究它,想知道为什么它就不可变了,这种强烈的愿望就像想研究浩瀚的星空一样。但无奈自身功力有限,始终觉得雾里看花终隔一层。二哥你的文章总是充满趣味性,我想一定能够说明白,我也一定能够看明白,能在接下来写一写吗? diff --git a/docs/basic-extra-meal/int-cache.md b/docs/basic-extra-meal/int-cache.md index df7cbe22baf5d7fbb40ad542bb8b16a8adcd2c7e..6440e505046b8a5f4edd0d3b8db9e6a871dfdd8c 100644 --- a/docs/basic-extra-meal/int-cache.md +++ b/docs/basic-extra-meal/int-cache.md @@ -1,4 +1,4 @@ -## new Integer(18) 与 Integer.valueOf(18) 有什么区别 + “三妹,今天我们来补一个小的知识点:Java 数据类型缓存池。”我喝了一口枸杞泡的茶后对三妹说,“考你一个问题哈:`new Integer(18) 与 Integer.valueOf(18) ` 的区别是什么?” diff --git a/docs/basic-extra-meal/java-naming.md b/docs/basic-extra-meal/java-naming.md index c7f15540842941bd83ea28dac6c3d1790b3b43c0..53f9a528652a65de27d6f31218b23ee0f5fa59f8 100644 --- a/docs/basic-extra-meal/java-naming.md +++ b/docs/basic-extra-meal/java-naming.md @@ -1,4 +1,3 @@ -## Java 命名约定 “二哥,Java 中的命名约定都有哪些呢?”三妹的脸上泛着甜甜的笑容,她开始对接下来要学习的内容充满期待了,这正是我感到欣慰的地方。 diff --git a/docs/basic-extra-meal/java-unicode.md b/docs/basic-extra-meal/java-unicode.md index 4d3462321e077937f3be284620860da6ee85deda..dcbb6c8f90255621fd0f07a0da869bb022a8eebb 100644 --- a/docs/basic-extra-meal/java-unicode.md +++ b/docs/basic-extra-meal/java-unicode.md @@ -1,4 +1,4 @@ -## Java 默认的编码方式 Unicode + “二哥,[上一篇](https://mp.weixin.qq.com/s/twim3w_dp5ctCigjLGIbFw)文章中提到了 Unicode,说 Java 中的 char 类型之所以占 2 个字节,是因为 Java 使用的是 Unicode 字符集而不是 ASCII 字符集,我有点迷,想了解一下,能细致给我说说吗?” diff --git a/docs/basic-extra-meal/override-overload.md b/docs/basic-extra-meal/override-overload.md index f6162c7ef3df93d2f3ae0e14cfc0a3f954d24b9b..8540335961e38ce85e46725a12c8cd7f785d24fb 100644 --- a/docs/basic-extra-meal/override-overload.md +++ b/docs/basic-extra-meal/override-overload.md @@ -1,4 +1,4 @@ -## 方法重载和方法重写 + ### 01、开篇 diff --git a/docs/basic-extra-meal/pass-by-value.md b/docs/basic-extra-meal/pass-by-value.md index dfe1fa3bfb29657a0e79f74606fe09b15123a48e..35c0628a605149e0ce6d147ab7c93324a7f957d6 100644 --- a/docs/basic-extra-meal/pass-by-value.md +++ b/docs/basic-extra-meal/pass-by-value.md @@ -1,4 +1,4 @@ -## Java 到底是值传递还是引用传递 + “哥,说说 Java 到底是值传递还是引用传递吧?”三妹一脸的困惑,看得出来她被这个问题折磨得不轻。 diff --git a/docs/basic-extra-meal/true-generic.md b/docs/basic-extra-meal/true-generic.md index 167736f66f76936c6562c5c34b61b944ef847609..6c3efb9cb5f91971faf5f087538d6a5c5db735f0 100644 --- a/docs/basic-extra-meal/true-generic.md +++ b/docs/basic-extra-meal/true-generic.md @@ -1,4 +1,4 @@ -## Java 不能实现真正泛型的原因是什么? + “二哥,为啥 Java 不能实现真正泛型啊?”三妹开门见山地问。 diff --git a/docs/basic-extra-meal/varables.md b/docs/basic-extra-meal/varables.md index 44291ebf167dcae0e3a1e071ea23fe8d8baf5c34..23d3894399d7c33b32f0f19d5108712343651033 100644 --- a/docs/basic-extra-meal/varables.md +++ b/docs/basic-extra-meal/varables.md @@ -1,4 +1,4 @@ -## 从原理上搞懂可变参数,就靠它了 + 为了让铁粉们能白票到阿里云的服务器,老王当了整整两天的客服,真正体验到了什么叫做“为人民群众谋福利”的不易和辛酸。正在他眼睛红肿打算要休息之际,小二跑过来问他:“Java 的可变参数究竟是怎么一回事?”老王一下子又清醒了,他爱 Java,他爱传道解惑,他爱这群尊敬他的读者。 diff --git a/docs/basic-extra-meal/what-happen-when-javac.md b/docs/basic-extra-meal/what-happen-when-javac.md index acc5cb2c6032b58256d90d9d14775365c9ba60f4..5fa75f059ba3ca8f5157309ae17306adadcc7369 100644 --- a/docs/basic-extra-meal/what-happen-when-javac.md +++ b/docs/basic-extra-meal/what-happen-when-javac.md @@ -1,4 +1,4 @@ -## Java程序在编译期发生了什么 + “二哥,看了上一篇 [Hello World](https://mp.weixin.qq.com/s/191I_2CVOxVuyfLVtb4jhg) 的程序后,我很好奇,它是怎么在 Run 面板里打印出‘三妹,少看手机少打游戏,好好学,美美哒’呢?”三妹咪了一口麦香可可奶茶后对我说。 diff --git a/docs/basic-grammar/basic-data-type.md b/docs/basic-grammar/basic-data-type.md index d6b03e7f93d612923e456105c1e561a9bee694ad..a2a5ae6246184c10d0524f38961f1bde4df4c867 100644 --- a/docs/basic-grammar/basic-data-type.md +++ b/docs/basic-grammar/basic-data-type.md @@ -1,4 +1,4 @@ -## 基本数据类型 + “二哥,[上一节](https://mp.weixin.qq.com/s/IgBpLGn0L1HZymgI4hWGVA)提到了 Java 变量的数据类型,是不是指定了类型就限定了变量的取值范围啊?”三妹吸了一口麦香可可奶茶后对我说。 diff --git a/docs/basic-grammar/flow-control.md b/docs/basic-grammar/flow-control.md index bb67c01ddd820a300c4e733b16bec02ba7cfa062..629a28e9dfb6a8fb3c908ad06d154bfcbc6d622b 100644 --- a/docs/basic-grammar/flow-control.md +++ b/docs/basic-grammar/flow-control.md @@ -1,4 +1,4 @@ -## 流程控制 + “二哥,流程控制语句都有哪些呢?”三妹的脸上泛着甜甜的笑容,她开始对接下来要学习的内容充满期待了,这正是我感到欣慰的地方。 diff --git a/docs/basic-grammar/javadoc.md b/docs/basic-grammar/javadoc.md index a1a68f9864beb8bfca7de9014f0139d96f6ce0bc..5eb560c1c2bec7f0d99cb867a8f80fb5d489d8a8 100644 --- a/docs/basic-grammar/javadoc.md +++ b/docs/basic-grammar/javadoc.md @@ -1,4 +1,4 @@ -## 注释:代码的最强辅助 + “二哥,Java 中的注释好像真没什么可讲的,我已经提前预习了,不过是单行注释,多行注释,还有文档注释。”三妹的脸上泛着甜甜的笑容,她竟然提前预习了接下来要学习的知识,有一种“士别三日,当刮目相看”的感觉。 diff --git a/docs/basic-grammar/operator.md b/docs/basic-grammar/operator.md index d4a6f6db76aefb07a5da416474332f1b36c76271..f2cc568f9e9151a0f18db1b1b57a5295d6777eb1 100644 --- a/docs/basic-grammar/operator.md +++ b/docs/basic-grammar/operator.md @@ -1,4 +1,4 @@ -## 运算符 + “二哥,让我盲猜一下哈,运算符是不是指的就是加减乘除啊?”三妹的脸上泛着甜甜的笑容,我想她一定对提出的问题很有自信。 diff --git a/docs/collection/arraylist.md b/docs/collection/arraylist.md index 0e13752eff39ad5d1c0f9e2d9d20a07fec8927a3..8f425f04d2c39fc6c55c263bcb78e569105e06d5 100644 --- a/docs/collection/arraylist.md +++ b/docs/collection/arraylist.md @@ -1,4 +1,4 @@ -## 面试官:换人!他连 ArrayList 都没吃透 + “二哥,听说今天我们开讲 ArrayList 了?好期待哦!”三妹明知故问,这个托配合得依然天衣无缝。 diff --git a/docs/collection/big-o.md b/docs/collection/big-o.md index 2f62c27e7cad1ef7328e85e9a25758639487e3b3..c85a645dc20f8ed8032edd1eb62c6b313ef1b1ef 100644 --- a/docs/collection/big-o.md +++ b/docs/collection/big-o.md @@ -1,4 +1,4 @@ -## 时间复杂度 + “二哥,为什么要讲时间复杂度呀?”三妹问。 diff --git a/docs/collection/fail-fast.md b/docs/collection/fail-fast.md index a70ddbc87ae3f2f38cbfff1ed2db288b1c9b0b60..21cb0035cfdd74df00092736e52f995b0d818351 100644 --- a/docs/collection/fail-fast.md +++ b/docs/collection/fail-fast.md @@ -1,4 +1,4 @@ -## 为什么阿里巴巴强制不要在 foreach 里执行删除操作 + 那天,小二去阿里面试,面试官老王一上来就甩给了他一道面试题:为什么阿里的 Java 开发手册里会强制不要在 foreach 里进行元素的删除操作?小二听完就面露喜色,因为两年前,也就是 2021 年,他在《Java 程序员进阶之路》专栏上的第 63 篇看到过这题😆。 diff --git a/docs/collection/gailan.md b/docs/collection/gailan.md index bc80436e8df439315ffdc6f5631c4cdcf7a3a161..cdbaf91f76412b1eb4eb80066a4b08c6455a35bf 100644 --- a/docs/collection/gailan.md +++ b/docs/collection/gailan.md @@ -1,4 +1,3 @@ -## 初识集合框架 眼瞅着三妹的王者荣耀杀得正嗨,我趁机喊到:“别打了,三妹,我们来一起学习 Java 的集合框架吧。” diff --git a/docs/collection/hash.md b/docs/collection/hash.md index 06ff10703b0d636480908baba9ec82907a0170f3..4499c8d068a74d7b7ef6c864eca573944483102e 100644 --- a/docs/collection/hash.md +++ b/docs/collection/hash.md @@ -1,4 +1,4 @@ -## HashMap 的 hash 原理 + 那天,小二去蔚来面试,面试官老王一上来就问他:HashMap 的 hash 方法的原理是什么?当时就把裸面的小二给蚌埠住了。 diff --git a/docs/collection/hashmap-interview.md b/docs/collection/hashmap-interview.md index e86410fb955962568ee5be33743ab4b53237df6f..fc05c30d52a738cc151a20e938aae8dc32faf370 100644 --- a/docs/collection/hashmap-interview.md +++ b/docs/collection/hashmap-interview.md @@ -1,4 +1,4 @@ -## HashMap 精选面试题(背诵版) + 对于 Java 求职者来说,HashMap 可谓是重中之重,是面试的必考点。然而 HashMap 的知识点非常多,复习起来花费精力很大。 diff --git a/docs/collection/hashmap-loadfactor.md b/docs/collection/hashmap-loadfactor.md index 5e30e526fa64e8726acf756074ef1b095fb51f29..8b7b158060952181c4b86b09de237f7926e14d1f 100644 --- a/docs/collection/hashmap-loadfactor.md +++ b/docs/collection/hashmap-loadfactor.md @@ -1,4 +1,4 @@ -## HashMap 的加载因子为什么是 0.75 + **Warning**:这是《Java 程序员进阶之路》专栏的第 57 篇,我们来聊聊 HashMap的加载因子,为什么必须是0.75,而不是0.8,0.6。 diff --git a/docs/collection/hashmap-resize.md b/docs/collection/hashmap-resize.md index b252791d2be1c9bd36bb7dee19b1a317b911eca8..55ecfc3f135ea8477bc1081cc3b0419260fa1646 100644 --- a/docs/collection/hashmap-resize.md +++ b/docs/collection/hashmap-resize.md @@ -1,4 +1,3 @@ -## HashMap 的扩容机制 **HashMap 发出的 Warning**:这是《Java 程序员进阶之路》专栏的第 56 篇。那天,小二垂头丧气地跑来给我诉苦,“老王,有个学弟小默问我‘ HashMap 的扩容机制’,我愣是支支吾吾讲了半天,没给他讲明白,讲到最后我内心都是崩溃的,差点哭出声!” diff --git a/docs/collection/hashmap-thread-nosafe.md b/docs/collection/hashmap-thread-nosafe.md index d8e135ff1aa675e2990e1c3bb328bad1e78fe21f..b2df9a19b227908cf96557a2599210fb013d78ef 100644 --- a/docs/collection/hashmap-thread-nosafe.md +++ b/docs/collection/hashmap-thread-nosafe.md @@ -1,4 +1,3 @@ -## 为什么 HashMap 是线程不安全的? 三方面原因:多线程下扩容会死循环、多线程下 put 会导致元素丢失、put 和 get 并发时会导致 get 到 null,我们来一一分析。 diff --git a/docs/collection/iterator-iterable.md b/docs/collection/iterator-iterable.md index cf1964b699f31ac197daba9fa13cea741d720a55..8a3c07ef1bbbd3de93c546ea2b582280e79d739e 100644 --- a/docs/collection/iterator-iterable.md +++ b/docs/collection/iterator-iterable.md @@ -1,4 +1,4 @@ -## 海康威视一面:Iterator与Iterable有什么区别? + 那天,小二去海康威视面试,面试官老王一上来就甩给了他一道面试题:请问 Iterator与Iterable有什么区别?小二差点笑出声,因为一年前,也就是 2021 年,他在《Java 程序员进阶之路》专栏上的第 62 篇看到过这题😆。 diff --git a/docs/collection/linkedlist.md b/docs/collection/linkedlist.md index 8e026ad74b3bfff0b00919f28d69c0790a0149d5..47524fbe5b7166662c9fe5ff61f8b0786a5ae0ce 100644 --- a/docs/collection/linkedlist.md +++ b/docs/collection/linkedlist.md @@ -1,4 +1,4 @@ -## 某团技术拷问:LinkedList 源码看过吗? + ### 一、LinkedList 的剖白 diff --git a/docs/collection/list-war-1.md b/docs/collection/list-war-1.md index 6c5bf9cc1968b6edab89c3df90361808aa3c554e..5a74c25630196de81bc03e04176b3e0c34fffe9f 100644 --- a/docs/collection/list-war-1.md +++ b/docs/collection/list-war-1.md @@ -1,4 +1,4 @@ -## ArrayList 重拳出击,把 LinkedList 干翻在地 + 这是《Java 程序员进阶之路》专栏的第 60 篇,我们来聊聊 ArrayList 和 LinkedList 之间的区别。大家可以到 GitHub 上给二哥一个 star,马上破 400 星标了。 diff --git a/docs/collection/list-war-2.md b/docs/collection/list-war-2.md index e7b8e9ab541528f5315356d8fe71359c4394e284..f68470e0990dbc74bebdff54840b29af3210b06e 100644 --- a/docs/collection/list-war-2.md +++ b/docs/collection/list-war-2.md @@ -1,4 +1,4 @@ -## 被 ArrayList 锤了一拳后,LinkedList 很不服气 + 这是《Java 程序员进阶之路》专栏的第 61 篇,我们来继续探讨 ArrayList 和 LinkedList,这一篇比[上一篇](https://mp.weixin.qq.com/s/mjeLeNv5PKateVarZE4KQQ)更深入、更全面,源码讲解、性能考量,方方面面都有涉及到了。 diff --git a/docs/common-tool/arrays.md b/docs/common-tool/arrays.md index 7486b0cbad01d484f95c00193b8ba39514f2a498..54935c8b8479b8ede2f102df045ec85320d0dccf 100644 --- a/docs/common-tool/arrays.md +++ b/docs/common-tool/arrays.md @@ -1,4 +1,3 @@ -## 数组工具类:Arrays “哥,数组专用工具类是专门用来操作数组的吗?比如说创建数组、数组排序、数组检索等等。”三妹的提问其实已经把答案说了出来。 diff --git a/docs/common-tool/collections.md b/docs/common-tool/collections.md index ae3504c9ef7dfef33862cfa8aaf4b65656820ec8..9cc027c459df4213cd8df8916392d2795f2be82b 100644 --- a/docs/common-tool/collections.md +++ b/docs/common-tool/collections.md @@ -1,4 +1,4 @@ -## 集合工具类:Collections + Collections 是 JDK 提供的一个工具类,位于 java.util 包下,提供了一系列的静态方法,方便我们对集合进行各种骚操作,算是集合框架的一个大管家。 diff --git a/docs/common-tool/hutool.md b/docs/common-tool/hutool.md index 8331f63bd50a86c20141a01851c253ea4907d6ac..cb764837bbd922a38bae31f566db70f68766927f 100644 --- a/docs/common-tool/hutool.md +++ b/docs/common-tool/hutool.md @@ -1,4 +1,4 @@ -## 不要再重复造轮子了,Hutool这款开源工具类库贼好使 + 读者群里有个小伙伴感慨说,“Hutool 这款开源类库太厉害了,基本上该有该的工具类,它里面都有。”讲真的,我平常工作中也经常用 Hutool,它确实可以帮助我们简化每一行代码,使 Java 拥有函数式语言般的优雅,让 Java 语言变得“甜甜的”。 diff --git a/docs/exception/gailan.md b/docs/exception/gailan.md index 3c6e36e7530eec695533c2c9a284ed55aea9c545..795c647956f8708eeecf10a20f0a1abfe7c55389 100644 --- a/docs/exception/gailan.md +++ b/docs/exception/gailan.md @@ -1,4 +1,4 @@ -## 异常处理机制 + “二哥,今天就要学习异常了吗?”三妹问。 diff --git a/docs/exception/shijian.md b/docs/exception/shijian.md index c3c6e8a514a43a094b3c8a33c905a0f37b3f6fca..073e9d7074acaa79158ccc302a033b77d20f12ae 100644 --- a/docs/exception/shijian.md +++ b/docs/exception/shijian.md @@ -1,4 +1,4 @@ -## 异常最佳实践 + “三妹啊,今天我来给你传授几个异常处理的最佳实践经验,以免你以后在开发中采坑。”我面带着微笑对三妹说。 diff --git a/docs/exception/throw-throws.md b/docs/exception/throw-throws.md index 38addbfed9045427a47f7ad4abfe5b90863e37b4..6d1a6ed5a06bb6473f503d6de4a11e284d402b6c 100644 --- a/docs/exception/throw-throws.md +++ b/docs/exception/throw-throws.md @@ -1,4 +1,4 @@ -## throw 和 throws + “二哥,你能告诉我 throw 和 throws 两个关键字的区别吗?”三妹问。 diff --git a/docs/exception/try-catch-finally.md b/docs/exception/try-catch-finally.md index 813c6a4b53203eb292ef57348764dd30f662d667..9966e07400433fb707804a0af522698a8cbf45c9 100644 --- a/docs/exception/try-catch-finally.md +++ b/docs/exception/try-catch-finally.md @@ -1,4 +1,3 @@ -## try-catch-finally “二哥,[上一节](https://mp.weixin.qq.com/s/fXRJ1xdz_jNSSVTv7ZrYGQ)你讲了异常处理机制,这一节讲什么呢?”三妹问。 diff --git a/docs/exception/try-with-resouces.md b/docs/exception/try-with-resouces.md index adc86b72e056374b980d879795adc4d6d88b8c44..1d3e863b7c0b3a9f0004c9b97537ef43f8b23cfd 100644 --- a/docs/exception/try-with-resouces.md +++ b/docs/exception/try-with-resouces.md @@ -1,4 +1,3 @@ -## try-with-resouces “二哥,终于等到你讲 try-with-resouces 了!”三妹夸张的表情让我有些吃惊。 diff --git a/docs/io/shangtou.md b/docs/io/shangtou.md index 79eae5d727422cf12e627441e59cf951c0a3d9f2..7601d4b86d1c6b7de7873c71a10c71679a6bb9b6 100644 --- a/docs/io/shangtou.md +++ b/docs/io/shangtou.md @@ -1,4 +1,4 @@ -## IO 流的分类和概述 + “老王,Java IO 也太上头了吧?”新兵蛋子小二向头顶很凉快的老王抱怨道,“你瞧,我就按照传输方式对 IO 进行了一个简单的分类,就能搞出来这么多的玩意!” diff --git a/docs/jvm/what-is-jvm.md b/docs/jvm/what-is-jvm.md index 8b56185fc1876054989f81307b879486b306a078..c746d97fbf38e5ce0454f0bba16b5c3fe4414ca6 100644 --- a/docs/jvm/what-is-jvm.md +++ b/docs/jvm/what-is-jvm.md @@ -1,4 +1,4 @@ -## JVM 是什么? + diff --git a/docs/oo/abstract.md b/docs/oo/abstract.md index 5ab18c368d79f2ae10ffde8feded1ae76897bcfd..dea56687f67aa710753a66f19e04d500519b905f 100644 --- a/docs/oo/abstract.md +++ b/docs/oo/abstract.md @@ -1,4 +1,4 @@ -## 抽象类 + “二哥,你这明显加快了更新的频率呀!”三妹对于我最近的肝劲由衷的佩服了起来。 diff --git a/docs/oo/code-init.md b/docs/oo/code-init.md index a835cfe2d43b5d564e855109bb087a4f494344c3..e5843387103101629e1980a8a059870afe1b4f9d 100644 --- a/docs/oo/code-init.md +++ b/docs/oo/code-init.md @@ -1,4 +1,3 @@ -## 代码初始块 “哥,今天我们要学习的内容是‘代码初始化块’,对吧?”看来三妹已经提前预习了我上次留给她的作业。 diff --git a/docs/oo/construct.md b/docs/oo/construct.md index bc18303bab605488669386ec52af6559f1253a7d..14836c78753e49e70ba3913caf0770f30669cec2 100644 --- a/docs/oo/construct.md +++ b/docs/oo/construct.md @@ -1,4 +1,4 @@ -## 构造方法 + 我对三妹说,“[上一节](https://mp.weixin.qq.com/s/L4jAgQPurGZPvWu8ECtBpA)学了 Java 中的方法,接着学构造方法的话,难度就小很多了。” diff --git a/docs/oo/final.md b/docs/oo/final.md index e73dbc1d67f05a06ae86d7d26b1511d6ba2d9190..5068d51ceb3aad1a2e3b97e0bd484fc35b5352a7 100644 --- a/docs/oo/final.md +++ b/docs/oo/final.md @@ -1,4 +1,3 @@ -## final 关键字 “哥,今天学什么呢?” diff --git a/docs/oo/instanceof.md b/docs/oo/instanceof.md index 51aa726b67acea077f2e0008b4162d93c07e24c9..f6f83c209cd7edddb4f625d85ea5f5aedd6e1032 100644 --- a/docs/oo/instanceof.md +++ b/docs/oo/instanceof.md @@ -1,4 +1,4 @@ -## instanceof 关键字 + instanceof 关键字的用法其实很简单: diff --git a/docs/oo/interface.md b/docs/oo/interface.md index 4ca7d73bdc431b71501c806299479d9b76aaca5d..dd152420b47c93c15f9fca49c2a58a5e7502905a 100644 --- a/docs/oo/interface.md +++ b/docs/oo/interface.md @@ -1,4 +1,4 @@ -## 接口 + “哥,我看你朋友圈说《Java 程序员进阶之路》专栏收到了第一笔赞赏呀,虽然只有一块钱,但我也替你感到开心。”三妹的脸上洋溢着自信的微笑,仿佛这钱是打给她的一样。 diff --git a/docs/oo/method.md b/docs/oo/method.md index 9efdc4f14dc07c82a6e953b20f626095eea9ba53..1bc91a41f1a8eb282faa2ba322804ff88d8ef354 100644 --- a/docs/oo/method.md +++ b/docs/oo/method.md @@ -1,4 +1,4 @@ -## 方法 + “二哥,[上一节](https://mp.weixin.qq.com/s/UExby8GP3kSacCXliQw8pQ)学了对象和类,这一节我们学什么呢?”三妹满是期待的问我。 diff --git a/docs/oo/object-class.md b/docs/oo/object-class.md index cc58089eaab6995143586709ccbba448b2b8bd0a..baef7a9effaabd5bb6d38704429938733d2c1fbf 100644 --- a/docs/oo/object-class.md +++ b/docs/oo/object-class.md @@ -1,4 +1,4 @@ -## 什么是对象?什么是类 + “二哥,我那天在图书馆复习[上一节](https://mp.weixin.qq.com/s/WzMEOEdzI0fFwBQ4s0S-0g)你讲的内容,刚好碰见一个学长,他问我有没有‘对象’,我说还没有啊。结果你猜他说什么,‘要不要我给你 new 一个啊?’我当时就懵了,new 是啥意思啊,二哥?”三妹满是疑惑的问我。 diff --git a/docs/oo/static.md b/docs/oo/static.md index 3f70449eedc707727ae99537c124f9c252c6486e..0ba7b7c9ef90515214bdbad3e71fdd0c9af5c807 100644 --- a/docs/oo/static.md +++ b/docs/oo/static.md @@ -1,4 +1,4 @@ -## static 关键字 + “哥,你牙龈肿痛轻点没?周一的教妹学 Java 你都没有更新,偷懒了呀!”三妹关心地问我。 diff --git a/docs/oo/this-super.md b/docs/oo/this-super.md index c9fb9fdf090fc342d4786a444f0f828bd856ea9b..52e86cbbcadc8ae50675e0ccf5429a5a085a0938 100644 --- a/docs/oo/this-super.md +++ b/docs/oo/this-super.md @@ -1,4 +1,4 @@ -## this 和 super 关键字 + “哥,被喊大舅子的感觉怎么样啊?”三妹不怀好意地对我说,她眼睛里充满着不屑。 diff --git a/docs/oo/var.md b/docs/oo/var.md index 1700ce8cedf4bb528f509894b1b044682e2b2723..95ddb30c845fedff66fb24d16e5535a7e6a9fdad 100644 --- a/docs/oo/var.md +++ b/docs/oo/var.md @@ -1,4 +1,4 @@ -## 变量 + “二哥,听说 Java 变量在以后的日子里经常用,能不能提前给我透露透露?”三妹咪了一口麦香可可奶茶后对我说。 diff --git a/docs/overview/hello-world.md b/docs/overview/hello-world.md index d138e6718e350e618da276ebf8553270156c933c..3226ac7263df1ee33394dba7d8816d7c6dff639e 100644 --- a/docs/overview/hello-world.md +++ b/docs/overview/hello-world.md @@ -1,4 +1,4 @@ -## 第一个 Java 程序:Hello World + 可以通过 Intellij IDEA 来编写代码,也可以使用在线编辑器来完成。 diff --git a/docs/overview/idea.md b/docs/overview/idea.md index 13e0b1a20a906223fb8889dbcd1123353691e5fe..829553594895400ce3de39db4b25352f8aa74223 100644 --- a/docs/overview/idea.md +++ b/docs/overview/idea.md @@ -1,4 +1,4 @@ -## 安装集成开发环境 Intellij IDEA + IntelliJ IDEA 简称 IDEA,是业界公认为最好的 Java 集成开发工具,尤其是在代码自动提示、代码重构、代码版本管理、单元测试、代码分析等方面有着亮眼的发挥。 diff --git a/docs/overview/java-advantage.md b/docs/overview/java-advantage.md index 34e67da069e29dd24a526e55ce8eacc52da23750..ef2af8def8775a2150a7e80fb7e9a9ca81d0cbb8 100644 --- a/docs/overview/java-advantage.md +++ b/docs/overview/java-advantage.md @@ -1,4 +1,4 @@ -## Java 的优势 + 尽管 Java 已经 25 岁了,但仍然“宝刀未老”。在 Stack Overflow 2019 年流行编程语言调查报告中,Java 位居第 5 位,有 41% 的受调开发者认为 Java 仍然是一门受欢迎的编程语言。 diff --git a/docs/overview/java-history.md b/docs/overview/java-history.md index d27e9197ba2681aa2326ba4999a22d094ad8f27b..d629f349f300657bee5c3045aa54edc96e80d2e6 100644 --- a/docs/overview/java-history.md +++ b/docs/overview/java-history.md @@ -1,4 +1,4 @@ -## Java 发展简史 + 20 世纪 90 年代,单片式计算机系统诞生。单片式计算机系统不仅廉价(之前的计算机非常庞大,并且昂贵),而且功能强大,可以大幅度提升消费性电子产品的智能化程度。 diff --git a/docs/overview/jdk-jre.md b/docs/overview/jdk-jre.md index c4a2dc72ca1e5a2c34d64573616e5eac54f5d910..14af8818abce006710b7a714a8b1e90c87d96d7a 100644 --- a/docs/overview/jdk-jre.md +++ b/docs/overview/jdk-jre.md @@ -1,4 +1,4 @@ -## JDK 与 JRE 之间的区别是什么? + “二哥,之前的文章里提到 JDK 与 JRE,说实在的,这两个概念把我搞得晕乎乎的,你能再给我普及一下吗?”三妹咪了一口麦香可可奶茶后对我说。 diff --git a/docs/overview/what-is-java.md b/docs/overview/what-is-java.md index 0ff8cad34e56358e8984ff207bb296f2abf61872..3d8bd4ae75352afd6ad9688e940c0bd74ce8f356 100644 --- a/docs/overview/what-is-java.md +++ b/docs/overview/what-is-java.md @@ -1,4 +1,4 @@ -## 什么是 Java? + “二哥,到底什么是 Java?给我说说呗。” diff --git a/docs/string/constant-pool.md b/docs/string/constant-pool.md index 8fb53aa7194f7ca702f777146e62e3e7e9ac6d6b..2ca577b37b87c1305eec82c0dfde7f524185eb64 100644 --- a/docs/string/constant-pool.md +++ b/docs/string/constant-pool.md @@ -1,4 +1,4 @@ -## 字符串常量池 + “三妹,今天我们来学习一下字符串常量池吧,这是字符串中非常关键的一个知识点。”我话音未落,青岛路小学那边传来了嘹亮的歌声就钻进了我的耳朵,“唱 ~ 山 ~ 歌 ~” diff --git a/docs/string/equals.md b/docs/string/equals.md index 53cd7f4e6927f7775be7ddd33fc9fc86df4366d6..efc382c885c62c7cbc1512a43eba548a9f051fef 100644 --- a/docs/string/equals.md +++ b/docs/string/equals.md @@ -1,4 +1,4 @@ -## 如何比较两个字符串是否相等 + “哥,如何比较两个字符串相等啊?”三妹问。 diff --git a/docs/string/immutable.md b/docs/string/immutable.md index c67559d931fb9025ad3068fea564a5b6ad539ca1..85ef745ba5eff35ae28015c46ccceef973c0133c 100644 --- a/docs/string/immutable.md +++ b/docs/string/immutable.md @@ -1,4 +1,4 @@ -## String 为什么是不可变的 + 我正坐在沙发上津津有味地读刘欣大佬的《码农翻身》——Java 帝国这一章,门铃响了。起身打开门一看,是三妹,她从学校回来了。 diff --git a/docs/string/intern.md b/docs/string/intern.md index d1531fc630cfa7dd8b8c11c6315475df58a5029b..667a623ac481f18e2fa1380e50d6d8a050eaac63 100644 --- a/docs/string/intern.md +++ b/docs/string/intern.md @@ -1,4 +1,4 @@ -## 深入浅出 String.intern + “哥,你发给我的那篇文章我看了,结果直接把我给看得不想学 Java 了!”三妹气冲冲地说。 diff --git a/docs/string/join.md b/docs/string/join.md index 0fcc684e7702e0f55bc009ade0c68ec7eda9979c..4df930708d39e5f1047114738f921c31bbf10d62 100644 --- a/docs/string/join.md +++ b/docs/string/join.md @@ -1,4 +1,4 @@ -## 如何拼接字符串 + “哥,你让我看的《Java 开发手册》上有这么一段内容:循环体内,拼接字符串最好使用 StringBuilder 的 `append()` 方法,而不是 + 号操作符。这是为什么呀?”三妹疑惑地问。 diff --git a/docs/string/split.md b/docs/string/split.md index 960e86599353ca6d0bc3fc042c03b15654becf14..a230e3731a1ee4f44139869e96cf202296a35800 100644 --- a/docs/string/split.md +++ b/docs/string/split.md @@ -1,4 +1,4 @@ -## 如何拆分字符串 + “哥,我感觉字符串拆分没什么可讲的呀,直接上 String 类的 `split()` 方法不就可以了!”三妹毫不客气地说。 diff --git a/images/logo-01.png b/images/logo-01.png new file mode 100644 index 0000000000000000000000000000000000000000..e007183709c6aa0a4aca7629f8a06c1dbc35ef15 Binary files /dev/null and b/images/logo-01.png differ diff --git a/index.html b/index.html index 5be30d4e909ca295c642d4c627a478d6b90d11c5..496f1651c1366289f43e3ee34e2da1a48162925b 100644 --- a/index.html +++ b/index.html @@ -6,22 +6,27 @@ - + -
+
加载中。。。
- + - +