后台之路(一):java基础回顾

         集合:

         单列集合:

                          Collection:单列集合的根接口

                                   List:实现了List接口的集合类,具备的特点:有序、可重复

                                            ArrayList:ArrayList底层是使用Object数组实现的.特点:查询速度快,增删慢.

                                            LinkedList:LinkedList底层是使用了链表结构实现的.特点是:查询速度慢,增删快.

                                            Vector:底层是使用Object类型的数组实现的,实现原理和ArrayList是一致的,但其是线程安全的,操作效率低.

                                   Set:实现了Set接口的集合类,具备的特点:无序,不可重复.

                                            HashSet:底层是使用哈希表实现的,特点:存取速度快

         HashSet存储元素的原理:

                  往HashSet添加元素的时候,首先会调用元素的hashCode方法来得到元素的哈希码值,然后将哈希值经过运算算出该元素在哈希表中的位置.

                  情况一:如果算出的位置还没有存在的元素,那么该元素可以直接添加到哈希表中.

                  情况二:如果算出的位置目前已经存在其他的元素,那么还会调用元素的equsals方法再与这个位置上的元素比较一次.

                                            TreeSet:底层是使用二叉树(红黑树)的数据结构实现的.特点:对集合中的元素进行排序存储.

         TreeSet的原理:

1.     往TreeSet添加元素的时候,如果元素具备自然排序的特点,那么TreeSet会根据元素的自然特性进行排序存储.

2.     --------------------------------------,如果元素不具备自然排序的特点,那么元素所属的类就必须实现Compareable接口,将比较的方法放在Compareto方法

3.     --------------------------------------------------------------------------------------,元素所属的类也没有实现Compareable接口,那么在创建TreeSet的时候必须要传入比较器对象

比较器的语法:

Class 类名 implements Comparator{

}

                  

         双列集合:Map: 存储的对象都是以键对值的形式存在的,键不可以重复,值可以重复

 

                          HashMap:线程不安全,存取速度快.底层是以哈希表实现的.

TreeMap: 红-黑树的数据结构,默认对元素进行自然排序(String),如果在比较的时候两个对象返回值为0,那么元素重复.

                          HashTable:底层也是以哈希表维护的,存取的速度快,存储元素是无需的.

集合的遍历方式:

List:使用get方式遍历

Map:迭代器方式遍历(使用foreach替代)

         使用entrySet方式.

 

泛型的好处:

1.     把运行时出现的问题提前到了编译时.

2.     避免了无谓的强制类型转换.

3.     注意:在泛型中没有多态的概念,两边的类型必须一致.

 

IO流:

         解决设备与设备之间的数据传输问题.

分类:       

 

输入流

输出流

说明

字节流

InputStream

OutputStream

字节流是处理字节的(二进制)

字符流

Reader

Writer

字符流是处理字符的

注:这几个类都是抽象类.

你可能感兴趣的:(Java后台)