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区别

原文地址:https://www.cnblogs.com/huantianxing/p/15044473.html