Skip to content

Commit 78ae66f

Browse files
committed
updates
1 parent 937d56d commit 78ae66f

File tree

5 files changed

+60
-3
lines changed

5 files changed

+60
-3
lines changed

第3章 面向对象/Object类.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -111,4 +111,6 @@ class ObjectDemo{
111111

112112
运行结果:
113113

114-
![](img/object3.png)
114+
![](img/object3.png)
115+
116+
## Java 7 新增的 Objects 类
+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
## 垃圾回收机制
2+
3+
垃圾回收
4+
5+
- Object的finalize()
6+
- System.gc()
7+
- Runtime.getRuntime().gc()
8+
9+
对象在内存中的状态
10+
11+
- 可达状态
12+
- 可恢复状态
13+
- 不可达状态
14+
15+
## 对象的引用
16+
17+
- 弱引用
18+
- 软引用
19+
- 强引用
20+
- 虚引用

第3章 面向对象/抽象类与接口.md

+27-2
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,14 @@
1414

1515
例如:狼和狗都有吼叫的方法,可是吼叫内容是不一样的。所以抽象出来的犬科虽然有吼叫功能,但是并不明确吼叫的细节。
1616

17-
抽象类实际上是定义了一个标准和规范,等着他的子类们去实现
17+
抽象类实际上是定义了一个标准和规范,等着他的子类们去实现
1818

1919
### 抽象类的特点
2020

21+
抽象类不能创建实例,只能当成父类来被继承。抽象类是从多个具体类中抽象出来的父类,它具有更高层次的抽象。
22+
23+
抽象类体现的就是一种模板模式的设计,抽象类作为多个子类的通用模板。
24+
2125
当一个类中包含了抽象方法,该类必须使用abstract关键字来修饰,使用abstract关键字修饰的类为抽象类。
2226

2327
在定义抽象类时需要注意,包含抽象方法的类必须声明为抽象类,但抽象类可以不包含任何抽象方法,只需使用abstract关键字来修饰即可。另外,抽象类是不可以被实例化的,因为抽象类中有可能包含抽象方法,抽象方法是没有方法体的,不可以被调用。如果想调用抽象类中定义的方法,则需要创建一个子类,在子类中将抽象类中的抽象方法进行实现。
@@ -350,6 +354,10 @@ class BookPC{
350354

351355
![1491308317919](img/1491308317919.png)
352356

357+
### Java8改进的接口
358+
359+
Java 8 对接口进行了改进,允许在接口中定义默认方法,默认方法可以提供方法实现。
360+
353361
## 3. 深入理解Java的接口和抽象类
354362

355363
对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。
@@ -400,6 +408,12 @@ class ClassName implements Interface1,Interface2,[....]{
400408
```
401409
可以看出,允许一个类遵循多个特定的接口。如果一个非抽象类遵循了某个接口,就必须实现该接口中的所有方法。对于遵循某个接口的抽象类,可以不实现该接口中的抽象方法。
402410

411+
接口定义了一种规范,接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部状态数据,也不关心这些类的内部方法的实现细节,它只规定这批类里必须提供某些方法,提供这些方法的类就可满足实际需要。
412+
413+
接口体现的是规范和实现分离的设计哲学。让规范和实现分离正是接口的好处,让软件系统的各组件之间面向接口耦合,是一种松耦合的设计。
414+
415+
类似的,软件系统的各模块之间也应该采用这种面向接口的耦合,从而尽量降低各模块之间的耦合,为系统提供更好的可扩展性和可维护性。
416+
403417
### 抽象类和接口的区别
404418

405419
1.语法层面上的区别
@@ -465,4 +479,15 @@ class AlarmDoor extends Door implements Alarm {
465479
//....
466480
}
467481
}
468-
```
482+
```
483+
抽象类
484+
485+
- 体现的是 is a 关系,即继承关系,抽象类是多个具体类的抽象,是用来被继承的。
486+
- 体现的是一种模板模式设计
487+
488+
接口
489+
490+
- 定义的是一种规范,体现的是一种规范和实现分离的哲学
491+
- 对Java单继承的补充,是一种功能增强
492+
- 接口回调,一种消息通信机制
493+
- 面向接口编程,解耦

第4章 常见对象/格式化.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
格式化

第4章 常见对象/正则表达式的应用.md

+9
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
## 1. 正则表达式的应用
22

3+
String 类提供的几个特殊方法
4+
5+
| 方法声明 | 功能描述 |
6+
| ------------------- | ---------------------------- |
7+
| matches() | 判断该字符串是否匹配指定的正则表达式 |
8+
| replaceAll() | 将该字符串所有匹配正则表达式的子串替换成指定的字符串 |
9+
| replaceFirst() | 将该字符串中第一个匹配正则表达式的子串替换成指定的字符串 |
10+
| split(String regex) | 以regex为分隔符,将该字符串分割成多个子串 |
11+
312
### 1.1 匹配功能
413

514
```java

0 commit comments

Comments
 (0)