1 volatile 关键字:
当多个线程进行操作共享数据时,可以保证内存中的数据可见。 相较于 synchronized 是一种较为轻量级的同步策略。
缺点:
1. volatile 不具备“互斥性”
2. volatile 不能保证变量的“原子性”
2.自定义类型A作为HshMap的Key,自定义类型A需要实现什么方法?
需要继承Map的equals函数和hashCode函数
3.String,StringBuffer,StringBuild区别
String:不可变字符串
StringBuffer:可变字符串,效率低,线程安全
StringBuild:可变字符序列,效率高,线程不安全
4.运行时异常和一般异常的异同
两种异常同属于Exception父类。
运行时异常都是RuntimeException类及其子类异常,如NullPointerException、IndexOutOfBoundsException等。
一般异常是RuntimeException以外的异常,类型上都属于Exception类及其子类。
5.final和finally,finalize的区别
final可以用来修饰类,方法和变量 finally作为异常处理的一部分,它只能用在try/catch语句中最终会执行.finalize垃圾收集器删除对象之前调用