Skip to content

Commit f2c2ed4

Browse files
author
jackchan1999
committed
updates
1 parent 937d56d commit f2c2ed4

File tree

12 files changed

+155
-3
lines changed

12 files changed

+155
-3
lines changed

Node/node.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
## Java学习笔记
2+
3+
### 断言assert

第12章 内存管理/内存管理.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
## 数组与内存控制
2+
3+
变量,引用变量,数组变量,数组对象
4+
5+
多维数组的本质

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

Lines changed: 3 additions & 1 deletion
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 类
Lines changed: 20 additions & 0 deletions
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

Lines changed: 27 additions & 2 deletions
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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
格式化

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

Lines changed: 9 additions & 0 deletions
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

第6章 集合框架/List集合.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
list集合
2+
3+
线性表
4+
5+
List
6+
7+
- ArrayList
8+
- LinkedList

第6章 集合框架/Map集合.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Map集合

第6章 集合框架/Queue集合.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
###
2+
3+
- LIFO
4+
- Stack
5+
- LinkedList 双向链表,栈的链式实现
6+
7+
### 队列
8+
9+
- Queue接口
10+
- 插入
11+
- add()
12+
- offer()
13+
- 删除
14+
- remove()
15+
- poll()
16+
- 检查
17+
- element()
18+
- peek()
19+
20+
### 阻塞队列
21+
22+
BlockingQueue
23+
24+
- ArrayBlockingQueue 顺序阻塞队列
25+
- LinkedBlockingQueue 链式阻塞队列
26+
- PriorityBlockingQueue 优先阻塞队列
27+
- PriorityQueue 优先队列
28+
- ConcurrentLinkedQueue
29+
30+
### Deque 双端队列
31+
32+
可以当成队列和栈使用
33+
34+
- ArrayDeque
35+
- LinkedBlockingDeque
36+
- LinkedList
37+

第6章 集合框架/Set集合.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
set集合
2+
3+
map
4+
5+
元素是Entry< k, v >,Entry就是将key和value捆绑在一起
6+
7+
当一个set的元素是Entry的时候,该set就是一个map
8+
9+
hash()算法可以快速的计算出存、取的地址,存和取元素的效率很高,但是hash算法不能表示出元素之间的关系。hash算法决定了集合是无序的。
10+
11+
数组+链表,bucket桶结构,hash冲突
12+
13+
HashSet底层实现是HashMap
14+
15+
TreeMap
16+
17+
红黑树,平衡二叉树,排序二叉树(二叉查找树,左小右大,中序有序),有序,自然排序compareTo()方法,比较器排序Comparator接口
18+
19+
Entry< key, value >
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
## 集合工具类
2+
3+
### Collections
4+
5+
### Arrays
6+
7+
Arrays.copyOf()
8+
9+
System.arraycopy()
10+
11+
```java
12+
public static native void arraycopy(Object src, int srcPos,
13+
Object dest, int destPos,
14+
int length);
15+
```
16+
17+
- src - 源数组。
18+
- srcPos - 源数组中的起始位置。
19+
- dest - 目标数组。
20+
- destPos - 目标数据中的起始位置。
21+
- length - 要复制的数组元素的数量。
22+

0 commit comments

Comments
 (0)