Skip to content

Commit 9ddf0c3

Browse files
author
jackchan1999
committed
updates
1 parent f2c2ed4 commit 9ddf0c3

34 files changed

+916
-701
lines changed

Node/RandomAccessFile.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
## RandomAccessFile
2+
3+
随机访问流

Node/node.md

Lines changed: 75 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,76 @@
1-
## Java学习笔记
1+
## 断言assert
2+
3+
## IO流
4+
5+
- 字节流
6+
- 字符流
7+
- 转换流
8+
- 高效流
9+
- 随机访问流
10+
- 序列化流
11+
- NIO jdk 4
12+
- Channel 通道,面向块的处理
13+
- Buffer 缓冲,capacity,limit,position
14+
- Files
15+
- Paths
16+
- FileVisitor 遍历文件和目录
17+
18+
### Buffer 缓冲区
19+
20+
| 方法声明 | 功能描述 |
21+
| ---------- | ---------------------------------------- |
22+
| allocate() | 分配内存空间,创建Buffer对象 |
23+
| put() | 存数据 |
24+
| get() | 取数据 |
25+
| position() | 位置 |
26+
| limit() | 界限 |
27+
| capacity() | 容量 |
28+
| flip() | 为输出数据做好准备,limit = position;position = 0; |
29+
| clear() | 为装入数据做准备,limit = capacity;position = 0; |
30+
31+
### Channel 通道
32+
33+
| 方法声明 | 功能描述 |
34+
| ------- | ------------------------------ |
35+
| map() | 将buffer对应的部分或全部数据映射成ByteBuffer |
36+
| write() | 向buffer写入数据 |
37+
| read() | 从buffer读取数据 |
38+
39+
- AIO Jdk 7
40+
- 字符集和Charset
41+
- 编解码
42+
- 文件锁FileLock
43+
44+
### AIO
45+
46+
Path
47+
48+
| 方法声明 | 功能描述 |
49+
| -------------- | ---- |
50+
| getNameCount() | |
51+
| getRoot() | |
52+
| | |
53+
54+
Paths
55+
56+
| 方法声明 | 功能描述 |
57+
| ----- | ---- |
58+
| get() | |
59+
| | |
60+
| | |
61+
62+
Files
63+
64+
| 方法声明 | 功能描述 |
65+
| ---------- | ---- |
66+
| copy() | |
67+
| isHidden() | |
68+
| size() | |
69+
| write() | |
70+
| list() | |
71+
| lines() | |
72+
73+
74+
75+
## 网络编程
276

3-
### 断言assert

Node/内存管理.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
## 数组与内存控制
2+
3+
数组:长度不可变,连续的内存
4+
5+
变量,引用变量,数组变量,数组对象
6+
7+
数组变量是引用类型的变量,数组变量并不是数组本身,它只是指向堆内存中的数组对象。
8+
9+
数组变量只是一个引用变量,通常存放在栈内存中(也可被放入堆内存中),而数组对象就是保存在堆内存中的连续内存空间。
10+
11+
引用变量本质上只是一个指针,只要程序通过引用变量访问属性,或者通过引用变量调用方法,该引用变量将会由它所引用的对象代替。
12+
13+
### 引用类型的数组
14+
15+
引用类型数组的数组元素依然是引用类型的,因此数组元素里存储的还是引用,它指向另一块内存,这块内存里存储了该引用变量所引用的对象(包括数组和Java对象)。
16+
17+
多维数组的本质
18+
19+
## 内存管理
20+
21+
内存管理:内存分配和内存回收。

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,8 @@
9191
* [Java集合类型详解](https://alleniverson.gitbooks.io/java-basic-introduction/content/第6章%20集合框架/Java集合类型详解.html)
9292
* [第7章 IO流](https://alleniverson.gitbooks.io/java-basic-introduction/content/第7章%20IO流/README.html)
9393
* [IO流之File类](https://alleniverson.gitbooks.io/java-basic-introduction/content/第7章%20IO流/IO流之File类.html)
94-
* [IO流之字节流和字符流](https://alleniverson.gitbooks.io/java-basic-introduction/content/第7章%20IO流/IO流之字节流和字符流.html)
94+
* [IO流之字节流](https://alleniverson.gitbooks.io/java-basic-introduction/content/第7章%20IO流/IO流之字节流.html)
95+
* [IO流之字符流](https://alleniverson.gitbooks.io/java-basic-introduction/content/第7章%20IO流/IO流之字符流.html)
9596
* [常用IO流](https://alleniverson.gitbooks.io/java-basic-introduction/content/第7章%20IO流/常用IO流.html)
9697
* [NIO](https://alleniverson.gitbooks.io/java-basic-introduction/content/第7章%20IO流/NIO.html)
9798
* [AIO](https://alleniverson.gitbooks.io/java-basic-introduction/content/第7章%20IO流/AIO.html)

SUMMARY.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,8 @@
8484

8585
* [第7章 IO流](第7章 IO流/README.md)
8686
* [IO流之File类](第7章 IO流/IO流之File类.md)
87-
* [IO流之字节流和字符流](第7章 IO流/IO流之字节流和字符流.md)
87+
* [IO流之字节流和字符流](第7章 IO流/IO流之字节流.md)
88+
* [IO流之字符流](第7章 IO流/IO流之字符流.md)
8889
* [常用IO流](第7章 IO流/常用IO流.md)
8990
* [NIO](第7章 IO流/NIO.md)
9091
* [AIO](第7章 IO流/AIO.md)

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

Lines changed: 0 additions & 5 deletions
This file was deleted.
42.6 KB
Loading
28.5 KB
Loading
55 KB
Loading

第3章 面向对象/接口回调.md

Lines changed: 14 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
所谓回调,在实现具有通用性质的应用框架时非常常见:
2+
13
## 接口回调
24

35
> 原文链接:http://blog.csdn.net/aigestudio/article/details/40869893
@@ -8,17 +10,15 @@
810

911
然后再新建三个类:Manager(该类用来模拟总经理),Personnel(该类用来模拟员工),Main(主类)
1012

11-
![接口回调](http://img.blog.csdn.net/20141106222617125?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWlnZXN0dWRpbw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
13+
![接口回调](img/接口回调1.jpg)
1214

1315
Manager的代码如下:
1416

1517
```java
1618
package com.aige.test;
1719

1820
/**
19-
* @description 该类用来模拟总经理
20-
* @author Walid
21-
* @since 2014/11/6
21+
* @description 该类用来模拟总经理
2222
*/
2323
public class Manager {
2424
/**
@@ -31,7 +31,7 @@ public class Manager {
3131

3232
/**
3333
* @description 当员工做完总经理让他做的事后就通过该方法通知总经理
34-
* @param result 事情结果
34+
* @param result 事情结果
3535
*/
3636
public void phoneCall(String result) {
3737
System.out.println("事情" + result);
@@ -47,9 +47,7 @@ Personnel的代码如下:
4747
package com.aige.test;
4848

4949
/**
50-
* @description 该类用来模拟员工
51-
* @author Walid
52-
* @since 2014/11/6
50+
* @description 该类用来模拟员工
5351
*/
5452
public class Personnel {
5553
public void doSomething(Manager manager, String task) {
@@ -81,7 +79,7 @@ public class Main {
8179

8280
代码执行结果如下:
8381

84-
![接口回调](http://img.blog.csdn.net/20141106223800671?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWlnZXN0dWRpbw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
82+
![接口回调](img/接口回调2.jpg)
8583

8684
回到我们刚才举的那个现实中的例子:总经理出差前要你去办件事情,这件事情通过doSomething告诉你了,事情要是办完了就打总经理的电话phoneCall通知他一声。这里的phoneCall我们就称为回调方法,为什么称之为回调呢?你问我我也不清楚哈,这你得问Sun公司了,不过我们从代码的执行过程可以看出数据的流向大致是Manager → Personnel → Manager,这不就是一个“回调”的过程么?现在我们来总结下满足回调的两个基本条件:
8785

@@ -90,17 +88,15 @@ public class Main {
9088

9189
一切看上去都很完美,以上例子代码简单通俗地描述了回调,但是这里我就会有这样一个疑问:假设总经理出差前交了件事情给我去办,不巧……副总经理也要给我件事去办,更无耻的是……主管也发任务过来了,都要求说做完就打电话通知他们……这时我们就要定义更多类,什么总经理类啦、经理类啦、主管类啦、杂七杂八的类,但是这些杂七杂八的大爷们都要求做完事情就电话通知,每个类都会有一个类似phoneCall的方法作为回调方法,这时,我们利用面向对象的思想来看,是不是可以把这个回调方法抽象出来作为一个独立的抽象类或接口呢?多态的思想油然而生,鉴于JAVA接口的好处,我们就定义一个名为CallBack的接口作为回调接口,再在该接口下定义一个名为backResult的抽象方法作为回调方法,让那些总经理类啦、经理类啦、主管类啦、什么的都去实现该接口,这时候我们就来改造下我们的项目:
9290

93-
![接口回调](http://img.blog.csdn.net/20141106224127997?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWlnZXN0dWRpbw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
91+
![接口回调](img/接口回调3.jpg)
9492

9593
CallBack代码如下:
9694

9795
```java
9896
package com.aige.test;
9997

10098
/**
101-
* @description 回调接口
102-
* @author Walid
103-
* @since 2014/11/6
99+
* @description 回调接口
104100
*/
105101
public interface CallBack {
106102
// 回调方法
@@ -112,9 +108,7 @@ Manager代码改造后如下:实现CallBack接口重写backResult方法
112108
package com.aige.test;
113109

114110
/**
115-
* @description 该类用来模拟总经理
116-
* @author Walid
117-
* @since 2014/11/6
111+
* @description 该类用来模拟总经理
118112
*/
119113
public class Manager implements CallBack {
120114
/**
@@ -141,9 +135,7 @@ Personnel代码改造后如下:doSomething方法不再传入一个Manager对
141135
package com.aige.test;
142136

143137
/**
144-
* @description 该类用来模拟员工
145-
* @author Walid
146-
* @since 2014/11/6
138+
* @description 该类用来模拟员工
147139
*/
148140
public class Personnel {
149141
public void doSomething(CallBack callBack, String task) {
@@ -189,9 +181,7 @@ public class ClassMate {
189181
// 2.定义接口对象
190182
OnTeacherComeListener mOnTeacherComeListener;
191183

192-
/**
193-
* 方式1:通过构造方法赋值
194-
*/
184+
// 方式1:通过构造方法赋值
195185
public ClassMate(OnTeacherComeListener onTeacherComeListener) {
196186
super();
197187
mOnTeacherComeListener = onTeacherComeListener;
@@ -201,21 +191,18 @@ public class ClassMate {
201191
super();
202192
}
203193

204-
/**模拟老师来了*/
194+
// 模拟老师来了
205195
public void doTeacherCome(String teacherName) {
206196
// 3.在某一个地方.接口对象调用接口方法-->老师来了的时候
207197
mOnTeacherComeListener.onTeachCome(teacherName);
208198
}
209199

210200
// 4.暴露接口对象(构造方法,setter方法)
211201

212-
/**
213-
* 方式2:通过setter赋值
214-
*/
202+
// 方式2:通过setter赋值
215203
public void setOnTeacherComeListener(OnTeacherComeListener onTeacherComeListener) {
216204
mOnTeacherComeListener = onTeacherComeListener;
217205
}
218-
219206
}
220207
```
221208

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
### 队列
88

99
- Queue接口
10+
- PriorityQueue 优先队列
11+
- ConcurrentLinkedQueue
1012
- 插入
1113
- add()
1214
- offer()
@@ -24,8 +26,6 @@ BlockingQueue
2426
- ArrayBlockingQueue 顺序阻塞队列
2527
- LinkedBlockingQueue 链式阻塞队列
2628
- PriorityBlockingQueue 优先阻塞队列
27-
- PriorityQueue 优先队列
28-
- ConcurrentLinkedQueue
2929

3030
### Deque 双端队列
3131

0 commit comments

Comments
 (0)