第11章 异常、断言、日志和调试
1、异常
异常的层次结构:
派生于RuntimeException和Error的叫未检查异常,其余叫已检查异常。
声明与抛出异常:
public TestThrowable() throws EOFException{
...
throw new EOFException();
}
捕获异常:
try{
try{
}
finally
{
}
}
catch (IOException | EOFException e){
}
带资源的try:
try(Scanner in= new Scanner("c:\\a.txt")){
}
规则:
早抛出,晚捕获
2、断言
记录日志:
日志管理器路径:jre/lib/logging.properties,可见这个配置是虚拟机启动的时候加载
private static final Logger logger=Logger.getLogger("mylog");
logger.log();
3、调试技巧
1、每个类增加一个main函数
2、JUnit 是一个 Java 语言的回归测试框架(regression testing framework)
JUNIT使用参照:https://www.jianshu.com/p/5c9b9a4d2986
第12章 泛型程序设计
泛型类似于模板。
泛型类:
public class Pair<T> { private T first; private T second; public Pair(T first, T second) { this.first = first; this.second = second; } }
泛型方法:
public static <T> T min(T[] a){ T a; return a; }
第13章 集合
图转自https://blog.youkuaiyun.com/zhangqunshuai/article/details/80660974
第14章 多线程
public class ThreadDemo {
public static void main(String[] args) {
TDemo t1 = new TDemo("A");
t1.start();
}
class TDemo extends Thread {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println(name + ":" + i);
}
}
}
线程池:
(1)降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。
(2)提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。
(3)提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控