Skip to content

Commit 8e71d7e

Browse files
committed
[update]修正样式
1 parent 30e7eb4 commit 8e71d7e

7 files changed

+12
-14
lines changed

docs/java/basis/Java基础知识.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
7. 支持网络编程并且很方便( Java 语言诞生本身就是为简化网络编程设计的,因此 Java 语言不仅支持网络编程而且很方便);
8181
8. 编译与解释并存;
8282

83-
> 修正(参见: [issue#544](https://github.com/Snailclimb/JavaGuide/issues/544)):C++11 开始(2011 年的时候),C++就引入了多线程库,在 windows、linux、macos 都可以使用`std::thread``std::async`来创建线程。参考链接:http://www.cplusplus.com/reference/thread/thread/?kw=thread
83+
> **🐛 修正(参见: [issue#544](https://github.com/Snailclimb/JavaGuide/issues/544)** :C++11 开始(2011 年的时候),C++就引入了多线程库,在 windows、linux、macos 都可以使用`std::thread``std::async`来创建线程。参考链接:http://www.cplusplus.com/reference/thread/thread/?kw=thread
8484
8585
### JVM vs JDK vs JRE
8686

docs/java/basis/Java常见关键字总结.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ bar.method2();
291291

292292
不同点: 静态代码块在非静态代码块之前执行(静态代码块 -> 非静态代码块 -> 构造方法)。静态代码块只在第一次new执行一次,之后不再执行,而非静态代码块在每new一次就执行一次。 非静态代码块可在普通方法中定义(不过作用不大);而静态代码块不行。
293293

294-
> 修正 [issue #677](https://github.com/Snailclimb/JavaGuide/issues/677):静态代码块可能在第一次new的时候执行,但不一定只在第一次new的时候执行。比如通过 `Class.forName("ClassDemo")`创建 Class 对象的时候也会执行。
294+
> **🐛 修正(参见: [issue #677](https://github.com/Snailclimb/JavaGuide/issues/677)** :静态代码块可能在第一次new的时候执行,但不一定只在第一次new的时候执行。比如通过 `Class.forName("ClassDemo")`创建 Class 对象的时候也会执行。
295295
296296
一般情况下,如果有些代码比如一些项目最常用的变量或对象必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的。如果我们想要设计不需要创建对象就可以调用类中的方法,例如:Arrays类,Character类,String类等,就需要使用静态方法, 两者的区别是 静态代码块是自动执行的而静态方法是被调用的时候才执行的.
297297

docs/java/jvm/JVM垃圾回收.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ Java 堆是垃圾收集器管理的主要区域,因此也被称作**GC 堆(G
7676

7777
大部分情况,对象都会首先在 Eden 区域分配,在一次新生代垃圾回收后,如果对象还存活,则会进入 s0 或者 s1,并且对象的年龄还会加 1(Eden 区->Survivor 区后对象的初始年龄变为 1),当它的年龄增加到一定程度(默认为 15 岁),就会被晋升到老年代中。对象晋升到老年代的年龄阈值,可以通过参数 `-XX:MaxTenuringThreshold` 来设置。
7878

79-
> 修正([issue552](https://github.com/Snailclimb/JavaGuide/issues/552)):“Hotspot 遍历所有对象时,按照年龄从小到大对其所占用的大小进行累积,当累积的某个年龄大小超过了 survivor 区的一半时,取这个年龄和 MaxTenuringThreshold 中更小的一个值,作为新的晋升年龄阈值”。
79+
> **🐛 修正(参见:[issue552](https://github.com/Snailclimb/JavaGuide/issues/552)**:“Hotspot 遍历所有对象时,按照年龄从小到大对其所占用的大小进行累积,当累积的某个年龄大小超过了 survivor 区的一半时,取这个年龄和 MaxTenuringThreshold 中更小的一个值,作为新的晋升年龄阈值”。
8080
>
8181
> **动态年龄计算的代码如下**
8282
>
@@ -314,7 +314,7 @@ JDK1.2 以后,Java 对引用的概念进行了扩充,将引用分为强引
314314
315315
~~**JDK1.7 及之后版本的 JVM 已经将运行时常量池从方法区中移了出来,在 Java 堆(Heap)中开辟了一块区域存放运行时常量池。**~~
316316
317-
> 修正([issue747](https://github.com/Snailclimb/JavaGuide/issues/747)[reference](https://blog.csdn.net/q5706503/article/details/84640762))
317+
> **🐛 修正(参见:[issue747](https://github.com/Snailclimb/JavaGuide/issues/747)[reference](https://blog.csdn.net/q5706503/article/details/84640762)**
318318
>
319319
> 1. **JDK1.7 之前运行时常量池逻辑包含字符串常量池存放在方法区, 此时 hotspot 虚拟机对方法区的实现为永久代**
320320
> 2. **JDK1.7 字符串常量池被从方法区拿到了堆中, 这里没有提到运行时常量池,也就是说字符串常量池被单独拿到堆,运行时常量池剩下的东西还在方法区, 也就是 hotspot 中的永久代**

docs/java/jvm/Java内存区域.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ JDK 8 版本之后方法区(HotSpot 的永久代)被彻底移除了(JDK1.7
152152

153153
大部分情况,对象都会首先在 Eden 区域分配,在一次新生代垃圾回收后,如果对象还存活,则会进入 s0 或者 s1,并且对象的年龄还会加 1(Eden 区->Survivor 区后对象的初始年龄变为 1),当它的年龄增加到一定程度(默认为 15 岁),就会被晋升到老年代中。对象晋升到老年代的年龄阈值,可以通过参数 `-XX:MaxTenuringThreshold` 来设置。
154154

155-
> 修正([issue552](https://github.com/Snailclimb/JavaGuide/issues/552)):“Hotspot 遍历所有对象时,按照年龄从小到大对其所占用的大小进行累积,当累积的某个年龄大小超过了 survivor 区的一半时,取这个年龄和 MaxTenuringThreshold 中更小的一个值,作为新的晋升年龄阈值”。
155+
> **🐛 修正(参见:[issue552](https://github.com/Snailclimb/JavaGuide/issues/552)** :“Hotspot 遍历所有对象时,按照年龄从小到大对其所占用的大小进行累积,当累积的某个年龄大小超过了 survivor 区的一半时,取这个年龄和 MaxTenuringThreshold 中更小的一个值,作为新的晋升年龄阈值”。
156156
>
157157
> **动态年龄计算的代码如下**
158158
>
@@ -163,9 +163,9 @@ JDK 8 版本之后方法区(HotSpot 的永久代)被彻底移除了(JDK1.7
163163
> size_t total = 0;
164164
> uint age = 1;
165165
> while (age < table_size) {
166-
> total += sizes[age];//sizes数组是每个年龄段对象大小
167-
> if (total > desired_survivor_size) break;
168-
> age++;
166+
> total += sizes[age];//sizes数组是每个年龄段对象大小
167+
> if (total > desired_survivor_size) break;
168+
> age++;
169169
> }
170170
> uint result = age < MaxTenuringThreshold ? age : MaxTenuringThreshold;
171171
> ...
@@ -235,7 +235,7 @@ JDK 1.8 的时候,方法区(HotSpot 的永久代)被彻底移除了(JDK1
235235
236236
~~**JDK1.7 及之后版本的 JVM 已经将运行时常量池从方法区中移了出来,在 Java 堆(Heap)中开辟了一块区域存放运行时常量池。**~~
237237
238-
> 修正([issue747](https://github.com/Snailclimb/JavaGuide/issues/747)[reference](https://blog.csdn.net/q5706503/article/details/84640762))
238+
> **🐛 修正(参见:[issue747](https://github.com/Snailclimb/JavaGuide/issues/747)[reference](https://blog.csdn.net/q5706503/article/details/84640762)**
239239
>
240240
> 1. **JDK1.7 之前运行时常量池逻辑包含字符串常量池存放在方法区, 此时 hotspot 虚拟机对方法区的实现为永久代**
241241
> 2. **JDK1.7 字符串常量池被从方法区拿到了堆中, 这里没有提到运行时常量池,也就是说字符串常量池被单独拿到堆,运行时常量池剩下的东西还在方法区, 也就是 hotspot 中的永久代**

docs/java/jvm/类加载器.md

+1-3
Original file line numberDiff line numberDiff line change
@@ -118,9 +118,7 @@ protected Class<?> loadClass(String name, boolean resolve)
118118

119119
~~为了避免双亲委托机制,我们可以自己定义一个类加载器,然后重写 `loadClass()` 即可。~~
120120

121-
完善修正([issue871](https://github.com/Snailclimb/JavaGuide/issues/871):类加载器一问的补充说明):
122-
123-
**自定义加载器的话,需要继承 `ClassLoader` 。如果我们不想打破双亲委派模型,就重写 `ClassLoader` 类中的 `findClass()` 方法即可,无法被父类加载器加载的类最终会通过这个方法被加载。但是,如果想打破双亲委派模型则需要重写 `loadClass()` 方法**
121+
**🐛 修正(参见:[issue871](https://github.com/Snailclimb/JavaGuide/issues/871)** :自定义加载器的话,需要继承 `ClassLoader` 。如果我们不想打破双亲委派模型,就重写 `ClassLoader` 类中的 `findClass()` 方法即可,无法被父类加载器加载的类最终会通过这个方法被加载。但是,如果想打破双亲委派模型则需要重写 `loadClass()` 方法
124122

125123
## 自定义类加载器
126124

docs/java/multi-thread/Atomic原子类总结.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ Atomic 翻译成中文是原子的意思。在化学上,我们知道原子是
6565
- AtomicLongFieldUpdater:原子更新长整型字段的更新器
6666
- AtomicReferenceFieldUpdater:原子更新引用类型里的字段
6767

68-
> 修正: **AtomicMarkableReference 不能解决ABA问题** **[issue#626](https://github.com/Snailclimb/JavaGuide/issues/626)**
68+
> **🐛 修正(参见:[issue#626](https://github.com/Snailclimb/JavaGuide/issues/626)** : `AtomicMarkableReference` 不能解决ABA问题。
6969
7070
```java
7171
/**

docs/java/new-features/Java8新特性总结.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -824,7 +824,7 @@ DateTimeFormatter formatter=DateTimeFormatter.ofPattern("YYYY-MM-dd HH:mm:ss");
824824
System.out.println(formatter.format(rightNow));//2019-03-12 16:26:48
825825
```
826826

827-
**修正(参见: [issue#1157](https://github.com/Snailclimb/JavaGuide/issues/1157))**:使用 `YYYY` 显示年份时,会显示当前时间所在周的年份,在跨年周会有问题。一般情况下都使用 `yyyy`,来显示准确的年份。
827+
**🐛 修正(参见: [issue#1157](https://github.com/Snailclimb/JavaGuide/issues/1157))**:使用 `YYYY` 显示年份时,会显示当前时间所在周的年份,在跨年周会有问题。一般情况下都使用 `yyyy`,来显示准确的年份。
828828

829829
跨年导致日期显示错误示例:
830830

0 commit comments

Comments
 (0)