日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

50道Java集合经典面试题

發布時間:2025/3/16 java 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 50道Java集合经典面试题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. Arraylist與LinkedList區別

可以從它們的底層數據結構、效率、開銷進行闡述哈

  • ArrayList是數組的數據結構,LinkedList是鏈表的數據結構。

  • 隨機訪問的時候,ArrayList的效率比較高,因為LinkedList要移動指針,而ArrayList是基于索引(index)的數據結構,可以直接映射到。

  • 插入、刪除數據時,LinkedList的效率比較高,因為ArrayList要移動數據。

  • LinkedList比ArrayList開銷更大,因為LinkedList的節點除了存儲數據,還需要存儲引用。

2. Collections.sort和Arrays.sort的實現原理

Collection.sort是對list進行排序,Arrays.sort是對數組進行排序。

Collections.sort底層實現

Collections.sort方法調用了list.sort方法

list.sort方法調用了Arrays.sort的方法

因此,Collections.sort方法底層就是調用的Array.sort方法

Arrays.sort底層實現

Arrays的sort方法,如下:

如果比較器為null,進入sort(a)方法。如下:

因此,Arrays的sort方法底層就是:

  • legacyMergeSort(a),歸并排序,

  • ComparableTimSort.sort():即Timsort排序。

Timesort排序

Timsort排序是結合了合并排序(merge.sort)和插入排序(insertion sort)而得出的排序方法;

1.當數組長度小于某個值,采用的是二分插入排序算法,如下:

  • 找到各個run,并入棧。

  • 按規則合并run。

  • 3. HashMap原理,java8做了什么改變

    • HashMap是以鍵值對存儲數據的集合容器

    • HashMap是非線性安全的。

    • HashMap底層數據結構:數組+(鏈表、紅黑樹),jdk8之前是用數組+鏈表的方式實現,jdk8引進了紅黑樹

    • Hashmap數組的默認初始長度是16,key和value都允許null的存在

    • HashMap的內部實現數組是Node[]數組,上面存放的是key-value鍵值對的節點。HashMap通過put和get方法存儲和獲取。

    • HashMap的put方法,首先計算key的hashcode值,定位到對應的數組索引,然后再在該索引的單向鏈表上進行循環遍歷,用equals比較key是否存在,如果存在則用新的value覆蓋原值,如果沒有則向后追加。

    • jdk8中put方法:先判斷Hashmap是否為空,為空就擴容,不為空計算出key的hash值i,然后看table[i]是否為空,為空就直接插入,不為空判斷當前位置的key和table[i]是否相同,相同就覆蓋,不相同就查看table[i]是否是紅黑樹節點,如果是的話就用紅黑樹直接插入鍵值對,如果不是開始遍歷鏈表插入,如果遇到重復值就覆蓋,否則直接插入,如果鏈表長度大于8,轉為紅黑樹結構,執行完成后看size是否大于閾值threshold,大于就擴容,否則直接結束。

    • Hashmap解決hash沖突,使用的是鏈地址法,即數組+鏈表的形式來解決。put執行首先判斷table[i]位置,如果為空就直接插入,不為空判斷和當前值是否相等,相等就覆蓋,如果不相等的話,判斷是否是紅黑樹節點,如果不是,就從table[i]位置開始遍歷鏈表,相等覆蓋,不相等插入。

    • HashMap的get方法就是計算出要獲取元素的hash值,去對應位置獲取即可。

    • HashMap的擴容機制,Hashmap的擴容中主要進行兩步,第一步把數組長度變為原來的兩倍,第二部把舊數組的元素重新計算hash插入到新數組中,jdk8時,不用重新計算hash,只用看看原來的hash值新增的一位是零還是1,如果是1這個元素在新數組中的位置,是原數組的位置加原數組長度,如果是零就插入到原數組中。擴容過程第二部一個非常重要的方法是transfer方法,采用頭插法,把舊數組的元素插入到新數組中。

    • HashMap大小為什么是2的冪次方?效率高+空間分布均勻

    有關于HashMap這些常量設計目的,也可以看我這篇文章:面試加分項-HashMap源碼中這些常量的設計目的

    4. List 和 Set,Map 的區別

    • List 以索引來存取元素,有序的,元素是允許重復的,可以插入多個null。

    • Set 不能存放重復元素,無序的,只允許一個null

    • Map 保存鍵值對映射,映射關系可以一對一、多對一

    • List 有基于數組、鏈表實現兩種方式

    • Set、Map 容器有基于哈希存儲和紅黑樹兩種方式實現

    • Set 基于 Map 實現,Set 里的元素值就是 Map的鍵值

    5. poll()方法和 remove()方法的區別?

    Queue隊列中,poll() 和 remove() 都是從隊列中取出一個元素,在隊列元素為空的情況下,remove() 方法會拋出異常,poll() 方法只會返回 null 。

    看一下源碼的解釋吧:

    /** * Retrieves and removes the head of this queue. This method differs * from {@link #poll poll} only in that it throws an exception if this * queue is empty. * * @return the head of this queue * @throws NoSuchElementException if this queue is empty */????E?remove(); /** * Retrieves and removes the head of this queue, * or returns {@code null} if this queue is empty. * * @return the head of this queue, or {@code null} if this queue is empty */E poll();

    6. HashMap,HashTable,ConcurrentHash的共同點和區別

    HashMap

    • 底層由鏈表+數組+紅黑樹實現

    • 可以存儲null鍵和null值

    • 線性不安全

    • 初始容量為16,擴容每次都是2的n次冪

    • 加載因子為0.75,當Map中元素總數超過Entry數組的0.75,觸發擴容操作.

    • 并發情況下,HashMap進行put操作會引起死循環,導致CPU利用率接近100%

    • HashMap是對Map接口的實現

    HashTable

    • HashTable的底層也是由鏈表+數組+紅黑樹實現。

    • 無論key還是value都不能為null

    • 它是線性安全的,使用了synchronized關鍵字。

    • HashTable實現了Map接口和Dictionary抽象類

    • Hashtable初始容量為11

    ConcurrentHashMap

    • ConcurrentHashMap的底層是數組+鏈表+紅黑樹

    • 不能存儲null鍵和值

    • ConcurrentHashMap是線程安全的

    • ConcurrentHashMap使用鎖分段技術確保線性安全

    • JDK8為何又放棄分段鎖,是因為多個分段鎖浪費內存空間,競爭同一個鎖的概率非常小,分段鎖反而會造成效率低。

    7. 寫一段代碼在遍歷 ArrayList 時移除一個元素

    因為foreach刪除會導致快速失敗問題,fori順序遍歷會導致重復元素沒刪除,所以正確解法如下:

    第一種遍歷,倒敘遍歷刪除

    for(int i=list.size()-1; i>-1; i--){ if(list.get(i).equals("jay")){ list.remove(list.get(i)); }}

    第二種,迭代器刪除

    Iterator itr = list.iterator();while(itr.hasNext()) { if(itr.next().equals("jay") { itr.remove(); }}

    8. Java中怎么打印數組?

    數組是不能直接打印的哈,如下:

    public class Test {public static void main(String[] args) { String[] jayArray = {"jay", "boy"}; System.out.println(jayArray); }}//output[Ljava.lang.String;@1540e19d

    打印數組可以用流的方式Strem.of().foreach(),如下:

    public class Test {public static void main(String[] args) { String[] jayArray = {"jay", "boy"}; Stream.of(jayArray).forEach(System.out::println); }}//outputjayboy

    打印數組,最優雅的方式可以用這個APi,Arrays.toString()

    public class Test { public static void main(String[] args) { String[] jayArray = {"jay", "boy"}; System.out.println(Arrays.toString(jayArray)); }}//output[jay, boy]

    9. TreeMap底層?

    • TreeMap實現了SotredMap接口,它是有序的集合。

    • TreeMap底層數據結構是一個紅黑樹,每個key-value都作為一個紅黑樹的節點。

    • 如果在調用TreeMap的構造函數時沒有指定比較器,則根據key執行自然排序。

    10. HashMap 的擴容過程

    Hashmap的擴容:

    • 第一步把數組長度變為原來的兩倍,

    • 第二步把舊數組的元素重新計算hash插入到新數組中。

    • jdk8時,不用重新計算hash,只用看看原來的hash值新增的一位是零還是1,如果是1這個元素在新數組中的位置,是原數組的位置加原數組長度,如果是零就插入到原數組中。擴容過程第二步一個非常重要的方法是transfer方法,采用頭插法,把舊數組的元素插入到新數組中。

    11. HashSet是如何保證不重復的

    可以看一下HashSet的add方法,元素E作為HashMap的key,我們都知道HashMap的可以是不允許重復的,哈哈。

    public boolean add(E e) { return map.put(e, PRESENT)==null;}

    12. HashMap 是線程安全的嗎,為什么不是線程安全的?死循環問題?

    不是線性安全的。

    并發的情況下,擴容可能導致死循環問題。

    13. LinkedHashMap的應用,底層,原理

    • LinkedHashMap維護著一個運行于所有條目的雙重鏈接列表。此鏈接列表定義了迭代順序,該迭代順序可以是插入順序(insert-order)或者是訪問順序,其中默認的迭代訪問順序就是插入順序,即可以按插入的順序遍歷元素,這點和HashMap有很大的不同。

    • LRU算法可以用LinkedHashMap實現。

    14. 哪些集合類是線程安全的?哪些不安全?

    線性安全的

    • Vector:比Arraylist多了個同步化機制。

    • Hashtable:比Hashmap多了個線程安全。

    • ConcurrentHashMap:是一種高效但是線程安全的集合。

    • Stack:棧,也是線程安全的,繼承于Vector。

    線性不安全的

    • Hashmap

    • Arraylist

    • LinkedList

    • HashSet

    • TreeSet

    • TreeMap

    15. ArrayList 和 Vector 的區別是什么?

    • Vector是線程安全的,ArrayList不是線程安全的。

    • ArrayList在底層數組不夠用時在原來的基礎上擴展0.5倍,Vector是擴展1倍。

    • Vector只要是關鍵性的操作,方法前面都加了synchronized關鍵字,來保證線程的安全性。

    16. Collection與Collections的區別是什么?

    • Collection是Java集合框架中的基本接口,如List接口也是繼承于它

    public interface List<E> extends Collection<E> {
    • Collections是Java集合框架提供的一個工具類,其中包含了大量用于操作或返回集合的靜態方法。如下:

    public static <T extends Comparable<? super T>> void sort(List<T> list) { list.sort(null);}

    17. 如何決定使用 HashMap 還是TreeMap?

    這個點,主要考察HashMap和TreeMap的區別。

    TreeMap實現SortMap接口,能夠把它保存的記錄根據鍵排序,默認是按key的升序排序,也可以指定排序的比較器。當用Iterator遍歷TreeMap時,得到的記錄是排過序的。

    18. 如何實現數組和 List之間的轉換?

    List 轉 Array

    List 轉Array,必須使用集合的 toArray(T[] array),如下:

    List<String> list = new ArrayList<String>();list.add("jay");list.add("tianluo"); // 使用泛型,無需顯式類型轉換String[] array = list.toArray(new String[list.size()]);System.out.println(array[0]);

    如果直接使用 toArray 無參方法,返回值只能是 Object[] 類,強轉其他類型可能有問題,demo如下:

    List<String> list = new ArrayList<String>();list.add("jay");list.add("tianluo"); String[] array = (String[]) list.toArray();System.out.println(array[0]);

    運行結果:

    Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String; at Test.main(Test.java:14)

    Array 轉List

    使用Arrays.asList() 把數組轉換成集合時,不能使用修改集合相關的方法啦,如下:

    String[] str = new String[] { "jay", "tianluo" };List list = Arrays.asList(str);list.add("boy");

    運行結果如下:

    Exception in thread "main" java.lang.UnsupportedOperationException at java.util.AbstractList.add(AbstractList.java:148) at java.util.AbstractList.add(AbstractList.java:108) at Test.main(Test.java:13)

    因為 Arrays.asList不是返回java.util.ArrayList,而是一個內部類ArrayList。

    可以這樣使用彌補這個缺點:

    //方式一:ArrayList< String> arrayList = new ArrayList<String>(strArray.length);Collections.addAll(arrayList, strArray);//方式二:ArrayList<String> list = new ArrayList<String>(Arrays.asList(strArray)) ;

    19. 迭代器 Iterator 是什么?怎么用,有什么特點?

    public interface Collection<E> extends Iterable<E> { Iterator<E> iterator();

    方法如下:

    next() 方法獲得集合中的下一個元素hasNext() 檢查集合中是否還有元素remove() 方法將迭代器新返回的元素刪除forEachRemaining(Consumer<? super E> action) 方法,遍歷所有元素

    Iterator 主要是用來遍歷集合用的,它的特點是更加安全,因為它可以確保,在當前遍歷的集合元素被更改的時候,就會拋出 ConcurrentModificationException 異常。

    使用demo如下:

    List<String> list = new ArrayList<>();Iterator<String> it = list. iterator();while(it. hasNext()){ String obj = it. next(); System. out. println(obj);}

    20. Iterator 和 ListIterator 有什么區別?

    • ListIterator 比 Iterator有更多的方法。

    • ListIterator只能用于遍歷List及其子類,Iterator可用來遍歷所有集合,

    • ListIterator遍歷可以是逆向的,因為有previous()和hasPrevious()方法,而Iterator不可以。

    • ListIterator有add()方法,可以向List添加對象,而Iterator卻不能。

    • ListIterator可以定位當前的索引位置,因為有nextIndex()和previousIndex()方法,而Iterator不可以。

    • ListIterator可以實現對象的修改,set()方法可以實現。Iierator僅能遍歷,不能修改哦。

    21. 怎么確保一個集合不能被修改?

    很多朋友很可能想到用final關鍵字進行修飾,final修飾的這個成員變量,如果是基本數據類型,表示這個變量的值是不可改變的,如果是引用類型,則表示這個引用的地址值是不能改變的,但是這個引用所指向的對象里面的內容還是可以改變滴~驗證一下,如下:

    public class Test { //final 修飾 private static final Map<Integer, String> map = new HashMap<Integer, String>(); { map.put(1, "jay"); map.put(2, "tianluo"); }public static void main(String[] args) { map.put(1, "boy"); System.out.println(map.get(1)); }}

    運行結果如下:

    //可以洗發現,final修飾,集合還是會被修改呢boy

    嘻嘻,那么,到底怎么確保一個集合不能被修改呢,看以下這三哥們~

    • unmodifiableMap

    • unmodifiableList

    • unmodifiableSet

    再看一下demo吧

    public class Test {private static Map<Integer, String> map = new HashMap<Integer, String>(); { map.put(1, "jay"); map.put(2, "tianluo");}public static void main(String[] args) { map = Collections.unmodifiableMap(map); map.put(1, "boy"); System.out.println(map.get(1)); }}

    運行結果:

    // 可以發現,unmodifiableMap確保集合不能修改啦,拋異常了Exception in thread "main" java.lang.UnsupportedOperationException at java.util.Collections$UnmodifiableMap.put(Collections.java:1457) at Test.main(Test.java:14)

    22. 快速失敗(fail-fast)和安全失敗(fail-safe)的區別是什么?

    快速失敗

    在用迭代器遍歷一個集合對象時,如果遍歷過程中對集合對象的內容進行了修改(增加、刪除、修改),則會拋出Concurrent Modification Exception。

    public class Test {public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1); list.add(2);Iterator iterator = list.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); list.add(3); System.out.println(list.size()); }}}

    運行結果:

    1Exception in thread "main" java.util.ConcurrentModificationException3 at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:909) at java.util.ArrayList$Itr.next(ArrayList.java:859) at Test.main(Test.java:12)

    安全失敗

    采用安全失敗機制的集合容器,在遍歷時不是直接在集合內容上訪問的,而是先復制原有集合內容,在拷貝的集合上進行遍歷。

    public class Test {public static void main(String[] args) { List<Integer> list = new CopyOnWriteArrayList<>(); list.add(1); list.add(2);Iterator iterator = list.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); list.add(3); System.out.println("list size:"+list.size()); }}}

    運行結果:

    1list size:32list size:4

    其實,在java.util.concurrent 并發包的集合,如 ConcurrentHashMap, CopyOnWriteArrayList等,默認為都是安全失敗的。

    23. 什么是Java優先級隊列(Priority Queue)?

    優先隊列PriorityQueue是Queue接口的實現,可以對其中元素進行排序

    • 優先隊列中元素默認排列順序是升序排列

    • 但對于自己定義的類來說,需要自己定義比較器

    public class PriorityQueue<E> extends AbstractQueue<E> implements java.io.Serializable { ... private final Comparator<? super E> comparator;

    方法:

    peek()//返回隊首元素poll()//返回隊首元素,隊首元素出隊列add()//添加元素size()//返回隊列元素個數isEmpty()//判斷隊列是否為空,為空返回true,不空返回false

    特點:

    • 1.基于優先級堆

    • 2.不允許null值

    • 3.線程不安全

    • 4.出入隊時間復雜度O(log(n))

    • 5.調用remove()返回堆內最小值

    24. JAVA8的ConcurrentHashMap為什么放棄了分段鎖,有什么問題嗎,如果你來設計,你如何設計。

    jdk8 放棄了分段鎖而是用了Node鎖,減低鎖的粒度,提高性能,并使用CAS操作來確保Node的一些操作的原子性,取代了鎖。

    可以跟面試官聊聊悲觀鎖和CAS樂觀鎖的區別,優缺點哈~

    25. 阻塞隊列的實現,ArrayBlockingQueue的底層實現?

    ArrayBlockingQueue是數組實現的線程安全的有界的阻塞隊列,繼承自AbstractBlockingQueue,間接的實現了Queue接口和Collection接口。底層以數組的形式保存數據(實際上可看作一個循環數組)。常用的操作包括 add ,offer,put,remove,poll,take,peek。

    可以結合線程池跟面試官講一下哦~

    26. Java 中的 LinkedList是單向鏈表還是雙向鏈表?

    哈哈,看源碼吧,是雙向鏈表

    private static class Node<E> { E item; Node<E> next; Node<E> prev;Node(Node<E> prev, E element, Node<E> next) { this.item = element; this.next = next; this.prev = prev; } }

    27. 說一說ArrayList 的擴容機制吧

    ArrayList擴容的本質就是計算出新的擴容數組的size后實例化,并將原有數組內容復制到新數組中去。

    public boolean add(E e) { //擴容 ensureCapacityInternal(size + 1); // Increments modCount!! elementData[size++] = e; return true; } private void ensureCapacityInternal(int minCapacity) { ensureExplicitCapacity(calculateCapacity(elementData, minCapacity));} private static int calculateCapacity(Object[] elementData, int minCapacity) { //如果傳入的是個空數組則最小容量取默認容量與minCapacity之間的最大值 if (elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA) { return Math.max(DEFAULT_CAPACITY, minCapacity); } return minCapacity; }private void ensureExplicitCapacity(int minCapacity) { modCount++; // 如果最小需要空間比elementData的內存空間要大,則需要擴容 // overflow-conscious code if (minCapacity - elementData.length > 0) grow(minCapacity); }private void grow(int minCapacity) { // 獲取elementData數組的內存空間長度 int oldCapacity = elementData.length; // 擴容至原來的1.5倍 int newCapacity = oldCapacity + (oldCapacity >> 1); //校驗容量是否夠 if (newCapacity - minCapacity < 0) newCapacity = minCapacity; //若預設值大于默認的最大值,檢查是否溢出 if (newCapacity - MAX_ARRAY_SIZE > 0) newCapacity = hugeCapacity(minCapacity); // 調用Arrays.copyOf方法將elementData數組指向新的內存空間 //并將elementData的數據復制到新的內存空間 elementData = Arrays.copyOf(elementData, newCapacity); }

    28. HashMap 的長度為什么是2的冪次方,以及其他常量定義的含義~

    為了能讓HashMap存取高效,數據分配均勻。

    看著呢,以下等式相等,但是位移運算比取余效率高很多呢~

    hash%length=hash&(length-1)

    29. ConcurrenHashMap 原理?1.8 中為什么要用紅黑樹?

    聊到ConcurrenHashMap,需要跟面試官聊到安全性,分段鎖segment,為什么放棄了分段鎖,與及選擇CAS,其實就是都是從效率和安全性觸發,嘻嘻~

    java8不是用紅黑樹來管理hashmap,而是在hash值相同的情況下(且重復數量大于8),用紅黑樹來管理數據。紅黑樹相當于排序數據。可以自動的使用二分法進行定位。性能較高。

    30. ArrayList的默認大小

    ArrayList 的默認大小是 10 個元素

    /** * Default initial capacity. */private static final int DEFAULT_CAPACITY = 10;

    31. 為何Collection不從Cloneable和Serializable接口繼承?

    • Collection表示一個集合,包含了一組對象元素。如何維護它的元素對象是由具體實現來決定的。因為集合的具體形式多種多樣,例如list允許重復,set則不允許。而克隆(clone)和序列化(serializable)只對于具體的實體,對象有意義,你不能說去把一個接口,抽象類克隆,序列化甚至反序列化。所以具體的collection實現類是否可以克隆,是否可以序列化應該由其自身決定,而不能由其超類強行賦予。

    • 如果collection繼承了clone和serializable,那么所有的集合實現都會實現這兩個接口,而如果某個實現它不需要被克隆,甚至不允許它序列化(序列化有風險),那么就與collection矛盾了。

    32. Enumeration和Iterator接口的區別?

    public interface Enumeration<E> { boolean hasMoreElements(); E nextElement();}public interface Iterator<E> { boolean hasNext(); E next(); void remove();}
    • 函數接口不同

    • Enumeration速度快,占用內存少,但是不是快速失敗的,線程不安全。

    • Iterator允許刪除底層數據,枚舉不允許

    • Iterator安全性高,因為其他線程不能夠修改正在被Iterator遍歷的集合里面的對象。

    33. 我們如何對一組對象進行排序?

    可以用 Collections.sort()+ Comparator.comparing(),因為對對象排序,實際上是對對象的屬性排序哈~

    public class Student {private String name; private int score;public Student(String name, int score){ this.name = name; this.score = score; }public String getName() { return name; }public void setName(String name) { this.name = name; }public int getScore() { return score; }public void setScore(int score) { this.score = score; }@Override public String toString() { return "Student: " + this.name + " 分數:" + Integer.toString( this.score ); }} public class Test {public static void main(String[] args) {List<Student> studentList = new ArrayList<>(); studentList.add(new Student("D", 90)); studentList.add(new Student("C", 100)); studentList.add(new Student("B", 95)); studentList.add(new Student("A", 95));Collections.sort(studentList, Comparator.comparing(Student::getScore).reversed().thenComparing(Student::getName)); studentList.stream().forEach(p -> System.out.println(p.toString())); }}

    34. 當一個集合被作為參數傳遞給一個函數時,如何才可以確保函數不能修改它?

    這個跟之前那個不可變集合一樣道理哈~

    在作為參數傳遞之前,使用Collections.unmodifiableCollection(Collection c)方法創建一個只讀集合,這將確保改變集合的任何操作都會拋出UnsupportedOperationException。

    35. 說一下HashSet的實現原理?

    • 不能保證元素的排列順序,順序有可能發生變化。

    • 元素可以為null

    • hashset保證元素不重復~ (這個面試官很可能會問什么原理,這個跟HashMap有關的哦)

    • HashSet,需要談談它倆hashcode()和equles()哦~

    • 實際是基于HashMap實現的,HashSet 底層使用HashMap來保存所有元素的

    看看它的add方法吧~

    public boolean add(E e) { return map.put(e, PRESENT)==null; }

    36. Array 和 ArrayList 有何區別?

    • 定義一個 Array 時,必須指定數組的數據類型及數組長度,即數組中存放的元素個數固定并且類型相同。

    • ArrayList 是動態數組,長度動態可變,會自動擴容。不使用泛型的時候,可以添加不同類型元素。

    37. 為什么HashMap中String、Integer這樣的包裝類適合作為key?

    String、Integer等包裝類的特性能夠保證Hash值的不可更改性和計算準確性,能夠有效的減少Hash碰撞的幾率~

    因為

    • 它們都是final修飾的類,不可變性,保證key的不可更改性,不會存在獲取hash值不同的情況~

    • 它們內部已重寫了equals()、hashCode()等方法,遵守了HashMap內部的規范

    38. 如果想用Object作為hashMap的Key?;

    重寫hashCode()和equals()方法啦~ (這個答案來自互聯網哈~)

    • 重寫hashCode()是因為需要計算存儲數據的存儲位置,需要注意不要試圖從散列碼計算中排除掉一個對象的關鍵部分來提高性能,這樣雖然能更快但可能會導致更多的Hash碰撞;

    • 重寫equals()方法,需要遵守自反性、對稱性、傳遞性、一致性以及對于任何非null的引用值x,x.equals(null)必須返回false的這幾個特性,目的是為了保證key在哈希表中的唯一性;

    39. 講講紅黑樹的特點?

    • 每個節點或者是黑色,或者是紅色。

    • 根節點是黑色。

    • 每個葉子節點(NIL)是黑色。[注意:這里葉子節點,是指為空(NIL或NULL)的葉子節點!]

    • 如果一個節點是紅色的,則它的子節點必須是黑色的。

    • 從一個節點到該節點的子孫節點的所有路徑上包含相同數目的黑節點。

    40. Java集合類框架的最佳實踐有哪些?

    其實這些點,結合平時工作,代碼總結講出來,更容易吸引到面試官呢 (這個答案來自互聯網哈~)

    • 1.根據應用需要正確選擇要使用的集合類型對性能非常重要,比如:假如知道元素的大小是固定的,那么選用Array類型而不是ArrayList類型更為合適。

    • 2.有些集合類型允許指定初始容量。因此,如果我們能估計出存儲的元素的數目,我們可以指定初始容量來避免重新計算hash值或者擴容等。

    • 3.為了類型安全、可讀性和健壯性等原因總是要使用泛型。同時,使用泛型還可以避免運行時的ClassCastException。

    • 4.使用JDK提供的不變類(immutable class)作為Map的鍵可以避免為我們自己的類實現hashCode()和equals()方法。

    • 5.編程的時候接口優于實現

    • 6.底層的集合實際上是空的情況下,返回為長度是0的集合或數組而不是null。

    41.談談線程池阻塞隊列吧~

    • ArrayBlockingQueue

    • LinkedBlockingQueue

    • DelayQueue

    • PriorityBlockingQueue

    • SynchronousQueue

    ArrayBlockingQueue: (有界隊列)是一個用數組實現的有界阻塞隊列,按FIFO排序量。

    LinkedBlockingQueue: (可設置容量隊列)基于鏈表結構的阻塞隊列,按FIFO排序任務,容量可以選擇進行設置,不設置的話,將是一個無邊界的阻塞隊列,最大長度為Integer.MAX_VALUE,吞吐量通常要高于ArrayBlockingQuene;newFixedThreadPool線程池使用了這個隊列

    DelayQueue:(延遲隊列)是一個任務定時周期的延遲執行的隊列。根據指定的執行時間從小到大排序,否則根據插入到隊列的先后排序。newScheduledThreadPool線程池使用了這個隊列。

    PriorityBlockingQueue:(優先級隊列)是具有優先級的無界阻塞隊列;

    SynchronousQueue:(同步隊列)一個不存儲元素的阻塞隊列,每個插入操作必須等到另一個線程調用移除操作,否則插入操作一直處于阻塞狀態,吞吐量通常要高于LinkedBlockingQuene,newCachedThreadPool線程池使用了這個隊列。針對面試題:線程池都有哪幾種工作隊列?

    我覺得,回答以上幾種ArrayBlockingQueue,LinkedBlockingQueue,SynchronousQueue等,說出它們的特點,并結合使用到對應隊列的常用線程池(如newFixedThreadPool線程池使用LinkedBlockingQueue),進行展開闡述, 就可以啦。

    42. HashSet和TreeSet有什么區別?

    • Hashset 的底層是由哈希表實現的,Treeset 底層是由紅黑樹實現的。

    • HashSet中的元素沒有順序,TreeSet保存的元素有順序性(實現Comparable接口)

    • HashSet的add(),remove(),contains()方法的時間復雜度是O(1);TreeSet中,add(),remove(),contains()方法的時間復雜度是O(logn)

    43. Set里的元素是不能重復的,那么用什么方法來區分重復與否呢? 是用==還是equals()?

    元素重復與否是使用equals()方法進行判斷的,這個可以跟面試官說說==和equals()的區別,hashcode()和equals

    44. 說出ArrayList,LinkedList的存儲性能和特性

    這道面試題,跟ArrayList,LinkedList,就是換湯不換藥的~

    • ArrayList,使用數組方式存儲數據,查詢時,ArrayList是基于索引(index)的數據結構,可以直接映射到,速度較快;但是插入數據需要移動數據,效率就比LinkedList慢一點~

    • LinkedList,使用雙向鏈表實現存儲,按索引數據需要進行前向或后向遍歷,查詢相對ArrayList慢一點;但是插入數據速度較快。

    • LinkedList比ArrayList開銷更大,因為LinkedList的節點除了存儲數據,還需要存儲引用。

    45. HashMap在JDK1.7和JDK1.8中有哪些不同?

    互聯網上這個答案太詳細啦(https://www.jianshu.com/p/939b8a672070)

    46. ArrayList集合加入1萬條數據,應該怎么提高效率

    因為ArrayList的底層是數組實現,并且數組的默認值是10,如果插入10000條要不斷的擴容,耗費時間,所以我們調用ArrayList的指定容量的構造器方法ArrayList(int size) 就可以實現不擴容,就提高了性能。

    47. 如何對Object的list排序

    看例子吧,哈哈,這個跟對象排序也是一樣的呢~

    public class Person {private String name; private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Person(String name, Integer age) { this.name = name; this.age = age; }} public class Test {public static void main(String[] args) {List<Person> list = new ArrayList<>(); list.add(new Person("jay", 18)); list.add(new Person("tianLuo", 10));list.stream().forEach(p -> System.out.println(p.getName()+" "+p.getAge())); // 用comparing比較對象屬性 list.sort(Comparator.comparing(Person::getAge));System.out.println("排序后");list.stream().forEach(p -> System.out.print(p.getName()+" "+p.getAge()+" ")); }}

    48. ArrayList 和 HashMap 的默認大小是多數?

    在 Java 7 中,ArrayList 的默認大小是 10 個元素,HashMap 的默認大小是16個元素(必須是2的冪)。

    49. 有沒有有順序的Map實現類,如果有,他們是怎么保證有序的

    • Hashmap和Hashtable 都不是有序的。

    • TreeMap和LinkedHashmap都是有序的。(TreeMap默認是key升序,LinkedHashmap默認是數據插入順序)

    • TreeMap是基于比較器Comparator來實現有序的。

    • LinkedHashmap是基于鏈表來實現數據插入有序的。

    50. HashMap是怎么解決哈希沖突的

    Hashmap解決hash沖突,使用的是鏈地址法,即數組+鏈表的形式來解決。put執行首先判斷table[i]位置,如果為空就直接插入,不為空判斷和當前值是否相等,相等就覆蓋,如果不相等的話,判斷是否是紅黑樹節點,如果不是,就從table[i]位置開始遍歷鏈表,相等覆蓋,不相等插入

    有道無術,術可成;有術無道,止于術

    歡迎大家關注Java之道公眾號

    好文章,我在看??

    總結

    以上是生活随笔為你收集整理的50道Java集合经典面试题的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    99久久精品国产一区二区成人 | 深爱激情五月婷婷 | 看片黄网站 | 国产在线免费观看 | 国产四虎在线 | 在线免费观看视频一区 | 国产无区一区二区三麻豆 | 狠狠色丁香婷婷综合橹88 | 在线国产视频观看 | 五月婷婷丁香 | 亚州国产精品久久久 | 国产精品18毛片一区二区 | 国产区在线 | 日韩电影在线看 | 91精品在线免费视频 | av在线网站免费观看 | 免费观看的黄色片 | 激情视频免费在线 | 在线观看视频免费大全 | 97在线精品视频 | 人人爽久久涩噜噜噜网站 | 日韩免费观看高清 | 国产精品资源 | 免费电影一区二区三区 | 日韩av三区| 狠狠色综合网站久久久久久久 | 欧美色道 | 在线播放视频一区 | 一区二区三区四区五区六区 | 久久国产高清 | 免费在线一区二区 | 久久精品亚洲综合专区 | 日日夜夜网 | 久久欧美在线电影 | 免费看片黄色 | 日本护士三级少妇三级999 | 国产色在线| 国产精品网红直播 | 在线看成人片 | 尤物九九久久国产精品的分类 | 欧美日视频 | 亚洲成av人片在线观看香蕉 | 国产免码va在线观看免费 | 在线视频麻豆 | 国产一区二区免费在线观看 | 麻花传媒mv免费观看 | 中文在线中文资源 | 美州a亚洲一视本频v色道 | 国模精品在线 | www天天干com | 黄色免费视频在线观看 | 人人澡人摸人人添学生av | 91av在线免费| 91看片淫黄大片在线播放 | 五月天天色 | 亚洲激情av| 天天操夜夜操国产精品 | 国产精品自产拍在线观看蜜 | 免费在线观看视频一区 | 国产亚洲精品成人av久久ww | 不卡av电影在线 | av一区二区三区在线 | 国产999精品久久久久久绿帽 | 四虎成人免费影院 | 天天色天天操综合网 | 丁香5月婷婷久久 | 日韩在线第一区 | 久国产在线播放 | 在线免费观看一区二区三区 | 精品产品国产在线不卡 | 波多野结衣视频网址 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 精品福利av | 精品一二 | 欧美一区二区在线免费看 | 四虎永久免费在线观看 | 国产午夜三级一区二区三桃花影视 | 色.com| 日本久久久久久科技有限公司 | 在线播放亚洲激情 | 在线看片成人 | 国产精品18久久久久白浆 | 91传媒在线看 | 免费 在线 中文 日本 | 99久久综合国产精品二区 | 天天射射天天 | 激情伊人 | 黄色免费高清视频 | 免费成人结看片 | 成人动漫视频在线 | 99精品视频在线免费观看 | 国产一二三精品 | 人人射人人爽 | 国内久久看 | 伊人看片 | 日日草夜夜操 | 一级片黄色片网站 | 精品久久久久久亚洲综合网站 | 久久污视频 | 国产一级二级三级在线观看 | 人人看人人 | 久久精品首页 | 亚洲国产福利视频 | 中文国产字幕在线观看 | 安徽妇搡bbbb搡bbbb | 偷拍精偷拍精品欧洲亚洲网站 | 日本在线观看一区 | 久久精品视频在线看 | 麻豆视频免费观看 | 精品毛片一区二区免费看 | 亚洲国产中文在线观看 | 四虎在线观看精品视频 | 美女亚洲精品 | 高清久久久久久 | av免费电影网站 | 欧美巨乳波霸 | 国产97在线观看 | 久草av在线播放 | 亚洲欧洲一区二区在线观看 | 久久久国产精品网站 | 色婷婷久久久综合中文字幕 | 伊人五月在线 | 日韩欧美在线免费 | 96视频免费在线观看 | 日韩av一区在线观看 | 麻豆视频国产在线观看 | 夜色资源站国产www在线视频 | 美女久久精品 | 国产精品亚洲人在线观看 | 久久66热这里只有精品 | 天天操天天干天天操天天干 | 久久国产精品视频免费看 | 一区电影| 国内精品久久久久影院日本资源 | 色av婷婷 | 国产91精品欧美 | 亚洲视频www | 欧美另类高清 videos | 99热在线观看免费 | 麻豆视频免费在线 | 国产成人久久精品亚洲 | 日本三级在线观看中文字 | 99在线视频免费观看 | 人人擦 | 日韩视频在线一区 | 麻豆传媒视频观看 | 欧美性视频网站 | 国产剧情av在线播放 | 国产精品欧美久久久久三级 | 在线观看国产日韩 | 懂色av懂色av粉嫩av分享吧 | 夜添久久精品亚洲国产精品 | 国产中年夫妇高潮精品视频 | 国内精品视频一区二区三区八戒 | 中文字幕在线视频网站 | 波多野结衣视频一区二区 | 色一色在线| 欧美日韩二三区 | 久久精品美女视频网站 | 狠狠色丁香婷婷综合视频 | 91精品国产高清自在线观看 | 91久久国产精品 | 国精产品永久999 | 国产a国产 | 日日操网站 | 在线www色| 亚洲国产免费看 | 免费观看性生交 | 亚洲粉嫩av | av不卡中文字幕 | 国产操在线 | 中文字幕av有码 | 亚洲精品在线观看视频 | 国产字幕av| 国产精品美女在线观看 | 国产黄色精品 | 色婷婷在线观看视频 | 日韩偷拍精品 | a级国产毛片 | 色婷婷婷 | 亚洲更新最快 | 天天操天天干天天操天天干 | 欧美另类v| 日日夜日日干 | 在线免费试看 | 欧美日韩18 | 中文在线a天堂 | 91看成人 | 天天色成人 | 性色av一区二区三区在线观看 | 中文字幕在线免费播放 | 成人一级 | 伊甸园永久入口www 99热 精品在线 | 综合成人在线 | 中文av一区二区 | 又黄又爽免费视频 | 国产一级片免费视频 | 婷婷久久久 | 成年人在线观看网站 | 黄色毛片在线观看 | 视频一区二区精品 | 色先锋av资源中文字幕 | 亚洲综合色丁香婷婷六月图片 | 国产午夜三级一区二区三桃花影视 | 99久久www| 中午字幕在线观看 | 天天操天天操天天操天天操天天操天天操 | 日韩色爱 | 五月婷婷激情 | 国产我不卡 | 最近中文字幕免费视频 | 99热手机在线观看 | 亚洲国产精品va在线 | 亚洲精品久久久久久久不卡四虎 | 国产精品初高中精品久久 | 天天操 夜夜操 | 国产一级片毛片 | 日b黄色片 | 97香蕉超级碰碰久久免费软件 | 日本中文字幕系列 | 久久精品视频在线免费观看 | 欧美日韩久久 | 在线视频一二三 | 欧美性做爰猛烈叫床潮 | 在线看毛片网站 | 在线免费观看的av | 天天操天天射天天爽 | 中文字幕一区二区三区精华液 | 九九热在线精品视频 | 中文字幕亚洲精品日韩 | 一级黄色片在线免费观看 | 亚洲婷婷网 | 人人玩人人添人人 | 国产一区二区综合 | 欧美一区成人 | 日韩精品播放 | 国产一级免费电影 | 国产99一区二区 | 久久成人国产精品一区二区 | 日韩xxxx视频 | 日韩99热 | 五月开心六月伊人色婷婷 | 久久黄色网页 | 免费三级av | 日韩av影视 | 免费高清在线视频一区· | 天天干天天操天天干 | av一级久久 | 中文字幕一区二区三区乱码在线 | 精品欧美乱码久久久久久 | 久久久精品午夜 | 就操操久久 | 久久精品一区二 | 高潮久久久久久久久 | 日韩精品在线视频 | 91视频高清| 精品国产区| 国产精品videossex国产高清 | 亚洲国产成人精品电影在线观看 | 免费精品视频在线 | 欧美综合干 | 欧美在线视频二区 | 久久精品国产免费看久久精品 | 国产99免费视频 | 亚洲va欧美va人人爽 | 亚洲精品裸体 | 日韩精品黄| 国产一级免费在线观看 | 丁香 久久 综合 | 精品在线看 | 日韩欧美在线视频一区二区三区 | 久久综合五月天婷婷伊人 | 久久综合狠狠综合久久狠狠色综合 | 亚洲第一中文字幕 | 国产一级视屏 | 久久精品男人的天堂 | 国产99久久99热这里精品5 | 日韩手机在线观看 | 亚洲国产人午在线一二区 | 狠狠色狠狠色合久久伊人 | 中文字幕色网站 | 精品在线观看一区二区 | 成人禁用看黄a在线 | 中文字幕日韩国产 | 91精品色 | 中文字幕黄色 | 国产一区二区高清视频 | 91高清不卡| 欧美美女激情18p | 91视频免费国产 | 国产手机视频精品 | 国产精品字幕 | 97在线免费 | 深夜免费福利在线 | 中文字幕日本特黄aa毛片 | 黄色网www | 人人藻人人澡人人爽 | 日韩一级片网址 | 一区二区三区视频在线 | av大全在线| 久久久国产精品亚洲一区 | 黄网站色欧美视频 | 97超碰人人在线 | 免费色视频网址 | 国产精品一区免费看8c0m | 欧美福利视频一区 | 在线成人国产 | 婷婷在线免费观看 | 国产一级免费在线观看 | 欧美一区三区四区 | 一区二区视频在线免费观看 | 高清av免费一区中文字幕 | 天天干天天做 | 国产玖玖在线 | 国产高清免费在线播放 | 日韩av播放在线 | 91看片看淫黄大片 | 不卡的av在线播放 | 欧美嫩草影院 | 999国产在线 | 欧美国产日韩中文 | www.狠狠干| 久99久中文字幕在线 | 欧美粗又大| 在线 国产一区 | av网站大全免费 | 日本一区二区三区免费观看 | 亚洲国产中文在线 | 日韩精品一区二区电影 | 亚洲一二三久久 | 黄色一级网 | 亚洲国产丝袜在线观看 | 在线观看国产福利片 | 香蕉视频国产在线观看 | 国产精品久久久久影视 | 久久中文精品视频 | 色av色av色av | av一级一片 | 成人黄色片在线播放 | 99久久久| 中文字幕在线观看视频一区二区三区 | 人人爽久久久噜噜噜电影 | 97在线视频免费观看 | 日本黄网站| 色综合久久久久综合99 | 欧美一级高清片 | 精品久久久久久久 | 中文字幕二区三区 | 五月天伊人 | 91av在线不卡| 香蕉在线视频观看 | 久久久久国产精品厨房 | 久久国产精品免费 | 碰天天操天天 | 91视频3p | 日韩精品久久久 | 91免费在线视频 | 在线观看久草 | 国内精品久久久久久久 | 毛片网在线观看 | 99精品久久久久久久 | 成人午夜免费福利 | 不卡av在线免费观看 | 黄色午夜网站 | 最近日本字幕mv免费观看在线 | 亚洲国产精品va在线看黑人动漫 | 综合天天色 | 91av视频| 国产91av视频在线观看 | 亚洲欧美经典 | 国产午夜精品一区二区三区四区 | 国际精品久久久 | 午夜婷婷综合 | 色婷婷国产在线 | 日本黄色黄网站 | 久久免费精品一区二区三区 | 国产小视频在线免费观看视频 | 国产九色91 | 国内精品久久天天躁人人爽 | 国产在线a | 九色视频网站 | 在线观看岛国 | 久久精精品 | 久久av免费| 精品国产乱码久久久久久浪潮 | 国产亚洲精品av | 日本久久综合视频 | 蜜臀久久99精品久久久酒店新书 | 亚洲国产97在线精品一区 | 国产精品理论视频 | 在线视频麻豆 | 婷婷激情站 | 天天干天天天天 | 亚洲狠狠丁香婷婷综合久久久 | 国产91区 | 在线看毛片网站 | 天天色天天爱天天射综合 | 欧美在线观看视频一区二区三区 | 亚洲激情视频在线观看 | 97精品超碰一区二区三区 | 中文资源在线官网 | 在线国产精品视频 | 欧美亚洲精品一区 | 亚洲精选视频免费看 | 91欧美视频网站 | 国产精品久久久久一区二区三区共 | 免费av在 | 综合在线观看 | 亚洲精品视频免费看 | 久久国产成人午夜av影院宅 | 久久久资源网 | 天天操操 | 婷婷久久网站 | 日本久热 | 亚洲精品国产综合久久 | 欧美久久久久久久久中文字幕 | 人人插超碰 | 欧美地下肉体性派对 | 国产成人免费在线 | 午夜精品av | 国产资源在线视频 | 日韩偷拍精品 | 碰超人人 | 国产精品二区在线观看 | 国产免费高清 | 新av在线| 日本黄色片一区二区 | 成年人免费看的视频 | 国产精品免费一区二区三区在线观看 | 国产精品一区二区av影院萌芽 | 久久免费成人精品视频 | 少妇性色午夜淫片aaaze | 日韩精品高清视频 | 成人午夜电影网站 | 欧美精品小视频 | 91手机电影 | 国产精品18毛片一区二区 | 特级西西444www大胆高清无视频 | 久久伦理 | 日韩视频在线不卡 | 国产精品毛片一区视频播 | 国产亚洲免费的视频看 | 六月激情丁香 | 国产视频18 | 91色蜜桃 | 欧美性黑人 | 久久精品视频免费观看 | 美女视频网站久久 | 国产日韩欧美网站 | 一级黄毛片 | 亚洲 欧美 国产 va在线影院 | 国产精品成久久久久三级 | 久久久久亚洲天堂 | 久久久久免费网 | 97在线观视频免费观看 | 精品日韩视频 | 精品国产一区二区三区av性色 | 69视频永久免费观看 | 久久精品99国产精品日本 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 最新成人在线 | 亚洲欧洲国产视频 | 国产在线观看中文字幕 | 一本一本久久aa综合精品 | 永久免费av在线播放 | 亚洲极色| 91麻豆精品国产91久久久无限制版 | 国产精品久久久久亚洲影视 | 91在线看视频 | 久久久亚洲精华液 | 免费av大片 | 欧美久久久久久久久久久 | 久亚洲| 中文字幕在线成人 | 亚洲精品高清视频在线观看 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 久久久穴| 午夜少妇一区二区三区 | 国产黄色一级片 | adc在线观看 | 国产 日韩 在线 亚洲 字幕 中文 | 久草在线视频在线 | 日韩av免费一区 | 婷婷在线看 | 玖玖在线播放 | 亚洲自拍自偷 | 国产精品1区2区在线观看 | 国产精品手机在线 | 免费看短| 久久久久五月天 | 91免费在线播放 | 亚洲天堂va | 久久毛片视频 | 波多野结衣在线观看视频 | 久久亚洲热 | 五月天六月婷 | 在线一二三四区 | 美女视频黄免费网站 | 国产又粗又猛又黄视频 | 久久综合在线 | 日本特黄一级片 | 亚洲va在线va天堂 | 久久艹影院 | 午夜视频在线观看网站 | 在线免费黄色片 | 久久精品一二区 | 国产精品123 | 欧美成人黄色 | 操操日 | 中文字幕在线专区 | 五月开心六月伊人色婷婷 | 91久久奴性调教 | 亚洲国产成人高清精品 | 深爱激情开心 | 99久久精品久久久久久清纯 | 精品久久福利 | 日日爽天天爽 | 男女免费视频观看 | 久久精品国产久精国产 | 国产精品视频久久久 | 夜夜躁日日躁狠狠久久88av | a成人v | 国产一区精品在线观看 | 99久久夜色精品国产亚洲 | 国产精品视频久久久 | 久草在线最新免费 | 国产在线高清精品 | 91免费在线看片 | 日韩精品一区二区三区免费观看视频 | 99热这里只有精品在线观看 | 日韩电影久久 | av中文字幕在线观看网站 | 91一区二区三区久久久久国产乱 | 亚洲aⅴ在线| 色婷婷综合五月 | 日韩久久久久 | 99在线免费观看视频 | 亚洲精品乱码久久 | 少妇bbw搡bbbb搡bbb | 四虎影视精品成人 | 九九久久久久久久久激情 | 91精品国产综合久久婷婷香蕉 | 91av小视频 | 九九视频精品免费 | 精品极品在线 | 国产免费久久av | 色综合久久综合 | 91成人看片| 奇米网777| 99视频在线观看免费 | 深爱五月激情网 | 国产首页 | 91最新视频在线观看 | 激情图片久久 | 亚洲理论电影网 | 免费麻豆网站 | 国产精品黑丝在线观看 | 伊人伊成久久人综合网站 | 91丨九色丨蝌蚪丨老版 | 欧美日韩中文在线观看 | 日本超碰在线 | 丁香婷婷色 | 色久综合 | 久久影院午夜论 | 欧美在线1区 | 久久夜色电影 | 国产黄色片一级三级 | a级免费观看 | 国产老太婆免费交性大片 | 男女拍拍免费视频 | www.久草视频| 国产日韩精品一区二区 | 精品久久久久久久久久岛国gif | 91精品国产综合久久婷婷香蕉 | 免费在线观看av网站 | 亚洲成aⅴ人在线观看 | v片在线播放 | 少妇bbw搡bbbb搡bbbb | 欧美日韩中文在线观看 | 国产一区二区免费看 | 天天干中文字幕 | 探花视频在线观看+在线播放 | 成人午夜剧场在线观看 | 91综合久久一区二区 | 免费在线观看国产精品 | 欧美福利片在线观看 | 中文字幕在线观看视频一区二区三区 | 国产精品短视频 | 最近免费在线观看 | 国产最新视频在线 | 久久这里只有精品视频99 | 一级黄色片在线免费观看 | 亚洲人成人天堂h久久 | 久久国产精品免费一区二区三区 | 久在线观看视频 | 男女日麻批 | 欧美日韩另类视频 | 久久视频在线 | 精品在线观看一区二区 | 婷婷射五月 | 国产高清成人av | 999日韩 | 日韩欧美国产激情在线播放 | 日韩在线免费视频观看 | 亚欧洲精品视频在线观看 | 一级免费av | 五月婷婷一级片 | 91成人短视频在线观看 | 高清av免费看 | 国产无吗一区二区三区在线欢 | 成人h动漫精品一区二 | 亚洲午夜精| 久久久久久高潮国产精品视 | 精品亚洲免费 | 国产在线999 | 欧美国产91 | 高清精品视频 | 夜夜夜夜操 | 在线成人高清电影 | 91污污 | 激情综合五月 | 国产亚洲亚洲 | 国产视频1区2区3区 久久夜视频 | 91porny九色91啦中文 | 久久蜜臀一区二区三区av | 97夜夜澡人人双人人人喊 | 午夜久久福利影院 | 亚洲三级网站 | 国产成人99av超碰超爽 | 久草在线最新 | 精品免费视频123区 午夜久久成人 | 91在线看视频免费 | 日韩大陆欧美高清视频区 | 亚洲专区路线二 | 亚洲无毛专区 | 国产手机在线观看视频 | 三级大片网站 | 国产黄色成人av | av在线成人 | 夜夜操夜夜干 | 在线观看视频你懂的 | 国产又黄又硬又爽 | 99视频精品免费视频 | 91刺激视频 | 91精品免费看 | 色婷婷精品大在线视频 | 色偷偷网站视频 | 成人黄色影片在线 | 亚洲激情 欧美激情 | 天天爽夜夜爽人人爽一区二区 | 色瓜| 亚洲精品国产自产拍在线观看 | av在线亚洲天堂 | 99视频在线观看一区三区 | 午夜视频一区二区 | 中文字幕九九 | 成人在线视频免费观看 | 亚洲成a人片在线www | 美女视频黄,久久 | 午夜少妇| 人人干在线 | 日日天天av| 久久久久久国产一区二区三区 | 国产日韩亚洲 | 国产老妇av | 三三级黄色片之日韩 | 日韩欧美精品在线 | 色综合久久久久综合体 | 精品福利在线 | 又黄又爽的视频在线观看网站 | 亚洲成av人电影 | 久福利| 日韩三级在线观看 | 六月激情网 | 国产成人久久精品 | 丝袜美腿亚洲综合 | 日韩性xxx| 亚洲天天做 | 九九色视频 | 麻豆影视在线观看 | 久久精品网址 | 免费观看久久久 | 六月丁香在线观看 | 人人插人人费 | 深爱五月激情网 | 在线看污网站 | 最近中文字幕在线中文高清版 | 久久久国产影院 | 免费黄色激情视频 | 国产精品综合久久 | 日本高清久久久 | 美女黄久久 | 亚洲美女在线国产 | 99精品视频免费观看视频 | 激情综合婷婷 | 四虎国产精 | 成人三级网站在线观看 | 久久这里只有精品久久 | 在线亚州| 免费观看一区二区 | 黄色天堂在线观看 | 亚洲韩国一区二区三区 | 亚洲精品午夜aaa久久久 | 91av欧美| 蜜桃av人人夜夜澡人人爽 | 久草97| 久久人人看 | 成人在线播放av | 亚洲精品毛片一级91精品 | 天天曰天天爽 | 婷香五月| 欧美日韩国产一二三区 | 99精品一区二区 | 亚洲国产福利视频 | 国产伦理精品一区二区 | 国产精品免费观看在线 | 日韩www在线 | 国产一区二区在线影院 | 激情综合亚洲精品 | 夜夜躁狠狠躁日日躁 | 人人干干人人 | 国产精品久久久久久久久久直播 | 中文在线8资源库 | 国产三级视频在线 | 久久精品99国产精品酒店日本 | 免费看国产一级片 | 精品理论片 | 国产亚洲精品成人av久久影院 | 久久精品亚洲国产 | av丝袜制服 | 国产裸体视频网站 | 伊人狠狠干 | 在线观看视频h | 免费看一级 | 天天操婷婷 | 久久麻豆精品 | 九九视频精品在线 | 欧美亚洲国产一卡 | 免费日韩 精品中文字幕视频在线 | 中文国产在线观看 | 久久一区二区三区四区 | 狠狠狠狠狠狠操 | 在线中文字幕电影 | 日韩黄色免费在线观看 | 在线影视 一区 二区 三区 | 狠狠狠色 | 亚洲不卡av一区二区三区 | 国产亚洲视频中文字幕视频 | 91成年人视频 | 日韩av电影中文字幕 | 国产精品久久久久久久99 | 亚洲资源视频 | 精品91| 性色av一区二区三区在线观看 | 欧美激情视频一区二区三区免费 | 国产成人一级 | 在线免费观看黄色 | 91精品国产福利在线观看 | 久草亚洲视频 | 黄色免费网站下载 | 日韩视频免费 | 天天综合网在线观看 | 国产精品久久久久一区二区三区共 | 色av色av色av| 国产成人福利在线观看 | 久久97久久97精品免视看 | 国产精品粉嫩 | 亚洲第一区在线观看 | 青青射| 亚洲午夜精品久久久久久久久久久久 | 亚洲美女视频在线 | 成人午夜黄色 | 四虎海外影库www4hu | 九九电影在线 | 久久久久国产一区二区三区四区 | 国产91精品看黄网站在线观看动漫 | 日韩电影中文 | 开心激情婷婷 | 一区二区视频电影在线观看 | 精品久久综合 | 久久久国产精品免费 | 中文字幕在线观看免费高清完整版 | 欧美日韩免费视频 | 在线观看精品黄av片免费 | 欧美日韩一二三四区 | 黄色av一区 | av在线等| 91久久奴性调教 | 91精品电影 | 五月天堂网 | 91亚洲免费 | 2019精品手机国产品在线 | 日韩精品一区二区三区免费视频观看 | 日韩精品久久一区二区三区 | 欧美精品乱码99久久影院 | 久久久久久久久免费视频 | 国产在线精品一区二区三区 | 二区三区在线视频 | 中文字幕av有码 | 99久久精品免费看国产四区 | 国产女教师精品久久av | a久久久久 | 少妇bbw撒尿 | 日韩精品一区二区三区免费观看视频 | 久久国产经典 | 99久热精品 | 黄色网大全 | 在线观看久草 | 五月丁婷婷 | 人人插人人看 | 亚洲国产精品成人va在线观看 | 黄色资源在线 | 成人h在线播放 | 欧美91av| 黄色在线免费观看网站 | 成人av在线播放网站 | 日韩1级片| 国产99精品在线观看 | 免费视频在线观看网站 | 欧亚日韩精品一区二区在线 | 人人爽人人插 | 福利视频一区二区 | 国产黄色a | 三级免费黄 | 亚洲 欧美 变态 国产 另类 | 成年人电影免费看 | 波多野结衣精品视频 | 国产一区二区在线免费观看 | 狠狠地日| 亚洲 欧美变态 另类 综合 | www.亚洲精品 | 亚洲黄色一级电影 | 黄色影院在线免费观看 | 激情网站免费观看 | 五月婷婷色 | 丁香在线视频 | 天天av综合网 | 国产一级片在线播放 | 成人av电影免费 | 久久一区二区三区日韩 | 91视频在线播放视频 | 黄网站色成年免费观看 | 国产 一区二区三区 在线 | 97精品国产一二三产区 | 久久网页| 波多野结衣在线视频一区 | 粉嫩av一区二区三区四区 | 激情婷婷六月 | 超碰免费97 | avwww在线| 精品电影一区 | 天天综合成人网 | 久久国产美女 | 激情开心 | 免费福利视频网 | 精品国产乱码久久久久久1区二区 | 涩涩色亚洲一区 | 色婷婷久久 | 国产96av| 亚洲va欧美 | 亚洲一区美女视频在线观看免费 | 97国产在线播放 | 欧美精品被| www..com黄色片 | 成人性生交大片免费观看网站 | 欧美国产高清 | 亚洲人视频在线 | 久久久国产精品一区二区中文 | av电影 一区二区 | 成人av影视 | 免费观看久久久 | 婷婷六月天在线 | 久久精品视频在线观看免费 | 国产69久久久欧美一级 | 中文字幕最新精品 | 国产精品久久久久一区二区三区共 | 久久a v电影 | 免费观看av网站 | 97看片吧| 国产一区二区免费看 | 国产一区欧美一区 | 色噜噜狠狠狠狠色综合 | 国产黄免费在线观看 | 美女在线观看网站 | 久久av中文字幕片 | 一区二区三区视频在线 | 久久综合婷婷综合 | 91人人视频在线观看 | 中文字幕韩在线第一页 | 男女免费av | 色偷偷88888欧美精品久久久 | 在线观看资源 | 五月婷综合 | 激情婷婷 | 在线观看黄av | 国产精品国产三级国产不产一地 | 国产免费高清视频 | 97成人在线观看 | 精品天堂av | 91麻豆视频网站 | 青青河边草观看完整版高清 | 天天干天天操天天做 | 精品免费视频123区 午夜久久成人 | 91香蕉视频| 久久手机免费观看 | 日本黄色a级大片 | 日韩一区正在播放 | 婷婷社区五月天 | 97香蕉久久超级碰碰高清版 | 国产又粗又硬又爽的视频 | 日日碰夜夜爽 | 亚洲精品www. | 久久久www成人免费毛片 | 国产成人精品999 | 99精品热视频 | 久色伊人 | 久久精选| av免费片 | 不卡av免费在线观看 | 成人a毛片 | 天堂视频一区 | 亚洲综合欧美日韩狠狠色 | 99热在线免费观看 | 丁香视频五月 | 日韩免费在线 | 亚洲国产成人久久 | 午夜久久久久久久久 | 人人爽人人香蕉 | 亚洲激情av | h视频在线看 | www九九热 | 综合中文字幕 | 久久成人午夜视频 | 天天干天天干天天色 | 色综合天天天天做夜夜夜夜做 | 欧美一性一交一乱 | 免费av福利 | 香蕉久草| se视频网址 | 国产中文字幕视频在线 | 国产人成在线观看 | 中文字幕av在线免费 | 亚洲视频axxx | 波多野结衣一区二区三区中文字幕 | 国产精品av在线免费观看 | 亚洲欧美日韩在线一区二区 | 国产精品欧美激情在线观看 | 国产在线精品观看 | 亚洲精品欧美视频 | 一区二区三区四区五区六区 | 国产小视频精品 | 黄污视频网站大全 | 国产欧美最新羞羞视频在线观看 | 成人影片免费 | 精品亚洲视频在线观看 | 天天干天天插伊人网 | 男女靠逼app | 精品久久免费看 | 91漂亮少妇露脸在线播放 | 日韩美av在线 | 国产不卡一区二区视频 | 亚洲日本国产精品 | 超碰国产97 | 黄色成人av | 久久影院中文字幕 | 欧美黑吊大战白妞欧美 | www.香蕉视频 | 国产高清日韩欧美 | 欧美一级片免费播放 | 看国产黄色大片 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 2021久久| 在线国产一区二区三区 | 一区二区三区在线免费观看 | 精品国产免费人成在线观看 | 日韩爱爱网站 | 国产一区福利 | 中文字幕影片免费在线观看 | 免费在线观看成人 | 热久久视久久精品18亚洲精品 | 亚洲成av人片在线观看www | 婷婷色中文字幕 | 免费在线中文字幕 | 欧美成年黄网站色视频 | 日韩在线视频免费播放 | 国产夫妻性生活自拍 | 色婷婷成人 | 日韩精品亚洲专区在线观看 | 日韩视频一 | 免费在线观看不卡av | 国产免费高清 | 最近中文字幕在线播放 | 久久国产日韩 | 色噜噜日韩精品欧美一区二区 | av高清一区二区三区 | 亚洲无吗av | 超碰97人人干 | 中文字幕国语官网在线视频 |