牛客网错题集锦——Day03

1. 一些问题

牛客网错题集锦——Day03

1.1 A:

ConcurrentHashMap是使用的ReentrantLock来保证的线程安全

1.2 B:

HashMap实现的是Map接口

1.3 C:

Array.asList返回的应该是java.util.Arrays.ArrayList

2. 看题

牛客网错题集锦——Day03

2.1 A:

CopyWriteArrayList用于写少读多的并发场景。

2.3 B:

ReadWriteLock是读写锁,写与写互斥,读与读同时执行,读与写互斥。

2.3 C:

ConcurrentHashMap是同步的HashMap读写都加锁

2.4 D:

volatile只保证多线程操作的可见性,不保证原子性。

3. 局部内部类

牛客网错题集锦——Day03
局部内部类就相当于一个方法的成员变量,不能有访问权限修饰符和static修饰符。
牛客网错题集锦——Day03

4. 多重catch抛出异常

在多重catch抛出异常时应该先子类后父类。
异常体系结构:
牛客网错题集锦——Day03

5. 堆、栈、方法区

堆区:只存放类对象,线程共享,成员变量;
方法区:又叫静态存储区,存放class文件和静态数据,线程共享;
栈区:存放方法局部变量,基本类型变量区、执行环境上下文、操作指令区,线程不共享;

6. java.sql.Statement体系结构

牛客网错题集锦——Day03

7. 关于对象序列化

对象的序列化是指把一个对象写入IO中。
写入流:ObjectOutputStream
读取流并且反序列化:ObjectInputStream
如果一个对象想要序列化就要集成Serializable接口。ExternalizableSerializable是子接口,如果不想序列化全部的对象,可以使用writeExternal()readExtrenal来指定序列化的属性。