​ JAVA常用知识点 ​



1、 集合

Collection:

  List(存储有序,有索引,可以重复)

    ArrayList

      底层是数组实现,线程不安全,查找和修改快,增和删比较慢。

    LinkedList

      底层是链表实现,线程不安全,增删比较快,查找和修改比较慢。

    Vector

      底层是数组实现的,线程安全的,增删改查都慢。

      使用:如果查找和修改多,使用ArrayList。

                 如果增删较多,使用LinkedList。

            如果都多,用ArrayList。

  Set(存取无序,无索引,不可以重复)

    Hashset

      底层是hash算法实现。

    LinkedHashset

      底层是哈希算法实现,但也是能保证元素唯一,和Hashset原理一致。

    Treeset

      底层是二叉树算法实现。

      使用:一般在开发的时候不需要对存储的元素排序,所以在开发的时候大多数使用Hashset,Hashset的效率比较高。

                               Treeset在面试的时候比较多,问有几种排序方法,和几种排序方式的区别。

  Map

    HashMap

      底层是哈希算法,针对键。

    LinkedHashMap

      底层是链表,针对键。

    TreeMap

      底层是二叉树算法,针对键。

      使用:开发中使用HashMap较多。

 2、String、StringBuffer、StringBuilder区别