1. 什么是枚举类?枚举类的对象声明的修饰符都有哪些?
枚举类:类中的对象的个数是确定的,有限个。(如果枚举类中的对象只有一个,称为单例模式)
private final (No) ----> 修饰属性的
public static final (Yes) ----> 修饰对象的
注意:构造器声明为 private 的。
2. 什么是元注解?说说Retention和Target元注解的作用
元注解: 对现有的注解进行解释说明的注解。
Retention: 指明所修饰的注解的生命周期。SOURCE(编译器舍弃的,不会保留字节码文件) CLASS(编译器通过后产生的文件) RUNTIME(编译放到字节码文件中,运行时分配内存的)
Target: 指明被修饰的 Annotation 能用于修饰哪些程序元素
3. 说说你所理解的集合框架都有哪些接口,存储数据的特点是什么
|----Collection接口:单列集合,用来存储一个一个的对象
|----List接口:存储有序的、可重复的数据。
|----ArrayList、LinkedList、Vector
|----Set接口:存储无序的、不可重复的数据
|----HashSet、LinkedHashSet、TreeSet
|----Map接口:双列集合,用来存储一对(key - value)一对的数据
|----HashMap、LinkedHashMap、TreeMap、Hashtable、Properties
4. 比较throw 和 throws 的异同
同:
throw: 生成一个异常对象,并抛出(手动抛出)。使用在方法内部 <-> 自动抛出异常对象
throws: 处理异常的方式。使用在方法声明处的末尾<->try-catch-finally
“上游排污,下游治污”
5. 谈谈你对同步代码块中同步监视器和共享数据的理解及各自要求。
同步监视器: 俗称锁。①任何一个类的对象都可以充当锁。② 多个线程共用同一把锁。
共享数据: 多个线程共同操作的数据,即为共享数据。
需要使用同步机制将操作共享数据的代码包起来。不能包多了,也不能包少了。