10000 Merge branch 'JavaGuide-fs' of https://github.com/yazhouasu/JavaGuide… · codeyu/JavaGuide@b397f38 · GitHub
[go: up one dir, main page]

Skip to content

Commit b397f38

Browse files
committed
Merge branch 'JavaGuide-fs' of https://github.com/yazhouasu/JavaGuide into JavaGuide-fs
2 parents 6248c12 + 0c38c98 commit b397f38

File tree

4 files changed

+8
-6
lines changed

4 files changed

+8
-6
lines changed

docs/java/Java基础知识.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -288,8 +288,10 @@ new 运算符,new 创建对象实例(对象实例在堆内存中),对象
288288
对象的相等,比的是内存中存放的内容是否相等。而引用相等,比较的是他们指向的内存地址是否相等。
289289

290290
### 2.2 面向对象三大特征
291+
291292
#### 2.2.1 封装
292293
封装是指把一个对象的状态信息(也就是属性)隐藏在对象内部,不允许外部对象直接访问对象的内部信息。但是可以提供一些可以被外界访问的方法来操作属性。就好像我们看不到挂在墙上的空调的内部的零件信息(也就是属性),但是可以通过遥控器(方法)来控制空调。如果属性不想被外界访问,我们大可不必提供方法给外界访问。但是如果一个类没有提供给外界访问的方法,那么这个类也没有什么意义了。就好像如果没有空调遥控器,那么我们就无法操控空凋制冷,空调本身就没有意义了(当然现在还有很多其他方法 ,这里只是为了举例子)。
294+
293295
```java
294296
public class Student {
295297
private int id;//id属性私有化
@@ -363,6 +365,7 @@ final 关键字主要用在三个地方:变量、方法、类。
363365
3. 使用 final 方法的原因有两个。第一个原因是把方法锁定,以防任何继承类修改它的含义;第二个原因是效率。在早期的 Java 实现版本中,会将 final 方法转为内嵌调用。但是如果方法过于庞大,可能看不到内嵌调用带来的任何性能提升(现在的 Java 版本已经不需要使用 final 方法进行这些优化了)。类中所有的 private 方法都隐式地指定为 final。
364366

365367
### 2.4 接口
368+
366369
#### 2.4.1 接口和抽象类的区别是什么?
367370

368371
1. 接口的方法默认是 public,所有方法在接口中不能有实现(Java 8 开始接口方法可以有默认实现),而抽象类可以有非抽象的方法。
@@ -385,8 +388,6 @@ final 关键字主要用在三个地方:变量、方法、类。
385388
### 2.5 类的扩展
386389
#### 2.5.1 String StringBuffer 和 StringBuilder 的区别是什么? String 为什么是不可变的?
387390

388-
**可变性**
389-
390391
简单的来说:String 类中使用 final 关键字修饰字符数组来保存字符串,`private final char value[]`,所以 String 对象是不可变的。
391392

392393
> 补充(来自[issue 675](https://github.com/Snailclimb/JavaGuide/issues/675)):在 Java 9 之后,String 类的实现改用 byte 数组存储字符串 `private final byte[] value`;

docs/java/Multithread/JavaConcurrencyAdvancedCommonInterviewQuestions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public class Singleton {
7373
private Singleton() {
7474
}
7575

76-
public static Singleton getUniqueInstance() {
76+
public synchronized static Singleton getUniqueInstance() {
7777
//先判断对象是否已经实例过,没有实例化过才进入加锁代码
7878
if (uniqueInstance == null) {
7979
//类对象加锁

docs/java/collection/Java集合框架常见面试题.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -384,10 +384,11 @@ public class Person implements Comparable<Person> {
384384
// TODO Auto-generated method stub
385385
if (this.age > o.getAge()) {
386386
return 1;
387-
} else if (this.age < o.getAge()) {
387+
}
388+
if (this.age < o.getAge()) {
388389
return -1;
389390
}
390-
return age;
391+
return 0;
391392
}
392393
}
393394

docs/questions/java-learning-path-and-methods.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
**下面的学习路线以及方法是笔主根据个人学习经历总结改进后得出,我相信照着这条学习路线来你的学习效率会非常高。**
44

5-
学习某个知识点的过程中如果不知道看什么书的话,可以查看这篇文章 :[Java 学习必备书籍推荐终极版!](https://github.com/Snailclimb/JavaGuide/blob/master/docs/data/java-recommended-books.md)
5+
学习某个知识点的过程中如果不知道看什么书的话,可以查看这篇文章 :[Java 学习必备书籍推荐终极版!](https://github.com/Snailclimb/JavaGuide/blob/master/docs/books/java.md)
66

77
另外,很重要的一点:**建议使用 Intellij IDEA 进行编码,可以单独抽点时间学习 Intellij IDEA 的使用。**
88

0 commit comments

Comments
 (0)
0