第一天
包装类:
在Java中一切皆对象,所有将基础数据类型与包装类对应
Java中异常就是导致程序终止的
异常处理就是为了保证整个程序不会因为一点问题而终止执行
第二天
Java中异常处理的原则是谁调用谁处理
将异常打印出来也是一种处理(不一定是直接修好才叫处理)
throws和throw
throws在函数上一个标志,表示此函数可能抛出异常
throw是手动抛出异常
Java中RuntimeExcption可以不用处理
在实际开发中如果知道具体异常,就写具体的异常名,不知道就都写Excption
关闭资源的代码,因为这里的代码在任何情况下都执行,
普通类只要继承了Excption就变成了自定义的异常类
当子类重写父类的函数时抛出异常不能放大,只能是父类异常的自己或它的子类
包:实际就是文件夹,最大的作用是防止重名
类的权限名就是包名+类的名字
在实际的开发中引包时最好不写,不是因为效率问题,而是因为代码的阅读性问题
第三天
代码提示的快捷键是alt+/
多行注释是ctrl+shift+/
单行:ctrl+/
Java中程序执行时至少有两个线程,主线程和垃圾回收线程
第四天
线程有五种状态
1.创建mythread th1=new Mythread();
2.就绪th1 start();这状态就是万事俱备只差cpu(去抢cpu的执行权,谁抢到谁就进入运行状态)
3.运行:获得了cpu的执行权
4.阻塞:cpu的执行权被剥夺了
5.死亡:线程执行完
线程的第二种创建方式
通过实现 Run able接口来实现线程类
多线程通过实现thread
实际卖票的第一种
通过继承Thread,由于创建了多个线程类的实例,想实现数据共享,必须将共享的数据变为了静态的
第二种:通过实现Run able的方式可以共享数据,多个线程跑的同一个线程类的实例,在实际开发中一般都是实现Run able接口的方式来创建线程类
第五天
线程安全:用代码同步的方式解决线程安全问题
第一种同步代码块,他的锁是任意对象实例
出现线程安全问题的前提条件:1.要多少操作 2.有数据共享
第二周同步函数,同步函数的锁就是thread
线程不能同步关键是看同一个锁