Java
232 篇笔记
- 5.1 Cloneablehistorical
1. Cloneable接口是什么 一个标识性接口。实现了这个接口的对象可以调用 Object.clone 方法复制一份当前对象,这里复制的是 属性 2. 什么是对象克隆 将一个对象的属性拷贝到另一个有着相同类类型的对象中去 3. 如何实现对象克隆 3.1. 浅克隆 如果属性是基本类型,拷贝的就是基
- 5.2 Integerhistorical
1. 使用 2. 原理分析 2.1. 构造方法 Integer是不可变的,所谓的不可变是指: - 类使用final修饰 - 内部属性value使用final修饰 - 没有对外提供修改内部属性value的方法 2.2. valueOf方法 2.2.1. 范围正在-128-127的从缓存中取 - Int
- 5.3 ArrayListhistorical
1. 是什么 底层由数组实现的,可扩容的顺序表 有序、可以重复 2. 如何使用 3. 原理分析 3.1. uml 可以看出ArrayList是个List、可克隆、可序列化、可以使用下标访问 3.2. 构造方法 使用object数组,并且初始化长度为0 3.3. add方法 - 不扩容O(1),扩容O
- 5.4 Hashtablehistorical
1. 是什么 线程安全的hashmap 2. 如何使用 3. 原理分析 3.1. uml 可克隆,可序列化,实现了Map接口 3.2. 构造方法 使用链地址法(单链表)解决Hash冲突 初始化容量为11,默认的加载因子为0.75 3.3. put方法 3.3.1. 使用synchronized加锁
- 5.5 Objecthistorical
1. 方法 1.1. getClass 返回对象实例的class对象 1.2. hashCode 当需要使用hash table之类的数据结构时才会使用到这个方法,用来计算在数组中的位置。 当重写了equals方法的时候需要重写hashCode方法,必须保证 a.equals(b) 为true时,
- 5.6 PriorityQueuehistorical
1. PriorityQueue是什么 是一个队列,只不过加上了优先级的概念,换句话说队列里的元素是根据某种规则排好序的 2. 使用 - 输出 3. 源码分析 3.1. 属性 3.2. 有参构造 - initFromCollection 可以看出主要有两个步骤,一个是建立初始化元素到数组中,另一个是
- 5.7 Serializablehistorical
1. 序列化与反序列化 序列化:把内存中的对象以某个格式保存在磁盘中或者在网络上传输 反序列化:把磁盘中保存的或者从网络上传输过来的数据按照某个格式转换成内存中的对象 2. 如何使用 2.1. 实现Serializable接口 2.2. 使用ObjectInputStream、ObjectOutpu
- 5.8 HashSethistorical
1. 是什么 无序、不重复的集合,使用HashMap实现 2. 如何使用 3. 源码分析 3.1. uml 可序列化,可克隆 3.2. 构造方法 3.3. 属性 3.4. add方法 效率为O(1) 3.5. contains方法 效率为O(1) 3.6. remove方法 效率为O(1) 4. 总