auto commit

This commit is contained in:
CyC2018 2018-04-18 13:46:04 +08:00
parent ee032c539e
commit 089dfb1d86
7 changed files with 32 additions and 37 deletions

View File

@ -65,7 +65,7 @@ private 方法隐式地被指定为 final如果在子类中定义的方法和
**1. 静态变量**
静态变量在内存中只存在一份,只在类第一次实例化时初始化一次。
静态变量在内存中只存在一份,只在类初始化时赋值一次。
- 静态变量:类所有的实例都共享静态变量,可以直接通过类名来访问它;
- 实例变量:每创建一个实例就会产生一个实例变量,它与该实例同生共死。
@ -83,11 +83,23 @@ public class A {
**3. 静态语句块**
静态语句块和静态变量一样在类第一次实例化时运行一次。
静态语句块在类初始化时运行一次。
**4. 初始化顺序**
**4. 静态内部类**
静态数据优先于其它数据的初始化,静态变量和静态语句块哪个先运行取决于它们在代码中的顺序。
内部类的一种,静态内部类不依赖外部类,且不能访问外部类的非 static 变量和方法。
**5. 静态导包**
```source-java
import static com.xxx.ClassName.*
```
在使用静态变量和方法时不用再指明 ClassName从而简化代码但可读性大大降低。
**6. 变量赋值顺序**
静态变量的赋值和静态语句块的运行优先于实例变量的赋值和普通语句块的运行,静态变量的赋值和静态语句块的运行哪个先执行取决于它们在代码中的顺序。
```java
public static String staticField = "静态变量";
@ -99,8 +111,6 @@ static {
}
```
实例变量和普通语句块的初始化在静态变量和静态语句块初始化结束之后。
```java
public String field = "实例变量";
```
@ -111,7 +121,7 @@ public String field = "实例变量";
}
```
最后才是构造函数中的数据进行初始化
最后才运行构造函数
```java
public InitialOrderTest() {
@ -121,25 +131,13 @@ public InitialOrderTest() {
存在继承的情况下,初始化顺序为:
1. 父类(静态变量、静态语句块
1. 父类(静态变量、静态语句块)
2. 子类(静态变量、静态语句块)
3. 父类(实例变量、普通语句块)
4. 父类(构造函数)
5. 子类(实例变量、普通语句块)
6. 子类(构造函数)
**5. 静态内部类**
内部类的一种,静态内部类不依赖外部类,且不能访问外部类的非 static 变量和方法。
**6. 静态导包**
```source-java
import static com.xxx.ClassName.*
```
在使用静态变量和方法时不用再指明 ClassName从而简化代码但可读性大大降低。
# 二、Object 通用方法
## 概览

View File

@ -192,7 +192,7 @@ Executor 管理多个异步任务的执行,而无需程序员显示地管理
主要有三种 Executor
1. CachedTreadPool一个任务创建一个线程
1. CachedThreadPool一个任务创建一个线程
2. FixedThreadPool所有任务只能使用固定大小的线程
3. SingleThreadExecutor相当于大小为 1 的 FixedThreadPool。

View File

@ -638,7 +638,7 @@ public int findKthLargest(int[] nums, int k) {
}
```
**堆排序** :时间复杂度 O(OlogK),空间复杂度 O(K)。
**堆排序** :时间复杂度 O(NlogK),空间复杂度 O(K)。
```java
public int findKthLargest(int[] nums, int k) {

View File

@ -1150,7 +1150,8 @@ I/O Multiplexing 又被称为 Event Driven I/O它可以让单个进程具有
同步异步是获知 I/O 完成的方式,同步需要时刻关心 I/O 是否已经完成,异步无需主动关心,在 I/O 完成时它会收到通知。
<div align="center"> <img src="../pics//54cb3f21-485b-4159-8bf5-dcde1c4d4c36.png" width=""/> </div><br>
<div align="center"> <img src="../pics//1a231f2a-5c2f-4231-8e0f-915aa5894347.jpg"/> </div><br>
### 1. 同步-阻塞
@ -1168,13 +1169,7 @@ I/O Multiplexing 又被称为 Event Driven I/O它可以让单个进程具有
<div align="center"> <img src="../pics//1582217a-ed46-4cac-811e-90d13a65163b.png" width=""/> </div><br>
### 3. 异步-阻塞
这是 I/O 复用使用的一种模式,通过使用 select它可以监听多个 I/O 事件,当这些事件至少有一个发生时,用户程序会收到通知。
<div align="center"> <img src="../pics//dbc5c9f1-c13c-4d06-86ba-7cc949eb4c8f.jpg" width=""/> </div><br>
### 4. 异步-非阻塞
### 3. 异步
该模式下I/O 操作会立即返回,之后可以处理其它操作,并且在 I/O 完成时会收到一个通知,此时会中断正在处理的操作,然后继续之前的操作。

View File

@ -98,16 +98,18 @@
以 (2, 3, 1, 0, 2, 5) 为例:
```html
```text-html-basic
position-0 : (2,3,1,0,2,5) // 2 <-> 1
(1,3,2,0,2,5) // 1 <-> 3
(3,1,1,0,2,5) // 3 <-> 0
(0,1,1,3,2,5) // already in position
position-1 : (0,1,1,3,2,5) // already in position
position-2 : (0,1,1,3,2,5) // nums[i] == nums[nums[i]], exit
(3,1,2,0,2,5) // 3 <-> 0
(0,1,2,3,2,5) // already in position
position-1 : (0,1,2,3,2,5) // already in position
position-2 : (0,1,2,3,2,5) // already in position
position-3 : (0,1,2,3,2,5) // already in position
position-4 : (0,1,2,3,2,5) // nums[i] == nums[nums[i]], exit
```
遍历到位置 2 时,该位置上的数为 1但是第 1 个位置上已经有一个 1 的值了,因此可以知道 1 重复。
遍历到位置 4 时,该位置上的数为 2但是第 2 个位置上已经有一个 2 的值了,因此可以知道 2 重复。
复杂度O(N) + O(1)

View File

@ -581,7 +581,7 @@ public class MergeSort {
for (int k = lo; k <= hi; k++) {
if (i > mid) a[k] = aux[j++];
else if (j > hi) a[k] = aux[i++];
else if (aux[i].compareTo(a[j]) < 0) a[k] = aux[i++]; // 先进行这一步保证稳定性
else if (aux[i].compareTo(a[j]) <= 0) a[k] = aux[i++]; // 先进行这一步,保证稳定性
else a[k] = aux[j++];
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB