|
43 | 43 |
|
44 | 44 | - [什么是 Java](docs/overview/what-is-java.md) |
45 | 45 | - [Java 发展简史](docs/overview/java-history.md) |
46 | | -- [Java 为什么如此流行](docs/overview/why-java-popular.md) |
47 | | -- [环境准备:Intellij IDEA](docs/overview/idea.md) |
48 | | -- [第一个 Java 程序:Hello World](docs/overview/hello-world.md) |
| 46 | +- [Java 的优势](docs/overview/java-advantage.md) |
49 | 47 | - [JDK 和 JRE 有什么区别](docs/overview/jdk-jre.md) |
50 | | -- [JVM 是什么](docs/overview/jvm.md) |
| 48 | +- [安装集成开发环境 Intellij IDEA](docs/overview/idea.md) |
| 49 | +- [第一个 Java 程序:Hello World](docs/overview/hello-world.md) |
| 50 | + |
51 | 51 |
|
52 | 52 | ### **Java 基础语法** |
53 | 53 |
|
54 | | -- [一网打尽 Java 的那些关键字](docs/core-grammar/java-keywords.md) |
55 | | -- [Java 数据类型有哪些](docs/core-grammar/java-data-type.md) |
56 | | -- [流程控制语句有哪些?图解版](docs/control/java-control.md) |
57 | | -- [Java 运算符有哪些?](docs/core-grammar/java-operator.md) |
58 | | -- [Java 注释:程序的注解](docs/overview/javadoc.md) |
59 | | -- [技术大佬的必备素质:命名优雅](docs/core-grammar/java-naming.md) |
| 54 | +- [基本数据类型](docs/basic-grammar/basic-data-type.md) |
| 55 | +- [流程控制](docs/basic-grammar/flow-control.md) |
| 56 | +- [运算符](docs/basic-grammar/operator.md) |
| 57 | +- [注释:代码的最强辅助](docs/basic-grammar/javadoc.md) |
60 | 58 |
|
61 | 59 | ### **面向对象** |
62 | 60 |
|
63 | | -- [对象和类的相爱相杀](docs/object-class/java-object-class.md) |
64 | | -- [Java 变量类型有哪些](docs/core-grammar/java-var.md) |
65 | | -- [方法:我负责程序的行为](docs/object-class/java-method.md) |
66 | | -- [构造方法:对象初始化的必经之路](docs/object-class/java-construct.md) |
67 | | -- [代码初始化块:让我先走一步](docs/object-class/code-init.md) |
68 | | -- [抽象类:子类复用的基石](docs/object-class/java-abstract.md) |
69 | | -- [接口:抽象的另外一种表现形式](docs/object-class/java-interface.md) |
70 | | - |
71 | | -### **关键字详解** |
| 61 | +- [什么是对象?什么是类](docs/oo/object-class.md) |
| 62 | +- [变量](docs/oo/var.md) |
| 63 | +- [方法](docs/oo/method.md) |
| 64 | +- [构造方法](docs/oo/construct.md) |
| 65 | +- [代码初始化块](docs/oo/code-init.md) |
| 66 | +- [抽象类](docs/oo/java-abstract.md) |
| 67 | +- [接口](docs/oo/interface.md) |
| 68 | +- [static 关键字](docs/oo/static.md) |
| 69 | +- [this 和 super 关键字](docs/oo/this-super.md) |
| 70 | +- [final 关键字](docs/oo/final.md) |
| 71 | +- [instanceof 关键字](docs/oo/instanceof.md) |
72 | 72 |
|
73 | | -- [学妹必须学会的 static 关键字](docs/keywords/java-static.md) |
74 | | -- [学弟必须掌握的 this 和 super ](docs/keywords/java-this.md) |
75 | | -- [再见了,我的 final 关键字](docs/keywords/java-final.md) |
76 | | -- [判断对象的类型:instanceof 关键字](docs/keywords/java-instanceof.md) |
77 | 73 |
|
78 | 74 | ### **字符串** |
79 | 75 |
|
80 | | -- [从源码的角度来看字符串的不可变性](docs/string/source.md) |
81 | | -- [学弟学妹都必须掌握的字符串常量池](docs/string/constant-pool.md) |
82 | | -- [深入浅出之美团技术团队解析过的 String.intern](docs/string/intern.md) |
| 76 | +- [String 为什么是不可变的](docs/string/immutable.md) |
| 77 | +- [字符串常量池](docs/string/constant-pool.md) |
| 78 | +- [深入浅出 String.intern](docs/string/intern.md) |
83 | 79 | - [如何比较两个字符串是否相等](docs/string/equals.md) |
84 | 80 | - [如何拼接字符串](docs/string/join.md) |
85 | 81 | - [如何拆分字符串](docs/string/split.md) |
86 | 82 |
|
87 | 83 | ### **数组** |
88 | 84 |
|
89 | | -- [最重要的数据结构之一](docs/array/gailan.md) |
90 | | -- [数组的专用工具类:java.util.Arrays](docs/array/arrays.md) |
91 | | -- [打印数组最优雅的方式:deepToString](docs/array/print.md) |
92 | | - |
93 | | -### **泛型** |
94 | | - |
95 | | -- [晦涩难懂的泛型](docs/generic/generic.md) |
96 | | -- [Java 不能实现真正泛型的原因是什么?](docs/generic/true-generic.md) |
97 | | - |
98 | | -### **注解** |
99 | | - |
100 | | -- [撸个注解有什么难的](docs/annotation/annotation.md) |
101 | | - |
102 | | -### **枚举** |
103 | | - |
104 | | -- [单例的最佳实现方式——枚举](docs/enum/enum.md) |
| 85 | +- [数组](docs/array/array.md) |
| 86 | +- [打印数组](docs/array/print.md) |
105 | 87 |
|
| 88 | +### **集合框架** |
106 | 89 |
|
107 | | -### **反射** |
| 90 | +- [初识集合框架](docs/collection/gailan.md) |
| 91 | +- [时间复杂度](docs/collection/big-o.md) |
| 92 | +- [ArrayList](docs/collection/arraylist.md) |
| 93 | +- [LinkedList](docs/collection/linkedlist.md) |
| 94 | +- [ArrayList 重拳出击,把 LinkedList 干翻在地](docs/collection/list-war-1.md) |
| 95 | +- [被 ArrayList 锤了一拳后,LinkedList 很不服气](docs/collection/list-war-2.md) |
| 96 | +- [海康威视一面:Iterator与Iterable有什么区别?](docs/collection/iterator-iterable.md) |
| 97 | +- [为什么阿里巴巴强制不要在 foreach 里执行删除操作](docs/collection/fail-fast.md) |
| 98 | +- [HashMap 的 hash 原理](docs/collection/hash.md) |
| 99 | +- [HashMap 的扩容机制](docs/collection/hashmap-resize.md) |
| 100 | +- [HashMap 的加载因子为什么是 0.75](docs/collection/hashmap-loadfactor.md) |
| 101 | +- [为什么 HashMap 是线程不安全的?](docs/collection/hashmap-thread-nosafe.md) |
| 102 | +- [HashMap 精选面试题(背诵版)](docs/collection/hashmap-interview.md) |
108 | 103 |
|
109 | | -- [深入理解 Java 的反射](docs/fanshe/fanshe.md) |
110 | 104 |
|
111 | | -### **异常** |
| 105 | +### **异常处理** |
112 | 106 |
|
113 | 107 | - [异常处理机制](docs/exception/gailan.md) |
114 | 108 | - [try-catch-finally](docs/exception/try-catch-finally.md) |
115 | 109 | - [throw 和 throws](docs/exception/throw-throws.md) |
116 | 110 | - [try-with-resouces](docs/exception/try-with-resouces.md) |
117 | 111 | - [异常最佳实践](docs/exception/shijian.md) |
118 | 112 |
|
| 113 | +### **常用工具类** |
119 | 114 |
|
120 | | -### **补充** |
| 115 | +- [数组工具类:Arrays](docs/common-tool/arrays.md) |
| 116 | +- [集合工具类:Collections](docs/common-tool/collections.md) |
121 | 117 |
|
122 | | -- [Java程序在编译期发生了什么](docs/overview/what-happen-when-javac.md) |
123 | | -- [必知必会的 Unicode:躲开锟斤拷](docs/core-points/unicode.md) |
124 | | -- [面试会考,Java 数据类型缓存池](docs/core-points/int-cache.md) |
125 | | -- [傻傻分不清:方法重载和方法重写](docs/core-points/override-overload.md) |
126 | | -- [Java 表示:我只有值传递,没有引用传递](docs/core-points/pass-by-value.md) |
127 | | -- [面试经典题目:浅拷贝与深拷贝有什么区别](docs/core-points/deep-copy.md) |
128 | | -- [自动拆箱与自动装箱,好玩](docs/core-points/box.md) |
129 | | -- [为什么重写 equals 时必须重写 hashCode 方法](docs/core-points/equals-hashcode.md) |
| 118 | +### **加餐** |
130 | 119 |
|
131 | | -### **集合框架** |
| 120 | +- [Java 中常用的 48 个关键字](docs/basic-extra-meal/48-keywords.md) |
| 121 | +- [Java 命名约定](docs/basic-extra-meal/java-naming.md) |
| 122 | +- [Java 默认的编码方式 Unicode](docs/basic-extra-meal/java-unicode.md) |
| 123 | +- [new Integer(18) 与 Integer.valueOf(18) 有什么区别](docs/basic-extra-meal/int-cache.md) |
| 124 | +- [自动拆箱与自动装箱](docs/basic-extra-meal/box.md) |
| 125 | +- [方法重载和方法重写](docs/basic-extra-meal/override-overload.md) |
| 126 | +- [Java 到底是值传递还是引用传递](docs/basic-extra-meal/pass-by-value.md) |
| 127 | +- [浅拷贝与深拷贝](docs/basic-extra-meal/deep-copy.md) |
| 128 | +- [为什么重写 equals 时必须重写 hashCode 方法](docs/basic-extra-meal/equals-hashcode.md) |
| 129 | +- [注解](docs/basic-extra-meal/annotation.md) |
| 130 | +- [枚举](docs/basic-extra-meal/enum.md) |
| 131 | +- [深入理解 Java 中的反射](docs/basic-extra-meal/fanshe.md) |
| 132 | +- [泛型](docs/basic-extra-meal/generic.md) |
| 133 | +- [Java 不能实现真正泛型的原因是什么?](docs/basic-extra-meal/true-generic.md) |
| 134 | +- [Java程序在编译期发生了什么](docs/basic-extra-meal/what-happen-when-javac.md) |
132 | 135 |
|
133 | | -- [初探集合框架](docs/collection/gailan.md) |
134 | | -- [时间复杂度](docs/collection/big-o.md) |
135 | | -- [ArrayList](docs/collection/arraylist.md) |
136 | | -- [LinkedList](docs/collection/linkedlist.md) |
137 | | -- [ArrayList 重拳出击,把 LinkedList 干翻在地](docs/collection/list-war-1.md) |
138 | | -- [被 ArrayList 锤了一拳后,LinkedList 很不服气](docs/collection/list-war-2.md) |
139 | | -- [HashMap 的 hash 方法原理是什么](docs/collection/hash.md) |
140 | | -- [HashMap 的扩容机制](docs/collection/hashmap-resize.md) |
141 | | -- [HashMap 的加载因子为什么是 0.75](docs/collection/hashmap-loadfactor.md) |
142 | | -- [为什么 HashMap 是线程不安全的?](docs/collection/hashmap-thread-nosafe.md) |
143 | | -- [HashMap 精选面试题(背诵版)](docs/collection/hashmap-interview.md) |
| 136 | +## Java 进阶 |
| 137 | + |
| 138 | +### **Java 虚拟机** |
144 | 139 |
|
| 140 | +- [JVM 是什么?](docs/jvm/what-is-jvm.md) |
145 | 141 |
|
146 | 142 | # :paw_prints: 联系作者 |
147 | 143 |
|
|
0 commit comments