Skip to content

Commit 3f05e4f

Browse files
committed
updates book
1 parent 334f32c commit 3f05e4f

11 files changed

Lines changed: 307 additions & 229 deletions

File tree

README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,15 @@
2525

2626
* [第3章 面向对象](第3章%20面向对象/README.md)
2727
* [面向对象](第3章%20面向对象/面向对象.md)
28+
* [Object类](第3章 面向对象\Object类.md)
29+
* [单例设计模式](第3章 面向对象\单例设计模式.md)
30+
* [数组工具类](第3章 面向对象\数组工具类.md)
31+
* [文档注释](第3章 面向对象\文档注释.md)
32+
* [异常](第3章 面向对象\异常.md)
33+
* [封装](第3章 面向对象\封装.md)
34+
* [继承](第3章 面向对象\继承.md)
35+
* [多态](第3章 面向对象\多态.md)
36+
* [抽象类与接口](第3章 面向对象\抽象类与接口.md)
2837

2938
* [第4章 常见对象](第4章%20常见对象/README.md)
3039
* [String类](第4章%20常见对象/String类.md)
@@ -78,6 +87,7 @@
7887

7988
* [第10章 新特性](第10章%20新特性/README.md)
8089
* [JDK新特性](第10章%20新特性/JDK新特性.md)
90+
* [泛型](第10章 新特性\泛型.md)
8191
* [你应该更新的Java知识](第10章%20新特性/你应该更新的Java知识.md)
8292
* [Google Guava官方教程](第10章%20新特性/Google%20Guava官方教程.md)
8393

SUMMARY.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,15 @@
2121

2222
* [第3章 面向对象](第3章 面向对象/README.md)
2323
* [面向对象](第3章 面向对象/面向对象.md)
24+
* [Object类](第3章 面向对象\Object类.md)
25+
* [单例设计模式](第3章 面向对象\单例设计模式.md)
26+
* [数组工具类](第3章 面向对象\数组工具类.md)
27+
* [文档注释](第3章 面向对象\文档注释.md)
28+
* [异常](第3章 面向对象\异常.md)
29+
* [封装](第3章 面向对象\封装.md)
30+
* [继承](第3章 面向对象\继承.md)
31+
* [多态](第3章 面向对象\多态.md)
32+
* [抽象类与接口](第3章 面向对象\抽象类与接口.md)
2433

2534
----
2635

@@ -87,5 +96,6 @@
8796

8897
* [第10章 新特性](第10章 新特性/README.md)
8998
* [JDK新特性](第10章 新特性/JDK新特性.md)
99+
* [泛型](第10章 新特性\泛型.md)
90100
* [你应该更新的Java知识](第10章 新特性/你应该更新的Java知识.md)
91101
* [Google Guava官方教程](第10章 新特性/Google Guava官方教程.md)

第2章 Java编程基础/基本数据类型包装类.md

Lines changed: 76 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
# **1. 基本类型包装类概述**
2-
为了方便操作基本数据类型值,将其封装成了对象,在对象中定义了属性和行为丰富了该数据的操作。
1+
## **1. 基本类型包装类概述**
32

4-
用于描述该对象的类就称为基本数据类型对象包装类。
3+
为了方便操作基本数据类型值,将其封装成了对象,在对象中定义了属性和行为丰富了该数据的操作。用于描述该对象的类就称为基本数据类型对象包装类。
54

65
- 将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。
76
- 常用的操作之一:用于基本数据类型与字符串之间的转换。
@@ -18,17 +17,18 @@
1817
| char | Character |
1918
| boolean | Boolean |
2019

21-
# **2. 基本数据类型包装类应用**
22-
该包装对象主要用于基本类型和字符串之间的转换
20+
## **2. 基本数据类型包装类应用**
2321

24-
## 2.1 基本类型 -> 字符串
22+
该包装对象主要用于基本类型和字符串之间的转换
23+
24+
### 2.1 基本类型 → 字符串
2525

2626
- 基本类型数值+""
2727
- 用String类中的静态方法valueOf(基本类型数值);
2828

29-
## 2.2 字符串 -> 基本类型
29+
### 2.2 字符串 基本类型
3030

31-
使用包装类中的静态方法xxx parseXxx("xxx");
31+
使用包装类中的静态方法xxx parseXxx("xxx");
3232

3333
- int parseInt(String str);
3434
- long parseLong(String str);
@@ -41,27 +41,29 @@
4141

4242
用Integer的静态方法valueOf(String s);
4343

44-
# **3. Integer类**
45-
## **3.1 Integer类概述**
44+
## **3. Integer类**
45+
### **3.1 Integer类概述**
4646
Integer 类在对象中包装了一个基本类型 int 的值
4747
该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还提供了处理 int 类型时非常有用的其他一些常量和方法
4848

49-
## **3.2 构造方法**
49+
### **3.2 构造方法**
5050
public Integer(int value)
5151
public Integer(String s)
5252

5353
PS:这个字符串必须是由数字字符组成
5454

55-
## **3.3 int类型和String类型的相互转换**
56-
| 方法 | 说明 |
57-
| -------------------------------- | ----------------------------- |
58-
| int intValue() | 以 int 类型返回该 Integer 的值 |
59-
| static int parseInt(String s) | 将字符串参数作为有符号的十进制整数进行解析 |
60-
| static String toString(int i) | 返回一个表示指定整数的 String 对象 |
61-
| static Integer valueOf(int i) | 返回一个表示指定的 int 值的 Integer 实例 |
62-
| static Integer valueOf(String s) | 返回保存指定的 String 的值的 Integer 对象 |
55+
### **3.3 int类型和String类型的相互转换**
56+
57+
| 返回值 | 方法 | 说明 |
58+
| :------ | :----------------- | :---------------------------- |
59+
| int | intValue() | 以 int 类型返回该 Integer 的值 |
60+
| int | parseInt(String s) | 将字符串参数作为有符号的十进制整数进行解析 |
61+
| String | toString(int i) | 返回一个表示指定整数的 String 对象 |
62+
| Integer | valueOf(int i) | 返回一个表示指定的 int 值的 Integer 实例 |
63+
| Integer | valueOf(String s) | 返回保存指定的 String 的值的 Integer 对象 |
6364

6465
代码示例:
66+
6567
```java
6668
package cn.itcast_03;
6769

@@ -115,16 +117,24 @@ public class IntegerDemo {
115117

116118
![Integer](http://img.blog.csdn.net/20150829005403871)
117119

118-
## **3.4 常用的基本进制转换**
119-
| 方法 | 说明 |
120-
| ---------------------------- | ----------------------------------- |
121-
| String toBinaryString(int i) | 以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式 |
122-
| String toOctalString(int i) | 以八进制(基数 8)无符号整数形式返回一个整数参数的字符串表示形式 |
123-
| String toHexString(int i) | 以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式 |
120+
### **3.4 常用的基本进制转换**
121+
122+
| 返回值 | 方法 | 说明 |
123+
| :----- | :-------------------- | :---------------------------------- |
124+
| String | toBinaryString(int i) | 以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式 |
125+
| String | toOctalString(int i) | 以八进制(基数 8)无符号整数形式返回一个整数参数的字符串表示形式 |
126+
| String | toHexString(int i) | 以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式 |
127+
128+
### **3.5 十进制转换成其他进制**
124129

125-
## **3.5 十进制到其他进制**
126-
public static String toString(int i,int radix)
127-
## **3.6 其他进制到十进制**
130+
| 返回值 | 方法声明 | 功能描述 |
131+
| :----- | :------------------------ | :--------- |
132+
| String | toBinaryString(int i) | 十进制转换成二进制 |
133+
| String | toOctalString(int i) | 十进制转换成八进制 |
134+
| String | toHexString(int i) | 十进制转换成十六进制 |
135+
| String | toString(int i,int radix) | 十进制转换成任何进制 |
136+
137+
### **3.6 其他进制到十进制**
128138
public static int parseInt(String s,int radix)
129139

130140
代码示例:
@@ -186,7 +196,7 @@ public class IntegerDemo {
186196

187197
![Integer](http://img.blog.csdn.net/20150829005703287)
188198

189-
## **3.7 自动拆装箱**
199+
### **3.7 自动拆装箱**
190200

191201
```java
192202
package cn.itcast_05;
@@ -223,13 +233,43 @@ public class IntegerDemo {
223233
}
224234
```
225235

226-
# **4. Character类**
227-
## **4.1 Character类概述**
228-
Character 类在对象中包装一个基本类型 char 的值
229-
此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然
230-
## **4.2 构造方法**
236+
## 4. BigInteger
237+
238+
BigInteger:可以让超过Integer范围内的数据进行运算。超大整数相加的问题
239+
240+
| 方法声明 | 功能描述 |
241+
| :--------------------------------- | :-------- |
242+
| add(BigInteger val) ||
243+
| subtract(BigInteger val) ||
244+
| multiply(BigInteger val) ||
245+
| divide(BigInteger val) ||
246+
| divideAndRemainder(BigInteger val) | 返回商和余数的数组 |
247+
| BigInteger(String val) | 构造方法 |
248+
249+
## 5. BigDecimal
250+
251+
不可变的、任意精度的有符号十进制数。由于在运算的时候,float类型和double很容易丢失精度,演示案例。所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal
252+
253+
| 方法声明 | 功能描述 |
254+
| ---------------------------------------- | ----------- |
255+
| BigDecimal(String val) | 构造方法 |
256+
| add(BigDecimal augend) ||
257+
| subtract(BigDecimal subtrahend) ||
258+
| multiply(BigDecimal multiplicand) ||
259+
| divide(BigDecimal divisor) ||
260+
| divide(BigDecimal divisor,int scale,int roundingMode) | 商、几位小数、如何取舍 |
261+
262+
## 6. Character类
263+
264+
### **6.1 Character类概述**
265+
266+
Character 类在对象中包装一个基本类型 char 的值,此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然
267+
268+
### **6.2 构造方法**
231269
public Character(char value)
232-
## **4.3 常用方法**
270+
271+
### **6.3 常用方法**
272+
233273
| 方法 | 说明 |
234274
| ------------------------- | ------- |
235275
| isUpperCase(char ch) | 判断是否是大写 |
@@ -277,7 +317,7 @@ public class CharacterDemo {
277317
}
278318
}
279319
```
280-
## **4.4 练习**
320+
### **6.4 练习**
281321
代码示例:统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数。(不考虑其他字符)
282322

283323
```java
13.7 KB
Loading
13 KB
Loading
13.3 KB
Loading

第3章 面向对象/单例设计模式.md

Lines changed: 35 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,25 @@
1+
---
2+
typora-copy-images-to: img
3+
---
4+
15
### 单例设计模式
26

3-
设计模式:对问题行之有效的解决方式,其实,它是一种思想。
4-
单例设计模式解决的问题:就是可以保证一个类在内存中的对象唯一性。
5-
比如多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性。
6-
如何保证对象唯一性呢?
7-
1、不允许其他程序用new创建该类对象。
8-
2、在该类创建一个本类实例。
9-
3、对外提供一个方法让其他程序可以获取该对象。
10-
步骤:
11-
1、私有化该类构造函数。
12-
2、通过new在本类中创建一个本类对象。
13-
3、定义一个公有的方法,将创建的对象返回。
7+
设计模式:对问题行之有效的解决方式,其实,它是一种思想。
8+
单例设计模式解决的问题:就是可以保证一个类在内存中的对象唯一性。
9+
比如多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性。
10+
11+
如何保证对象唯一性呢?
12+
13+
1. 不允许其他程序用new创建该类对象。
14+
2. 在该类创建一个本类实例。
15+
3. 对外提供一个方法让其他程序可以获取该对象。
16+
17+
步骤:
18+
19+
1. 私有化该类构造函数。
20+
2. 通过new在本类中创建一个本类对象。
21+
3. 定义一个公有的方法,将创建的对象返回。
22+
1423
示例(饿汉式):
1524

1625
```java
@@ -22,6 +31,7 @@ class Single{
2231
return s ;
2332
}
2433
}
34+
2535
class SingleDemo{
2636
public static void main(String[] args){
2737
Single s1 = Single.getInstance();
@@ -30,12 +40,18 @@ class SingleDemo{
3040
}
3141
}
3242
```
33-
运行结果:
34-
P.S.
35-
之所以不用Single.s;的方式获取Single对象,而采用getInstance获取是因为在getInstance方法中我们可以做
36-
一些判断来决定是否返回Single的对象,也就是实现了对单例对象的可控。所以,给Single的构造方法加上了
37-
private限制,禁止使用者直接采用Single.s;的方式获取。
43+
运行结果:
44+
45+
![1491283688423](img/1491283688423.png)
46+
47+
48+
49+
**注意事项:**
50+
51+
之所以不用Single.s;的方式获取Single对象,而采用getInstance获取是因为在getInstance方法中我们可以做一些判断来决定是否返回Single的对象,也就是实现了对单例对象的可控。所以,给Single的构造方法加上了private限制,禁止使用者直接采用Single.s;的方式获取。
52+
3853
示例(懒汉式):
54+
3955
```java
4056
class Single{
4157
//类加载进来,没有对象,只有调用了getInstance方法时,才会创建对象
@@ -56,4 +72,6 @@ class SingleDemo{
5672
}
5773
}
5874
```
59-
运行结果:
75+
运行结果:
76+
77+
![1491283722702](img/1491283722702.png)

第3章 面向对象/数组工具类.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
typora-copy-images-to: img
3+
---
4+
15
### 数组工具类
26

37
示例:
@@ -70,4 +74,6 @@ public class ArrayTool{
7074
}
7175
}
7276
```
73-
运行结果:
77+
运行结果:
78+
79+
![1491283464087](img/1491283464087.png)

0 commit comments

Comments
 (0)