Java 知识点梳理

1.集合类

 |--List<E>

  |--ArrayList<E>由数组实现的List。允许对元素进行快速随机访问 线程不安全

  |--LinkedList<E> 对顺序访问进行了优化,插入与删除的开销并不大。线程不安全 

|--Vector<E> 数组方式存储数据,索引数据快插入数据慢,线程安全

Map<K,V> 

  |--ArrayMap<K, V>

  |--HashMap<K, V>基于散列表的实现,允许空键空值,线程不安全

  |--LinkedHashMap<K,V>有序HashMap

更多详情见:https://blog.csdn.net/hello_jiangdong/article/details/79224230

2.内部类

100.Array List HashMap HashSet …区别

collection 集合接口

 |--List<E>值允许重复,有序的数据结构 按对象进入的顺序保存对象,不做排序或编辑操作

  |--ArrayList<E>由数组实现的List。允许对元素进行快速随机访问,中间插入与移除元素的速度很慢 数组方式存储数据,索引数据快插入数据慢, 线程不安全
  |--LinkedList<E> 对顺序访问进行了优化,插入与删除的开销并不大。随机访问则相对较慢  双向链表实现存储,索引数据慢插入数度较快, 线程不安全(比安全性能好)
  |--Vector<E> 数组方式存储数据,索引数据快插入数据慢, 线程安全
  |--Stack 实现一个后进先出的堆栈
 |--Set<E> 无顺序,不包含重复的元素, 加入Set的元素必须定义equals()方法以确保对象的唯一性
  |--ArraySet<E>  
  |--HashSet<E>为快速查找设计的Set

  |--LinkedHashSet<E>内部使用链表维护元素的顺序(插入的次序)。 

  |--TreeSet<E> 保存次序的Set, 底层为树结构。使用它可以从Set中提取有序的序列。

 |--Queue<E>
   |--BlockingQueue<E>
   |--ArrayDeque<E>

Map<K,V> 维护“键值对”的关联性,使你可以通过“键”查找“值” 成对的数据结构,健值必须具有唯一性(键不能同,否则值替换)
 |--ArrayMap<K, V>
 |--HashMap<K, V>基于散列表的实现,允许空键空值, 线程不安全
  |--LinkedHashMap<K,V>类似于HashMap,但是迭代遍历它时,取得“键值对”的顺序是其插入次序,或者是最近最少使用(LRU)的次序
 |--Hashtable<K,V>基于散列表的实现,允许空键空值, 线程安全
 |--WeakHashMap<K, V> 弱键(weak key)Map,Map中使用的对象也被允许释放 如果没有map之外的引用指向某个“键”,则此“键”可以被垃圾收集器回收。
 |--TreeMap<K, V>基于红黑树数据结构的实现。查看“键”或“键值对”时,它们会被排序 允许空键空值, 线程安全 subMap()方法可以返回一个子树
 |--IdentifyHashMap<E> 使用==代替equals()对“键”作比较的hash map

 SparseArray<E>:采用了二分法方式存储数据(安卓的一个集合类)可代替HashMap<Integer, E>
101.内部类 …

静态内部类,
只能访问外部类的静态成员变量与静态方法。
静态内部类可以声明静态的成员变量,其他的内部类不可以
静态内部类只能访问静态程序
成员内部类
成员内部类可以访问外部类的静态与非静态的方法和成员变量。
在局部内部类中访问外部类的成员变量的方法:OuterClass.this.a;
局部内部类
类似于局部变量,不能定义为public,protected,private或者static类型。
定义方法中,只能方法中声明为final类型的变量。
只能在所在方法区域创建
匿名内部类
匿名内部类没有类名,没有class关键字也没有extends和implements等关键字修饰。
匿名内部类会隐式地继承一个父类或实现一个接口。

3.

猜你喜欢

转载自blog.csdn.net/hello_jiangdong/article/details/60479525