@override的作用
- 在继承体系中:添加此注解后编译器会帮你检查是否真正的重写了父类的方法,如果因为方法命名或者方法参数的原因并没有重写父类的方法,编译器会给你指出错误,防止出现隐藏的漏洞
- 在接口实现类中:添加此注解后编译器会帮你检查是否真正实现了接口中的方法,防止因为方法命名,方法参数或方法返回体的关系并没有实现接口中的方法,只是给接口实现类添加了一个新方法
@SuppressWarnings(“unchecked”)
用于抑制编译器产生警告信息,unchecked表示忽略此信息,例如由于使用集合时未使用泛型来指定保存的类型信息
ExecutorService接口
此接口提供了三个方法用于手动关闭线程池,分别是shutdown(),shutdownNow()和awaitTermination(),ThreadPoolExecutor类正是这个接口的实现类,自然也实现了这三个方法
- shutdown():此方法表示开始 有序关闭线程池,即线程池不再接收新的任务,但是要完成以提交的任务,然后关闭线程池,这个方法不提供阻塞功能,即意味着有可能主线程已经结束,但是子线程仍然在执行
- shutdownNow():表示立即关闭线程池,并不等待已提交任务的执行结束
- awaitTermination():此函数表示在一定时间之后关闭线程池,提供阻塞功能,即让主线程处于等待子线程的执行的状态,即表示主线程等待子线程执行完成之后再返回,如果所有子线程执行结束但是没有到达预定时间,此函数返回为true;如果已经到达了时间但是有子线程还没有执行完毕,则关闭所有子线程并返回为false
Spring配置全局异常处理
- 在java中,方法内可以抛出异常但是如果不声明该方法抛出异常,那么在调用这个方法的时候可以直接调用而不用编写处理异常的代码,但是当出现异常后就没有合适的处理机制
- 出现运行时异常后,系统会把异常一直往上抛,直到遇到处理异常的代码。如果没有遇到处理的代码,异常由主程序抛出则主程序退出,如果是由线程抛出则线程终止
- 利用@controllerAdvice配置全局异常处理类GlobalExceptionHandler,利用注解@ExceptionHandler声明异常处理方法,这样可以处理由Controller层抛出的异常,不用每个controller都进行异常处理
java中null关键字
- 用来表示那些仅有名称,却没有为其分配内存空间的变量 。
- 让一个非null的实例变量赋值为null,这样这个实例指针引用就被释放了,等待jvm回收其内存
java集合
- java 集合分为Collection和Map两种体系
- Collection是java集合类的顶级接口之一,整个集合围绕一组标准接口设计,此接口有三种子类型集合,分别为List,Set和Queue,在下面是一些抽象类,最后是具体实现