Skip to content

Commit 8d1b10e

Browse files
committed
Java集合类和设计模式â
1 parent 6e1bb0c commit 8d1b10e

29 files changed

+9946
-119
lines changed

docs/java/basic/10、Java异常.md

+33-14
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Table of Contents
22

3+
* [目录](#目录)
34
* [为什么要使用异常](#为什么要使用异常)
45
* [异常基本定义](#异常基本定义)
56
* [异常体系](#异常体系)
@@ -20,13 +21,29 @@
2021
* [个人公众号:黄小斜](#个人公众号:黄小斜)
2122

2223

24+
# 目录
25+
26+
* [为什么要使用异常](#为什么要使用异常)
27+
* [异常基本定义](#异常基本定义)
28+
* [异常体系](#异常体系)
29+
* [初识异常](#初识异常)
30+
* [异常和错误](#异常和错误)
31+
* [异常的处理方式](#异常的处理方式)
32+
* ["不负责任"的throws](#不负责任的throws)
33+
* [纠结的finally](#纠结的finally)
34+
* [throw : JRE也使用的关键字](#throw--jre也使用的关键字)
35+
* [异常调用链](#异常调用链)
36+
* [自定义异常](#自定义异常)
37+
* [异常的注意事项](#异常的注意事项)
38+
* [当finally遇上return](#当finally遇上return)
39+
* [JAVA异常常见面试题](#java异常常见面试题)
40+
* [参考文章](#参考文章)
41+
* [微信公众号](#微信公众号)
42+
* [Java技术江湖](#java技术江湖)
43+
* [个人公众号:黄小斜](#个人公众号:黄小斜)
44+
2345
---
24-
title: 夯实Java基础系列10:深入理解Java中的异常体系
25-
date: 2019-9-10 15:56:26 # 文章生成时间,一般不改
26-
categories:
27-
- Java技术江湖
28-
- Java基础
29-
tags:
46+
3047
- Java异常
3148
---
3249

@@ -136,8 +153,9 @@ Throwable又派生出Error类和Exception类。
136153
// at com.javase.异常.异常.devide(异常.java:24)
137154
// at com.javase.异常.异常.CMDCalculate(异常.java:19)
138155
// at com.javase.异常.异常.main(异常.java:12)
139-
140-
156+
157+
158+
141159
// ----欢迎使用命令行除法计算器----
142160
// r
143161
// Exception in thread "main" java.util.InputMismatchException
@@ -234,7 +252,7 @@ Throwable又派生出Error类和Exception类。
234252
//close方法会抛出IOException
235253
fileIn.close();
236254
}
237-
255+
238256
一般情况下的处理方式 try catch finally
239257

240258
public class 异常处理方式 {
@@ -362,7 +380,7 @@ finally块不管异常是否发生,只要对应的try执行了,则它一定
362380
}
363381
}
364382
}
365-
383+
366384
## throw : JRE也使用的关键字
367385

368386
throw exceptionObject
@@ -475,7 +493,7 @@ throw 语句必须写在函数中,执行throw 语句的地方就是一个异
475493
// at com.javase.异常.异常链.A(异常链.java:16)
476494
// ... 31 more
477495
}
478-
496+
479497
## 自定义异常
480498

481499
如果要自定义异常类,则扩展Exception类即可,因此这样的自定义异常都属于检查异常(checked exception)。如果要自定义非检查异常,则扩展自RuntimeException。
@@ -512,7 +530,7 @@ throw 语句必须写在函数中,执行throw 语句的地方就是一个异
512530
super(cause);
513531
}
514532
}
515-
533+
516534
## 异常的注意事项
517535

518536
异常的注意事项
@@ -675,7 +693,7 @@ finally中的return 会覆盖 try 或者catch中的返回值。
675693
return 2;
676694
}
677695
}
678-
696+
679697
finally中的return会抑制(消灭)前面try或者catch块中的异常
680698

681699
class TestException
@@ -771,7 +789,7 @@ finally中的异常会覆盖(消灭)前面try或者catch中的异常
771789
772790
}
773791
}
774-
792+
775793
上面的3个例子都异于常人的编码思维,因此我建议:
776794

777795
> 不要在fianlly中使用return。
@@ -884,3 +902,4 @@ https://blog.csdn.net/michaelgo/article/details/82790253
884902
**程序员3T技术学习资源:** 一些程序员学习技术的资源大礼包,关注公众号后,后台回复关键字 **“资料”** 即可免费无套路获取。
885903

886904
![](https://img-blog.csdnimg.cn/20190829222750556.jpg)
905+

docs/java/basic/1、面向对象基础.md

+36-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,38 @@
1+
# Table of Contents
2+
3+
* [Java面向对象三大特性(基础篇)](#java面向对象三大特性(基础篇))
4+
* [对象的概念](#对象的概念)
5+
* [面向对象和面向过程的区别](#面向对象和面向过程的区别)
6+
* [面向对象的三大核心特性简介](#面向对象的三大核心特性简介)
7+
* [面向对象编程三大特性详解](#面向对象编程三大特性详解)
8+
* [一、继承](#一、继承)
9+
* [1、继承的概念](#1、继承的概念)
10+
* [2、继承的好处](#2、继承的好处)
11+
* [3、语法规则](#3、语法规则)
12+
* [A、方法的重写](#a、方法的重写)
13+
* [B、继承的初始化顺序](#b、继承的初始化顺序)
14+
* [C、final关键字](#c、final关键字)
15+
* [D、super关键字](#d、super关键字)
16+
* [二、封装](#二、封装)
17+
* [1、封装的概念](#1、封装的概念)
18+
* [2、封装的优点](#2、封装的优点)
19+
* [3、封装的实现步骤](#3、封装的实现步骤)
20+
* [A、访问修饰符](#a、访问修饰符)
21+
* [B、this关键字](#b、this关键字)
22+
* [C、Java 中的内部类](#c、java-中的内部类)
23+
* [三、多态](#三、多态)
24+
* [1、多态的概念](#1、多态的概念)
25+
* [2、多态的好处](#2、多态的好处)
26+
* [3、Java中的多态](#3、java中的多态)
27+
* [A、引用多态  ](#a、引用多态  )
28+
* [B、方法多态](#b、方法多态)
29+
* [C、引用类型转换](#c、引用类型转换)
30+
* [参考文章](#参考文章)
31+
* [微信公众号](#微信公众号)
32+
* [Java技术江湖](#java技术江湖)
33+
* [个人公众号:黄小斜](#个人公众号:黄小斜)
34+
35+
136
点击关注[公众号](#公众号)及时获取笔主最新更新文章,并可免费领取Java工程师必备学习资源。
237

338
* [Java面向对象三大特性(基础篇)](#java面向对象三大特性(基础篇))
@@ -704,4 +739,4 @@ https://blog.csdn.net/android_hl/article/details/53228348
704739

705740
**程序员3T技术学习资源:** 一些程序员学习技术的资源大礼包,关注公众号后,后台回复关键字 **“资料”** 即可免费无套路获取。
706741

707-
![](https://img-blog.csdnimg.cn/20190829222750556.jpg)
742+
![](https://img-blog.csdnimg.cn/20190829222750556.jpg)

docs/java/basic/2、Java基本数据类型.md

+24-12
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Table of Contents
22

3+
* [目录](#目录)
34
* [Java 基本数据类型](#java-基本数据类型)
45
* [Java 的两大数据类型:](#java-的两大数据类型)
56
* [内置数据类型](#内置数据类型)
@@ -19,16 +20,27 @@
1920
* [个人公众号:黄小斜](#个人公众号:黄小斜)
2021

2122

22-
---
23-
title: 夯实Java基础系列2:Java自动拆装箱里隐藏的秘密
24-
date: 2019-9-2 15:56:26 # 文章生成时间,一般不改
25-
categories:
26-
- Java技术江湖
27-
- Java基础
28-
tags:
29-
- Java基本数据类型
23+
# 目录
24+
25+
* [Java 基本数据类型](#java-基本数据类型)
26+
* [Java 的两大数据类型:](#java-的两大数据类型)
27+
* [内置数据类型](#内置数据类型)
28+
* [引用类型](#引用类型)
29+
* [Java 常量](#java-常量)
30+
* [自动拆箱和装箱(详解)](#自动拆箱和装箱(详解))
31+
* [实现](#实现)
32+
* [自动装箱与拆箱中的“坑”](#自动装箱与拆箱中的坑)
33+
* [了解基本类型缓存(常量池)的最佳实践](#了解基本类型缓存(常量池)的最佳实践)
34+
* [总结:](#总结:)
35+
* [基本数据类型的存储方式](#基本数据类型的存储方式)
36+
* [存在栈中](#存在栈中)
37+
* [存在堆里](#存在堆里)
38+
* [参考文章](#参考文章)
39+
* [微信公众号](#微信公众号)
40+
* [Java技术江湖](#java技术江湖)
41+
* [个人公众号:黄小斜](#个人公众号:黄小斜)
42+
3043

31-
---
3244

3345
本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看
3446
> https://github.com/h2pl/Java-Tutorial
@@ -43,7 +55,7 @@ tags:
4355

4456
如果对本系列文章有什么建议,或者是有什么疑问的话,也可以关注公众号【Java技术江湖】联系作者,欢迎你参与本系列博文的创作和修订。
4557

46-
[TOC]
58+
4759

4860

4961
<!-- more -->
@@ -273,8 +285,8 @@ Java 5增加了自动装箱与自动拆箱机制,方便基本类型与包装
273285
​ Double localDouble = Double.valueOf(12.4D);
274286
​ double d = localDouble.doubleValue();
275287
276-
}
277-
}
288+
}
289+
}
278290

279291
我们可以看到经过javac编译之后,code1的代码被转换成了code2,实际运行时,虚拟机运行的就是code2的代码。也就是说,虚拟机根本不知道有自动拆箱和自动装箱这回事;在将Java源文件编译为class文件的过程中,javac编译器在自动装箱的时候,调用了Integer.valueOf()方法,在自动拆箱时,又调用了intValue()方法。我们可以看到,double和Double也是如此。
280292
实现总结:其实自动装箱和自动封箱是编译器为我们提供的一颗语法糖。在自动装箱时,编译器调用包装类型的valueOf()方法;在自动拆箱时,编译器调用了相应的xxxValue()方法。

docs/java/basic/3、string和包装类.md

+36-11
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
# 目录
1+
# Table of Contents
22

3+
* [目录](#目录)
34
* [string基础](#string基础)
45
* [Java String 类](#java-string-类)
56
* [创建字符串](#创建字符串)
@@ -32,16 +33,40 @@
3233
* [个人公众号:黄小斜](#个人公众号:黄小斜)
3334

3435

35-
---
36-
title: 夯实Java基础系列3:一文搞懂String常见面试题,从基础到实战,更有原理分析和源码解析!
37-
date: 2019-9-3 15:56:26 # 文章生成时间,一般不改
38-
categories:
39-
- Java技术江湖
40-
- Java基础
41-
tags:
42-
- String
36+
# 目录
37+
38+
* [string基础](#string基础)
39+
* [Java String 类](#java-string-类)
40+
* [创建字符串](#创建字符串)
41+
* [StringDemo.java 文件代码:](#stringdemojava-文件代码:)
42+
* [String基本用法](#string基本用法)
43+
* [创建String对象的常用方法](#创建string对象的常用方法)
44+
* [String中常用的方法,用法如图所示,具体问度娘](#string中常用的方法,用法如图所示,具体问度娘)
45+
* [三个方法的使用: lenth() substring() charAt()](#三个方法的使用:-lenth---substring---charat)
46+
* [字符串与byte数组间的相互转换](#字符串与byte数组间的相互转换)
47+
* [==运算符和equals之间的区别:](#运算符和equals之间的区别:)
48+
* [字符串的不可变性](#字符串的不可变性)
49+
* [String的连接](#string的连接)
50+
* [String、String builder和String buffer的区别](#string、string-builder和string-buffer的区别)
51+
* [String类的源码分析](#string类的源码分析)
52+
* [String类型的intern](#string类型的intern)
53+
* [String类型的equals](#string类型的equals)
54+
* [StringBuffer和Stringbuilder](#stringbuffer和stringbuilder)
55+
* [append方法](#append方法)
56+
* [扩容](#扩容)
57+
* [](#)
58+
* [删除](#删除)
59+
* [system.arraycopy方法](#systemarraycopy方法)
60+
* [String和JVM的关系](#string和jvm的关系)
61+
* [String为什么不可变?](#string为什么不可变?)
62+
* [不可变有什么好处?](#不可变有什么好处?)
63+
* [String常用工具类](#string常用工具类)
64+
* [参考文章](#参考文章)
65+
* [微信公众号](#微信公众号)
66+
* [Java技术江湖](#java技术江湖)
67+
* [个人公众号:黄小斜](#个人公众号:黄小斜)
68+
4369

44-
---
4570

4671
本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看
4772
> https://github.com/h2pl/Java-Tutorial
@@ -56,7 +81,7 @@ tags:
5681

5782
如果对本系列文章有什么建议,或者是有什么疑问的话,也可以关注公众号【Java技术江湖】联系作者,欢迎你参与本系列博文的创作和修订。
5883

59-
[TOC]
84+
6085

6186
<!-- more -->
6287

docs/java/basic/4、final关键字特性.md

+26-10
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
# 目录
1+
# Table of Contents
22

3+
* [目录](#目录)
34
* [final使用](#final使用)
45
* [final变量](#final变量)
56
* [final修饰基本数据类型变量和引用](#final修饰基本数据类型变量和引用)
@@ -22,15 +23,30 @@
2223
* [Java技术江湖](#java技术江湖)
2324
* [个人公众号:黄小斜](#个人公众号:黄小斜)
2425

25-
---
26-
title: 夯实Java基础系列4:一文了解final关键字的特性、使用方法,以及实现原理
27-
date: 2019-9-4 15:56:26 # 文章生成时间,一般不改
28-
categories:
29-
- Java技术江湖
30-
- Java基础
31-
tags:
32-
- final
33-
---
26+
27+
# 目录
28+
29+
* [final使用](#final使用)
30+
* [final变量](#final变量)
31+
* [final修饰基本数据类型变量和引用](#final修饰基本数据类型变量和引用)
32+
* [final类](#final类)
33+
* [final关键字的知识点](#final关键字的知识点)
34+
* [final关键字的最佳实践](#final关键字的最佳实践)
35+
* [final的用法](#final的用法)
36+
* [关于空白final](#关于空白final)
37+
* [final内存分配](#final内存分配)
38+
* [使用final修饰方法会提高速度和效率吗](#使用final修饰方法会提高速度和效率吗)
39+
* [使用final修饰变量会让变量的值不能被改变吗;](#使用final修饰变量会让变量的值不能被改变吗;)
40+
* [如何保证数组内部不被修改](#如何保证数组内部不被修改)
41+
* [final方法的三条规则](#final方法的三条规则)
42+
* [final 和 jvm的关系](#final-和-jvm的关系)
43+
* [写 final 域的重排序规则](#写-final-域的重排序规则)
44+
* [读 final 域的重排序规则](#读-final-域的重排序规则)
45+
* [如果 final 域是引用类型](#如果-final-域是引用类型)
46+
* [参考文章](#参考文章)
47+
* [微信公众号](#微信公众号)
48+
* [Java技术江湖](#java技术江湖)
49+
* [个人公众号:黄小斜](#个人公众号:黄小斜)
3450

3551
本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看
3652
> https://github.com/h2pl/Java-Tutorial

docs/java/basic/5、Java类和包.md

+22-6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Table of Contents
22

3+
* [目录](#目录)
34
* [Java中的包概念](#java中的包概念)
45
* [包的作用](#包的作用)
56
* [package 的目录结构](#package-的目录结构)
@@ -20,13 +21,28 @@
2021
* [个人公众号:黄小斜](#个人公众号:黄小斜)
2122

2223

24+
# 目录
25+
26+
* [Java中的包概念](#java中的包概念)
27+
* [包的作用](#包的作用)
28+
* [package 的目录结构](#package-的目录结构)
29+
* [设置 CLASSPATH 系统变量](#设置-classpath-系统变量)
30+
* [常用jar包](#常用jar包)
31+
* [java软件包的类型](#java软件包的类型)
32+
* [dt.jar](#dtjar)
33+
* [rt.jar](#rtjar)
34+
* [*.java文件的奥秘](#java文件的奥秘)
35+
* [*.Java文件简介](#java文件简介)
36+
* [为什么一个java源文件中只能有一个public类?](#为什么一个java源文件中只能有一个public类?)
37+
* [Main方法](#main方法)
38+
* [外部类的访问权限](#外部类的访问权限)
39+
* [Java包的命名规则](#java包的命名规则)
40+
* [参考文章](#参考文章)
41+
* [微信公众号](#微信公众号)
42+
* [Java技术江湖](#java技术江湖)
43+
* [个人公众号:黄小斜](#个人公众号:黄小斜)
44+
2345
---
24-
title: 夯实Java基础系列5:Java文件和Java包结构
25-
date: 2019-9-5 15:56:26 # 文章生成时间,一般不改
26-
categories:
27-
- Java技术江湖
28-
- Java基础
29-
tags:
3046
- Java类
3147
---
3248

0 commit comments

Comments
 (0)