unit1 异常
1.概念:本身是一个类,产生异常就是创建异常对象并且抛出此对象,处理异常采用中断处理
2.分类:java.lang.Throwable Exception子类:RuntimeException
Alt + Enter : 解决异常
编译异常:直接修改
运行异常:无需处理
错误:改逻辑。。。
A:throws Exception,给虚拟机处理
B:try {可能出现异常的代码 } catch() { 异常处理逻辑 },处理异常
3.产生过程解析:
A:JVM创建一个异常对象,方法中没有异常处理的逻辑
B:然后抛出此对象,传给main方法处理,main又抛给了JVM处理
C:JVM接受后,将异常的情况,以红色字体打印在控制台;JVM终止当前正在执行的内容(中断处理)
4.throw:
补充:Objects非空判断:
throws:声明异常
5.try-catch:捕获异常
6.throwable:
7.finally:不论是否发生异常,都需要执行
8.其他:
finally里面有return:一般不把里面添加return
子类父类异常:父类什么样子,子类就是什么样
9.自定义异常:
unit2 并发与并行
1.进程 线程
2.并发 并行
3.主线程 多线程
主线程:执行主方法的线程,执行main方法的
单线程:从main方法开始
4.Thread类:
多线程原理:随机性打印结果:
压栈执行:main--run 堆内存存储:对象
5.sleep方法:程序暂停执行
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
6.匿名内部类实现线程创建:子类(实现类对象),没有名字,new FU() { 重写方法 }
7.线程安全问题:多线程访问共享的数据,会产生安全问题
线程安全解决1:同步代码块----同步技术原理:同步中的线程没有执行完毕不会释放线程,同步外的线程没有锁进不去线程
线程安全解决2:同步方法--静态同步方法也是可以保证安全的
线程安全解决3:Lock锁
8.线程状态:6种
9.等待唤醒机制:
计时等待:
锁阻塞:
无限等待:等待唤醒案例=线程之间的通信
10.线程池
11.Lambda表达式
unit3 流
1.File类
2.IO概述
3.字节输出流
4.字节输入流
5.缓冲流
6.转换流
7.打印流
unit4 网络协议
1.协议
2.IP地址
3.端口号
4.TCP通信
5.BS服务器
6.