Java入门笔记-(常见工具类)
异常处理类
异常:意外发生情况(其实就是因为程序员水平低),背离程序本身意图表现
- 程序错误
- 编译错误(马虎,括号遗漏,分号遗漏,编写)
- 运行错误(如图),需要捕获分析
- 处理异常
- 异常
- 异常类型
- 异常出现时的程序状态
- 抛出异常
- 捕获异常
- 寻找合适的处理器
五个关键字:try,throw,catch,finally,throws
try(捕获异常)-catch(处理异常)-finally(无论是否捕获,都执行)
- e.printStackTrace 打印程序报错(堆栈信息)内容,位置不固定
- System.exit(非零) 无条件终止Java虚拟机运行 -java.lang
- 非检查异常会有提示,对于检查异常来说,可以使用/**文档注释解决。(Unhandled exception type Exception)
使用多重catch结构处理异常
return关键字的异常处理中的作用
throw和throws
- 规避可能出现的风险
- 完成一些程序的逻辑
- 通过throws在方法声明抛出异常时,可以抛出与对象throw对象相同的类型或者其父类。比如Throwable就是Exception的父类
自定义异常
异常链
捕获一个异常后再抛出另一个异常,也就是将异常发生的原因一个传一个串,即把底层的异常欣喜传给上层,这样逐层抛出。
包装器类实现基本数据类型的对象化处理
- java.lang
- 都是final,没有子类,无法继承
- Byte,Float,Double,Long,Short.Integer都是继承自Number
基本数据类型和字符串之间的转换
小例子
- ==如果比较的是对象的话,是比较的两者对应的内存空间是否相同。所以如果指向不同空间,肯定不相等
- float和double没有对象常量池的概念
String,StringBuilder字符串操作原理
String和Byte转换,getBytes()
- Utf-8中,一个汉字等于三个字节,一个英文等于一个字节
等于运算符与quuals方法的区别
字符串的不可变性
StringBuilder和StringBuffer(可变)
常用集合框架及实现类使用
迭代器
List(列表)
- import java.util
- collection
- add
- clear
- contains 判断是否含有这个对象
- equals,hashCode继承自Object
- isEmpty
- iterator 迭代器
- remove 移除集合的某个元素
- size 相当于数组中的length方法
- toArray 转数组
- …
- List(Collection,Iterable的子接口)
- get 返回列表中指定位置的元素
- indexOf
- sort 列表排序
- …
- ArrayList(实现类)
- 构造函数
- …
在list中存储并操作字符串信息
在list中存储并操作自定义对象
Set
- Set是接口,没有构造方法
- 插入失败,不会报错(重复元素不会显示)
- addAll
- add
- clear
- contains
- equals
- isEmpty
- iterator
- hashCode
- removeAll
- toArray
- HashSet 实现类
- 四个构造方法(不带参,带参(集合,容量,加载因子))
String类
自定义类
Map
- Interface Map
HashMap插入String对象
HashMap插入自定义对象
Java输入输出流进行文件读写
多线程实现数据并发通信
线程创建
通过继承Thread类的方式创建线程类,重写run()方法
- 一个线程只能调用一次start方法。
- 多个线程运行的先后顺序是随机的,获得CPU的使用权是随机的
实现Runnable接口创建线程
线程的状态和生命周期
- 新建(New)
- 可运行,就绪状态(Runnable) 调用start方法
- 正在运行(Running) 获取CPU的运行权
- 阻塞(Blocked)
- 终止状态(Dead)
Sleep方法
- 多线程交叉执行
join方法(抢占线程资源)
- 添加指定时间后,时间结束后,资源解放,不再独占
线程优先级
- 优先级不代表执行顺序,有很大的随机性