java 知识点 小结

1. Java 8种基本类型:byte  char  short int  long  double  float  boolean

  • Byte:8位
  • Short : 16位
  • Int: 32位
  • Long: 64位
  • Float: 32位
  • Double: 64位

2. List set map

List:有序;可重复;

  • Arraylist: 底层数据结构是数组,查询快,增删慢;线程不安全;效率高;
  • Vector: 底层数据结构是数组,查询快,线程安全;效率低;
  • LinkedList:底层数据结构是链表,查询慢,增删快;线程不安全,效率高;

Set:无序;唯一;

  • HashSet:底层数据结构是hash表;hash表依赖两个方法,hashCode()和equals();

         执行顺序:首先判断hashCode()值:是否相同,

                         是:继续执行equals(),看其返回值,

                               是true,说明元素重复,不添加;

                               是false,就直接添加;

                        否:直接添加到集合

                    LinkedHashSet:底层数据结构由链表和hash表组成;由链表保证元素有序;由 hash表保证元素唯一;

  • TreeSet:底层数据结构是红黑树。(是一种自平衡的二叉树)。

         如何保证元素唯一性呢?

            根据比较的返回值是否是0来决定。

        如何保证元素的排序呢? 两种方式:

            自然排序(元素具备比较性)

                让元素所属的类实现Comparable接口

        比较器排序(集合具备比较性)

                让集合接收一个Comparator的实现类对象

  • Map:key唯一,value可重复;

            HashMap:底层数据结构是hash表。线程不安全,效率高;

                hash表依赖两个方法,hashCode()和equals();

                    执行顺序:首先判断hashCode()值:是否相同,

                        是:继续执行equals(),看其返回值,

                            是true,说明元素重复,不添加;

                            是false,就直接添加;

                    否:直接添加到集合

        LinkedHashMap:

            底层数据结构由链表和hash表组成;

                由链表保证元素有序;

                    由hash表保证元素唯一;

        HashTable:底层数据结构是hash表。线程安全,效率低;

            hash表依赖两个方法,hashCode()和equals();

                执行顺序:首先判断hashCode()值:是否相同,

                    是:继续执行equals(),看其返回值,

                        是true,说明元素重复,不添加;

                        是false,就直接添加;

                    否:直接添加到集合

        TreeMap:底层数据结构是红黑树。(是一种自平衡的二叉树)。

            如何保证元素唯一性呢?

                根据比较的返回值是否是0来决定。

            如何保证元素的排序呢?两种方式:

                自然排序(元素具备比较性)

                    让元素所属的类实现Comparable接口

                比较器排序(集合具备比较性)

                    让集合接收一个Comparator的实现类对象

猜你喜欢

转载自my.oschina.net/u/2319418/blog/1609959