牛客网错题集锦——Day03
1. 一些问题
1.1 A:
ConcurrentHashMap
是使用的ReentrantLock
来保证的线程安全
1.2 B:
HashMap
实现的是Map
接口
1.3 C:
Array.asList
返回的应该是java.util.Arrays.ArrayList
2. 看题
2.1 A:
CopyWriteArrayList
用于写少读多的并发场景。
2.3 B:
ReadWriteLock
是读写锁,写与写互斥,读与读同时执行,读与写互斥。
2.3 C:
ConcurrentHashMap
是同步的HashMap
读写都加锁
2.4 D:
volatile
只保证多线程操作的可见性,不保证原子性。
3. 局部内部类
局部内部类就相当于一个方法的成员变量,不能有访问权限修饰符和static修饰符。
4. 多重catch抛出异常
在多重catch抛出异常时应该先子类后父类。
异常体系结构:
5. 堆、栈、方法区
堆区:只存放类对象,线程共享,成员变量;
方法区:又叫静态存储区,存放class文件和静态数据,线程共享;
栈区:存放方法局部变量,基本类型变量区、执行环境上下文、操作指令区,线程不共享;
6. java.sql.Statement体系结构
7. 关于对象序列化
对象的序列化是指把一个对象写入IO中。
写入流:ObjectOutputStream
读取流并且反序列化:ObjectInputStream
如果一个对象想要序列化就要集成Serializable
接口。Externalizable
是Serializable
是子接口,如果不想序列化全部的对象,可以使用writeExternal()
和readExtrenal
来指定序列化的属性。