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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2019java 开发工程师 最新面试官 问的问题

發布時間:2023/12/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2019java 开发工程师 最新面试官 问的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.Java中的io流面試題

  • 什么是流?流分為哪幾種?
  • 答案:我給你打個比方你就明白了;比如你家的水龍頭的管道就是一個流:流又分為輸入輸出流,輸入流就是你家水龍頭抽水庫水的那頭,輸出流就是你家水龍頭流到你家大水缸的那頭。現在有個A.txt文件,你要讀取里面的信息,就相當于水龍頭抽水庫水,然后讀取完后寫入到另一個文件里面,就是相當于水龍頭抽到水后流到大水缸。很簡單吧,就是一進一出的事,沒這么復雜

    1.1: 以流向來劃分(針對內存):A.輸入流:文件—>內存??? 讀文件B.輸出流:內存—>文件??? 寫文件2)從內容劃分A.字節流:以8位的形式來處理,不能輸出漢字B.字符流:在字節流上進行包裝得到的,可以處理字節流,也可以處理漢字??? 注:在最底層,所有的I/O操作都是字節流的形式,字符流是為了處理漢字方便,字節流的處理速度快

    ?

  • 字節流和字符流的區別?
  • 答: 字節流是按字節讀取或寫入設備,但字符流是以字符為單位讀取或寫入設備。

    如果是二進制文件,需要用字節流讀取。一般來說,字符流只處理文本文件。在設備中,大多數情況是以字節形式存儲數據的,因此字符流通過需要傳入字節流當參數。

  • 什么是緩存流?
  • 原文是這樣的意思,用BufferedReader封裝一個InputStream,再用DataInputStream封裝這個InputStream,這樣做之后,先用BufferedReader從流中讀取一行,然后分別用這個InputStream讀取一個字符和DataInputStream讀取一行,再用BufferedReader讀取一行,結果BufferedReader均能讀到數據,而InputStream和DataInputStream均讀不到數據.數據流中只有40多個字符。這說明了,BufferedReader第一次讀取時,就把這40多個字符都讀取出來,緩沖起來了,后面每次讀的時候,都只是從緩沖里拿出來。40多個字符就一次被BufferedReader讀進去緩存起來了,所以InputStream和DataInputStream就都讀不到字符了。?
    原文并猜想,如果流中的數據夠多到BufferedReader緩存不下來的時候,InputStream和DataInputStream就能讀到數據了。?

    注解:緩沖流分為字節和字符緩沖流

    字節緩沖流為:

    BufferedInputStream—字節輸入緩沖流

    BufferedOutputStream—字節輸出緩沖流

    字符緩沖流為:

    BufferedReader—字符輸入緩沖流

    BufferedWriter—字符輸出緩沖流

    下面主要介紹這四種緩沖流的使用。

    ?

    2.多線程面試問題

  • 你所理解的多線程?
  • 多線程的概念:多線程是一種機制,它允許在程序中并發的執行多個線程,且每個線程間相互獨立。
  • 實現多線程的兩種方式:
  • 1、繼承java.lang.Thread類,并且重寫它的run方法,將線程的執行主體放在其中;
  • 2、實現java.lang.Runnable接口,實現它的run方法,并將線程的執行主體放在其中;
  • 線程有五大狀態:
  • 1、新建狀態(New):使用new操作符創建一個線程的時候,線程還沒有開始執行;
  • 2、就緒狀態(Runnable):當線程調用了start方法之后,線程就進入就緒狀態;處于就緒狀態的線程不一定立即運行run方法,只有獲取到cpu時間才可以執行run方法;
  • 3、運行狀態(running):當線程獲取到了cpu運行時間之后,就進入到運行狀態了,調用run方法;
  • 4、阻塞狀態(blocked):正在運行的線程還沒有結束,暫時讓出cpu,這時其他就緒線程就有機會獲得cpu時間;
  • 以下原因會導致線程進入阻塞狀態:
  • 1、線程調用sleep方法進入睡眠狀態;
  • 2、線程在調用一個在i/o上被阻塞的操作
  • 3、線程試圖去獲得一個鎖,但是這個鎖被其他線程持有;
  • 。。。。。。
  • 5、死亡狀態(Dead):
  • 有以下的原因可導致線程死亡:
  • 1run方法正常退出而正常死亡;
  • 2、一個未捕獲的異常導致線程意外退出而死亡;
  • 可以用isAlive方法來判斷線程是否還活著,只要是線程處于運行或者阻塞狀態,就返回true;如果線程狀態是New且不是可運行的狀態或者線程死亡了,則返回false
  • ?
  • 線程同步(synchronized):
  • 可以同步方法,也可以同步代碼塊;對于同步方法來說,每個方法只有獲取到所屬類實例的鎖才可以被執行,一旦該方法被執行,則獨占鎖,知道方法返回時或者異常退出時才會釋放掉鎖;
  • 同步代碼塊也是一樣,當兩個并發線程訪問同一個對象中的這個synchronizedthis)代碼塊的時候,一個時間內只有一個線程得到執行,另一個線程只有在這個線程執行完成之后才可以執行;
  • 線程同步之Lock
  • Lock是一個接口,它位于java 5.0新增的java.utils.concurrent包的子包locks中,實現Lock接口類具有與synchronized關鍵字相同的功能,但是它的功能強大一些,java.utils.concurrent.locks.ReentrantLock是比較常用的;注意需要在finallyunlock釋放鎖;
  • 線程阻塞:
  • sleep()方法、suspendresume方法、yield方法、waitnotify方法都可以使線程進入阻塞狀態;但是yield方法和wait方法都會釋放cpu時間,而sleep方法和suspend不會釋放cpu時間;
  • 終止線程的方法:
  • 1、當run方法執行完畢,自動終止;
  • 2、使用stop方法,不過這個方法不推薦使用,會有意料不到的后果;
  • 3、使用interrupt方法
  • 多個客戶端一個服務器的實現方法:
  • 利用多線程技術,服務器socket負責監聽端口,設置一個無限循環,在其中實現:將監聽到的socket實例賦值 給線程并且啟動線程,由線程來完成業務邏輯;
  • ?

  • 進程與線程的區別?
  • ?

    答:程序的一次執行就可以看作是一個進程。進程中又包含了許多的線程,進程之間的內存不可以共享,線程之間共享進程的內存。

  • 創建多線程的方式?
  • 一、繼承Thread類創建線程類

    1)定義Thread類的子類,并重寫該類的run方法,該run方法的方法體就代表了線程要完成的任務。因此把run()方法稱為執行體。

    2)創建Thread子類的實例,即創建了線程對象。

    3)調用線程對象的start()方法來啟動該線程。

    二、通過Runnable接口創建線程類

    1)定義runnable接口的實現類,并重寫該接口的run()方法,該run()方法的方法體同樣是該線程的線程執行體。

    2)創建 Runnable實現類的實例,并依此實例作為Threadtarget來創建Thread對象,該Thread對象才是真正的線程對象。

    3)調用線程對象的start()方法來啟動該線程。

    三、通過CallableFuture創建線程

    1)創建Callable接口的實現類,并實現call()方法,該call()方法將作為線程執行體,并且有返回值。

    2)創建Callable實現類的實例,使用FutureTask類來包裝Callable對象,該FutureTask對象封裝了該Callable對象的call()方法的返回值。

    3)使用FutureTask對象作為Thread對象的target創建并啟動新線程。

    4)調用FutureTask對象的get()方法來獲得子線程執行結束后的返回值

    二、創建線程的三種方式的對比

    采用實現RunnableCallable接口的方式創見多線程時,優勢是:

    線程類只是實現了Runnable接口或Callable接口,還可以繼承其他類

    在這種方式下,多個線程可以共享同一個target對象,所以非常適合多個相同線程來處理同一份資源的情況,從而可以將CPU、代碼和數據分開,形成清晰的模型,較好地體現了面向對象的思想。

    劣勢是

    編程稍微復雜,如果要訪問當前線程,則必須使用Thread.currentThread()方法。

    使用繼承Thread類的方式創建多線程時優勢是

    編寫簡單,如果需要訪問當前線程,則無需使用Thread.currentThread()方法,直接使用this即可獲得當前線程。

    劣勢是

    線程類已經繼承了Thread類,所以不能再繼承其他父類。

    ?

  • 悲觀鎖與樂觀鎖的區別?
  • 答:樂觀鎖適用于多讀的應用類型,這樣可以提高吞吐量,像數據庫如果提供類似于write_condition機智的其實都是提供的樂觀鎖。 相反,如果經常發生沖突,上層應用會不斷進行 retry,這樣反而降低了性能,所以這種情況下用悲觀鎖比較合適

  • 請說出常見的線程方法以及作用?比如sleep()是用來使當前線程暫停的等。
  • 1.start() 啟動線程并執行相應的run()方法 ---run() 子線程要執行的代碼放入run()方法。

    2.getName() 獲取此線程的名字?setName() 設置

    此線程的名字。

    3.join() 執行調用join()方法線程),阻斷其他線程。

    4.sleep(毫秒)休眠。

    ?

    線程安全的理解?

    答 :線程安全就是多線程訪問時,采用了加鎖機制,當一個線程訪問該類的某個數據時,進行保護,其他線程不能進行訪問直到該線程讀取完,其他線程才可使用

  • sleep()方法與wait()方法的區別?
  • 答:對于sleep()方法,我們首先要知道該方法是屬于Thread類中的。而wait()方法,則是屬于Object類中的。

    sleep()方法導致了程序暫停執行指定的時間,讓出cpu該其他線程,但是他的監控狀態依然保持者,當指定的時間到了又會自動恢復運行狀態。

    在調用sleep()方法的過程中,線程不會釋放對象鎖。

    而當調用wait()方法的時候,線程會放棄對象鎖,進入等待此對象的等待鎖定池,只有針對此對象調用notify()方法后本線程才進入對象鎖定池準備

    ?

  • 你所理解的程序優先級是怎么樣的?
  • 3.集合面試問題(HashMap居多,問的也有上機也有

  • HashMap和HashTable的區別?
  • ??1、繼承的父類不同

    ? ? ??Hashtable繼承自Dictionary類,而HashMap繼承自AbstractMap類。但二者都實現了Map接口。

    ?2、線程安全性不同

    ? ? ??javadoc中關于hashmap的一段描述如下:此實現不是同步的。如果多個線程同時訪問一個哈希映射,而其中至少一個線程從結構上修改了該映射,則它必須保持外部同步。

    ?

    ? ? ??Hashtable 中的方法是Synchronize的,而HashMap中的方法在缺省情況下是非Synchronize的。在多線程并發的環境下,可以直接使用Hashtable,不需要自己為它的方法實現同步,但使用HashMap時就必須要自己增加同步處理。(結構上的修改是指添加或刪除一個或多個映射關系的任何操作;僅改變與實例已經包含的鍵關聯的值不是結構上的修改。)這一般通過對自然封裝該映射的對象進行同步操作來完成。如果不存在這樣的對象,則應該使用?Collections.synchronizedMap?方法來包裝該映射。最好在創建時完成這一操作,以防止對映射進行意外的非同步訪問,如下所示:

    ? ? ??Map m = Collections.synchronizedMap(new HashMap(...));

    ? ? ??Hashtable 線程安全很好理解,因為它每個方法中都加入了Synchronize。這里我們分析一下HashMap為什么是線程不安全的:

    ?

    ? ? ??HashMap底層是一個Entry數組,當發生hash沖突的時候,hashmap是采用鏈表的方式來解決的,在對應的數組位置存放鏈表的頭結點。對鏈表而言,新加入的節點會從頭結點加入。

    我們來分析一下多線程訪問:

    ?

    ? ? ??1)在hashmapput操作的時候會調用下面方法:

    ?

    [java]?view plain?copy

    ?

  • //?新增Entry。將“key-value”插入指定位置,bucketIndex是位置索引。??????
  • ????void?addEntry(int?hash,?K?key,?V?value,?int?bucketIndex)?{??????
  • ????????//?保存“bucketIndex”位置的值到“e”??????
  • ????????Entry<K,V>?e?=?table[bucketIndex];??????
  • ????????//?設置“bucketIndex”位置的元素為Entry”??????
  • ????????//?設置“e”Entry的下一個節點”??????
  • ????????table[bucketIndex]?=?new?Entry<K,V>(hash,?key,?value,?e);??????
  • ????????//?HashMap的實際大小?不小于?“閾值,則調整HashMap的大小??????
  • ????????if?(size++?>=?threshold)??????
  • ????????????resize(2?*?table.length);??????
  • ????}??
  • ?

    ? ? ??hashmapput操作的時候會調用到以上的方法。現在假如A線程和B線程同時對同一個數組位置調用addEntry,兩個線程會同時得到現在的頭結點,然后A寫入新的頭結點之后,B也寫入新的頭結點,那B的寫入操作就會覆蓋A的寫入操作造成A的寫入操作丟失

    ? ? ??2)刪除鍵值對的代碼

    ?

    [java]?view plain?copy

    ?

  • <span?style="font-size:?18px;">??????</span>//?刪除鍵為key”的元素??????
  • ????final?Entry<K,V>?removeEntryForKey(Object?key)?{??????
  • ????????//?獲取哈希值。若keynull,則哈希值為0;否則調用hash()進行計算??????
  • ????????int?hash?=?(key?==?null)???0?:?hash(key.hashCode());??????
  • ????????int?i?=?indexFor(hash,?table.length);??????
  • ????????Entry<K,V>?prev?=?table[i];??????
  • ????????Entry<K,V>?e?=?prev;??????
  • ?????
  • ????????//?刪除鏈表中鍵為key”的元素??????
  • ????????//?本質是刪除單向鏈表中的節點”??????
  • ????????while?(e?!=?null)?{??????
  • ????????????Entry<K,V>?next?=?e.next;??????
  • ????????????Object?k;??????
  • ????????????if?(e.hash?==?hash?&&??????
  • ????????????????((k?=?e.key)?==?key?||?(key?!=?null?&&?key.equals(k))))?{??????
  • ????????????????modCount++;??????
  • ????????????????size--;??????
  • ????????????????if?(prev?==?e)??????
  • ????????????????????table[i]?=?next;??????
  • ????????????????else?????
  • ????????????????????prev.next?=?next;??????
  • ????????????????e.recordRemoval(this);??????
  • ????????????????return?e;??????
  • ????????????}??????
  • ????????????prev?=?e;??????
  • ????????????e?=?next;??????
  • ????????}??????
  • ?????
  • ????????return?e;??????
  • ????}??
  • ?

    ? ? ??當多個線程同時操作同一個數組位置的時候,也都會先取得現在狀態下該位置存儲的頭結點,然后各自去進行計算操作,之后再把結果寫會到該數組位置去,其實寫回的時候可能其他的線程已經就把這個位置給修改過了,就會覆蓋其他線程的修改

    ? ? ??3addEntry中當加入新的鍵值對后鍵值對總數量超過門限值的時候會調用一個resize操作,代碼如下:

    [java]?view plain?copy

    ?

  • //?重新調整HashMap的大小,newCapacity是調整后的容量??????
  • ????void?resize(int?newCapacity)?{??????
  • ????????Entry[]?oldTable?=?table;??????
  • ????????int?oldCapacity?=?oldTable.length;?????
  • ????????//如果就容量已經達到了最大值,則不能再擴容,直接返回????
  • ????????if?(oldCapacity?==?MAXIMUM_CAPACITY)?{??????
  • ????????????threshold?=?Integer.MAX_VALUE;??????
  • ????????????return;??????
  • ????????}??????
  • ?????
  • ????????//?新建一個HashMap,將HashMap”的全部元素添加到HashMap”中,??????
  • ????????//?然后,將HashMap”賦值給HashMap”??????
  • ????????Entry[]?newTable?=?new?Entry[newCapacity];??????
  • ????????transfer(newTable);??????
  • ????????table?=?newTable;??????
  • ????????threshold?=?(int)(newCapacity?*?loadFactor);??????
  • ????}??
  • ? ? ??這個操作會新生成一個新的容量的數組,然后對原數組的所有鍵值對重新進行計算和寫入新的數組,之后指向新生成的數組。

    ?

    ? ? ??當多個線程同時檢測到總數量超過門限值的時候就會同時調用resize操作,各自生成新的數組并rehash后賦給該map底層的數組table,結果最終只有最后一個線程生成的新數組被賦給table變量,其他線程的均會丟失。而且當某些線程已經完成賦值而其他線程剛開始的時候,就會用已經被賦值的table作為原始數組,這樣也會有問題。

    ? ? ??3、是否提供contains方法

    ?

    ? ? ??HashMapHashtablecontains方法去掉了,改成containsValuecontainsKey,因為contains方法容易讓人引起誤解。

    ? ? ??Hashtable則保留了containscontainsValuecontainsKey三個方法,其中containscontainsValue功能相同。

    我們看一下HashtableContainsKey方法和ContainsValue的源碼:

    [java]?view plain?copy

    ?

  • public?boolean?containsValue(Object?value)?{??????
  • ?????return?contains(value);??????
  • ?}??
  • ?

    [java]?view plain?copy

    ?

  • //?判斷Hashtable是否包含(value)”??????
  • ?public?synchronized?boolean?contains(Object?value)?{??????
  • ?????//注意,Hashtable中的value不能是null??????
  • ?????//?若是null的話,拋出異常!??????
  • ?????if?(value?==?null)?{??????
  • ?????????throw?new?NullPointerException();??????
  • ?????}??????
  • ????
  • ?????//?從后向前遍歷table數組中的元素(Entry)??????
  • ?????//?對于每個Entry(單向鏈表),逐個遍歷,判斷節點的值是否等于value??????
  • ?????Entry?tab[]?=?table;??????
  • ?????for?(int?i?=?tab.length?;?i--?>?0?;)?{??????
  • ?????????for?(Entry<K,V>?e?=?tab[i]?;?e?!=?null?;?e?=?e.next)?{??????
  • ?????????????if?(e.value.equals(value))?{??????
  • ?????????????????return?true;??????
  • ?????????????}??????
  • ?????????}??????
  • ?????}??????
  • ?????return?false;??????
  • ?}??
  • ?

    [java]?view plain?copy

    ?

  • //?判斷Hashtable是否包含key??????
  • ?public?synchronized?boolean?containsKey(Object?key)?{??????
  • ?????Entry?tab[]?=?table;??????
  • /計算hash值,直接用keyhashCode代替????
  • ?????int?hash?=?key.hashCode();????????
  • ?????//?計算在數組中的索引值?????
  • ?????int?index?=?(hash?&?0x7FFFFFFF)?%?tab.length;??????
  • ?????//?找到“key對應的Entry(鏈表)”,然后在鏈表中找出哈希值鍵值key都相等的元素??????
  • ?????for?(Entry<K,V>?e?=?tab[index]?;?e?!=?null?;?e?=?e.next)?{??????
  • ?????????if?((e.hash?==?hash)?&&?e.key.equals(key))?{??????
  • ?????????????return?true;??????
  • ?????????}??????
  • ?????}??????
  • ?????return?false;??????
  • ?}??
  • ? ? ??下面我們看一下HashMapContainsKey方法和ContainsValue的源碼:

    [java]?view plain?copy

    ?

  • //?HashMap是否包含key??????
  • ????public?boolean?containsKey(Object?key)?{??????
  • ????????return?getEntry(key)?!=?null;??????
  • ????}??
  • ?

    [java]?view plain?copy

    ?

  • //?返回鍵為key”的鍵值對??????
  • ????final?Entry<K,V>?getEntry(Object?key)?{??????
  • ????????//?獲取哈希值??????
  • ????????//?HashMap“keynull”的元素存儲在table[0]位置,“key不為null”的則調用hash()計算哈希值??????
  • ????????int?hash?=?(key?==?null)???0?:?hash(key.hashCode());??????
  • ????????//?hash值對應的鏈表上查找鍵值等于key”的元素??????
  • ????????for?(Entry<K,V>?e?=?table[indexFor(hash,?table.length)];??????
  • ?????????????e?!=?null;??????
  • ?????????????e?=?e.next)?{??????
  • ????????????Object?k;??????
  • ????????????if?(e.hash?==?hash?&&??????
  • ????????????????((k?=?e.key)?==?key?||?(key?!=?null?&&?key.equals(k))))??????
  • ????????????????return?e;??????
  • ????????}??????
  • ????????return?null;??????
  • ????}??
  • ?

    [java]?view plain?copy

    ?

  • //?是否包含值為value”的元素??????
  • ????public?boolean?containsValue(Object?value)?{??????
  • ????//?“valuenull”,則調用containsNullValue()查找??????
  • ????if?(value?==?null)??????
  • ????????????return?containsNullValue();??????
  • ?????
  • ????//?“value不為null”,則查找HashMap中是否有值為value的節點。??????
  • ????Entry[]?tab?=?table;??????
  • ????????for?(int?i?=?0;?i?<?tab.length?;?i++)??????
  • ????????????for?(Entry?e?=?tab[i]?;?e?!=?null?;?e?=?e.next)??????
  • ????????????????if?(value.equals(e.value))??????
  • ????????????????????return?true;??????
  • ????return?false;??????
  • ????}??
  • 通過上面源碼的比較,我們可以得到第四個不同的地方

    ?

    ? ? ??4keyvalue是否允許null

    ? ? ??其中keyvalue都是對象,并且不能包含重復key,但可以包含重復的value

    ? ? ??通過上面的ContainsKey方法和ContainsValue的源碼我們可以很明顯的看出:

    ? ? ??Hashtable中,keyvalue都不允許出現null。但是如果在Hashtable中有類似put(null,null)的操作,編譯同樣可以通過,因為keyvalue都是Object類型,但運行時會拋出NullPointerException異常,這是JDK的規范規定的。
    HashMap中,null可以作為鍵這樣的鍵只有一個;可以有一個或多個鍵所對應的值為null。當get()方法返回null值時,可能是 HashMap中沒有該鍵,也可能使該鍵所對應的值為null。因此,在HashMap中不能由get()方法來判斷HashMap中是否存在某個鍵, 而應該用containsKey()方法來判斷。
    ?

    ? ? ??5、兩個遍歷方式的內部實現上不同

    ? ? ??HashtableHashMap都使用了 Iterator。而由于歷史原因,Hashtable還使用了Enumeration的方式

    6hash值不同

    ? ? ??哈希值的使用不同,HashTable直接使用對象的hashCode。而HashMap重新計算hash值。

    ? ? ??hashCodejdk根據對象的地址或者字符串或者數字算出來的int類型的數值。

    ? ? ??Hashtable計算hash值,直接用keyhashCode(),而HashMap重新計算了keyhash值,Hashtable在求hash值對應的位置索引時,用取模運算,而HashMap在求位置索引時,則用與運算,且這里一般先用hash&0x7FFFFFFF后,再對length取模,&0x7FFFFFFF的目的是為了將負的hash值轉化為正值,因為hash值有可能為負數,而&0x7FFFFFFF后,只有符號外改變,而后面的位都不變。

    7、內部實現使用的數組初始化和擴容方式不同

    HashTable在不指定容量的情況下的默認容量為11,而HashMap16Hashtable不要求底層數組的容量一定要為2的整數次冪,而HashMap則要求一定為2的整數次冪。
    ? ? ??Hashtable擴容時,將容量變為原來的2倍加1,而HashMap擴容時,將容量變為原來的2倍。

    ? ? ??HashtableHashMap它們兩個內部實現方式的數組的初始大小和擴容的方式。HashTablehash數組默認大小是11,增加的方式是 old*2+1

    注解詳細:https://blog.csdn.net/wangxing233/article/details/79452946

  • HashMap的數據結構?
  • 答:底層數組+鏈表實現。

  • HashMap的擴容問題?(這個應該不常問)
  • 答:初始size為16,擴容:newsize = oldsize*2,size一定為2的n次冪

    擴容針對整個Map,每次擴容時,原來數組中的元素依次重新計算存放位置,并重新插入。

    插入元素后才判斷該不該擴容,有可能無效擴容(插入后如果擴容,如果沒有再次插入,就會產生無效擴容)

    當Map中元素總數超過Entry數組的75%,觸發擴容操作,為了減少鏈表長度,元素分配更均勻。

    ?

  • 如何解決HashMap鍵重復的問題?
  • 答:對于HashMap而言,key是唯一的,不可以重復的。?所以,以相同的key 把不同的value插入到 Map中會導致舊元素被覆蓋,只留下最后插入的元素。?? 不過,同一個對象可以作為值插入到map中,只要對應的key不一樣。

  • ArrayList與LinkList的區別?
  • ArrayList和Vector使用了數組的實現,可以認為ArrayList或者Vector封裝了對內部數組的操作,比如向數組中添加,刪除,插入新的元素或者數據的擴展和重定向。

    LinkedList使用了循環雙向鏈表數據結構。與基于數組ArrayList相比,這是兩種截然不同的實現技術,這也決定了它們將適用于完全不同的工作場景。

    詳細:https://www.cnblogs.com/wwwcnblogscom/p/8036411.html

  • 其他集合也要看看(list和set)
  • 7.arrayListvector的區別

    1. Vector & ArrayList?
    1? Vector的方法都是同步的(Synchronized),是線程安全的(thread-safe),而ArrayList的方法不是,由于線程的同步必然要影響性能,因此,ArrayList的性能比Vector好。?
    2
    VectorArrayList中的元素超過它的初始大小時,Vector會將它的容量翻倍,ArrayList只增加50%的大小,這樣,ArrayList就有利于節約內存空間。

    2. Hashtable & HashMap?
    HashtableHashMap它們的性能方面的比較類似 VectorArrayList,比如Hashtable的方法是同步的,HashMap的不是。
    3. ArrayList & LinkedList

    ArrayList的內部實現是基于內部數組Object[],所以從概念上講,它更象數組,但LinkedList的內部實現是基于一組連接的記錄,所以,它更象一個鏈表結構,所以,它們在性能上有很大的差別:?
    ??????
    從上面的分析可知,ArrayList的前面或中間插入數據時,你必須將其后的所有數據相應的后移,這樣必然要花費較多時間,所以,當你的操作是在一列 數據的后面添加數據而不是在前面或中間,并且需要隨機地訪問其中的元素時,使用ArrayList會提供比較好的性能; 而訪問鏈表中的某個元素時,就必須從鏈表的一端開始沿著連接方向一個一個元素地去查找,直到找到所需的元素為止,所以,當你的操作是在一列數據的前面或中 間添加或刪除數據,并且按照順序訪問其中的元素時,就應該使用LinkedList了。?
    ?

    如果在編程中,12兩種情形交替出現,這時,你可以考慮使用List這樣的通用接口,而不用關心具體的實現,在具體的情形下,它的性能由具體的實現來保證。
    4. 配置集合類的初始大小?
    ???
    Java集合框架中的大部分類的大小是可以隨著元素個數的增加而相應的增加的,我們似乎不用關心它的初始大小,但如果我們考慮類的性能問題時,就一定要考慮盡可能地設置好集合對象的初始大小,這將大大提高代碼的性能。?
    ???
    比如,Hashtable缺省的初始大小為101,載入因子為0.75,即如果其中的元素個數超過75,它就必須增加大小并重新組織元素,所以,如果你 知道在創建一個新的Hashtable對象時就知道元素的確切數目如為110,那么,就應將其初始大小設為110/0.75=148,這樣,就可以避免重 新組織內存并增加大小。

    4.其他面試問題(可能會有上機題需要手寫的)

  • 手寫單例模式(安全的或不安全的,多數寫安全的
  • //不安全的單例模式

  • public?class?Singleton {
  • ????private?static?Singleton singleton = null;
  • ????private?Singleton(){}
  • ????public?static?Singleton getSingleton() {
  • ????????if(singleton == null) singleton = new?Singleton();
  • ????????return?singleton;
  • ????}
  • }
  • //安全的單例模式

    public?class?Singleton {

    ????private?static?volatile?Singleton singleton = null;

    ??

    ????private?Singleton(){}

    ??

    ????public?static?Singleton getSingleton(){

    ????????synchronized?(Singleton.class){

    ????????????if(singleton == null){

    ????????????????singleton = new?Singleton();

    ????????????}

    ????????}

    ????????return?singleton;

    ????}???

    }

    詳細:https://www.cnblogs.com/shan1393/p/8992288.html

    ?

    5.手寫冒泡排序 選擇排序? Arrays工具類排序:

    package com.bdqn.test;

    ?

    import java.util.Arrays;

    import java.util.Comparator;

    ?

    public class SelectSortTest {

    ?? public static void main(String[] args) {

    ????? //定義一個選擇排序的方法

    ????? int[] arr= {2,-1,3,4,-9,2,3,5,8};

    ????? Integer[] arrInteger= {2,-1,3,4,-9,2,3,5,8};

    ????? System.out.println("選擇排序:");

    ????? selectSort(arr);

    ????? System.out.println("冒泡排序:");

    ????? puppleSort(arr);

    ????? System.out.println("使用Arrays工具類排排序:");

    ????? arraysSort(arrInteger);

    ?? }

    ?? private static void selectSort(int[] arr) {

    ????????? for(int i=0;i<arr.length-1;i++) {

    ???????????? for(int j=i+1;j<arr.length;j++) {

    ??????????????? if(arr[i]>arr[j]) {

    ?????????????????? int temp=arr[i];

    ?????????????????? arr[i]=arr[j];

    ?????????????????? arr[j]=temp;

    ??????????????? }

    ???????????? }

    ????????? }

    ????????? //輸出排序后的集合

    ????????? System.out.println(Arrays.toString(arr));

    ?? }

    ?? private static void puppleSort(int[] arr) {

    ????? for(int i=0;i<arr.length-1;i++) {

    ????????? for(int j=0;j<arr.length-1-i;j++) {

    ???????????? if(arr[j]>arr[j+1]) {

    ??????????????? int temp=arr[j];

    ??????????????? arr[j]=arr[j+1];

    ??????????????? arr[j+1]=temp;?

    ???????????? }

    ????????? }

    ????? }

    ????? //輸出冒泡排序后的集合

    ????? System.out.println(Arrays.toString(arr));

    ?? }

    ?? //使用Arrays類實現排序

    ?? public static void arraysSort(Integer[] arr) {

    ????? Arrays.sort(arr,new Comparator<Integer>() {

    ????????? @Override

    ????????? public int compare(Integer o1, Integer o2) {

    ???????????? return o1-o2;

    ????????? }

    ????? });

    ????? System.out.println(Arrays.toString(arr));

    ?? }

    }?

    ?

  • 抽象類與接口的區別?
  • 答:1.抽象類中可以有一個或多個抽象方法,而接口中的方法必須都是抽象方法

    2.接口中定義方法和成員變量和抽象類中定義方法和成員變量接口中成員變量默認被修飾為public static final常量

    3. 接口最大的一個特點就是可以實現多繼承,而抽象類智能繼承一個(應該說java中只要是類就只能單繼承)

    4. 4.抽象類和方法必須使用abstract關鍵聲明為抽象,而接口中的方法默認被修飾為public abstract類型(默認為公開抽象的方法)

    詳細:https://baijiahao.baidu.com/s?id=1568702144789321&wfr=spider&for=pc

  • Java面向對象的特征(繼承與多態居多)?你是怎么理解的?
  • 答:1.封裝、繼承、多態

    理解:

    封裝把一類對象,相似的屬性匯總到一起,組成一類,這個類把該隱藏的隱藏,該暴露的暴露。

    繼承:涉及到父子類的關系,自然可以得到父類的特征,相對是父類的擴展,達到代碼重用的效果。

    例如:Java中用extends關鍵字,實現繼承類被稱為子類,被繼承類被稱為父類。例如:水果和蘋果的關系,蘋果繼承了水果,蘋果是水果的子類,水果是蘋果的父類。

    詳細:https://blog.csdn.net/kisscatforever/article/details/79721937

  • String、StringBuffer和StringBuilder的區別?
  • 首先說運行速度,執行速度,在這方面運行速度快慢為:StringBuilder > StringBuffer > String
  • ?
  • String最慢的原因:

    String為字符串常量,而StringBuilderStringBuffer均為字符串變量,即String對象一旦創建之后該對象是不可更改的,但后兩者的對象是變量,是可以更改的。

    2. 再來說線程安全

      在線程安全上,StringBuilder是線程不安全的,而StringBuffer是線程安全的

      如果一個StringBuffer對象在字符串緩沖區被多個線程使用時,StringBuffer中很多方法可以帶有synchronized關鍵字,所以可以保證線程是安全的,但StringBuilder的方法則沒有該關鍵字,所以不能保證線程安全,有可能會出現一些錯誤的操作。所以如果要進行的操作是多線程的,那么就要使用StringBuffer,但是在單線程的情況下,還是建議使用速度比較快的StringBuilder

    ?總結一下
      String:適用于少量的字符串操作的情況

      StringBuilder:適用于單線程下在字符緩沖區進行大量操作的情況

      StringBuffer:適用多線程下在字符緩沖區進行大量操作的情況

    ?? 詳細:https://www.cnblogs.com/su-feng/p/6659064.html

  • 數據庫SQL語句的編寫能力(自己多練練)
  • :insert [into] <表名> (列名) values (列值)
  • 例:insert into Strdents (姓名,性別,出生日期) values ('開心朋朋','','1980/6/15')

  • delete from <表名> [where <刪除條件>]
  • ?delete from a where name='開心朋朋'(刪除表a中列值為開心朋朋的行)

  • update <表名> set <列名=更新值> [where <更新條件>]
    例:update tongxunlu set 年齡=18 where 姓名='藍色小名'
  • select <列名> from <表名> [where <查詢條件表達試>] [order by <排序的列名>[ascdesc]] 升序? 倒序
  • 詳細https://www.cnblogs.com/daxueshan/p/6687521.html

  • 數據庫中有哪些函數?比如COUNT(),ORDER BY 的作用啊,放在SQL語句中的哪個位置等。
  • 1.去重 DISTINCT?

  • ASCII:返回與指定的字符對應的十進制數
  • CHR:給出整數,返回對應的字符
  • CONCAT:連接兩個字符串
  • INITCAP:返回字符串并將字符串的第一個字母變為大寫
  • INSTR(C1,C2,I,J):在一個字符串中搜索指定的字符,返回發現指定的字符的位置
  • LENGTH:返回字符串的長度
  • LOWER:大寫
  • UPPER:小寫
  • TRIM(文字列 )? 文字列去空格
  • LTRIM(文字列 ) 文字列左側去空格
  • RTRIM(文字列 ) 文字列右側去空格
  • SOUNDEX:返回一個與給定的字符串讀音相同的字符串
  • ABS:返回指定值的絕對值
  • ACOS:給出反正弦的值
  • ATAN:返回一個數字的反正切值
  • CEIL:返回大于或等于給出數字的最小整數
  • COS:返回一個給定數字的余弦
  • COSH:返回一個數字反余弦值
  • EXP:返回一個數字e的n次方根
  • FLOOR:對給定的數字取整數
  • LN:返回一個數字的對數值
  • LOG(n1,n2):返回一個以n1為底n2的對數
  • MOD(n1,n2):返回一個n1除以n2的余數
  • POWER:返回n1的n2次方根
  • ROUND:四舍五入
  • SIGN:取數字n的符號,大于0返回1,小于0返回-1,等于0返回0
  • SIN:返回一個數字的正弦值
  • SIGH:返回雙曲正弦的值
  • SQRT:返回數字n的根
  • TAN:回數字的正切值
  • TANH:返回數字n的雙曲正切值
  • ADD_MONTHS:增加或減去月份
  • LAST_DAY:返回日期的最后一天
  • MONTHS_BETWEEN(date2,date1):給出date2-date1的月份
  • NEW_TIME(date,'this','that'):給出在this時區=other時區的日期和時間
  • NEXT_DAY(date,'day'):給出日期date和星期x之后計算下一個星期的日期
  • CHARTOROWID:將字符數據類型轉換為ROWID類型
  • CONVERT:將一種數據類型轉換為另一種數據類型
  • HEXTORAW:將一個十六進制構成的字符串轉換為二進制
  • RAWTOHEXT:將一個二進制構成的字符串轉換為十六進制
  • ROWIDTOCHAR:將ROWID數據類型轉換為字符類型
  • TO_CHAR(date,'format')
  • TO_DATE(string,'format'):將字符串轉化為ORACLE中的一個日期
  • TO_MULTI_BYTE:將字符串中的單字節字符轉化為多字節字符
  • TO_NUMBER:將給出的字符轉換為數字
  • CONVERT('x','desc','source'):將x字段或變量的源source轉換為desc
  • DUMP(s,fmt,start,length):DUMP函數以fmt指定的內部數字格式返回一個VARCHAR2類型的值
  • GREATEST:返回一組表達式中的最大值,即比較字符的編碼大小
  • LEAST:返回一組表達式中的最小值
  • UID:返回標識當前用戶的唯一整數
  • USER:返回當前用戶的名字
  • USEREVN:返回當前用戶環境的信息
  • AVG(DISTINCT|ALL):all表示對所有的值求平均值,distinct只對不同的值求平均值
  • .MAX(DISTINCT|ALL):求最大值,ALL表示對所有的值求最大值,DISTINCT表示對不同的值求最大值,相同的只取一次
  • MIN(DISTINCT|ALL):求最小值,ALL表示對所有的值求最小值,DISTINCT表示對不同的值求最小值,相同的只取一次
  • STDDEV(distinct|all):求標準差,ALL表示對所有的值求標準差,DISTINCT表示只對不同的值求標準差
  • GROUP BY:主要用來對一組數進行統計
  • HAVING:對分組統計再加限制條件
  • ORDER BY:用于對查詢到的結果進行排序輸出
  • 兩個不同的項目是如何進行通信的?
  • 不同項目之間的通信方式分為,http、socket、webservice;其中socket通信的效率最高,youtube就采用的是原始的socket通信,他們信奉的原則是簡單有效。

    一、http通信:

    ????Http通信主要有兩種方式POST方式和GET方式。前者通過Http消息實體發送數據給服務器,安全性高,數據傳輸大小沒有限制,后者通過URL的查詢字符串傳遞給服務器參數,以明文顯示在瀏覽器地址欄,保密性差,最多傳輸2048個字符。但是GET請求并不是一無是處——GET請求大多用于查詢(讀取資源),效率高。POST請求用于注冊、登錄等安全性較高且向數據庫中寫入數據的操作。除了POST和GET,http通信還有其他方式!請參見http請求的方法

    二、webservice

    應用場景:跨防火墻的通信、應用程序集成、B2B的集成、軟件和數據重用

    三、socket

    socket“open—write/read—close”模式的一種實現

    java socket通信已經被封裝好了主要使用兩個類ServerSocket Socket

    詳細:https://blog.csdn.net/sunshine_silence/article/details/78771198

  • 你從上家公司離職的原因?
  • 說說你在上家公司做的最有難度和最有挑戰的功能模塊?
  • ?

    框架面試問題(簡歷上有寫的就會問到,沒寫的他們公司要求用到的也可能會問)

    5.Spring面試問題

  • Spring框架的兩大核心?
  • Spring的三大核心思想:IOC(控制反轉),DI(依賴注入),AOP(面向切面編程)。

    ?

    (1)IOC(控制反轉)

    實現將組件間的關系從程序內部提到外部容器(spring的xml)來管理首先外部容器(spring.xml)中會動態的注冊業務所需的對象(接口/類)

    2)DI(依賴注入)

    組件之間的依賴關系由容器在應用系統運行期來決定, 也就是由容器動態地將某種依賴關系的目標對象實例注入到應用系統中的各個關聯的組件之中

    (3)?AOP(面向切面編程)?

    ??利用一種稱為"橫切"的技術,剖解開封裝的對象內部,并將那些影響了多個類的公共行為封裝到一個可重用模塊,并將其命名為"Aspect",即切面。所謂"切面",簡單說就是那些與業務無關,卻為業務模塊所共同調用的邏輯或責任封裝起來,便于減少系統的重復代碼,降低模塊之間的耦合度,并有利于未來的可操作性和可維護性。

    詳細https://blog.csdn.net/u010688011/article/details/79431778

  • Spring框架的原理?
  • 就是讓對象與對象(模塊與模塊)之間的關系沒有通過代碼來關聯,都是通過配置類說明管理的(Spring根據這些配置 內部通過反射去動態的組裝對象)?

    ?

    詳細:https://www.cnblogs.com/zhoudi/p/5820513.html?

  • 說一下SSM或SSH三大框架的整合思路?
  • struts2 與 Spring整合要解決的核心問題是,如何在action中獲得被spring管理的service
  • 解決思路:
  • ??1: 想辦法讓action具有 自動注入的功能;

    ??2: 讓action納入spring管理;

    ? ?????spring與hibernate整合兩種方式:

    1. 零障礙整合;

    2. Spring管理hibernate配置;

    ?1.零障礙整合:

    ?在spring的配置文件applicationContext.xml中配置bean: 并引入hibernate的核心配置文件;

    2.spring管理hibernate配置:將hibernate的核心配置文件 hibernate.cfg.xml中的內容遷移到 applicationContext.xml中;

    SSM:

    1、dao層

      1.1、必須數據:

           pojo(java實體)、mapper接口(dao接口)、sql映射文件(翻譯為jdbc中的statement)

      1.2、配置文件:

       mybatis核心配置文件:SqlMapConfig.xml

    自定義別名

      spring整合mybatis配置文件:applicationContext-dao.xml

             數據源

             會化工廠

             mapper掃描(加載dao)

           其他配置:

             數據庫信息:db.properties

             日志信息:log4j.properties

    2、service層

      2.1、配置文件:

           注解掃描:@service(加載service)applicationContext-service.xml

           事務配置: ApplicationContext-trans.xml

    3、controller層

      3.1、配置文件: springMVC.xml

           注解掃描:@controller(加載controller)

           注解驅動:自動加載最新的處理器映射器、處理器適配器

           視圖解析器:

           自定義類型轉化器:(掛載于注解驅動)

           文件上傳解析器:

           json格式數據解析器:(若沒有配置注解驅動,則需要顯示的在處理器適配器掛載)

           全局異常處理器:

           自定義攔截器:

           靜態資源放行:

           

    4、web.xml web.xml

      4.1、spring監聽器

      4.2、springMVC前端控制器

      4.3、post中文亂碼請求

    原文:https://blog.csdn.net/u010758410/article/details/80145521

  • Spring框架中AOP的實現原理是什么?
  • 4.1先以靜態代理實現,靜態代理關鍵是在代理對象和目標對象實現共同的接口,并且代理對象持有目標對象的引用。

    4.2:動態代理實現主要是實現InvocationHandler,并且將目標對象注入到代理對象中,利用反射機制來執行目標對象的方法。

    6.SpingMVC面試問題

  • SpringMVC框架與Struts2框架的區別?
  • ?一、框架機制

    spring mvc 和 struts2的加載機制不同:spring mvc的入口是servlet,而struts2是filter(servlet和filter區別見本文最后)

    1、Struts2采用Filter(StrutsPrepareAndExecuteFilter)實現,SpringMVC(DispatcherServlet)則采用Servlet實現。

    2、Filter在容器啟動之后即初始化;服務停止以后墜毀,晚于Servlet。Servlet在是在調用時初始化,先于Filter調用,服務停止后銷毀。

    二、攔截機制

    1、Struts2

    a、Struts2框架是類級別的攔截,每次請求就會創建一個Action,和Spring整合時Struts2的ActionBean注入作用域是原型模式prototype(否則會出現線程并發問題),然后通過setter,getter吧request數據注入到屬性。
    b、Struts2中,一個Action對應一個request,response上下文,在接收參數時,可以通過屬性接收,這說明屬性參數是讓多個方法共享的。
    c、Struts2中Action的一個方法可以對應一個url,而其類屬性卻被所有方法共享,這也就無法用注解或其他方式標識其所屬方法了
    ?
    2、SpringMVC
    a、SpringMVC是方法級別的攔截,一個方法對應一個Request上下文,所以方法直接基本上是獨立的,獨享request,response數據。而每個方法同時又何一個url對應,參數的傳遞是直接注入到方法中的,是方法所獨有的。處理結果通過ModeMap返回給框架。
    b、在Spring整合時,SpringMVC的Controller Bean默認單例模式Singleton,所以默認對所有的請求,只會創建一個Controller,有應為沒有共享的屬性,所以是線程安全的,如果要改變默認的作用域,需要添加@Scope注解修改。

    三、性能方面
    SpringMVC實現了零配置,由于SpringMVC基于方法的攔截,有加載一次單例模式bean注入。而Struts2是類級別的攔截,每次請求對應實例一個新的Action,需要加載所有的屬性值注入,所以,SpringMVC開發效率和性能高于Struts2。
    四、攔截機制
    Struts2有自己的攔截Interceptor機制,SpringMVC這是用的是獨立的Aop方式,這樣導致Struts2的配置文件量還是比SpringMVC大。
    五、配置方面
    spring MVC和Spring是無縫的。從這個項目的管理和安全上也比Struts2高(當然Struts2也可以通過不同的目錄結構和相關配置做到SpringMVC一樣的效果,但是需要xml配置的地方不少)。
    SpringMVC可以認為已經100%零配置。

    六、設計思想
    Struts2更加符合OOP的編程思想, SpringMVC就比較謹慎,在servlet上擴展。
    七、集成方面

    SpringMVC集成了Ajax,使用非常方便,只需一個注解@ResponseBody就可以實現,然后直接返回響應文本即可,而Struts2攔截器集成了Ajax,在Action中處理時一般必須安裝插件或者自己寫代碼集成進去,使用起來也相對不方便。

  • SpringMVC框架的特征?
  • 1.適配器? 試圖解析器? 映射器

  • 你對MVC模式的理解?
  • MVCModel—View—Controler的簡稱。即模型視圖控制器。MVC是一種設計模式,它強制性的把應用程序的輸入、處理和輸出分開。

    MVC中的模型、視圖、控制器它們分別擔負著不同的任務。

    視圖: 視圖是用戶看到并與之交互的界面。視圖向用戶顯示相關的數據,并接受用戶的輸入。視圖不進行任何業務邏輯處理。

    模型: 模型表示業務數據和業務處理。相當于JavaBean。一個模型能為多個視圖提供數據。這提高了應用程序的重用性

    控制器: 當用戶單擊Web頁面中的提交按鈕時,控制器接受請求并調用相應的模型去處理請求。

    然后根據處理的結果調用相應的視圖來顯示處理的結果。

    MVC的處理過程:首先控制器接受用戶的請求,調用相應的模型來進行業務處理,并返回數據給控制器。控制器調用相應的視圖來顯示處理的結果。并通過視圖呈現給用戶。

    詳細:https://www.cnblogs.com/Alexander11/p/5621560.html

    7.Struts2面試題

  • Struts2框架中Action分為幾種,作用是什么?
  • 1普通的POJO類,該類通常包含一個無參數的execute()方法,返回值為字符串類型。

    2實現Action接口

    3繼承ActionSupport

  • 說一下Struts2的執行流程?
  • ? 首先運行項目 所有請求被攔截器 攔截 然后交給Action 把數據返回給jsp頁面

    8.MyBatis和Hibernate

  • MyBatis框架和Hibernate框架兩者的區別?
  • 答:1:hibernate是全自動,而mybatis是半自動。

    2.Hibernate數據庫移植性遠大于mybatis

    3.hibernate擁有完整的日志系統,mybatis則欠缺些

    4.mybatis相比hibernate需要關系很多細節

    5.sql直接優化上,mybatis要比hibernate方便很多
    ? ??總結:

    Mybatis:小巧、方便、高效、簡單、直接、半自動

    Hibernate:強大、方便、高效、復雜、繞彎子、全自動

    詳細:https://blog.csdn.net/w_q_q_/article/details/79032062

  • MyBatis框架的核心對象是什么?
  • 9.Dubbo面試問題

  • dubbo是什么?
  • Dobbo是一個分布式框架,致力提供高性能和透明化的 PRC遠程服務調用方案。簡單說:,dobbo就是個服務框架,如果沒有分布式需求,其實不需要要用的,只要在分布式的時候,才有dubbo這樣的分布式服務框架的需求,并且本質是個服務調用的東東,說白了就是個遠程調用分布式框架。

    其核心部分包含:
    1. 遠程通訊: 提供對多種基于長連接的NIO框架抽象封裝,包括多種線程模型,序列化,以及“請求-響應”模式的信息交換方式。
    2. 集群容錯: 提供基于接口方法的透明遠程過程調用,包括多協議支持,以及軟負載均衡,失敗容錯,地址路由,動態配置等集群支持。
    3. 自動發現: 基于注冊中心目錄服務,使服務消費方能動態的查找服務提供方,使地址透明,使服務提供方可以平滑增加或減少機器。

    詳細:https://blog.csdn.net/houshaolin/article/details/76408399

  • dubbo默認使用的是什么通信框架?
  • 默認調用netty框架,還有mian以及基于servlet等方式。

    詳細:https://www.cnblogs.com/yang-lq/p/9168216.html

  • 服務調用是阻塞的嗎?
  • 默認是阻塞的,可以異步調用,沒有返回值的可以這么做。

  • 一般使用什么注冊中心?還有別的選擇嗎?
  • 推薦使用zookeeper注冊中心,還有MulticastRedisSimple等。

  • 服務提供者能實現失效踢出是什么原理?
  • 服務失效踢出基于zookeeper的臨時節點原理。
  • 2. zookeeper中有兩種類型的節點:

    1.持久節點(PERSISENT):一旦創建,除非主動調用刪除操作,否則一直存儲在zk上;

    2.臨時節點(EPHEMERAL):與客戶端會話綁定,一旦客戶端會話失效,這個客戶端所創建的所有臨時節點都會被移除;

    ??詳細:https://www.jianshu.com/p/f42c69e4bd3e?fromApp=1

  • 同一個服務多個注冊的情況下可以直接連某一個服務嗎?
  • 可以直連,修改配置即可,也可以通過telnet直接某個服務。

  • 集群容錯怎么做?
  • 讀操作建議使用Failover失敗自動切換,默認重試兩次其他服務器。寫操作建議使用Failfast快速失敗,發一次調用失敗就立即報錯。
  • 10.SpringBoot面試問題

  • 你了解過SpringBoot框架嗎?講講你對它的理解?
  • SpringBoot+maven? 簡化搭建以及開發過程 是一個非常好的微服務開發框架 可以快速搭建一個系統

  • 使用SpringBoot框架的好處?
  • 配置少 開發和部署效率快?

  • SpringBoot框架中的監聽器是什么?
  • 監聽器是一個專門用于對其他對象身上發生的事件或狀態改變進行監聽和相應處理的對象,當被監視的對象發生情況時,立即采取相應的行動。
  • 此處我們以ServletRequestListener來舉例,先說明一下,ServletRequestListener是一個接口,這個接口是用來監聽請求的,里面有兩個方法,分別是請求創建和請求銷毀。
  • 詳細:https://blog.csdn.net/m0_38075425/article/details/81164501

    ?

    總結

    以上是生活随笔為你收集整理的2019java 开发工程师 最新面试官 问的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    国产久视频| 久久99影院 | 黄色免费看片网站 | 黄色av在| 日韩午夜电影院 | 成人毛片一区二区三区 | 久久av影院 | 在线国产精品一区 | 日本中文字幕免费观看 | 九草在线观看 | 在线视频免费观看 | 天天曰夜夜操 | 欧美日韩在线视频一区二区 | 激情网站五月天 | 久久天堂网站 | 精品91在线 | 夜夜骑日日 | 天天干天天操天天搞 | 91福利在线观看 | 久久人人看 | 久久久18 | 日韩欧美高清一区二区三区 | 日韩一区二区三区在线观看 | 天天天天爱天天躁 | 日本精品久久久久中文字幕 | 国产精品日韩在线观看 | 三上悠亚一区二区在线观看 | 啪啪资源| 婷婷国产v亚洲v欧美久久 | 99久久精品无免国产免费 | 中文字幕色播 | 久久看片网 | 新av在线| 中文网丁香综合网 | 在线精品播放 | 青青河边草手机免费 | 免费高清男女打扑克视频 | 青青草在久久免费久久免费 | 夜夜操网 | 国产传媒中文字幕 | 久草在线视频首页 | 色97在线| 一区二区三区四区五区在线视频 | 一区二区三区久久 | 国产原厂视频在线观看 | 精品久久久久久久久久久久久久久久久久 | 国产精品久久99精品毛片三a | 91超在线 | 超碰人人做 | 91在线免费播放视频 | 免费合欢视频成人app | 国产成人av网站 | 奇米影视8888在线观看大全免费 | 精品国产精品一区二区夜夜嗨 | 91网在线 | 国产精品第三页 | 国产精品视频久久久 | 国产黄色看片 | 久久无码精品一区二区三区 | 亚洲艳情 | 中文在线天堂资源 | 日韩精品中文字幕久久臀 | 久久免费播放视频 | 一二三区高清 | 亚洲电影久久 | 四虎国产精品免费观看视频优播 | 欧美精品一区二区在线观看 | 激情五月开心 | 日韩久久精品一区二区 | 国产亚洲精品久久久久久大师 | 美女视频免费一区二区 | 久草在线视频在线 | 中国成人一区 | 久久精品美女视频网站 | 日韩av电影中文字幕在线观看 | 天天干干 | 日批在线观看 | 亚洲激情av| 伊人五月天.com | 免费看久久久 | 黄色网在线播放 | 国产成人精品免高潮在线观看 | 在线观看完整版免费 | 国产成人一区二区啪在线观看 | 91在线看网站 | 久草精品免费 | av高清免费| 久久毛片高清国产 | 99色99| 最近免费观看的电影完整版 | 日韩av电影免费观看 | 日韩免费一区二区三区 | 天天干夜夜爽 | 国产黄在线免费观看 | 欧美一级特黄aaaaaa大片在线观看 | 亚洲在线视频网站 | 久久激情视频免费观看 | 国产a免费| 国产五码一区 | 国产成人精品午夜在线播放 | 国产精品久久久久久久久久久免费看 | 久久不卡电影 | 国产精品久久久久久久久久了 | 日本久久影视 | 成人在线视频在线观看 | 中文不卡视频 | 亚洲精品美女久久久久网站 | 五月天高清欧美mv | 国内久久精品视频 | 天天爽天天摸 | 夜夜操天天 | 九色精品在线 | 国产香蕉久久 | 色视频网站在线观看一=区 a视频免费在线观看 | 久草在线免费色站 | 亚洲精品国产区 | 国产无遮挡猛进猛出免费软件 | 日韩一级电影网站 | www.xxxx变态.com | 美女久久久久久久 | 亚洲无吗av| 国内综合精品午夜久久资源 | 中文字幕乱偷在线 | 久久国产精品99久久久久 | 欧美99久久| 日韩精品欧美一区 | 午夜精品久久 | 国产美女主播精品一区二区三区 | 日韩欧美专区 | 久久久免费毛片 | 亚洲乱码精品久久久久 | 婷婷综合影院 | 国产精品区免费视频 | 日韩欧美一区二区三区在线观看 | 免费无遮挡动漫网站 | 日本中文字幕在线视频 | 日韩成人黄色av | 亚洲综合色丁香婷婷六月图片 | 99久久er热在这里只有精品66 | 国产高清成人av | 91麻豆精品国产91久久久久 | 日韩欧美高清免费 | 日韩av免费大片 | 亚洲精品美女久久 | 亚洲高清激情 | 国产精品久久久影视 | 亚洲精品玖玖玖av在线看 | 狠狠88综合久久久久综合网 | 色多多污污| 日韩二区在线观看 | 9久久精品 | 亚洲一二三在线 | 日韩在线观看网站 | 亚洲精品国精品久久99热 | 国产视频色 | 视频国产 | 蜜臀久久99精品久久久久久网站 | 国产精品区免费视频 | 精品在线观看国产 | 久久99热精品这里久久精品 | 久章操 | 日日干天天爽 | 欧美99精品 | 麻豆免费看片 | 精品99视频| 亚洲激情 | 成人黄色短片 | 啪啪凸凸| 国产一区二区在线免费播放 | 国产福利一区二区三区视频 | 欧美 日韩精品 | 亚洲免费在线观看视频 | 国产精品久久久久久久久久直播 | 国产高清av在线播放 | 91福利专区| 欧美色道 | 亚洲一级片在线看 | 极品久久久久久久 | 特级西西www44高清大胆图片 | 日日夜夜天天人人 | 久久精品视频在线播放 | 欧美一级片在线免费观看 | free,性欧美 九九交易行官网 | 国产视频在线免费 | 在线播放精品一区二区三区 | 久久尤物电影视频在线观看 | 国产精品亚洲综合久久 | 久久久网址 | 免费男女羞羞的视频网站中文字幕 | 久久久久久蜜av免费网站 | 99久久婷婷国产综合精品 | www.色综合.com | 日韩在线精品 | 欧美日韩视频在线 | 超碰.com| 免费a视频在线观看 | 在线看片中文字幕 | 国产精品久久视频 | 日韩午夜在线 | 免费看黄20分钟 | 最近中文字幕国语免费av | 欧美激情视频在线免费观看 | 中文字幕免费高清在线 | 久久超碰免费 | 欧产日产国产69 | 天天操天天舔天天干 | 亚洲涩综合 | 91免费观看| 成人免费看片网址 | 性色视频在线 | 天天射天天操天天 | 黄色影院在线观看 | 色婷婷综合久久久 | 国产美女视频免费 | 中文字幕精品一区 | 91九色国产 | 日韩一区二区三区免费视频 | 在线蜜桃视频 | 色国产精品一区在线观看 | 91精品视频免费在线观看 | 免费日韩一区 | 91最新视频在线观看 | 五月天免费网站 | 中文高清av | 日韩av不卡在线播放 | 日韩区欠美精品av视频 | 亚洲最大av | 俺要去色综合狠狠 | 久久久国产成人 | 亚洲色图 校园春色 | 高潮久久久久久久久 | 一级c片| 超碰97国产精品人人cao | 久久综合在线 | 亚洲 综合 激情 | 国产黄色精品网站 | 欧美性生活免费看 | 日韩一区二区三区高清免费看看 | 又黄又爽又刺激视频 | 色插综合| 日韩午夜小视频 | 亚洲天堂色婷婷 | 夜夜躁狠狠躁日日躁 | 国产精品久久久久久久久久三级 | 日韩精品一区二区在线观看 | av电影免费在线看 | 亚洲激情精品 | 日韩有码欧美 | 最近中文字幕免费观看 | 国产精品99久久99久久久二8 | 97色涩 | 中国成人一区 | 免费一级特黄毛大片 | 成人av av在线| 激情综合网天天干 | 久久精彩免费视频 | 狠狠色狠狠综合久久 | 日韩午夜在线播放 | 国产一级高清 | av爱干| 久久夜色精品国产欧美乱极品 | 麻豆国产精品永久免费视频 | 免费看十八岁美女 | 国产高清视频色在线www | 日韩电影中文,亚洲精品乱码 | 免费精品视频在线观看 | 国产中文在线播放 | 免费观看av | 国产日产在线观看 | 在线黄频| 国产精品视频免费看 | www.在线观看视频 | 亚洲成年人av | 蜜臀久久99静品久久久久久 | 综合国产视频 | 在线视频电影 | 99久久夜色精品国产亚洲 | 国语久久 | 精品欧美一区二区在线观看 | 国产精品av久久久久久无 | 久久成人国产精品 | 亚洲成人av电影 | 偷拍福利视频一区二区三区 | 精品二区视频 | 一区二区三区四区五区在线视频 | 久久久精品欧美一区二区免费 | 国产精品久久久久9999吃药 | 2024国产在线 | 国产亚洲va综合人人澡精品 | 色a在线观看 | 91精品国产三级a在线观看 | 日韩欧美国产激情在线播放 | 91精品免费在线观看 | 超碰在线天天 | 色 中文字幕 | 免费男女羞羞的视频网站中文字幕 | 日韩中文字幕免费视频 | 在线播放亚洲 | 国产午夜在线观看视频 | 中文字幕观看在线 | 黄色一级在线免费观看 | 在线探花| 丝袜av一区 | 亚洲欧美成人 | 亚洲精品乱码久久久一二三 | 久久9999久久免费精品国产 | 天天天干夜夜夜操 | av电影免费在线播放 | 久久久久久中文字幕 | 天天干天天干天天干天天干天天干天天干 | 亚洲自拍偷拍色图 | 免费a视频 | 国产91成人| 在线免费av观看 | 天堂av网在线 | 国产黄a三级 | 欧洲精品亚洲精品 | 日本精油按摩3 | 一区二区三区在线观看免费 | 中文字幕a∨在线乱码免费看 | 日韩av成人在线 | h视频在线看 | 麻豆视频在线看 | 精品在线一区二区 | 丝袜美腿亚洲 | 91亚洲精品久久久 | 欧美另类调教 | 黄色.com| 国产精品毛片 | 四虎www| 国产视频一区二区在线播放 | 免费手机黄色网址 | 天天操夜夜干 | 成人a在线观看 | www.夜色321.com | 国产精品普通话 | 国内久久久久 | 久久另类小说 | 日韩久久一区二区 | av在线小说 | av一级二级 | 五月激情综合婷婷 | 欧美一二三区播放 | 国产伦精品一区二区三区无广告 | 久久99久久精品 | 成人h动漫精品一区二 | 特黄特色特刺激视频免费播放 | 婷婷色伊人 | 国产3p视频 | 亚洲人成人99网站 | 婷婷丁香国产 | 成人免费在线电影 | 国产精品久久久精品 | 亚洲国产中文字幕 | 免费在线观看毛片网站 | 国产黄色大片免费看 | 国产精品美女久久久久久网站 | h网站免费在线观看 | 免费在线 | 久草网在线观看 | 亚洲最新av网址 | 免费视频久久久 | 中文字幕在线观看完整版电影 | 久青草电影 | 精品高清美女精品国产区 | 97国产在线播放 | 日日碰夜夜爽 | 9在线观看免费高清完整版 玖玖爱免费视频 | 91插插插免费视频 | 一区三区视频在线观看 | 精品国产乱码久久 | 狠狠狠色丁香综合久久天下网 | 婷婷夜夜| 在线国产精品视频 | 精品久久久99 | 91成人在线免费观看 | 成人免费视频播放 | 中文字幕高清免费日韩视频在线 | 在线观看中文字幕dvd播放 | 天天干天天干天天色 | 色综合亚洲精品激情狠狠 | 成全免费观看视频 | 人人爱爱人人 | 日韩视频一区二区三区在线播放免费观看 | 97人人澡人人添人人爽超碰 | 久久久久久久毛片 | 免费亚洲视频 | 久久99国产精品免费网站 | 成人av免费在线观看 | 日本中文字幕久久 | www久久 | 深夜免费网站 | 在线观看精品国产 | 91亚洲在线观看 | 99久精品 | 欧美亚洲国产精品久久高清浪潮 | 国产日韩精品在线观看 | 91麻豆免费版 | 日本黄色免费电影网站 | 亚洲精品视频免费 | 免费看黄在线网站 | 免费日韩在线 | 久草剧场 | 欧美国产日韩一区二区 | 五月婷婷网站 | 99热这里只有精品免费 | 五月婷婷天堂 | 国产国语在线 | 狠狠色丁香婷婷综合基地 | 中文字幕在线观看第二页 | 东方av在线免费观看 | 香蕉视频在线免费 | 六月丁香综合 | 亚洲精品国产精品国 | 一区二区视频网站 | 成人毛片一区二区三区 | 中文字幕色在线视频 | 国内精品美女在线观看 | 九七在线视频 | 99视频这里有精品 | 中文字幕av在线免费 | 免费成人结看片 | 亚洲免费在线观看视频 | 国产日韩精品一区二区三区在线 | 国产精品成人一区二区三区 | 成人羞羞视频在线观看免费 | 久久久精品二区 | 中文网丁香综合网 | 成人免费视频观看 | 免费黄色a级毛片 | 欧美精品在线一区 | 国产精品美女久久久久久久 | 麻豆小视频在线观看 | 亚洲国产剧情 | 2024国产精品视频 | 成年人免费在线 | 九九九九九精品 | 青青河边草免费视频 | 亚洲专区一二三 | 久久亚洲在线 | 国产91在线观看 | 激情久久综合网 | 日本在线中文在线 | 超碰在线资源 | 天天综合在线观看 | 国产尤物在线 | 日本一区二区三区免费观看 | 国产私拍在线 | 欧美性色网站 | 天堂久久电影网 | 九草视频在线 | 久久精品一区二区三区中文字幕 | 免费在线观看av片 | wwwav视频| 亚洲精品黄色 | 九九热在线视频 | 激情欧美xxxx | 天天操天天操天天操天天操天天操天天操 | 中文字幕激情 | 日韩精品专区在线影院重磅 | 黄色三几片| 日本不卡123区 | 婷婷 综合 色 | 天天干天天操天天爱 | 国产黄色片久久 | 久草在线手机视频 | 久久久久久久影院 | 国产成人精品一区一区一区 | 天天干天天操天天射 | 国产精品18p | 日日干天天爽 | 99精品欧美一区二区蜜桃免费 | 国产伦精品一区二区三区照片91 | 激情视频网页 | 久久欧美综合 | 亚洲电影网站 | 国产一区二区在线观看免费 | 久久国产麻豆 | 国产系列 在线观看 | 亚洲精品久久久久58 | 伊人网av | 免费a现在观看 | 国产在线观看免费av | 一区在线观看 | 丁香婷婷在线观看 | 91在线影视 | 欧美日韩中文字幕综合视频 | 一区二区三区日韩在线观看 | 久久99在线视频 | 午夜久久久久久久 | 国产在线观看av | 日韩黄色免费看 | 91片黄在线观看动漫 | 久久婷婷一区二区三区 | 久久九九国产精品 | 日韩精品久久一区二区 | 综合激情网... | 99精彩视频在线观看免费 | 日韩精品不卡在线 | 4438全国亚洲精品观看视频 | av片一区二区 | 国产一区二区精品久久91 | 欧美日韩伦理一区 | 欧美精品久久久久久久久久久 | 国产剧情一区二区 | 国产精品美女视频网站 | 国产精品久久久 | 亚洲国产欧美在线看片xxoo | 亚洲国产精品成人女人久久 | 成年人在线观看 | 91爱爱电影 | 成人在线视频网 | 激情在线网址 | 精品亚洲午夜久久久久91 | 超碰在线最新地址 | 精品美女在线观看 | 国产色综合天天综合网 | 人人爽人人爽人人爽学生一级 | 久久综合精品一区 | 精品一区久久 | 久草.com| 久久av黄色| 国产精品毛片久久久 | 在线看v片成人 | 国产在线永久 | 日韩精品国产一区 | 在线观看日韩免费视频 | 97人人澡人人爽人人模亚洲 | 91精品久久久久久综合五月天 | 亚洲成aⅴ人片久久青草影院 | 国内精品免费久久影院 | 美女网站视频一区 | 在线亚洲观看 | 国产黄色片网站 | 国产精品九九九 | 国产精品久免费的黄网站 | 97超在线| 蜜臀av一区二区 | 久久精品欧美日韩精品 | 国产成人精品久久亚洲高清不卡 | 国产亚洲精品久久 | 亚洲国产精品500在线观看 | 国产美女在线精品免费观看 | 久久综合久久综合九色 | 久久高清 | 午夜精品福利一区二区 | 香蕉影视app| 黄色影院在线观看 | www.亚洲黄色 | 97在线视频免费 | 国产在线免费 | 亚洲九九爱 | 亚洲毛片在线观看. | 亚洲精品av中文字幕在线在线 | 性色av香蕉一区二区 | 免费a v观看 | 精品久久久久久久久中文字幕 | 亚洲综合干 | 99精彩视频在线观看免费 | 色多多视频在线 | 色综合天天综合 | 欧美日韩色婷婷 | 亚洲va在线va天堂 | 精品国产观看 | 在线观看中文字幕第一页 | 国产精品久久一卡二卡 | 国产五月| 91禁看片| 日日干天天射 | 日韩黄色软件 | 久久久一本精品99久久精品66 | 91福利视频免费 | 91九色国产 | 狠狠操电影网 | 欧美天天射| 中文字幕 欧美性 | 久久99中文字幕 | 丁香六月av| 久久免费黄色大片 | 成人a大片| www.97色.com | 成人免费观看a | 九九热精品视频在线播放 | 婷色在线 | 日韩av电影免费在线观看 | 97精品伊人 | 国产福利资源 | 丁香花在线观看免费完整版视频 | 成人精品在线 | 国产成人性色生活片 | 91九色网站| 中文字幕一区二区三区乱码不卡 | av超碰在线| 国产91粉嫩白浆在线观看 | 国产成人高清av | 综合久久网站 | 九九热国产 | 久久久九色精品国产一区二区三区 | 这里只有精彩视频 | 久久精品国产精品亚洲 | 日本久久91 | 国偷自产视频一区二区久 | 久久综合导航 | 久草资源在线观看 | av福利资源 | av大片网站 | 久草在线免费电影 | 久久99国产视频 | 在线播放视频一区 | 超碰人人乐 | www.97色.com| 欧美日韩视频在线观看免费 | 一区二区三区免费播放 | 久久综合狠狠综合久久狠狠色综合 | 久久爱www.| 国产高清中文字幕 | 激情综合国产 | 国产1区在线| 亚洲天堂va | 久久久久久久久久伊人 | 成人h视频 | 久久综合网色—综合色88 | 精品国产一区二区三区久久久 | 免费av网站在线看 | 国产 日韩 中文字幕 | 国产色拍拍拍拍在线精品 | 欧美精品中文字幕亚洲专区 | 久久好看免费视频 | 激情婷婷丁香 | 久久成人综合视频 | 久久电影国产免费久久电影 | 亚洲欧美精品一区二区 | 蜜桃视频日韩 | 一区二区三区免费在线观看视频 | 久视频在线 | 日韩二区在线观看 | 五月激情久久 | 91av视频在线观看 | 日韩首页 | 久久免费激情视频 | 精品久久久一区二区 | 激情av资源| 91九色在线观看视频 | 丁香花中文字幕 | 五月婷婷.com| 天天射日 | 精精国产xxxx视频在线播放 | 久久精品国产成人 | 午夜国产一区二区 | 在线午夜| 久久一久久 | 国产精品乱码一区二区视频 | 亚洲成人麻豆 | 欧美大片mv免费 | 色婷婷综合久久久久 | 国产在线观看 | 韩日成人av | 在线天堂8√ | 欧美精品一区二区蜜臀亚洲 | 久久av免费观看 | 日韩欧美一二三 | 国产乱对白刺激视频不卡 | 日本福利视频在线 | av在线播放国产 | 婷婷六月天天 | 成人一区二区三区中文字幕 | 中文字幕在线观看完整版 | 国产精品1区2区3区 久久免费视频7 | 日韩在线视频免费看 | 国产免费影院 | 国产视频色 | 国产又粗又长又硬免费视频 | 日韩欧美国产免费播放 | 欧美一区二区三区不卡 | 国产 日韩 欧美 在线 | 亚洲精品国产欧美在线观看 | 国产黄在线观看 | 天天干.com| 国产免费午夜 | 国产高清免费在线播放 | 亚洲精品国产综合久久 | 福利av影院| 色吧av色av | 亚洲免费在线观看视频 | 天天操天天操天天操天天操 | 日韩av片无码一区二区不卡电影 | 亚洲视频在线观看免费 | av在线免费观看网站 | 日日弄天天弄美女bbbb | 亚洲精品久久久久中文字幕m男 | 四虎永久精品在线 | 99这里只有精品视频 | 99在线热播精品免费99热 | 国产一级在线视频 | 久久久久免费看 | 欧美成a人片在线观看久 | 亚洲人人精品 | 国产在线观看91 | 69久久夜色精品国产69 | 免费a网站 | 欧美日韩不卡在线观看 | 国产一级不卡毛片 | av 在线观看| 天天射综合网站 | 黄网av在线| 精品成人a区在线观看 | 91成人午夜| 亚洲电影影音先锋 | 91免费看黄 | 黄色aaa毛片 | 狠狠狠色丁香婷婷综合激情 | 精品国产1区2区 | av中文天堂| 国产精品久久久视频 | 中文字幕在线播放一区二区 | 亚洲成色777777在线观看影院 | 91在线视频在线观看 | 精品美女久久久久久免费 | 亚洲免费一级电影 | 免费观看十分钟 | av网站手机在线观看 | 国产精品电影一区 | 青青河边草免费观看 | 亚洲精品网站 | jizz18欧美18| 精品一区二区电影 | 日韩av午夜| 国产夫妻性生活自拍 | 国产精品12 | 国产操在线 | a资源在线 | 在线中文字幕电影 | 亚洲视频电影在线 | 在线看片中文字幕 | 婷婷激情综合 | 日韩理论在线播放 | 伊人婷婷综合 | 91精品少妇偷拍99 | 天天操一操| 久草视频在线免费看 | www.com久久久 | 亚洲欧美综合精品久久成人 | 四虎在线免费视频 | 深夜免费网站 | 亚洲区视频在线观看 | 亚洲视频axxx | 亚洲涩涩网站 | 日本三级香港三级人妇99 | 黄污在线观看 | 亚洲.www| 亚洲国产精品va在线 | 亚洲欧美视频在线 | 免费视频97 | 欧美疯狂性受xxxxx另类 | 久久色网站 | 麻豆一级视频 | 国产免费小视频 | 亚洲精品久久久久久中文传媒 | 2021久久| 色综合久久99 | 日本精品中文字幕在线观看 | 欧美综合久久久 | 高清在线一区二区 | 久久人91精品久久久久久不卡 | 精品亚洲欧美无人区乱码 | 国产精品久久久久久久av大片 | 黄色av网站在线观看 | 手机看国产毛片 | 久久久九九| 欧美日韩免费视频 | www.五月婷| 精品在线不卡 | 国产精品igao视频网网址 | 午夜成人免费影院 | 人人爽人人插 | 精品中文字幕在线 | 天天做天天爱天天爽综合网 | 日本中文字幕电影在线免费观看 | 国产区在线 | 久久黄色精品视频 | 欧美日韩在线第一页 | 一区二区三区视频在线 | 天天色天天 | 欧美日韩破处 | 久久精品视频3 | av日韩不卡 | 日韩激情视频在线观看 | 日韩亚洲精品电影 | 97精品欧美91久久久久久 | 久久久久国产成人精品亚洲午夜 | www.天天射 | 国产精品自产拍 | 在线观看www视频 | 久久再线视频 | 在线精品视频在线观看高清 | www日韩在线 | 国产又粗又猛又爽 | 免费99| 奇米网777| 少妇性aaaaaaaaa视频 | 激情婷婷av| 成人av亚洲 | 91精品国自产在线偷拍蜜桃 | 国产香蕉视频在线播放 | 91最新中文字幕 | 国产亚洲精品久久久久久久久久 | 国产91精品一区二区麻豆网站 | 成人在线视频论坛 | 97电影手机 | 国产精品毛片久久蜜 | 2019中文在线观看 | 亚洲国产中文字幕在线观看 | 久久无码精品一区二区三区 | 欧美日韩一区二区三区在线观看视频 | 午夜美女福利 | 伊人久久国产 | 国产 日韩 在线 亚洲 字幕 中文 | 国产精品网在线观看 | 亚洲精品人人 | 美女国内精品自产拍在线播放 | 国产在线自 | 九九热免费在线观看 | av在线免费在线观看 | 久久精品视频18 | 国产一区二区在线影院 | 五月激情姐姐 | 欧美精品久久久久久久久久丰满 | aaaaaa毛片| 欧美视频网址 | 香蕉视频啪啪 | 欧美日韩免费观看一区=区三区 | 一本色道久久精品 | 欧美 亚洲 另类 激情 另类 | 欧美另类人妖 | 夜又临在线观看 | 91成人短视频在线观看 | 天天综合网国产 | 色资源网免费观看视频 | 成人福利在线播放 | 高清不卡毛片 | 偷拍区另类综合在线 | 伊人春色电影网 | 大型av综合网站 | 免费日韩 精品中文字幕视频在线 | 97福利视频 | 国产91勾搭技师精品 | 欧美在线91 | 日韩成人精品 | 亚洲精品88欧美一区二区 | 伊人色综合网 | 中文字幕在线影院 | 免费av高清 | 99c视频在线 | 99久久精品免费看国产免费软件 | 久久久久久久久久久免费 | 欧美日韩高清在线观看 | 五月丁婷婷 | 亚洲国产精品视频在线观看 | 国产尤物在线观看 | 亚洲激情在线播放 | 91大神免费在线观看 | 久99视频 | 日日夜夜精品视频 | 国产亚州精品视频 | 色午夜影院 | 中文字幕在线精品 | 波多野结衣动态图 | 亚洲美女在线国产 | 国产成人一区二区在线观看 | 日韩欧美国产精品 | 久久久久 | 在线观看免费一级片 | 97超碰中文字幕 | 亚洲黄色在线观看 | 福利一区在线视频 | 五月婷在线 | 精品91久久久久 | 美女久久99 | 最新一区二区三区 | 国产精品网站 | 天天操天天爱天天干 | 国产精品久久电影观看 | 国产高清无线码2021 | 色射爱| 国产精品成人一区二区 | 久久久精品久久 | 久热爱 | 婷婷精品国产一区二区三区日韩 | 色婷婷av一区 | 国产精品成人一区二区三区吃奶 | 一区二区三区在线观看 | 欧美在线视频精品 | 九九免费视频 | 一区二区三区免费网站 | 亚洲精品国产品国语在线 | 免费黄色在线播放 | 精品国产精品久久 | 国产一区二区三区网站 | 国产成人精品电影久久久 | 中文字幕在线观看第一区 | 日日干,天天干 | 亚洲精品乱码久久久久久9色 | 国产成人一区二区精品非洲 | 日日夜夜精品免费观看 | 日本久久高清视频 | 国产视频精选在线 | 四虎在线免费观看视频 | 日日夜夜综合网 | av网站免费线看精品 | 欧美在一区 | 天天爽天天摸 | 中文字幕网站视频在线 | 在线观看久 | 丁香视频免费观看 | 色橹橹欧美在线观看视频高清 | 日韩高清无线码2023 | 欧美激情综合色综合啪啪五月 | 国产视 | 2020天天干夜夜爽 | 免费看污片 | 日韩精品免费在线观看 | 国产一卡二卡在线 | 天天综合网久久综合网 | 免费a v在线 | 欧美国产三区 | 黄色软件视频大全免费下载 | 天天操天天干天天摸 | 国产 日韩 在线 亚洲 字幕 中文 | 蜜桃传媒一区二区 | 亚洲精品白浆高清久久久久久 | 免费日p视频 | 国产破处在线播放 | 国产又黄又猛又粗 | 丁香婷婷久久久综合精品国产 | 中文字幕在线观看免费高清电影 | 麻豆视频免费在线播放 | 91女人18片女毛片60分钟 | 免费看黄在线看 | 日韩欧美在线不卡 | 五月婷网 | 国产一级一片免费播放放 | 在线视频中文字幕一区 | 国产精品久久久久久久久久东京 | 日韩在线短视频 | 天堂av在线中文在线 | 97精品免费视频 | 丝袜+亚洲+另类+欧美+变态 | 色吊丝在线永久观看最新版本 | 欧美 日韩 国产 中文字幕 | 日韩动态视频 | 国产日产精品久久久久快鸭 | 色综合天天干 | 久久影视一区 | 亚洲最大激情中文字幕 | 九九九在线观看视频 | 高清国产午夜精品久久久久久 | 日韩理论电影网 | 欧美日韩免费一区 | 91成人久久 | 国产成人精品女人久久久 | 国产成人av | 欧美五月婷婷 | 人人澡超碰碰97碰碰碰软件 | 国产亚洲成av片在线观看 | 国产第一福利网 | www.在线观看视频 | 天天操人人干 | 人人dvd | 天天天干天天射天天天操 | 久久精品二区 | 丁香五香天综合情 | 91最新网址在线观看 | 久久深夜福利免费观看 | 日韩理论片在线观看 | 激情丁香5月| 国产在线观看地址 | 国产高清视频在线 | 九九久久久 | 成人在线观看日韩 | 欧美久久久久久久久久久久久 | 亚洲国产精彩中文乱码av | 久久国产精品久久精品 | 欧美小视频在线观看 | 国产91九色蝌蚪 | 日夜夜精品视频 | 亚洲日本在线一区 | 亚洲久草网 | 五月天激情视频在线观看 | 国产 欧美 日本 | 午夜在线免费观看视频 | 麻豆久久精品 | 啪啪肉肉污av国网站 | 丁香视频全集免费观看 | 精品中文字幕在线观看 | 在线观看成人网 | 亚洲九九精品 | 久久久久欠精品国产毛片国产毛生 | 91精品国自产在线观看 |