Skip to content

Commit

Permalink
updates
Browse files Browse the repository at this point in the history
  • Loading branch information
jackchan1999 committed Sep 10, 2017
1 parent f2c2ed4 commit 9ddf0c3
Show file tree
Hide file tree
Showing 34 changed files with 916 additions and 701 deletions.
3 changes: 3 additions & 0 deletions Node/RandomAccessFile.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## RandomAccessFile

随机访问流
77 changes: 75 additions & 2 deletions Node/node.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,76 @@
## Java学习笔记
## 断言assert

## IO流

- 字节流
- 字符流
- 转换流
- 高效流
- 随机访问流
- 序列化流
- NIO jdk 4
- Channel 通道,面向块的处理
- Buffer 缓冲,capacity,limit,position
- Files
- Paths
- FileVisitor 遍历文件和目录

### Buffer 缓冲区

| 方法声明 | 功能描述 |
| ---------- | ---------------------------------------- |
| allocate() | 分配内存空间,创建Buffer对象 |
| put() | 存数据 |
| get() | 取数据 |
| position() | 位置 |
| limit() | 界限 |
| capacity() | 容量 |
| flip() | 为输出数据做好准备,limit = position;position = 0; |
| clear() | 为装入数据做准备,limit = capacity;position = 0; |

### Channel 通道

| 方法声明 | 功能描述 |
| ------- | ------------------------------ |
| map() | 将buffer对应的部分或全部数据映射成ByteBuffer |
| write() | 向buffer写入数据 |
| read() | 从buffer读取数据 |

- AIO Jdk 7
- 字符集和Charset
- 编解码
- 文件锁FileLock

### AIO

Path

| 方法声明 | 功能描述 |
| -------------- | ---- |
| getNameCount() | |
| getRoot() | |
| | |

Paths

| 方法声明 | 功能描述 |
| ----- | ---- |
| get() | |
| | |
| | |

Files

| 方法声明 | 功能描述 |
| ---------- | ---- |
| copy() | |
| isHidden() | |
| size() | |
| write() | |
| list() | |
| lines() | |



## 网络编程

### 断言assert
21 changes: 21 additions & 0 deletions Node/内存管理.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
## 数组与内存控制

数组:长度不可变,连续的内存

变量,引用变量,数组变量,数组对象

数组变量是引用类型的变量,数组变量并不是数组本身,它只是指向堆内存中的数组对象。

数组变量只是一个引用变量,通常存放在栈内存中(也可被放入堆内存中),而数组对象就是保存在堆内存中的连续内存空间。

引用变量本质上只是一个指针,只要程序通过引用变量访问属性,或者通过引用变量调用方法,该引用变量将会由它所引用的对象代替。

### 引用类型的数组

引用类型数组的数组元素依然是引用类型的,因此数组元素里存储的还是引用,它指向另一块内存,这块内存里存储了该引用变量所引用的对象(包括数组和Java对象)。

多维数组的本质

## 内存管理

内存管理:内存分配和内存回收。
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,8 @@
* [Java集合类型详解](https://alleniverson.gitbooks.io/java-basic-introduction/content/第6章%20集合框架/Java集合类型详解.html)
* [第7章 IO流](https://alleniverson.gitbooks.io/java-basic-introduction/content/第7章%20IO流/README.html)
* [IO流之File类](https://alleniverson.gitbooks.io/java-basic-introduction/content/第7章%20IO流/IO流之File类.html)
* [IO流之字节流和字符流](https://alleniverson.gitbooks.io/java-basic-introduction/content/第7章%20IO流/IO流之字节流和字符流.html)
* [IO流之字节流](https://alleniverson.gitbooks.io/java-basic-introduction/content/第7章%20IO流/IO流之字节流.html)
* [IO流之字符流](https://alleniverson.gitbooks.io/java-basic-introduction/content/第7章%20IO流/IO流之字符流.html)
* [常用IO流](https://alleniverson.gitbooks.io/java-basic-introduction/content/第7章%20IO流/常用IO流.html)
* [NIO](https://alleniverson.gitbooks.io/java-basic-introduction/content/第7章%20IO流/NIO.html)
* [AIO](https://alleniverson.gitbooks.io/java-basic-introduction/content/第7章%20IO流/AIO.html)
Expand Down
3 changes: 2 additions & 1 deletion SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,8 @@

* [第7章 IO流](第7章 IO流/README.md)
* [IO流之File类](第7章 IO流/IO流之File类.md)
* [IO流之字节流和字符流](第7章 IO流/IO流之字节流和字符流.md)
* [IO流之字节流和字符流](第7章 IO流/IO流之字节流.md)
* [IO流之字符流](第7章 IO流/IO流之字符流.md)
* [常用IO流](第7章 IO流/常用IO流.md)
* [NIO](第7章 IO流/NIO.md)
* [AIO](第7章 IO流/AIO.md)
Expand Down
5 changes: 0 additions & 5 deletions 第12章 内存管理/内存管理.md

This file was deleted.

Binary file added 第3章 面向对象/img/接口回调1.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 第3章 面向对象/img/接口回调2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 第3章 面向对象/img/接口回调3.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
41 changes: 14 additions & 27 deletions 第3章 面向对象/接口回调.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
所谓回调,在实现具有通用性质的应用框架时非常常见:

## 接口回调

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

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

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

Manager的代码如下:

```java
package com.aige.test;

/**
* @description 该类用来模拟总经理
* @author Walid
* @since 2014/11/6
* @description 该类用来模拟总经理
*/
public class Manager {
/**
Expand All @@ -31,7 +31,7 @@ public class Manager {

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

/**
* @description 该类用来模拟员工
* @author Walid
* @since 2014/11/6
* @description 该类用来模拟员工
*/
public class Personnel {
public void doSomething(Manager manager, String task) {
Expand Down Expand Up @@ -81,7 +79,7 @@ public class Main {

代码执行结果如下:

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

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

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

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

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

CallBack代码如下:

```java
package com.aige.test;

/**
* @description 回调接口
* @author Walid
* @since 2014/11/6
* @description 回调接口
*/
public interface CallBack {
// 回调方法
Expand All @@ -112,9 +108,7 @@ Manager代码改造后如下:实现CallBack接口重写backResult方法
package com.aige.test;

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

/**
* @description 该类用来模拟员工
* @author Walid
* @since 2014/11/6
* @description 该类用来模拟员工
*/
public class Personnel {
public void doSomething(CallBack callBack, String task) {
Expand Down Expand Up @@ -189,9 +181,7 @@ public class ClassMate {
// 2.定义接口对象
OnTeacherComeListener mOnTeacherComeListener;

/**
* 方式1:通过构造方法赋值
*/
// 方式1:通过构造方法赋值
public ClassMate(OnTeacherComeListener onTeacherComeListener) {
super();
mOnTeacherComeListener = onTeacherComeListener;
Expand All @@ -201,21 +191,18 @@ public class ClassMate {
super();
}

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

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

/**
* 方式2:通过setter赋值
*/
// 方式2:通过setter赋值
public void setOnTeacherComeListener(OnTeacherComeListener onTeacherComeListener) {
mOnTeacherComeListener = onTeacherComeListener;
}

}
```

Expand Down
4 changes: 2 additions & 2 deletions 第6章 集合框架/Queue集合.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
### 队列

- Queue接口
- PriorityQueue 优先队列
- ConcurrentLinkedQueue
- 插入
- add()
- offer()
Expand All @@ -24,8 +26,6 @@ BlockingQueue
- ArrayBlockingQueue 顺序阻塞队列
- LinkedBlockingQueue 链式阻塞队列
- PriorityBlockingQueue 优先阻塞队列
- PriorityQueue 优先队列
- ConcurrentLinkedQueue

### Deque 双端队列

Expand Down
Loading

0 comments on commit 9ddf0c3

Please sign in to comment.