# java20190218 **Repository Path**: lifeibiao-001/java20190218 ## Basic Information - **Project Name**: java20190218 - **Description**: No description available - **Primary Language**: Java - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-02-18 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # java20190218 #### 介绍 {**以下是码云平台说明,您可以替换此简介** 码云是开源中国推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 无论是个人、团队、或是企业,都能够用码云实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} #### 软件架构 软件架构说明 #### 异常 1. 异常处理概念 (1)异常处理相关概念 一般分为两种: 一种是错误; 程序出现了问题,造成程序运行终止,是不可处理的情况; 一种是异常; 程序在编译、运行时出现的一些非正常的情况,这些情况可以进行处理或者提前避免; (2)异常的分类 根据发生的时机分为: 运行时异常: 在运行时发生的异常,也叫作非检查性异常; 编译时异常(非运行时异常): 在编译期间发生的异常,也叫作检查性异常; 根据是否进行了显式的异常检查: 检查性异常: 就是在编写代码时进行显式的异常处理; 因为检查性异常在编译期间就进行异常处理,也叫作编译时异常; 非检查性异常: 编译期间不进行异常处理,在运行时才知道是否会发生异常,也叫作运行时异常; 这种异常一般可以通过编码的逻辑思维的严密性进行提前规避; 通过编码可以进行避免; (3)异常和错误的类结构图 异常和错误都是继承自Throwable类; Error类是所有错误处理类的父类; Exception是所有异常处理类的父类; 2. 异常处理机制 异常处理机制主要是针对检查性异常(编译时异常)进行处理;(强制要求) 当然,非检查性异常也可以通过异常处理机制,避免异常发生;(非强制要求) (1)try-catch异常机制 语法: try{ // 可能发生异常的代码语句块 }catch(Exception e){ // 对捕获到的异常进行处理 }catch(Exception e2){ // 对捕获到的异常进行处理 } finally{ // 进行收尾处理 } 解析: 1.1 try语句块对可能发生异常代码块进行检测; 如果检测到异常,则转入catch部分进行处理; 1.2 catch部分对发生异常进行处理, catch部分括号里面的Exception对象变量e就是try中发生的异常对象; 变量e中包含了try发生的异常信息; 1.3 finally部分是可有可无,如果有,则无论是否发生异常,都会执行finally部分; 如果没有,则不执行;所以,一般finally部分都是进行收尾操作,例如关闭资源; 注意: [1]catch部分可以多个,但是要求前面的catch的Exception范围要小于后面的; [2]catch括号中的参数还可以使用 | 进行分割,但是要求 | 前后的异常类(类图)不能有包含关系,只能是平级关系; [3]注意return和finally的执行的先后顺序:finally要先于retrun执行, 也就是执行完finally之后,才会执行return操作 (2)Throws处理机制 方法生命时使用 throws 将发生的异常抛给上一层的调用者进行处理; 解析: throws抛出的异常需要上层调用者进行异常处理; 如果一直向上抛出异常,最终由jvm进行默认处理; 3. throw手动触发一个异常 程序运行在某种情况时,需要触发一个异常; 可以使用throw关键字触发一个异常; 使用throw抛出的异常继续遵循异常处理机制; 注意:如果抛出的是非检查性异常,则不需要显式进行处理; 一般throw手动抛出的异常,采用throws的处理机制进行处理; 目的:就是通过手动出发一个异常的方式,通知给上层调用者;(通信方式) 思考:throw和return执行的先后顺序?(自行验证) 4.自定义异常类 自定义异常,通过继承Exception类,使用oop的多态进行实现即可; #### 集合 1、集合类概念 集合:就是一类对象或数据的合集; Java常用集合类有: Collection接口实现: 分为两个子接口: List接口: 具体实现类: Set接口: 具体实现类: Map接口实现: 具体实现类: 集合和数组的区别: 集合:长度是可以自动扩展的; 数组:长度是固定的; 2、集合类应用 Java中集合类的应用: 学习集合类主要从一下几个方面进行: 1、放入集合类中是否可以重复 2、是否有序?(如果存入集合的元素顺序和去除集合元素的顺序一样,称为有序) 3、是否为null 4、是否排序 set接口的集合应用 set接口集合主要实现类: HashSet实现类: 是否可以重复? 不可以重复 是否有序? 无序 否可以为null?可以为null 是否排序? 不排序 #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)