类型转换:
1.字符串类型转换成具体的基本类型
字符串类型转换成具体的基本类型 通过数据类型对应的包装类的方法进行转换
Integer:封装类、包装类
int 基本数据类型--------对象类型(引用类型):Integer
2.基本数据类型转换成字符串类型
总结:
基本数据类型 基本数据类型之间的转换:
..................byte-short-int-long-float-double
引用类型转换:
子类转换成父类 直接转换
父类转换成子类 强制转换 可能引发异常(instanceof 运算符判断)
异常处理:
throws:声明异常 一定使用在方法上;表示可能有异常 (有可能发生,有可能不发生)
throw:throw明确抛出异常 是在方法体内 一旦抛出,意味着流程从抛出点中断,余下的代码不执行
调用了一个声明了异常的方法,这个调用方法需要try...catch或者声明异常
父类构造函数声明了异常,子类构造函数必须声明异常(大于等于父类)
方法重写里,子类重写父类的方法,且子类声明了异常,那么父类必须必须要声明异常(大于等于子类)
接口中所有的访问修饰符不能是private:
接口中属性都是常量
final 修饰属性 就是常量
final修饰类,始终类(断子绝孙类)表示类中所有方法都有final修饰
final 修饰方法
不希望被子类重写,业务规则保持绝对一致
final修饰的类,不可以被继承; final修饰的方法,不可以被重写;
多线程:
分两条线程分别打印奇数和偶数:
sleep不合适,只是让肉眼看着符合条件
不能用Thread.sleep 让线程交替。
实际是杂乱无章的,需要用线程通信()来实现两个线程交替打印。