Skip to content

Commit 8d30e91

Browse files
committed
updates
2 parents 78ae66f + c8edd7e commit 8d30e91

File tree

244 files changed

+6190
-1921
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

244 files changed

+6190
-1921
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: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
## 集合框架
2+
3+
set集合
4+
5+
map
6+
7+
元素是Entry< k, v >,Entry就是将key和value捆绑在一起
8+
9+
当一个set的元素是Entry的时候,该set就是一个map
10+
11+
hash()算法可以快速的计算出存、取的地址,存和取元素的效率很高,但是hash算法不能表示出元素之间的关系。hash算法决定了集合是无序的。
12+
13+
数组+链表,bucket桶结构,hash冲突
14+
15+
HashSet底层实现是HashMap
16+
17+
TreeMap
18+
19+
红黑树,平衡二叉树,排序二叉树(二叉查找树,左小右大,中序有序),有序,自然排序compareTo()方法,比较器排序Comparator接口
20+
21+
Entry< key, value >
22+
23+
## 断言assert
24+
25+
## IO流
26+
27+
- 字节流
28+
- 字符流
29+
- 转换流
30+
- 高效流
31+
- 随机访问流
32+
- 序列化流
33+
- NIO jdk 4
34+
- Channel 通道,面向块的处理
35+
- Buffer 缓冲,capacity,limit,position
36+
- Files
37+
- Paths
38+
- FileVisitor 遍历文件和目录
39+
40+
### Buffer 缓冲区
41+
42+
| 方法声明 | 功能描述 |
43+
| ---------- | ---------------------------------------- |
44+
| allocate() | 分配内存空间,创建Buffer对象 |
45+
| put() | 存数据 |
46+
| get() | 取数据 |
47+
| position() | 位置 |
48+
| limit() | 界限 |
49+
| capacity() | 容量 |
50+
| flip() | 为输出数据做好准备,limit = position;position = 0; |
51+
| clear() | 为装入数据做准备,limit = capacity;position = 0; |
52+
53+
### Channel 通道
54+
55+
| 方法声明 | 功能描述 |
56+
| ------- | ------------------------------ |
57+
| map() | 将buffer对应的部分或全部数据映射成ByteBuffer |
58+
| write() | 向buffer写入数据 |
59+
| read() | 从buffer读取数据 |
60+
61+
- AIO Jdk 7
62+
- 字符集和Charset
63+
- 编解码
64+
- 文件锁FileLock
65+
66+
### AIO
67+
68+
Path
69+
70+
| 方法声明 | 功能描述 |
71+
| -------------- | ---- |
72+
| getNameCount() | |
73+
| getRoot() | |
74+
| | |
75+
76+
Paths
77+
78+
| 方法声明 | 功能描述 |
79+
| ----- | ---- |
80+
| get() | |
81+
| | |
82+
| | |
83+
84+
Files
85+
86+
| 方法声明 | 功能描述 |
87+
| ---------- | ---- |
88+
| copy() | |
89+
| isHidden() | |
90+
| size() | |
91+
| write() | |
92+
| list() | |
93+
| lines() | |
94+
95+
96+
97+
## 网络编程

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: 73 additions & 36 deletions
Large diffs are not rendered by default.

SUMMARY.md

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
* [基本数据类型包装类](第2章 Java编程基础/基本数据类型包装类.md)
1717
* [阿里巴巴Java开发手册](第2章 Java编程基础/阿里巴巴Java开发手册.md)
1818
* [阿里 Java 开发手册最新完美版,千锤百炼始出炉](第2章 Java编程基础/阿里 Java 开发手册最新完美版,千锤百炼始出炉.md)
19+
* [阿里《Java开发手册》终极版!](第2章 Java编程基础/阿里《Java开发手册》终极版!.md)
1920
* [Google Java编程风格指南](第2章 Java编程基础/Google Java编程风格指南.md)
2021
* [Java程序员必读的书籍](第2章 Java编程基础/Java程序员必读的书籍.md)
2122
* [详细介绍JAVA和C++区别](第2章 Java编程基础/详细介绍JAVA和C++区别.md)
@@ -36,6 +37,7 @@
3637
* [多态](第3章 面向对象/多态.md)
3738
* [抽象类与接口](第3章 面向对象/抽象类与接口.md)
3839
* [接口回调](第3章 面向对象/接口回调.md)
40+
* [闭包](第3章 面向对象/闭包.md)
3941
* [内部类](第3章 面向对象/内部类.md)
4042
* [异常](第3章 面向对象/异常.md)
4143

@@ -71,22 +73,37 @@
7173
* [JDK8对并发的新支持](第5章 多线程/JDK8对并发的新支持.md)
7274
* [阻塞队列](第5章 多线程/阻塞队列.md)
7375
* [Java并发工具包concurrent用户指南](第5章 多线程/Java并发工具包concurrent用户指南.md)
76+
* [Fork/Join框架介绍](第5章 多线程/Fork_Join框架介绍.md)
7477
* [多线程问题总结](第5章 多线程/多线程问题总结.md)
7578

7679
----
7780

7881
* [第6章 集合框架](第6章 集合框架/README.md)
79-
* [集合框架](第6章 集合框架/集合框架.md)
80-
* [集合框架工具类](第6章 集合框架/集合框架工具类.md)
82+
* [Collection接口](第6章 集合框架/Collection接口.md)
83+
* [List接口](第6章 集合框架/List接口.md)
84+
* [Set接口](第6章 集合框架/Set接口.md)
85+
* [Queue接口](第6章 集合框架/Queue接口.md)
86+
* [集合的遍历](第6章 集合框架/集合的遍历.md)
87+
* [集合工具类](第6章 集合框架/集合工具类.md)
88+
* [Map接口](第6章 集合框架/Map接口.md)
89+
* [Predicate和Stream操作集合](第6章 集合框架/Predicate和Stream操作集合.md)
90+
* [集合框架的综合应用](第6章 集合框架/集合框架的综合应用.md)
8191
* [Java集合类型详解](第6章 集合框架/Java集合类型详解.md)
92+
* [LinkedList源码剖析](第6章 集合框架/LinkedList源码剖析.md)
93+
* [LinkedHashMap源码剖析](第6章 集合框架/LinkedHashMap源码剖析.md)
94+
* [HashMap、哈希表、哈希函数](第6章 集合框架/HashMap、哈希表、哈希函数.md)
95+
* [HashMap的实现原理](第6章 集合框架/HashMap的实现原理.md)
96+
* [HashMap源码剖析](第6章 集合框架/HashMap源码剖析.md)
8297

8398
----
8499

85100
* [第7章 IO流](第7章 IO流/README.md)
86101
* [IO流之File类](第7章 IO流/IO流之File类.md)
87-
* [IO流之字节流和字符流](第7章 IO流/IO流之字节流和字符流.md)
102+
* [IO流之字节流](第7章 IO流/IO流之字节流.md)
103+
* [IO流之字符流](第7章 IO流/IO流之字符流.md)
88104
* [常用IO流](第7章 IO流/常用IO流.md)
89105
* [NIO](第7章 IO流/NIO.md)
106+
* [NIO工具类](第7章 IO流/NIO工具类.md)
90107
* [AIO](第7章 IO流/AIO.md)
91108
* [NIO和AIO](第7章 IO流/NIO和AIO.md)
92109
* [序列化流](第7章 IO流/序列化流.md)
@@ -140,3 +157,8 @@
140157
* [你应该更新的Java知识之Observer](第11章 新特性/你应该更新的Java知识之Observer.md)
141158
* [Google Guava官方教程](第11章 新特性/Google Guava官方教程.md)
142159
* [Java 代码性能优化](第11章 新特性/Java 代码性能优化.md)
160+
161+
----
162+
163+
* [第12章 内存管理](第12章 内存管理/README.md)
164+
* [JVM 内存模型 Stack Heap](第12章 内存管理/JVM 内存模型 Stack Heap.md)

book.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@
55
"author" : "AllenIverson",
66
"gitbook": "3.2.3",
77
"pdf": {
8-
"fontFamily": "微软雅黑"
8+
"fontFamily": "等线"
99
}
1010
}

第11章 新特性/Lambda表达式.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
## Lambda表达式
2+
3+
Lambda表达式本质上是一种匿名方法,将代码块作为函数参数,函数式接口,相当于一个匿名方法,主要作用是代替匿名内部类的烦琐语法。
4+
5+
Lambda表达式有三部分组成
6+
7+
- 形参列表。可以自动类型推导,可以省略参数类型。只有一个参数,可以省略形参列表的()
8+
- 箭头(->)
9+
- 代码块{},代码块只有一条语句,可以省略{};代码块只有一条return语句,可以省略return关键字。
10+
11+
只有一个抽象方法的接口(函数式接口),都可以使用Lambda表达式的写法。
12+
13+
```java
14+
public interface MyListener{
15+
String doSomething(String a, int b);
16+
}
17+
MyListener listener = (String a, int b)->{
18+
String ret = a + b;
19+
return ret;
20+
}
21+
// 自动类型推断
22+
MyListener listener = (a, b)->{
23+
String ret = a + b;
24+
return ret;
25+
}
26+
```
27+
28+
## 函数式接口
29+
30+
函数式接口代表只包含一个抽象方法的接口,函数式接口可以包含多个默认方法,类方法,但只能声明一个抽象方法。
31+
32+
Lambda表达式的结果就是被当成对象。
33+

0 commit comments

Comments
 (0)