auto commit
This commit is contained in:
parent
11831849f7
commit
a1debab612
@ -284,7 +284,7 @@ public String(String original) {
|
|||||||
|
|
||||||
Java 的参数是以值传递的形式传入方法中,而不是引用传递。
|
Java 的参数是以值传递的形式传入方法中,而不是引用传递。
|
||||||
|
|
||||||
以下代码中 Dog dog 的 dog 是一个指针,存储的是对象的地址。在将一个参数传入一个方法时,本质上是将对象的地址以值的方式传递到形参中。因此在方法中改变指针引用的对象,那么这两个指针此时指向的是完全不同的对象,一方改变其所指向对象的内容对另一方没有影响。
|
以下代码中 Dog dog 的 dog 是一个指针,存储的是对象的地址。在将一个参数传入一个方法时,本质上是将对象的地址以值的方式传递到形参中。因此在方法中使指针引用其它对象,那么这两个指针此时指向的是完全不同的对象,在一方改变其所指向对象的内容时对另一方没有影响。
|
||||||
|
|
||||||
```java
|
```java
|
||||||
public class Dog {
|
public class Dog {
|
||||||
@ -328,7 +328,7 @@ public class PassByValueExample {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
但是如果在方法中改变对象的字段值会改变原对象该字段值,因为改变的是同一个地址指向的内容。
|
如果在方法中改变对象的字段值会改变原对象该字段值,因为改变的是同一个地址指向的内容。
|
||||||
|
|
||||||
```java
|
```java
|
||||||
class PassByValueExample {
|
class PassByValueExample {
|
||||||
@ -435,7 +435,7 @@ protected 用于修饰成员,表示在继承体系中成员对于子类可见
|
|||||||
|
|
||||||
如果子类的方法重写了父类的方法,那么子类中该方法的访问级别不允许低于父类的访问级别。这是为了确保可以使用父类实例的地方都可以使用子类实例,也就是确保满足里氏替换原则。
|
如果子类的方法重写了父类的方法,那么子类中该方法的访问级别不允许低于父类的访问级别。这是为了确保可以使用父类实例的地方都可以使用子类实例,也就是确保满足里氏替换原则。
|
||||||
|
|
||||||
字段决不能是公有的,因为这么做的话就失去了对这个字段修改行为的控制,客户端可以对其随意修改。例如下面的例子中,AccessExample 拥有 id 共有字段,如果在某个时刻,我们想要使用 int 去存储 id 字段,那么就需要去修改所有的客户端代码。
|
字段决不能是公有的,因为这么做的话就失去了对这个字段修改行为的控制,客户端可以对其随意修改。例如下面的例子中,AccessExample 拥有 id 公有字段,如果在某个时刻,我们想要使用 int 存储 id 字段,那么就需要修改所有的客户端代码。
|
||||||
|
|
||||||
```java
|
```java
|
||||||
public class AccessExample {
|
public class AccessExample {
|
||||||
|
@ -1280,7 +1280,7 @@ Thread 对象的结束先行发生于 join() 方法返回。
|
|||||||
|
|
||||||
# 十一、线程安全
|
# 十一、线程安全
|
||||||
|
|
||||||
多个线程不管以何种方式访问某个类,并且1在主调代码中不需要进行同步,都能表现正确的行为。
|
多个线程不管以何种方式访问某个类,并且在主调代码中不需要进行同步,都能表现正确的行为。
|
||||||
|
|
||||||
线程安全有以下几种实现方式:
|
线程安全有以下几种实现方式:
|
||||||
|
|
||||||
|
@ -209,7 +209,7 @@ OK
|
|||||||
|
|
||||||
## 字典
|
## 字典
|
||||||
|
|
||||||
dictht 是一个散列表结构,使用拉链法保存哈希冲突的 dictEntry。
|
dictht 是一个散列表结构,使用拉链法保存哈希冲突。
|
||||||
|
|
||||||
```c
|
```c
|
||||||
/* This is our hash table structure. Every dictionary has two of this as we
|
/* This is our hash table structure. Every dictionary has two of this as we
|
||||||
@ -253,7 +253,7 @@ rehash 操作不是一次性完成,而是采用渐进方式,这是为了避
|
|||||||
|
|
||||||
在 rehash 期间,每次对字典执行添加、删除、查找或者更新操作时,都会执行一次渐进式 rehash。
|
在 rehash 期间,每次对字典执行添加、删除、查找或者更新操作时,都会执行一次渐进式 rehash。
|
||||||
|
|
||||||
采用渐进式 rehash 会导致字典中的数据分散在两个 dictht 上,因此对字典的操作也需要到对应的 dictht 去执行。
|
采用渐进式 rehash 会导致字典中的数据分散在两个 dictht 上,因此对字典的查找操作也需要到对应的 dictht 去执行。
|
||||||
|
|
||||||
```c
|
```c
|
||||||
/* Performs N steps of incremental rehashing. Returns 1 if there are still
|
/* Performs N steps of incremental rehashing. Returns 1 if there are still
|
||||||
|
Loading…
x
Reference in New Issue
Block a user