本文共 1839 字,大约阅读时间需要 6 分钟。
ArrayList基于动态数组实现,支持快速随机访问,插入和删除操作较为高效。LinkedList基于双向链表实现,适合频繁修改数据结构时使用。
HashMap允许null值和null键,且在哈希冲突时使用链表解决,而HashTable不允许null值和null键,且在哈希冲突时使用数组解决。
Collection是集合类的上级接口,包含Set、List等子接口。Collections是集合操作的工具类,提供静态方法对集合进行操作,如排序、线程安全化等。
List支持重复元素,维护顺序;Set不允许重复元素,无需维护顺序;Map键值对一一对应,存储键值对。
Array是固定大小的数组,不能自动扩容;ArrayList基于动态数组实现,可自动扩容,操作更方便。
Map存储键值对,支持单向映射或双向映射,允许null值和null键。
Java.util包中包含主要集合接口,包括List、Set、Map等。
List接口定义了列表操作,如add、remove、get等,提供动态数组的数据结构实现。
Java异常分为编译时异常和运行时异常。编译时异常在源代码编译时抛出,例如SyntaxError;运行时异常在程序执行时抛出,例如NullPointerException。
异常处理机制包括try-catch-finally、throwable模型,以及异常的传递和处理方式。
通过继承Exception类或直接定义未扩展的异常类,可以自定义异常。
try-catch-finally结构中,try中的return会导致finally部分不执行。
Exception表示可以通过程序处理的异常,Error表示系统错误,通常无法处理。
Throwable是Error和Exception的父类,Error表示不可逆转的系统错误,Exception表示可以处理的异常。
Java IO涉及输入输出操作,包括字节流和字符流。
Java IO是单线程模型,NIO是多线程模型,适合高并发环境。
InputStream、OutputStream、FileInputStream、FileOutputStream等。
字节流以字节为单位传输,字符流以字符为单位传输,字符流内部会自动转换编码。
阻塞模型、非阻塞模型、多路复用模型、信号驱动模型、异步模型。
NIO通过Channel、Buffer、Selector实现高效IO操作,适合处理大数据量和多文件操作。
序列化是将对象转换为字节流,便于传输或存储对象状态。
实现可通过默认机制或自定义writeObject和readObject方法。
Transient阻止字段在序列化时被写入,默认字段会被序列化。
通过实现Serializable接口,并在writeObject中复制字段值。
@TargetElement、@RetentionPolicy、@Documented、@AnnotationDefault。
注解用于元数据的关联信息,通过反射获取注解信息。
继承Thread类、实现Runnable接口、使用ExecutorService和Callable、基于线程池。
单线程池、固定大小线程池、无界线程池、吞吐量有界线程池。
通过stop、interrupt方法停止线程。
notify通知单个线程,notifyAll通知所有等待线程。
希望这些内容能帮助准备面试,祝您好运!
转载地址:http://dogfk.baihongyu.com/