Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 1dcad6f

Browse files
完善部分内容
1 parent 6160404 commit 1dcad6f

File tree

1 file changed

+17
-5
lines changed

1 file changed

+17
-5
lines changed

‎Java相关/Java基础知识.md‎

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
<!-- MarkdownTOC -->
32

43
- [1. 面向对象和面向过程的区别](#1-面向对象和面向过程的区别)
@@ -168,8 +167,23 @@ Java 语言通过字节码的方式,在一定程度上解决了传统解释型
168167
**可变性**
169168

170169

171-
String 类中使用字符数组保存字符串,private final char value[],所以 String 对象是不可变的。StringBuilder 与 StringBuffer 都继承自AbstractStringBuilder 类,在 AbstractStringBuilder 中也是使用字符数组保存字符串,char[]value,这两种对象都是可变的。
172-
170+
简单的来说:String 类中使用 final 关键字字符数组保存字符串,`private final char value[]`,所以 String 对象是不可变的。而StringBuilder 与 StringBuffer 都继承自 AbstractStringBuilder 类,在 AbstractStringBuilder 中也是使用字符数组保存字符串`char[]value` 但是没有用 final 关键字修饰,所以这两种对象都是可变的。
171+
172+
StringBuilder 与 StringBuffer 的构造方法都是调用父类构造方法也就是 AbstractStringBuilder 实现的,大家可以自行查阅源码。
173+
174+
AbstractStringBuilder.java
175+
176+
```java
177+
abstract class AbstractStringBuilder implements Appendable, CharSequence {
178+
char[] value;
179+
int count;
180+
AbstractStringBuilder() {
181+
}
182+
AbstractStringBuilder(int capacity) {
183+
value = new char[capacity];
184+
}
185+
```
186+
173187

174188
**线程安全性**
175189

@@ -379,5 +393,3 @@ final关键字主要用在三个地方:变量、方法、类。
379393
这本书要常读,初学者可以快速概览,中等程序员可以深入看看 Java,老鸟还可以用之回顾 Java 的体系。这本书之所以厉害,因为它在无形中整合了设计模式,这本书之所以难读,也恰恰在于他对设计模式的整合是无形的。
380394

381395

382-
383-

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /