Java枚举、注解每日一考
2022.02.19每日一考
1. 什么是枚举类?枚举类的对象声明的修饰符都有哪些?
枚举类的对象的个数是确定的,
public static final
2. 什么是元注解?说说Retention和Target元注解的作用
元注解:对现有的注解进行解释说明的注解。
Retention:指明所修饰的注解的生命周期
Target:指定annotation能修饰的类结构
生命周期有三种状态:
SOURCE:编译时执行,不会保留在字节码文件中
CLASS:会保留在字节码文件中
RUNTIME:会保留在字节码文件中并在运行时加载到内存中,反射
3.说说你所理解的集合框架都有哪些接口,存储数据的特点是什么
collection:单列数据,用来存储一个一个对象
Set:无需不可重复
List:有序可重复
Map:双列集合,key-value
4.throw和throws的区别?
throw:定义在方法内,抛(生成)出一个异常对象
throws:是处理异常的一种方式,上游排污,下游治污,抛给处理异常的方法
throw:生成一个异常对象,并抛出。使用在方法内部 <-> 自动抛出异常对象
throws:处理异常的方式。使用在方法声明处的末尾<->try-catch-finally
5.谈谈你对同步代码块中同步监视器和共享数据的理解及各自要求。
同步监视器:锁,任何一个对象都可以充当,多个线程共用一把锁
共享数据:多个线程共同操作的数据
多线程对共享数据处理时需要考虑线程安全问题,通过同步代码块刚好surround共享数据的操作部分,并使多个线程共用一把锁。
同步监视器:俗称锁。①任何一个类的对象都可以充当锁。② 多个线程共用同一把锁。
共享数据:多个线程共同操作的数据,即为共享数据。
需要使用同步机制将操作共享数据的代码包起来。不能包多了,也不能包少了