项目
数据库管理系统StudentSystemV1.0
eclipse复制项目tips:
- 打开项目所在目录
- 复制项目文件夹
- 改名
文件夹名和.project文件中的name值都要改
- 导入项目
鼠标右击,import导入项目,选择更名之后的项目
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sr6ajbXV-1623306038338)(F:_笔记\mdpic\1.Java基础(三)]\image-20210514134905335.png)
导入成功
异常
Throwable类
Java中所有异常的超类,在Java中所有的异常,错误的基类就是Throwable类
Throwable
- Exception 异常
- Error 错误
Throwable常用方法
Constructor:
- Throwable()
Throwable构造方法,Throwable类对象中,存储的异常或者错误信息默认为null - Throwable(String message)
Throwable构造方法,Throwable类对象中,存储的异常或者错误信息为message
Method:
- String getMessage()
获取Throwable对象中存储的异常或者错误信息 - String toString()
返回当前异常或者错误的简要描述 - void printStackTrace()
展示错误的前因后果,[字体是红色的]
throwable.printStackTrace
Exception和Error
Exception 异常可以处置
Error 错误,不可处置,只能避免
异常处理
捕获异常
try catch 结构
try catch finally结构
总结:
- 代码中从异常发生的位置开始,之后的代码都不再执行
- 代码中有多个异常,可以使用多个catch块进行捕获操作,分类进行处理
- 后期可以将异常情况保存下来作为log日志文件
- 异常被捕获之后代码可以正常运行
抛出异常
- throw
方法内抛出异常 - throws
在方法声明位置,告知调用者当前方法有哪些异常抛出
异常声明需要生成对应的文档注释
抛出异常总结:
- 一个代码块{}内,有且只能有一个异常
- 从throw位置开始,之后的代码不在运行
- 代码中存在使用throw抛出异常,在方法声明位置必须告诉调用者这里有什么异常
RuntimeException
运行时异常
自定义异常
自定义异常类名:必须以Exception结尾
泛型genericity
格式:
<自定义泛型无意义大写英文字母占位符>
例:<T> Type <E> Element <K> Key <V> value
反省可以在方法,类,接口中使用
泛型在方法中使用
使用静态方法的泛型格式:
整型时
字符串型
总结:
- 自定义泛型声明在返回值之前,以保证方法的参数和返回值都可以使用对应的泛型
- 方法声明的泛型,在方法中的参数中必须有一个参数是对应声明的自定义泛型,当前参数是用于约束方法内所用使用到泛型的位置对应的具体数据类型是什么
泛型在类中使用
格式
不推荐这种方法
注意:
- 类声明自定义泛型,需要通过创建对象的方式来约束
- 类声明泛型约束之后,在类内的所有成员方法中使用的泛型都是类约束的泛型具体数据类型
- 如果没有约束类声明泛型,所有使用到泛型的位置都是object(不推荐使用)
- 类声明的自定义泛型不能用于类内的静态方法
因为静态成员方法是在类文件的加载阶段准备完毕,已经可以明确的保证该方法是可以执行的
如果使用类声明的自定义泛型,对应泛型的具体数据类型需要在创建类对象之后才可以明确
当前静态方法在类文件加载阶段无法明确泛型数据类型是哪一个,也就无法保证执行,因为没有对象
泛型在接口中使用
- 接口声明的泛型,只能用于类内的成员方法
- 遵从带有自定义泛型的接口的类,一种可以遵从过程中明确告知泛型具体类型(规矩模式),一种是在创建类对象时明确泛型具体数据类型(*模式)
匿名内部类
Anonymous Inner Type
几种方法的比较
之前项目的排序就可以用匿名内部类的方法去实现
去代替原来的impl下的文件
如:AgeAscCompare.java文件
集合
开发中使用数组的弊端
- 数组中能够使用的方法非常少,功能方法需要程序员自己完成
- 数据类型单一化,不支持多种情况
- 数组容量定义之后不能改
集合的优势
- 方法多样,功能完善
- 数据类型多样化
- 容量可变
集合架构
Java中集合的 总接口 Collection
Java中所有和集合有关的内容,都是Collection接口的子接口或者实现类
Collection接口下的常用方法
实例