2018年5月17日

Collection Set&HashSet&TreeSet(HashMap实现,去重特性)

摘要: 一、HashSet 1. 虑重功能特性(HashMap实现) 2. put(key) 如果重复返回false 二、TreeSet(有序的,基于TreeMap红黑树实现) 问题1: 如果试图把一个对象添加到TreeSet时,则该对象的类必须实现Comparable接口,否则程序会抛出异常java.la 阅读全文

posted @ 2018-05-17 21:44 齊帥 阅读(490) 评论(0) 推荐(0) 编辑

Collection Vector&Stack

摘要: 一、 源码分析(同ArrayList实现,增删查加锁) 二、 与ArrayList区别 1. Vector与ArrayList一样,也是通过数组实现的,不同的是它支持线程的同步,即某一时刻只有一个线程能够写Vector,避免多线程同时写而引起的不一致性,但实现同步需要很高的花费,因此,访问它比访问A 阅读全文

posted @ 2018-05-17 20:18 齊帥 阅读(134) 评论(0) 推荐(0) 编辑

Collection LinkedList

摘要: 一、源码分析 双向链表 1. LinkedList 类组成 2. Node<E> 节点接口 3. add(e) 新增 4. get(index) 查找 /** * Returns the (non-null) Node at the specified element index. */ Node< 阅读全文

posted @ 2018-05-17 19:33 齊帥 阅读(169) 评论(0) 推荐(0) 编辑

java 浅拷贝和深拷贝

摘要: clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象。所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象。那么在java语言中,有几种方式可以创建对象呢? 1. 使用new操作符创建一个对象 2. 使用clone方法复制一个对象  阅读全文

posted @ 2018-05-17 11:30 齊帥 阅读(327) 评论(0) 推荐(0) 编辑

Collection ArrayList

摘要: 一、 源码分析 1. ArrayList 类组成 2. add(E)方法 * 1. 自动判断是否需要增加存储空间,如果需要,增加数组长度的一半(oldSize + oldSize>>1); * 2. mouCount++,如果在迭代器遍历是数据结构发生变化,报异常; * 3. Arrays.copy 阅读全文

posted @ 2018-05-17 06:20 齊帥 阅读(317) 评论(0) 推荐(0) 编辑

导航