国产无遮挡裸体免费直播视频,久久精品国产蜜臀av,动漫在线视频一区二区,欧亚日韩一区二区三区,久艹在线 免费视频,国产精品美女网站免费,正在播放 97超级视频在线观看,斗破苍穹年番在线观看免费,51最新乱码中文字幕

Java經(jīng)典面試題最全匯總208道(二)

 更新時(shí)間:2023年01月17日 15:55:07   作者:哪?吒  
這篇文章主要介紹了Java經(jīng)典面試題最全匯總208道(二),本文章內(nèi)容詳細(xì),該模塊分為了六個(gè)部分,本次為第二部分,需要的朋友可以參考下<BR>

前言 

短時(shí)間提升自己最快的手段就是背面試題,最近總結(jié)了Java常用的面試題,分享給大家,希望大家都能圓夢大廠,加油,我命由我不由天。

53、concurrentHashMap和HashTable有什么區(qū)別

concurrentHashMap融合了hashmap和hashtable的優(yōu)勢,hashmap是不同步的,但是單線程情況下效率高,hashtable是同步的同步情況下保證程序執(zhí)行的正確性。

但hashtable每次同步執(zhí)行的時(shí)候都要鎖住整個(gè)結(jié)構(gòu),如下圖:

concurrentHashMap鎖的方式是細(xì)粒度的。

concurrentHashMap將hash分為16個(gè)桶(默認(rèn)值),諸如get、put、remove等常用操作只鎖住當(dāng)前需要用到的桶。

concurrentHashMap的讀取并發(fā),因?yàn)樽x取的大多數(shù)時(shí)候都沒有鎖定,所以讀取操作幾乎是完全的并發(fā)操作,只是在求size時(shí)才需要鎖定整個(gè)hash。

而且在迭代時(shí),concurrentHashMap使用了不同于傳統(tǒng)集合的快速失敗迭代器的另一種迭代方式,弱一致迭代器。

在這種方式中,當(dāng)iterator被創(chuàng)建后集合再發(fā)生改變就不會拋出ConcurrentModificationException,取而代之的是在改變時(shí)new新的數(shù)據(jù)而不是影響原來的數(shù)據(jù),iterator完成后再講頭指針替代為新的數(shù)據(jù),這樣iterator時(shí)使用的是原來的數(shù)據(jù)。

54、HasmMap和HashSet的區(qū)別

(1)先了解一下HashCode

Java中的集合有兩類,一類是List,一類是Set。

List:元素有序,可以重復(fù);

Set:元素?zé)o序,不可重復(fù);

要想保證元素的不重復(fù),拿什么來判斷呢?這就是Object.equals方法了。

如果元素有很多,增加一個(gè)元素,就要判斷n次嗎?

顯然不現(xiàn)實(shí),于是,Java采用了哈希表的原理。

哈希算法也稱為散列算法,是將數(shù)據(jù)依特定算法直接指定到一根地址上,初學(xué)者可以簡單的理解為,HashCode方法返回的就是對象存儲的物理位置(實(shí)際上并不是)。

這樣一來,當(dāng)集合添加新的元素時(shí),先調(diào)用這個(gè)元素的hashcode()方法,就一下子能定位到他應(yīng)該放置的物理位置上。

如果這個(gè)位置上沒有元素,他就可以直接存儲在這個(gè)位置上,不用再進(jìn)行任何比較了。

如果這個(gè)位置上有元素,就調(diào)用它的equals方法與新元素進(jìn)行比較,想同的話就不存了,不相同就散列其它的地址。

所以這里存在一個(gè)沖突解決的問題。

這樣一來實(shí)際上調(diào)用equals方法的次數(shù)就大大降低了,幾乎只需要一兩次。

簡而言之,在集合查找時(shí),hashcode能大大降低對象比較次數(shù),提高查找效率。

Java對象的equals方法和hashCode方法時(shí)這樣規(guī)定的:

相等的對象就必須具有相等的hashcode。

  1. 如果兩個(gè)對象的hashcode相同,他們并不一定相同。
  2. 如果兩個(gè)對象的hashcode相同,他們并不一定相同。

如果兩個(gè)Java對象A和B,A和B不相等,但是A和B的哈希碼相等,將A和B都存入HashMap時(shí)會發(fā)生哈希沖突,也就是A和B存放在HashMap內(nèi)部數(shù)組的位置索引相同

這時(shí)HashMap會在該位置建立一個(gè)鏈接表,將A和B串起來放在該位置,顯然,該情況不違反HashMap的使用規(guī)則,是允許的。

當(dāng)然,哈希沖突越少越好,盡量采用好的哈希算法避免哈希沖突。

equals()相等的兩個(gè)對象,hashcode()一定相等;equals()不相等的兩個(gè)對象,卻并不能證明他們的hashcode()不相等。

(2)HashMap和HashSet的區(qū)別

55、請談?wù)?ReadWriteLock 和 StampedLock

ReadWriteLock包括兩種子鎖

(1)ReadWriteLock

ReadWriteLock 可以實(shí)現(xiàn)多個(gè)讀鎖同時(shí)進(jìn)行,但是讀與寫和寫于寫互斥,只能有一個(gè)寫鎖線程在進(jìn)行。

(2)StampedLock

StampedLock是Jdk在1.8提供的一種讀寫鎖,相比較ReentrantReadWriteLock性能更好

因?yàn)镽eentrantReadWriteLock在讀寫之間是互斥的,使用的是一種悲觀策略,在讀線程特別多的情況下,會造成寫線程處于饑餓狀態(tài)

雖然可以在初始化的時(shí)候設(shè)置為true指定為公平,但是吞吐量又下去了,而StampedLock是提供了一種樂觀策略,更好的實(shí)現(xiàn)讀寫分離,并且吞吐量不會下降。

StampedLock包括三種鎖:

(1)寫鎖writeLock:

writeLock是一個(gè)獨(dú)占鎖寫鎖,當(dāng)一個(gè)線程獲得該鎖后,其他請求讀鎖或者寫鎖的線程阻塞, 獲取成功后,會返回一個(gè)stamp(憑據(jù))變量來表示該鎖的版本,在釋放鎖時(shí)調(diào)用unlockWrite方法傳遞stamp參數(shù)。

提供了非阻塞式獲取鎖tryWriteLock。

(2)悲觀讀鎖readLock:

readLock是一個(gè)共享讀鎖,在沒有線程獲取寫鎖情況下,多個(gè)線程可以獲取該鎖。

如果有寫鎖獲取,那么其他線程請求讀鎖會被阻塞。

悲觀讀鎖會認(rèn)為其他線程可能要對自己操作的數(shù)據(jù)進(jìn)行修改,所以需要先對數(shù)據(jù)進(jìn)行加鎖,這是在讀少寫多的情況下考慮的。

請求該鎖成功后會返回一個(gè)stamp值,在釋放鎖時(shí)調(diào)用unlockRead方法傳遞stamp參數(shù)。

提供了非阻塞式獲取鎖方法tryWriteLock。

(3)樂觀讀鎖tryOptimisticRead:

tryOptimisticRead相對比悲觀讀鎖,在操作數(shù)據(jù)前并沒有通過CAS設(shè)置鎖的狀態(tài),如果沒有線程獲取寫鎖,則返回一個(gè)非0的stamp變量,獲取該stamp后在操作數(shù)據(jù)前還需要調(diào)用validate方法來判斷期間是否有線程獲取了寫鎖

如果是返回值為0則有線程獲取寫鎖,如果不是0則可以使用stamp變量的鎖來操作數(shù)據(jù)。

由于tryOptimisticRead并沒有修改鎖狀態(tài),所以不需要釋放鎖。

這是讀多寫少的情況下考慮的,不涉及CAS操作,所以效率較高,在保證數(shù)據(jù)一致性上需要復(fù)制一份要操作的變量到方法棧中,并且在操作數(shù)據(jù)時(shí)可能其他寫線程已經(jīng)修改了數(shù)據(jù)

而我們操作的是方法棧里面的數(shù)據(jù),也就是一個(gè)快照,所以最多返回的不是最新的數(shù)據(jù),但是一致性得到了保證。

56、線程的run()和start()有什么區(qū)別?

每個(gè)線程都是通過某個(gè)特定Thread對象所對應(yīng)的方法run()來完成其操作的,run()方法稱為線程體。

通過調(diào)用Thread類的start()方法來啟動一個(gè)線程。

start() 方法用于啟動線程,run() 方法用于執(zhí)行線程的運(yùn)行時(shí)代碼。

run() 可以重復(fù)調(diào)用,而 start() 只能調(diào)用一次。

start()方法來啟動一個(gè)線程,真正實(shí)現(xiàn)了多線程運(yùn)行。

調(diào)用start()方法無需等待run方法體代碼執(zhí)行完畢,可以直接繼續(xù)執(zhí)行其他的代碼; 此時(shí)線程是處于就緒狀態(tài),并沒有運(yùn)行。

然后通過此Thread類調(diào)用方法run()來完成其運(yùn)行狀態(tài), run()方法運(yùn)行結(jié)束, 此線程終止。然后CPU再調(diào)度其它線程。

run()方法是在本線程里的,只是線程里的一個(gè)函數(shù),而不是多線程的。

如果直接調(diào)用run(),其實(shí)就相當(dāng)于是調(diào)用了一個(gè)普通函數(shù)而已,直接待用run()方法必須等待run()方法執(zhí)行完畢才能執(zhí)行下面的代碼

所以執(zhí)行路徑還是只有一條,根本就沒有線程的特征,所以在多線程執(zhí)行時(shí)要使用start()方法而不是run()方法。

57、為什么我們調(diào)用 start() 方法時(shí)會執(zhí)行 run() 方法,為什么我們不能直接調(diào)用 run() 方法?

這是另一個(gè)非常經(jīng)典的 java 多線程面試問題,而且在面試中會經(jīng)常被問到。很簡單,但是很多人都會答不上來!

new 一個(gè) Thread,線程進(jìn)入了新建狀態(tài)。

調(diào)用 start() 方法,會啟動一個(gè)線程并使線程進(jìn)入了就緒狀態(tài),當(dāng)分配到時(shí)間片后就可以開始運(yùn)行了。

start() 會執(zhí)行線程的相應(yīng)準(zhǔn)備工作,然后自動執(zhí)行 run() 方法的內(nèi)容,這是真正的多線程工作。

而直接執(zhí)行 run() 方法,會把 run 方法當(dāng)成一個(gè) main 線程下的普通方法去執(zhí)行,并不會在某個(gè)線程中執(zhí)行它,所以這并不是多線程工作。

總結(jié): 調(diào)用 start 方法方可啟動線程并使線程進(jìn)入就緒狀態(tài),而 run 方法只是 thread 的一個(gè)普通方法調(diào)用,還是在主線程里執(zhí)行。

58、Synchronized 用過嗎,其原理是什么?

(1)可重入性

synchronized的鎖對象中有一個(gè)計(jì)數(shù)器(recursions變量)會記錄線程獲得幾次鎖;

  1. 可重入的好處;
  2. 可以避免死鎖;
  3. 可以讓我們更好的封裝代碼;

synchronized是可重入鎖,每部鎖對象會有一個(gè)計(jì)數(shù)器記錄線程獲取幾次鎖,在執(zhí)行完同步代碼塊時(shí),計(jì)數(shù)器的數(shù)量會-1,直到計(jì)數(shù)器的數(shù)量為0,就釋放這個(gè)鎖。

(2)不可中斷性

  1. 一個(gè)線程獲得鎖后,另一個(gè)線程想要獲得鎖,必須處于阻塞或等待狀態(tài),如果第一個(gè)線程不釋放鎖,第二個(gè)線程會一直阻塞或等待,不可被中斷;
  2. synchronized 屬于不可被中斷;
  3. Lock lock方法是不可中斷的;
  4. Lock tryLock方法是可中斷的;

59、JVM 對 Java 的原生鎖做了哪些優(yōu)化?

(1)自旋鎖

在線程進(jìn)行阻塞的時(shí)候,先讓線程自旋等待一段時(shí)間,可能這段時(shí)間其它線程已經(jīng)解鎖,這時(shí)就無需讓線程再進(jìn)行阻塞操作了。

自旋默認(rèn)次數(shù)是10次。

(2)自適應(yīng)自旋鎖

自旋鎖的升級,自旋的次數(shù)不再固定,由前一次自旋次數(shù)和鎖的擁有者的狀態(tài)決定。

(3)鎖消除

在動態(tài)編譯同步代碼塊的時(shí)候,JIT編譯器借助逃逸分析技術(shù)來判斷鎖對象是否只被一個(gè)線程訪問,而沒有其他線程,這時(shí)就可以取消鎖了。

(4)鎖粗化

當(dāng)JIT編譯器發(fā)現(xiàn)一系列的操作都對同一個(gè)對象反復(fù)加鎖解鎖,甚至加鎖操作出現(xiàn)在循環(huán)中,此時(shí)會將加鎖同步的范圍粗化到整個(gè)操作系列的外部。

鎖粒度:不要鎖住一些無關(guān)的代碼。

鎖粗化:可以一次性執(zhí)行完的不要多次加鎖執(zhí)行。

60、為什么 wait(), notify()和 notifyAll()必須在同步方法或者同步塊中被調(diào)用?

Java中,任何對象都可以作為鎖,并且 wait(),notify()等方法用于等待對象的鎖或者喚醒線程,在 Java 的線程中并沒有可供任何對象使用的鎖,所以任意對象調(diào)用方法一定定義在Object類中。

wait(), notify()和 notifyAll()這些方法在同步代碼塊中調(diào)用

有的人會說,既然是線程放棄對象鎖,那也可以把wait()定義在Thread類里面啊,新定義的線程繼承于Thread類,也不需要重新定義wait()方法的實(shí)現(xiàn)。

然而,這樣做有一個(gè)非常大的問題,一個(gè)線程完全可以持有很多鎖,你一個(gè)線程放棄鎖的時(shí)候,到底要放棄哪個(gè)鎖?

當(dāng)然了,這種設(shè)計(jì)并不是不能實(shí)現(xiàn),只是管理起來更加復(fù)雜。

綜上所述,wait()、notify()和notifyAll()方法要定義在Object類中。

61、Java 如何實(shí)現(xiàn)多線程之間的通訊和協(xié)作?

可以通過中斷 和 共享變量的方式實(shí)現(xiàn)線程間的通訊和協(xié)作

比如說最經(jīng)典的生產(chǎn)者-消費(fèi)者模型:當(dāng)隊(duì)列滿時(shí),生產(chǎn)者需要等待隊(duì)列有空間才能繼續(xù)往里面放入商品,而在等待的期間內(nèi),生產(chǎn)者必須釋放對臨界資源(即隊(duì)列)的占用權(quán)。

因?yàn)樯a(chǎn)者如果不釋放對臨界資源的占用權(quán),那么消費(fèi)者就無法消費(fèi)隊(duì)列中的商品,就不會讓隊(duì)列有空間,那么生產(chǎn)者就會一直無限等待下去。

因此,一般情況下,當(dāng)隊(duì)列滿時(shí),會讓生產(chǎn)者交出對臨界資源的占用權(quán),并進(jìn)入掛起狀態(tài)。

然后等待消費(fèi)者消費(fèi)了商品,然后消費(fèi)者通知生產(chǎn)者隊(duì)列有空間了。

同樣地,當(dāng)隊(duì)列空時(shí),消費(fèi)者也必須等待,等待生產(chǎn)者通知它隊(duì)列中有商品了。

這種互相通信的過程就是線程間的協(xié)作。

Java中線程通信協(xié)作的最常見的兩種方式:

1、syncrhoized加鎖的線程的Object類的wait()/notify()/notifyAll()

2、ReentrantLock類加鎖的線程的Condition類的await()/signal()/signalAll()

線程間直接的數(shù)據(jù)交換:

通過管道進(jìn)行線程間通信:

1)字節(jié)流;

2)字符流

62、Thread 類中的 yield 方法有什么作用?

yield()應(yīng)該做的是讓當(dāng)前運(yùn)行線程回到可運(yùn)行狀態(tài),以允許具有相同優(yōu)先級的其他線程獲得運(yùn)行機(jī)會。

因此,使用yield()的目的是讓相同優(yōu)先級的線程之間能適當(dāng)?shù)妮嗈D(zhuǎn)執(zhí)行。

但是,實(shí)際中無法保證yield()達(dá)到讓步目的,因?yàn)樽尣降木€程還有可能被線程調(diào)度程序再次選中。

結(jié)論:yield()從未導(dǎo)致線程轉(zhuǎn)到等待/睡眠/阻塞狀態(tài)。在大多數(shù)情況下,yield()將導(dǎo)致線程從運(yùn)行狀態(tài)轉(zhuǎn)到可運(yùn)行狀態(tài),但有可能沒有效果。

63、為什么說 Synchronized 是非公平鎖?

當(dāng)鎖被釋放后,任何一個(gè)線程都有機(jī)會競爭得到鎖,這樣做的目的是提高效率,但缺點(diǎn)是可能產(chǎn)生線程饑餓現(xiàn)象。

64、請談?wù)?volatile 有什么特點(diǎn),為什么它能保證變量對所有線程的可見性?

volatile只能作用于變量,保證了操作可見性和有序性,不保證原子性。

在Java的內(nèi)存模型中分為主內(nèi)存和工作內(nèi)存,Java內(nèi)存模型規(guī)定所有的變量存儲在主內(nèi)存中,每條線程都有自己的工作內(nèi)存。

主內(nèi)存和工作內(nèi)存之間的交互分為8個(gè)原子操作:

  1. lock
  2. unlock
  3. read
  4. load
  5. assign
  6. use
  7. store
  8. write

volatile修飾的變量,只有對volatile進(jìn)行assign操作,才可以load,只有l(wèi)oad才可以use,,這樣就保證了在工作內(nèi)存操作volatile變量,都會同步到主內(nèi)存中。

65、為什么說 Synchronized 是一個(gè)悲觀鎖?樂觀鎖的實(shí)現(xiàn)原理又是什么?什么是 CAS,它有什么特性?

Synchronized的并發(fā)策略是悲觀的,不管是否產(chǎn)生競爭,任何數(shù)據(jù)的操作都必須加鎖。

樂觀鎖的核心是CAS,CAS包括內(nèi)存值、預(yù)期值、新值,只有當(dāng)內(nèi)存值等于預(yù)期值時(shí),才會將內(nèi)存值修改為新值。

66、樂觀鎖一定就是好的嗎?

樂觀鎖認(rèn)為對一個(gè)對象的操作不會引發(fā)沖突,所以每次操作都不進(jìn)行加鎖,只是在最后提交更改時(shí)驗(yàn)證是否發(fā)生沖突,如果沖突則再試一遍,直至成功為止,這個(gè)嘗試的過程稱為自旋。

樂觀鎖沒有加鎖,但樂觀鎖引入了ABA問題,此時(shí)一般采用版本號進(jìn)行控制;

也可能產(chǎn)生自旋次數(shù)過多問題,此時(shí)并不能提高效率,反而不如直接加鎖的效率高;

只能保證一個(gè)對象的原子性,可以封裝成對象,再進(jìn)行CAS操作;

67、請盡可能詳盡地對比下 Synchronized 和 ReentrantLock 的異同。

(1)相似點(diǎn)

它們都是阻塞式的同步,也就是說一個(gè)線程獲得了對象鎖,進(jìn)入代碼塊,其它訪問該同步塊的線程都必須阻塞在同步代碼塊外面等待,而進(jìn)行線程阻塞和喚醒的代碼是比較高的。

(2)功能區(qū)別

Synchronized是java語言的關(guān)鍵字,是原生語法層面的互斥,需要JVM實(shí)現(xiàn);ReentrantLock 是JDK1.5之后提供的API層面的互斥鎖,需要lock和unlock()方法配合try/finally代碼塊來完成。

Synchronized使用較ReentrantLock 便利一些;

鎖的細(xì)粒度和靈活性:ReentrantLock強(qiáng)于Synchronized;

(3)性能區(qū)別

Synchronized引入偏向鎖,自旋鎖之后,兩者的性能差不多,在這種情況下,官方建議使用Synchronized。

① Synchronized

Synchronized會在同步塊的前后分別形成monitorenter和monitorexit兩個(gè)字節(jié)碼指令。

在執(zhí)行monitorenter指令時(shí),首先要嘗試獲取對象鎖。如果這個(gè)對象沒被鎖定,或者當(dāng)前線程已經(jīng)擁有了那個(gè)對象鎖,把鎖的計(jì)數(shù)器+1,相應(yīng)的執(zhí)行monitorexit時(shí),計(jì)數(shù)器-1,當(dāng)計(jì)數(shù)器為0時(shí),鎖就會被釋放。

如果獲取鎖失敗,當(dāng)前線程就要阻塞,知道對象鎖被另一個(gè)線程釋放為止。

② ReentrantLock

ReentrantLock是java.util.concurrent包下提供的一套互斥鎖,相比Synchronized,ReentrantLock類提供了一些高級功能,主要有如下三項(xiàng):

等待可中斷,持有鎖的線程長期不釋放的時(shí)候,正在等待的線程可以選擇放棄等待,這相當(dāng)于Synchronized避免出現(xiàn)死鎖的情況。

通過lock.lockInterruptibly()來實(shí)現(xiàn)這一機(jī)制;
公平鎖,多個(gè)線程等待同一個(gè)鎖時(shí),必須按照申請鎖的時(shí)間順序獲得鎖,Synchronized鎖是非公平鎖;

ReentrantLock默認(rèn)也是非公平鎖,可以通過參數(shù)true設(shè)為公平鎖,但公平鎖表現(xiàn)的性能不是很好;
鎖綁定多個(gè)條件,一個(gè)ReentrantLock對象可以同時(shí)綁定多個(gè)對象。

ReentrantLock提供了一個(gè)Condition(條件)類,用來實(shí)現(xiàn)分組喚醒需要喚醒的線程們,而不是像Synchronized要么隨機(jī)喚醒一個(gè)線程,要么喚醒全部線程。

68、ReentrantLock 是如何實(shí)現(xiàn)可重入性的?

(1)什么是可重入性

一個(gè)線程持有鎖時(shí),當(dāng)其他線程嘗試獲取該鎖時(shí),會被阻塞;而這個(gè)線程嘗試獲取自己持有鎖時(shí),如果成功說明該鎖是可重入的,反之則不可重入。

(2)synchronized是如何實(shí)現(xiàn)可重入性

synchronized關(guān)鍵字經(jīng)過編譯后,會在同步塊的前后分別形成monitorenter和monitorexit兩個(gè)字節(jié)碼指令。

每個(gè)鎖對象內(nèi)部維護(hù)一個(gè)計(jì)數(shù)器,該計(jì)數(shù)器初始值為0,表示任何線程都可以獲取該鎖并執(zhí)行相應(yīng)的方法。

根據(jù)虛擬機(jī)規(guī)范要求,在執(zhí)行monitorenter指令時(shí),首先要嘗試獲取對象的鎖,如果這個(gè)對象沒有被鎖定,或者當(dāng)前線程已經(jīng)擁有了對象的鎖,把鎖的計(jì)數(shù)器+1,相應(yīng)的在執(zhí)行monitorexit指令后鎖計(jì)數(shù)器-1,當(dāng)計(jì)數(shù)器為0時(shí),鎖就被釋放。

如果獲取對象鎖失敗,那當(dāng)前線程就要阻塞等待,直到對象鎖被另一個(gè)線程釋放為止。

(3)ReentrantLock如何實(shí)現(xiàn)可重入性

ReentrantLock使用內(nèi)部類Sync來管理鎖,所以真正的獲取鎖是由Sync的實(shí)現(xiàn)類控制的。

Sync有兩個(gè)實(shí)現(xiàn),分別為NonfairSync(非公公平鎖)和FairSync(公平鎖)。Sync通過繼承AQS實(shí)現(xiàn),在AQS中維護(hù)了一個(gè)private volatile int state來計(jì)算重入次數(shù),避免頻繁的持有釋放操作帶來的線程問題。

(4)ReentrantLock代碼實(shí)例

// Sync繼承于AQS
abstract static class Sync extends AbstractQueuedSynchronizer {
  ...
}
// ReentrantLock默認(rèn)是非公平鎖
public ReentrantLock() {
        sync = new NonfairSync();
 }
// 可以通過向構(gòu)造方法中傳true來實(shí)現(xiàn)公平鎖
public ReentrantLock(boolean fair) {
    sync = fair ? new FairSync() : new NonfairSync();
}
protected final boolean tryAcquire(int acquires) {
        // 當(dāng)前想要獲取鎖的線程
        final Thread current = Thread.currentThread();
        // 當(dāng)前鎖的狀態(tài)
        int c = getState();
        // state == 0 此時(shí)此刻沒有線程持有鎖
        if (c == 0) {
            // 雖然此時(shí)此刻鎖是可以用的,但是這是公平鎖,既然是公平,就得講究先來后到,
            // 看看有沒有別人在隊(duì)列中等了半天了
            if (!hasQueuedPredecessors() &&
                // 如果沒有線程在等待,那就用CAS嘗試一下,成功了就獲取到鎖了,
                // 不成功的話,只能說明一個(gè)問題,就在剛剛幾乎同一時(shí)刻有個(gè)線程搶先了 =_=
                // 因?yàn)閯倓傔€沒人的,我判斷過了
                compareAndSetState(0, acquires)) {
 
                // 到這里就是獲取到鎖了,標(biāo)記一下,告訴大家,現(xiàn)在是我占用了鎖
                setExclusiveOwnerThread(current);
                return true;
            }
        }
          // 會進(jìn)入這個(gè)else if分支,說明是重入了,需要操作:state=state+1
        // 這里不存在并發(fā)問題
        else if (current == getExclusiveOwnerThread()) {
            int nextc = c + acquires;
            if (nextc < 0)
                throw new Error("Maximum lock count exceeded");
            setState(nextc);
            return true;
        }
        // 如果到這里,說明前面的if和else if都沒有返回true,說明沒有獲取到鎖
        return false;
    }

(5)代碼分析

當(dāng)一個(gè)線程在獲取鎖過程中,先判斷state的值是否為0,如果是表示沒有線程持有鎖,就可以嘗試獲取鎖。

當(dāng)state的值不為0時(shí),表示鎖已經(jīng)被一個(gè)線程占用了,這時(shí)會做一個(gè)判斷current==getExclusiveOwnerThread(),這個(gè)方法返回的是當(dāng)前持有鎖的線程,這個(gè)判斷是看當(dāng)前持有鎖的線程是不是自己,如果是自己,那么將state的值+1,表示重入返回即可。

69、什么是鎖消除和鎖粗化?

(1)鎖消除

所消除就是虛擬機(jī)根據(jù)一個(gè)對象是否真正存在同步情況,若不存在同步情況,則對該對象的訪問無需經(jīng)過加鎖解鎖的操作。

比如StringBuffer的append方法,因?yàn)閍ppend方法需要判斷對象是否被占用,而如果代碼不存在鎖競爭,那么這部分的性能消耗是無意義的。

于是虛擬機(jī)在即時(shí)編譯的時(shí)候就會將上面的代碼進(jìn)行優(yōu)化,也就是鎖消除。

@Override
public synchronized StringBuffer append(String str) {
    toStringCache = null;
    super.append(str);
    return this;
}

從源碼可以看出,append方法用了 synchronized關(guān)鍵字,它是線程安全的。

但我們可能僅在線程內(nèi)部把StringBuffer當(dāng)做局部變量使用;StringBuffer僅在方法內(nèi)作用域有效,不存在線程安全的問題,這時(shí)我們可以通過編譯器將其優(yōu)化,將鎖消除

前提是Java必須運(yùn)行在server模式,同時(shí)必須開啟逃逸分析;

-server -XX:+DoEscapeAnalysis -XX:+EliminateLocks
 
其中+DoEscapeAnalysis表示開啟逃逸分析,+EliminateLocks表示鎖消除。
public static String createStringBuffer(String str1, String str2) {
    StringBuffer sBuf = new StringBuffer();
    sBuf.append(str1);// append方法是同步操作
    sBuf.append(str2);
    return sBuf.toString();
}

逃逸分析:比如上面的代碼,它要看sBuf是否可能逃出它的作用域?如果將sBuf作為方法的返回值進(jìn)行返回,那么它在方法外部可能被當(dāng)作一個(gè)全局對象使用,就有可能發(fā)生線程安全問題,這時(shí)就可以說sBuf這個(gè)對象發(fā)生逃逸了,因而不應(yīng)將append操作的鎖消除,但我們上面的代碼沒有發(fā)生鎖逃逸,鎖消除就可以帶來一定的性能提升。 

(2)鎖粗化

鎖的請求、同步、釋放都會消耗一定的系統(tǒng)資源,如果高頻的鎖請求反而不利于系統(tǒng)性能的優(yōu)化,鎖粗化就是把多次的鎖請求合并成一個(gè)請求,擴(kuò)大鎖的范圍,降低鎖請求、同步、釋放帶來的性能損耗。

70、跟 Synchronized 相比,可重入鎖 ReentrantLock 其實(shí)現(xiàn)原理有什么不同?

(1)都是可重入鎖;

(2)ReentrantLock內(nèi)部是實(shí)現(xiàn)了Sync,Sync繼承于AQS抽象類。

Sync有兩個(gè)實(shí)現(xiàn),一個(gè)是公平鎖,一個(gè)是非公平鎖,通過構(gòu)造函數(shù)定義。

AQS中維護(hù)了一個(gè)state來計(jì)算重入次數(shù),避免頻繁的持有釋放操作帶來的線程問題。

(3)ReentrantLock只能定義代碼塊,而Synchronized可以定義方法和代碼塊;

(4)Synchronized是JVM的一個(gè)內(nèi)部關(guān)鍵字,ReentrantLock是JDK1.5之后引入的一個(gè)API層面的互斥鎖;

(5)Synchronized實(shí)現(xiàn)自動的加鎖、釋放鎖,ReentrantLock需要手動加鎖和釋放鎖,中間可以暫停;

(6)Synchronized由于引進(jìn)了偏向鎖和自旋鎖,所以性能上和ReentrantLock差不多,但操作上方便很多,所以優(yōu)先使用Synchronized。

71、那么請談?wù)?AQS 框架是怎么回事兒?

(1)AQS是AbstractQueuedSynchronizer的縮寫,它提供了一個(gè)FIFO隊(duì)列,可以看成是一個(gè)實(shí)現(xiàn)同步鎖的核心組件。

AQS是一個(gè)抽象類,主要通過繼承的方式來使用,它本身沒有實(shí)現(xiàn)任何的同步接口,僅僅是定義了同步狀態(tài)的獲取和釋放的方法來提供自定義的同步組件。

(2)AQS的兩種功能:獨(dú)占鎖和共享鎖

(3)AQS的內(nèi)部實(shí)現(xiàn)

AQS的實(shí)現(xiàn)依賴內(nèi)部的同步隊(duì)列,也就是FIFO的雙向隊(duì)列,如果當(dāng)前線程競爭失敗,那么AQS會把當(dāng)前線程以及等待狀態(tài)信息構(gòu)造成一個(gè)Node加入到同步隊(duì)列中,同時(shí)再阻塞該線程。當(dāng)獲取鎖的線程釋放鎖以后,會從隊(duì)列中喚醒一個(gè)阻塞的節(jié)點(diǎn)(線程)。

AQS隊(duì)列內(nèi)部維護(hù)的是一個(gè)FIFO的雙向鏈表,這種結(jié)構(gòu)的特點(diǎn)是每個(gè)數(shù)據(jù)結(jié)構(gòu)都有兩個(gè)指針,分別指向直接的后繼節(jié)點(diǎn)和直接前驅(qū)節(jié)點(diǎn)。

所以雙向鏈表可以從任意一個(gè)節(jié)點(diǎn)開始很方便的范文前驅(qū)和后繼節(jié)點(diǎn)。每個(gè)Node其實(shí)是由線程封裝,當(dāng)線程爭搶鎖失敗后會封裝成Node加入到AQS隊(duì)列中。

72、AQS 對資源的共享方式?

AQS定義兩種資源共享方式

(1)Exclusive(獨(dú)占)

只有一個(gè)線程能執(zhí)行,如ReentrantLock。又可分為公平鎖和非公平鎖:

  • 公平鎖:按照線程在隊(duì)列中的排隊(duì)順序,先到者先拿到鎖
  • 非公平鎖:當(dāng)線程要獲取鎖時(shí),無視隊(duì)列順序直接去搶鎖,誰搶到就是誰的

(2)Share(共享)

多個(gè)線程可同時(shí)執(zhí)行,如Semaphore/CountDownLatch。

Semaphore、CountDownLatch、 CyclicBarrier、ReadWriteLock 我們都會在后面講到。

ReentrantReadWriteLock 可以看成是組合式,因?yàn)镽eentrantReadWriteLock也就是讀寫鎖允許多個(gè)線程同時(shí)對某一資源進(jìn)行讀。

不同的自定義同步器爭用共享資源的方式也不同。自定義同步器在實(shí)現(xiàn)時(shí)只需要實(shí)現(xiàn)共享資源 state 的獲取與釋放方式即可,至于具體線程等待隊(duì)列的維護(hù)(如獲取資源失敗入隊(duì)/喚醒出隊(duì)等),AQS已經(jīng)在頂層實(shí)現(xiàn)好了。

73、如何讓 Java 的線程彼此同步?

  1. synchronized
  2. volatile
  3. ReenreantLock
  4. 使用局部變量實(shí)現(xiàn)線程同步

74、你了解過哪些同步器?請分別介紹下。

(1)Semaphore同步器

特征:

經(jīng)典的信號量,通過計(jì)數(shù)器控制對共享資源的訪問

Semaphore(int count):創(chuàng)建擁有count個(gè)許可證的信號量

acquire()/acquire(int num) : 獲取1/num個(gè)許可證

release/release(int num) : 釋放1/num個(gè)許可證

(2)CountDownLatch同步器

特征:

必須發(fā)生指定數(shù)量的事件后才可以繼續(xù)運(yùn)行(比如賽跑比賽,裁判喊出3,2,1之后大家才同時(shí)跑)

CountDownLatch(int count):必須發(fā)生count個(gè)數(shù)量才可以打開鎖存器

await:等待鎖存器

countDown:觸發(fā)事件

(3)CyclicBarrier同步器

特征:

適用于只有多個(gè)線程都到達(dá)預(yù)定點(diǎn)時(shí)才可以繼續(xù)執(zhí)行(比如斗地主,需要等齊三個(gè)人才開始)

CyclicBarrier(int num) :等待線程的數(shù)量

CyclicBarrier(int num, Runnable action) :等待線程的數(shù)量以及所有線程到達(dá)后的操作

await() : 到達(dá)臨界點(diǎn)后暫停線程

(4)交換器(Exchanger)同步器

(5)Phaser同步器

75、Java 中的線程池是如何實(shí)現(xiàn)的

創(chuàng)建一個(gè)阻塞隊(duì)列來容納任務(wù),在第一次執(zhí)行任務(wù)時(shí)創(chuàng)建足夠多的線程,并處理任務(wù),之后每個(gè)工作線程自動從任務(wù)隊(duì)列中獲取線程,直到任務(wù)隊(duì)列中任務(wù)為0為止,此時(shí)線程處于等待狀態(tài),一旦有工作任務(wù)加入任務(wù)隊(duì)列中,即刻喚醒工作線程進(jìn)行處理,實(shí)現(xiàn)線程的可復(fù)用性。

線程池一般包括四個(gè)基本組成部分:

(1)線程池管理器

用于創(chuàng)建線程池,銷毀線程池,添加新任務(wù)。

(2)工作線程

線程池中線程,可循環(huán)執(zhí)行任務(wù),在沒有任務(wù)時(shí)處于等待狀態(tài)。

(3)任務(wù)隊(duì)列

用于存放沒有處理的任務(wù),一種緩存機(jī)制。

(4)任務(wù)接口

每個(gè)任務(wù)必須實(shí)現(xiàn)的接口,供工作線程調(diào)度任務(wù)的執(zhí)行,主要規(guī)定了任務(wù)的開始和收尾工作,和任務(wù)的狀態(tài)。

76、創(chuàng)建線程池的幾個(gè)核心構(gòu)造參數(shù)

// Java線程池的完整構(gòu)造函數(shù)
public ThreadPoolExecutor(
  int corePoolSize, // 線程池長期維持的最小線程數(shù),即使線程處于Idle狀態(tài),也不會回收。
  int maximumPoolSize, // 線程數(shù)的上限
  long keepAliveTime, // 線程最大生命周期。
  TimeUnit unit, //時(shí)間單位                                 
  BlockingQueue<Runnable> workQueue, //任務(wù)隊(duì)列。當(dāng)線程池中的線程都處于運(yùn)行狀態(tài),而此時(shí)任務(wù)數(shù)量繼續(xù)增加,則需要一個(gè)容器來容納這些任務(wù),這就是任務(wù)隊(duì)列。
  ThreadFactory threadFactory, // 線程工廠。定義如何啟動一個(gè)線程,可以設(shè)置線程名稱,并且可以確認(rèn)是否是后臺線程等。
  RejectedExecutionHandler handler // 拒絕任務(wù)處理器。由于超出線程數(shù)量和隊(duì)列容量而對繼續(xù)增加的任務(wù)進(jìn)行處理的程序。
)

77、線程池中的線程是怎么創(chuàng)建的?是一開始就隨著線程池的啟動創(chuàng)建好的嗎?

線程池中的線程是在第一次提交任務(wù)submit時(shí)創(chuàng)建的

創(chuàng)建線程的方式有繼承Thread和實(shí)現(xiàn)Runnable,重寫run方法,start開始執(zhí)行,wait等待,sleep休眠,shutdown停止。

(1)newSingleThreadExecutor:單線程池。

顧名思義就是一個(gè)池中只有一個(gè)線程在運(yùn)行,該線程永不超時(shí),而且由于是一個(gè)線程,當(dāng)有多個(gè)任務(wù)需要處理時(shí),會將它們放置到一個(gè)無界阻塞隊(duì)列中逐個(gè)處理,它的實(shí)現(xiàn)代碼如下:

public static ExecutorService newSingleThreadExecutor() {
    return new FinalizableDelegatedExecutorService
            (new ThreadPoolExecutor(1, 1,0L, TimeUnit.MILLISECONDS,
             new LinkedBlockingQueue<Runnable()));
}

它的使用方法也很簡單,下面是簡單的示例:

public static void main(String[] args) throws ExecutionException,InterruptedException {
    // 創(chuàng)建單線程執(zhí)行器
    ExecutorService es = Executors.newSingleThreadExecutor();
    // 執(zhí)行一個(gè)任務(wù)
    Future<String> future = es.submit(new Callable<String>() {
        @Override
        public String call() throws Exception {
            return "";
        }
    });
    // 獲得任務(wù)執(zhí)行后的返回值
    System.out.println("返回值:" + future.get());
    // 關(guān)閉執(zhí)行器
    es.shutdown();
}

(2)newCachedThreadPool:緩沖功能的線程。

建立了一個(gè)線程池,而且線程數(shù)量是沒有限制的(當(dāng)然,不能超過Integer的最大值),新增一個(gè)任務(wù)即有一個(gè)線程處理,或者復(fù)用之前空閑的線程,或者重親啟動一個(gè)線程,但是一旦一個(gè)線程在60秒內(nèi)一直處于等待狀態(tài)時(shí)(也就是一分鐘無事可做),則會被終止,其源碼如下:

public static ExecutorService newCachedThreadPool() {
    return new ThreadPoolExecutor(0, Integer.MAX_VALUE,60L, TimeUnit.SECONDS,
                                      new SynchronousQueue<Runnable>());
}

這里需要說明的是,任務(wù)隊(duì)列使用了同步阻塞隊(duì)列,這意味著向隊(duì)列中加入一個(gè)元素,即可喚醒一個(gè)線程(新創(chuàng)建的線程或復(fù)用空閑線程來處理),這種隊(duì)列已經(jīng)沒有隊(duì)列深度的概念了。

(3)newFixedThreadPool:固定線程數(shù)量的線程池。

在初始化時(shí)已經(jīng)決定了線程的最大數(shù)量,若任務(wù)添加的能力超出了線程的處理能力,則建立阻塞隊(duì)列容納多余的任務(wù),其源碼如下: 

public static ExecutorService newFixedThreadPool(int nThreads) {
    return new ThreadPoolExecutor(nThreads, nThreads,
                                      0L, TimeUnit.MILLISECONDS,
                                      new LinkedBlockingQueue<Runnable>());
}

上面返回的是一個(gè)ThreadPoolExecutor,它的corePoolSize和maximumPoolSize是相等的,也就是說,最大線程數(shù)量為nThreads。

如果任務(wù)增長的速度非???,超過了LinkedBlockingQuene的最大容量(Integer的最大值),那此時(shí)會如何處理呢?

會按照ThreadPoolExecutor默認(rèn)的拒絕策略(默認(rèn)是DiscardPolicy,直接丟棄)來處理。

以上三種線程池執(zhí)行器都是ThreadPoolExecutor的簡化版,目的是幫助開發(fā)人員屏蔽過得線程細(xì)節(jié),簡化多線程開發(fā)。

當(dāng)需要運(yùn)行異步任務(wù)時(shí),可以直接通過Executors獲得一個(gè)線程池,然后運(yùn)行任務(wù),不需要關(guān)注ThreadPoolExecutor的一系列參數(shù)時(shí)什么含義。

當(dāng)然,有時(shí)候這三個(gè)線程不能滿足要求,此時(shí)則可以直接操作ThreadPoolExecutor來實(shí)現(xiàn)復(fù)雜的多線程計(jì)算。

newSingleThreadExecutor、newCachedThreadPool、newFixedThreadPool是線程池的簡化版,而ThreadPoolExecutor則是旗艦版___簡化版容易操作,需要了解的知識相對少些,方便使用,而旗艦版功能齊全,適用面廣,難以駕馭。

78、volatile 關(guān)鍵字的作用

對于可見性,Java 提供了 volatile 關(guān)鍵字來保證可見性和禁止指令重排。

volatile 提供 happens-before 的保證,確保一個(gè)線程的修改能對其他線程是可見的。當(dāng)一個(gè)共享變量被 volatile 修飾時(shí),它會保證修改的值會立即被更新到主存,當(dāng)有其他線程需要讀取時(shí),它會去內(nèi)存中讀取新值。

從實(shí)踐角度而言,volatile 的一個(gè)重要作用就是和 CAS 結(jié)合,保證了原子性,詳細(xì)的可以參見 java.util.concurrent.atomic 包下的類,比如 AtomicInteger。

volatile 常用于多線程環(huán)境下的單次操作(單次讀或者單次寫)。

79、既然 volatile 能夠保證線程間的變量可見性,是不是就意味著基于 volatile 變量的運(yùn)算就是并發(fā)安全的?

volatile修飾的變量在各個(gè)線程的工作內(nèi)存中不存在一致性的問題(在各個(gè)線程工作的內(nèi)存中,volatile修飾的變量也會存在不一致的情況,但是由于每次使用之前都會先刷新主存中的數(shù)據(jù)到工作內(nèi)存,執(zhí)行引擎看不到不一致的情況,因此可以認(rèn)為不存在不一致的問題),但是java的運(yùn)算并非原子性的操作,導(dǎo)致volatile在并發(fā)下并非是線程安全的。

80、ThreadLocal 是什么?有哪些使用場景?

ThreadLocal 是一個(gè)本地線程副本變量工具類,在每個(gè)線程中都創(chuàng)建了一個(gè) ThreadLocalMap 對象

簡單說 ThreadLocal 就是一種以空間換時(shí)間的做法,每個(gè)線程可以訪問自己內(nèi)部 ThreadLocalMap 對象內(nèi)的 value。通過這種方式,避免資源在多線程間共享。

原理:線程局部變量是局限于線程內(nèi)部的變量,屬于線程自身所有,不在多個(gè)線程間共享。

Java提供ThreadLocal類來支持線程局部變量,是一種實(shí)現(xiàn)線程安全的方式。但是在管理環(huán)境下(如 web 服務(wù)器)使用線程局部變量的時(shí)候要特別小心,在這種情況下,工作線程的生命周期比任何應(yīng)用變量的生命周期都要長。

任何線程局部變量一旦在工作完成后沒有釋放,Java 應(yīng)用就存在內(nèi)存泄露的風(fēng)險(xiǎn)。

經(jīng)典的使用場景是為每個(gè)線程分配一個(gè) JDBC 連接 Connection。

這樣就可以保證每個(gè)線程的都在各自的 Connection 上進(jìn)行數(shù)據(jù)庫的操作,不會出現(xiàn) A 線程關(guān)了 B線程正在使用的 Connection; 還有 Session 管理 等問題。

81、請談?wù)?ThreadLocal 是怎么解決并發(fā)安全的?

在java程序中,常用的有兩種機(jī)制來解決多線程并發(fā)問題,一種是sychronized方式,通過鎖機(jī)制,一個(gè)線程執(zhí)行時(shí),讓另一個(gè)線程等待,是以時(shí)間換空間的方式來讓多線程串行執(zhí)行。

而另外一種方式就是ThreadLocal方式,通過創(chuàng)建線程局部變量,以空間換時(shí)間的方式來讓多線程并行執(zhí)行。兩種方式各有優(yōu)劣,適用于不同的場景,要根據(jù)不同的業(yè)務(wù)場景來進(jìn)行選擇。

在spring的源碼中,就使用了ThreadLocal來管理連接,在很多開源項(xiàng)目中,都經(jīng)常使用ThreadLocal來控制多線程并發(fā)問題,因?yàn)樗銐虻暮唵?,我們不需要關(guān)心是否有線程安全問題,因?yàn)樽兞渴敲總€(gè)線程所特有的。

82、很多人都說要慎用 ThreadLocal,談?wù)勀愕睦斫?,使?ThreadLocal 需要注意些什么?

ThreadLocal 變量解決了多線程環(huán)境下單個(gè)線程中變量的共享問題,使用名為ThreadLocalMap的哈希表進(jìn)行維護(hù)(key為ThreadLocal變量名,value為ThreadLocal變量的值);

使用時(shí)需要注意以下幾點(diǎn):

  • 線程之間的threadLocal變量是互不影響的
  • 使用private final static進(jìn)行修飾,防止多實(shí)例時(shí)內(nèi)存的泄露問題
  • 線程池環(huán)境下使用后將threadLocal變量remove掉或設(shè)置成一個(gè)初始值

83、為什么代碼會重排序?

在執(zhí)行程序時(shí),為了提供性能,處理器和編譯器常常會對指令進(jìn)行重排序,但是不能隨意重排序,不是你想怎么排序就怎么排序

它需要滿足以下兩個(gè)條件:

  • 在單線程環(huán)境下不能改變程序運(yùn)行的結(jié)果;
  • 存在數(shù)據(jù)依賴關(guān)系的不允許重排序

需要注意的是:重排序不會影響單線程環(huán)境的執(zhí)行結(jié)果,但是會破壞多線程的執(zhí)行語義。

84、什么是自旋

很多 synchronized 里面的代碼只是一些很簡單的代碼,執(zhí)行時(shí)間非常快,此時(shí)等待的線程都加鎖可能是一種不太值得的操作,因?yàn)榫€程阻塞涉及到用戶態(tài)和內(nèi)核態(tài)切換的問題。

既然 synchronized 里面的代碼執(zhí)行得非???,不妨讓等待鎖的線程不要被阻塞,而是在 synchronized 的邊界做忙循環(huán),這就是自旋。

如果做了多次循環(huán)發(fā)現(xiàn)還沒有獲得鎖,再阻塞,這樣可能是一種更好的策略。

85、多線程中 synchronized 鎖升級的原理是什么?

synchronized 鎖升級原理:在鎖對象的對象頭里面有一個(gè) threadid 字段,在第一次訪問的時(shí)候 threadid 為空,jvm 讓其持有偏向鎖,并將 threadid 設(shè)置為其線程 id,再次進(jìn)入的時(shí)候會先判斷 threadid 是否與其線程 id 一致

如果一致則可以直接使用此對象,如果不一致,則升級偏向鎖為輕量級鎖,通過自旋循環(huán)一定次數(shù)來獲取鎖,執(zhí)行一定次數(shù)之后,如果還沒有正常獲取到要使用的對象

此時(shí)就會把鎖從輕量級升級為重量級鎖,此過程就構(gòu)成了 synchronized 鎖的升級。

鎖的升級的目的:鎖升級是為了減低了鎖帶來的性能消耗。

在 Java 6 之后優(yōu)化 synchronized 的實(shí)現(xiàn)方式,使用了偏向鎖升級為輕量級鎖再升級到重量級鎖的方式,從而減低了鎖帶來的性能消耗。

86、synchronized 和 ReentrantLock 區(qū)別是什么?

synchronized 是和 if、else、for、while 一樣的關(guān)鍵字,ReentrantLock 是類,這是二者的本質(zhì)區(qū)別。

既然 ReentrantLock 是類,那么它就提供了比synchronized 更多更靈活的特性,可以被繼承、可以有方法、可以有各種各樣的類變量

synchronized 早期的實(shí)現(xiàn)比較低效,對比 ReentrantLock,大多數(shù)場景性能都相差較大,但是在 Java 6 中對 synchronized 進(jìn)行了非常多的改進(jìn)。

相同點(diǎn):兩者都是可重入鎖

兩者都是可重入鎖。“可重入鎖”概念是:自己可以再次獲取自己的內(nèi)部鎖。

比如一個(gè)線程獲得了某個(gè)對象的鎖,此時(shí)這個(gè)對象鎖還沒有釋放,當(dāng)其再次想要獲取這個(gè)對象的鎖的時(shí)候還是可以獲取的,如果不可鎖重入的話,就會造成死鎖。

同一個(gè)線程每次獲取鎖,鎖的計(jì)數(shù)器都自增1,所以要等到鎖的計(jì)數(shù)器下降為0時(shí)才能釋放鎖。

主要區(qū)別如下:

  • ReentrantLock 使用起來比較靈活,但是必須有釋放鎖的配合動作;
  • ReentrantLock 必須手動獲取與釋放鎖,而 synchronized 不需要手動釋放和開啟鎖;
  • ReentrantLock 只適用于代碼塊鎖,而 synchronized 可以修飾類、方法、變量等。
  • 二者的鎖機(jī)制其實(shí)也是不一樣的。ReentrantLock 底層調(diào)用的是 Unsafe 的park 方法加鎖,synchronized 操作的應(yīng)該是對象頭中 mark word

Java中每一個(gè)對象都可以作為鎖,這是synchronized實(shí)現(xiàn)同步的基礎(chǔ):

  • 普通同步方法,鎖是當(dāng)前實(shí)例對象
  • 靜態(tài)同步方法,鎖是當(dāng)前類的class對象
  • 同步方法塊,鎖是括號里面的對象

87、Java Concurrency API 中的 Lock 接口(Lock interface)是什么?對比同步它有什么優(yōu)勢?

Lock 接口比同步方法和同步塊提供了更具擴(kuò)展性的鎖操作。

他們允許更靈活的結(jié)構(gòu),可以具有完全不同的性質(zhì),并且可以支持多個(gè)相關(guān)類的條件對象。

它的優(yōu)勢有:

(1)可以使鎖更公平

(2)可以使線程在等待鎖的時(shí)候響應(yīng)中斷

(3)可以讓線程嘗試獲取鎖,并在無法獲取鎖的時(shí)候立即返回或者等待一段時(shí)間

(4)可以在不同的范圍,以不同的順序獲取和釋放鎖

整體上來說 Lock 是 synchronized 的擴(kuò)展版,Lock 提供了無條件的、可輪詢的(tryLock 方法)、定時(shí)的(tryLock 帶參方法)、可中斷的(lockInterruptibly)、可多條件隊(duì)列的(newCondition 方法)鎖操作。

另外 Lock 的實(shí)現(xiàn)類基本都支持非公平鎖(默認(rèn))和公平鎖,synchronized 只支持非公平鎖,當(dāng)然,在大部分情況下,非公平鎖是高效的選擇。

88、jsp 和 servlet 有什么區(qū)別?

(1)servlet是服務(wù)器端的Java程序,它擔(dān)當(dāng)客戶端和服務(wù)端的中間層。

(2)jsp全名為Java server pages,中文名叫Java服務(wù)器頁面,其本質(zhì)是一個(gè)簡化的servlet設(shè)計(jì)。JSP是一種動態(tài)頁面設(shè)計(jì),它的主要目的是將表示邏輯從servlet中分離出來。

(3)JVM只能識別Java代碼,不能識別JSP,JSP編譯后變成了servlet,web容器將JSP的代碼編譯成JVM能夠識別的Java類(servlet)。

(4)JSP有內(nèi)置對象、servlet沒有內(nèi)置對象。

89、jsp 有哪些內(nèi)置對象?作用分別是什么?

JSP九大內(nèi)置對象:

  1. pageContext,頁面上下文對象,相當(dāng)于頁面中所有功能的集合,通過它可以獲取JSP頁面的out、request、response、session、application對象。
  2. request
  3. response
  4. session
  5. application,應(yīng)用程序?qū)ο?,application實(shí)現(xiàn)了用戶間數(shù)據(jù)的共享,可存放全局變量,它開始于服務(wù)器啟動,知道服務(wù)器關(guān)閉。
  6. page,就是JSP本身。
  7. exception
  8. out,out用于在web瀏覽器內(nèi)輸出信息,并且管理應(yīng)用服務(wù)器上的輸出緩沖區(qū),作用域page。
  9. config,取得服務(wù)器的配置信息。

90、forward 和 redirect 的區(qū)別?

  1. forward是直接請求轉(zhuǎn)發(fā);redirect是間接請求轉(zhuǎn)發(fā),又叫重定向。
  2. forward,客戶端和瀏覽器執(zhí)行一次請求;redirect,客戶端和瀏覽器執(zhí)行兩次請求。
  3. forward,經(jīng)典的MVC模式就是forward;redirect,用于避免用戶的非正常訪問。(例如用戶非正常訪問,servlet就可以將HTTP請求重定向到登錄頁面)。
  4. forward,地址不變;redirect,地址改變。
  5. forward常用方法:RequestDispatcher類的forward()方法;redirect常用方法:HttpServletRequest類的sendRedirect()方法。

91、說一下 jsp 的 4 種作用域?

application、session、request、page

92、session 和 cookie 有什么區(qū)別?

(1)存儲位置不同

  • cookie在客戶端瀏覽器;
  • session在服務(wù)器;

(2)存儲容量不同

  • cookie<=4K,一個(gè)站點(diǎn)最多保留20個(gè)cookie;
  • session沒有上線,出于對服務(wù)器的保護(hù),session內(nèi)不可存過多東西,并且要設(shè)置session刪除機(jī)制;

(3)存儲方式不同

  • cookie只能保存ASCII字符串,并需要通過編碼方式存儲為Unicode字符或者二進(jìn)制數(shù)據(jù);
  • session中能存儲任何類型的數(shù)據(jù),包括并不局限于String、integer、list、map等;

(4)隱私策略不同

  • cookie對客戶端是可見的,不安全;
  • session存儲在服務(wù)器上,安全;

(5)有效期不同

  • 開發(fā)可以通過設(shè)置cookie的屬性,達(dá)到使cookie長期有效的效果;
  • session依賴于名為JESSIONID的cookie,而cookie JSESSIONID的過期時(shí)間默認(rèn)為-1,只需關(guān)閉窗口該session就會失效,因而session達(dá)不到長期有效的效果;

(6)跨域支持上不同

  • cookie支持跨域;
  • session不支持跨域;

93、如果客戶端禁止 cookie 能實(shí)現(xiàn) session 還能用嗎?

一般默認(rèn)情況下,在會話中,服務(wù)器存儲 session 的 sessionid 是通過 cookie 存到瀏覽器里。

如果瀏覽器禁用了 cookie,瀏覽器請求服務(wù)器無法攜帶 sessionid,服務(wù)器無法識別請求中的用戶身份,session失效。

但是可以通過其他方法在禁用 cookie 的情況下,可以繼續(xù)使用session。

  1. 通過url重寫,把 sessionid 作為參數(shù)追加的原 url 中,后續(xù)的瀏覽器與服務(wù)器交互中攜帶 sessionid 參數(shù)。
  2. 服務(wù)器的返回?cái)?shù)據(jù)中包含 sessionid,瀏覽器發(fā)送請求時(shí),攜帶 sessionid 參數(shù)。
  3. 通過 Http 協(xié)議其他 header 字段,服務(wù)器每次返回時(shí)設(shè)置該 header 字段信息,瀏覽器中 js 讀取該 header 字段,請求服務(wù)器時(shí),js設(shè)置攜帶該 header 字段。

94、什么是上下文切換?

多線程編程中一般線程的個(gè)數(shù)都大于 CPU 核心的個(gè)數(shù),而一個(gè) CPU 核心在任意時(shí)刻只能被一個(gè)線程使用,為了讓這些線程都能得到有效執(zhí)行,CPU 采取的策略是為每個(gè)線程分配時(shí)間片并輪轉(zhuǎn)的形式。

當(dāng)一個(gè)線程的時(shí)間片用完的時(shí)候就會重新處于就緒狀態(tài)讓給其他線程使用,這個(gè)過程就屬于一次上下文切換。

概括來說就是:

  • 當(dāng)前任務(wù)在執(zhí)行完 CPU 時(shí)間片切換到另一個(gè)任務(wù)之前會先保存自己的狀態(tài),以便下次再切換回這個(gè)任務(wù)時(shí),可以再加載這個(gè)任務(wù)的狀態(tài)。
  • 任務(wù)從保存到再加載的過程就是一次上下文切換。

上下文切換通常是計(jì)算密集型的。也就是說,它需要相當(dāng)可觀的處理器時(shí)間,在每秒幾十上百次的切換中,每次切換都需要納秒量級的時(shí)間。

所以,上下文切換對系統(tǒng)來說意味著消耗大量的 CPU 時(shí)間,事實(shí)上,可能是操作系統(tǒng)中時(shí)間消耗最大的操作。

Linux 相比與其他操作系統(tǒng)(包括其他類 Unix 系統(tǒng))有很多的優(yōu)點(diǎn),其中有一項(xiàng)就是,其上下文切換和模式切換的時(shí)間消耗非常少。

95、cookie、session、token

1、session機(jī)制

session是服務(wù)端存儲的一個(gè)對象,主要用來存儲所有訪問過該服務(wù)端的客戶端的用戶信息(也可以存儲其他信息),從而實(shí)現(xiàn)保持用戶會話狀態(tài)。

但是服務(wù)器重啟時(shí),內(nèi)存會被銷毀,存儲的用戶信息也就消失了。

不同的用戶訪問服務(wù)端的時(shí)候會在session對象中存儲鍵值對,“鍵”用來存儲開啟這個(gè)用戶信息的“鑰匙”,在登錄成功后,“鑰匙”通過cookie返回給客戶端,客戶端存儲為sessionId記錄在cookie中。

當(dāng)客戶端再次訪問時(shí),會默認(rèn)攜帶cookie中的sessionId來實(shí)現(xiàn)會話機(jī)制。

(1)session是基于cookie的。

  • cookie的數(shù)據(jù)4k左右;
  • cookie存儲數(shù)據(jù)的格式:字符串key=value
  • cookie存儲有效期:可以自行通過expires進(jìn)行具體的日期設(shè)置,如果沒設(shè)置,默認(rèn)是關(guān)閉瀏覽器時(shí)失效。
  • cookie有效范圍:當(dāng)前域名下有效。所以session這種會話存儲方式方式只適用于客戶端代碼和服務(wù)端代碼運(yùn)行在同一臺服務(wù)器上(前后端項(xiàng)目協(xié)議、域名、端口號都一致,即在一個(gè)項(xiàng)目下)

(2)session持久化

用于解決重啟服務(wù)器后session消失的問題。在數(shù)據(jù)庫中存儲session,而不是存儲在內(nèi)存中。通過包:express-mysql-session。

當(dāng)客戶端存儲的cookie失效后,服務(wù)端的session不會立即銷毀,會有一個(gè)延時(shí),服務(wù)端會定期清理無效session,不會造成無效數(shù)據(jù)占用存儲空間的問題。

2、token機(jī)制

適用于前后端分離的項(xiàng)目(前后端代碼運(yùn)行在不同的服務(wù)器下)

請求登錄時(shí),token和sessionid原理相同,是對key和key對應(yīng)的用戶信息進(jìn)行加密后的加密字符,登錄成功后,會在響應(yīng)主體中將{token:“字符串”}返回給客戶端。

客戶端通過cookie都可以進(jìn)行存儲。

再次請求時(shí)不會默認(rèn)攜帶,需要在請求攔截器位置給請求頭中添加認(rèn)證字段Authorization攜帶token信息,服務(wù)器就可以通過token信息查找用戶登錄狀態(tài)。

96、說一下 session 的工作原理?

當(dāng)客戶端登錄完成后,會在服務(wù)端產(chǎn)生一個(gè)session,此時(shí)服務(wù)端會將sessionid返回給客戶端瀏覽器。

客戶端將sessionid儲存在瀏覽器的cookie中,當(dāng)用戶再次登錄時(shí),會獲得對應(yīng)的sessionid,然后將sessionid發(fā)送到服務(wù)端請求登錄,服務(wù)端在內(nèi)存中找到對應(yīng)的sessionid,完成登錄,如果找不到,返回登錄頁面。

97、http 響應(yīng)碼 301 和 302 代表的是什么?有什么區(qū)別?

  1. 301和302狀態(tài)碼都表示重定向,當(dāng)瀏覽器拿到服務(wù)器返回的這個(gè)狀態(tài)碼后悔自動跳轉(zhuǎn)到一個(gè)新的URL地址。
  2. 301代表永久性重定向,舊地址被永久移除,客戶端向新地址發(fā)送請求。
  3. 302代表暫時(shí)性重定向,舊地址還在,客戶端繼續(xù)向舊地址發(fā)送請求。
  4. 303代表暫時(shí)性重定向,重定向到新地址時(shí),必須使用GET方法請求新地址。
  5. 307代表暫時(shí)性重定向,與302的區(qū)別在于307不允許從POST改為GET。
  6. 307代表永久性重定向,與301的區(qū)別在于308不允許從POST改為GET。

98、簡述 tcp 和 udp的區(qū)別?

  1. TCP是傳輸控制協(xié)議,UDP是用戶數(shù)據(jù)表協(xié)議;
  2. TCP長連接,UDP無連接;
  3. UDP程序結(jié)構(gòu)較簡單,只需發(fā)送,無須接收;
  4. TCP可靠,保證數(shù)據(jù)正確性、順序性;UDP不可靠,可能丟數(shù)據(jù);
  5. TCP適用于少量數(shù)據(jù),UDP適用于大量數(shù)據(jù)傳輸;
  6. TCP速度慢,UDP速度快;

99、tcp 為什么要三次握手,兩次不行嗎?為什么?

因?yàn)榭蛻舳撕头?wù)端都要確認(rèn)連接,

①客戶端請求連接服務(wù)端;

②針對客戶端的請求確認(rèn)應(yīng)答,并請求建立連接;

③針對服務(wù)端的請求確認(rèn)應(yīng)答,建立連接;

兩次無法確保A能收到B的數(shù)據(jù);

100、OSI 的七層模型都有哪些?

101、get 和 post 請求有哪些區(qū)別?

  1. get請求參數(shù)是連接在url后面的,而post請求參數(shù)是存放在requestbody內(nèi)的;
  2. get請求因?yàn)闉g覽器對url長度有限制,所以參數(shù)個(gè)數(shù)有限制,而post請求參數(shù)個(gè)數(shù)沒有限制;
  3. 因?yàn)間et請求參數(shù)暴露在url上,所以安全方面post比get更加安全;
  4. get請求只能進(jìn)行url編碼,而post請求可以支持多種編碼方式;
  5. get請求參數(shù)會保存在瀏覽器歷史記錄內(nèi),post請求并不會;
  6. get請求瀏覽器會主動cache,post并不會,除非主動設(shè)置;
  7. get請求產(chǎn)生1個(gè)tcp數(shù)據(jù)包,post請求產(chǎn)生2個(gè)tcp數(shù)據(jù)包;
  8. 在瀏覽器進(jìn)行回退操作時(shí),get請求是無害的,而post請求則會重新請求一次;
  9. 瀏覽器在發(fā)送get請求時(shí)會將header和data一起發(fā)送給服務(wù)器,服務(wù)器返回200狀態(tài)碼,而在發(fā)送post請求時(shí),會先將header發(fā)送給服務(wù)器,服務(wù)器返回100,之后再將data發(fā)送給服務(wù)器,服務(wù)器返回200 OK;

102、什么是 XSS 攻擊,如何避免?

xss(Cross Site Scripting),即跨站腳本攻擊,是一種常見于web應(yīng)用程序中的計(jì)算機(jī)安全漏洞。

指的是在用戶瀏覽器上,在渲染DOM樹的時(shí)候,執(zhí)行了不可預(yù)期的JS腳本,從而發(fā)生了安全問題。

XSS就是通過在用戶端注入惡意的可運(yùn)行腳本,若服務(wù)端對用戶的輸入不進(jìn)行處理,直接將用戶的輸入輸出到瀏覽器,然后瀏覽器將會執(zhí)行用戶注入的腳本。

所以XSS攻擊的核心就是瀏覽器渲染DOM的時(shí)候?qū)⑽谋拘畔⒔馕龀蒍S腳本從而引發(fā)JS腳本注入,那么XSS攻擊的防御手段就是基于瀏覽器渲染這一步去做防御。

只要我們使用HTML編碼將瀏覽器需要渲染的信息編碼后,瀏覽器在渲染DOM元素的時(shí)候,會自動解碼需要渲染的信息,將上述信息解析成字符串而不是JS腳本,這就是我們防御XSS攻擊的核心想法。

預(yù)防:

1、獲取用戶的輸入,不用innerHtml,用innerText.

2、對用戶的輸入進(jìn)行過濾,如對& < > " ' /等進(jìn)行轉(zhuǎn)義;

103、什么是 CSRF 攻擊,如何避免?

跨站請求偽造(英語:Cross-site request forgery),也被稱為 one-click attack 或者 session riding,通??s寫為 CSRF 或者 XSRF, 是一種挾制用戶在當(dāng)前已登錄的Web應(yīng)用程序上執(zhí)行非本意的操作的攻擊方法。

跟跨網(wǎng)站腳本(XSS)相比,XSS 利用的是用戶對指定網(wǎng)站的信任,CSRF 利用的是網(wǎng)站對用戶網(wǎng)頁瀏覽器的信任。

1、攻擊細(xì)節(jié)

跨站請求攻擊,簡單地說,是攻擊者通過一些技術(shù)手段欺騙用戶的瀏覽器去訪問一個(gè)自己曾經(jīng)認(rèn)證過的網(wǎng)站并運(yùn)行一些操作(如發(fā)郵件,發(fā)消息,甚至財(cái)產(chǎn)操作如轉(zhuǎn)賬和購買商品)。

由于瀏覽器曾經(jīng)認(rèn)證過,所以被訪問的網(wǎng)站會認(rèn)為是真正的用戶操作而去運(yùn)行。

這利用了web中用戶身份驗(yàn)證的一個(gè)漏洞:簡單的身份驗(yàn)證只能保證請求發(fā)自某個(gè)用戶的瀏覽器,卻不能保證請求本身是用戶自愿發(fā)出的。

例子

假如一家銀行用以運(yùn)行轉(zhuǎn)賬操作的URL地址如下:http://www.examplebank.com/withdraw?account=AccoutName&amount=1000&for=PayeeName

那么,一個(gè)惡意攻擊者可以在另一個(gè)網(wǎng)站上放置如下代碼: <img src="http://www.examplebank.com/withdraw?account=Alice&amount=1000&for=Badman">

如果有賬戶名為Alice的用戶訪問了惡意站點(diǎn),而她之前剛訪問過銀行不久,登錄信息尚未過期,那么她就會損失1000資金。

這種惡意的網(wǎng)址可以有很多種形式,藏身于網(wǎng)頁中的許多地方。此外,攻擊者也不需要控制放置惡意網(wǎng)址的網(wǎng)站。

例如他可以將這種地址藏在論壇,博客等任何用戶生成信息的網(wǎng)站中。這意味著如果服務(wù)端沒有合適的防御措施的話,用戶即使訪問熟悉的可信網(wǎng)站也有受攻擊的危險(xiǎn)。

透過例子能夠看出,攻擊者并不能通過CSRF攻擊來直接獲取用戶的賬戶控制權(quán),也不能直接竊取用戶的任何信息。

他們能做到的,是欺騙用戶瀏覽器,讓其以用戶的名義運(yùn)行操作。

2、防御措施

檢查Referer字段

HTTP頭中有一個(gè)Referer字段,這個(gè)字段用以標(biāo)明請求來源于哪個(gè)地址。

在處理敏感數(shù)據(jù)請求時(shí),通常來說,Referer字段應(yīng)和請求的地址位于同一域名下。以上文銀行操作為例,Referer字段地址通常應(yīng)該是轉(zhuǎn)賬按鈕所在的網(wǎng)頁地址,應(yīng)該也位于www.examplebank.com之下。

而如果是CSRF攻擊傳來的請求,Referer字段會是包含惡意網(wǎng)址的地址,不會位于www.examplebank.com之下,這時(shí)候服務(wù)器就能識別出惡意的訪問。

這種辦法簡單易行,工作量低,僅需要在關(guān)鍵訪問處增加一步校驗(yàn)。

但這種辦法也有其局限性,因其完全依賴瀏覽器發(fā)送正確的Referer字段。

雖然http協(xié)議對此字段的內(nèi)容有明確的規(guī)定,但并無法保證來訪的瀏覽器的具體實(shí)現(xiàn),亦無法保證瀏覽器沒有安全漏洞影響到此字段。

并且也存在攻擊者攻擊某些瀏覽器,篡改其Referer字段的可能。

3、添加校驗(yàn)token

由于CSRF的本質(zhì)在于攻擊者欺騙用戶去訪問自己設(shè)置的地址,所以如果要求在訪問敏感數(shù)據(jù)請求時(shí),要求用戶瀏覽器提供不保存在cookie中,并且攻擊者無法偽造的數(shù)據(jù)作為校驗(yàn),那么攻擊者就無法再運(yùn)行CSRF攻擊。

這種數(shù)據(jù)通常是窗體中的一個(gè)數(shù)據(jù)項(xiàng)。

服務(wù)器將其生成并附加在窗體中,其內(nèi)容是一個(gè)偽隨機(jī)數(shù)

。當(dāng)客戶端通過窗體提交請求時(shí),這個(gè)偽隨機(jī)數(shù)也一并提交上去以供校驗(yàn)。正常的訪問時(shí),客戶端瀏覽器能夠正確得到并傳回這個(gè)偽隨機(jī)數(shù),而通過CSRF傳來的欺騙性攻擊中,攻擊者無從事先得知這個(gè)偽隨機(jī)數(shù)的值,服務(wù)端就會因?yàn)樾r?yàn)token的值為空或者錯誤,拒絕這個(gè)可疑請求。

104、如何實(shí)現(xiàn)跨域?說一下 JSONP 實(shí)現(xiàn)原理?

1、jsonp原理詳解——終于搞清楚jsonp是啥了

2、最流行的跨域方案cors

cors是目前主流的跨域解決方案,跨域資源共享(CORS) 是一種機(jī)制,它使用額外的 HTTP 頭來告訴瀏覽器 讓運(yùn)行在一個(gè) origin (domain) 上的Web應(yīng)用被準(zhǔn)許訪問來自不同源服務(wù)器上的指定的資源。

當(dāng)一個(gè)資源從與該資源本身所在的服務(wù)器不同的域、協(xié)議或端口請求一個(gè)資源時(shí),資源會發(fā)起一個(gè)跨域 HTTP 請求。

3、最方便的跨域方案Nginx

nginx是一款極其強(qiáng)大的web服務(wù)器,其優(yōu)點(diǎn)就是輕量級、啟動快、高并發(fā)。

現(xiàn)在的新項(xiàng)目中nginx幾乎是首選,我們用node或者java開發(fā)的服務(wù)通常都需要經(jīng)過nginx的反向代理。

反向代理的原理很簡單,即所有客戶端的請求都必須先經(jīng)過nginx的處理,nginx作為代理服務(wù)器再講請求轉(zhuǎn)發(fā)給node或者java服務(wù),這樣就規(guī)避了同源策略。

到此這篇關(guān)于Java經(jīng)典面試題最全匯總208道(二)的文章就介紹到這了,更多相關(guān)Java面試題內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何在Java中使用正則表達(dá)式API

    如何在Java中使用正則表達(dá)式API

    這篇文章主要介紹了如何在Java中使用正則表達(dá)式API,我們將討論java正則表達(dá)式API,以及如何在Java編程語言中使用正則表達(dá)式。具體詳細(xì)介紹,需要的小伙伴可以參考下面文章內(nèi)容
    2022-06-06
  • Spring?Retry重試框架的使用講解

    Spring?Retry重試框架的使用講解

    重試的使用場景比較多,比如調(diào)用遠(yuǎn)程服務(wù)時(shí),由于網(wǎng)絡(luò)或者服務(wù)端響應(yīng)慢導(dǎo)致調(diào)用超時(shí),此時(shí)可以多重試幾次。用定時(shí)任務(wù)也可以實(shí)現(xiàn)重試的效果,但比較麻煩,用Spring?Retry的話一個(gè)注解搞定所有,感興趣的可以了解一下
    2022-10-10
  • 關(guān)于SpringBoot整合RabbitMQ實(shí)現(xiàn)死信隊(duì)列

    關(guān)于SpringBoot整合RabbitMQ實(shí)現(xiàn)死信隊(duì)列

    這篇文章主要介紹了關(guān)于SpringBoot整合RabbitMQ實(shí)現(xiàn)死信隊(duì)列,死信隊(duì)列實(shí)際上就是一個(gè)普通的隊(duì)列,只是這個(gè)隊(duì)列跟死信交換機(jī)進(jìn)行了綁定,用來存放死信而已,需要的朋友可以參考下
    2023-05-05
  • Java基礎(chǔ)之代碼死循環(huán)詳解

    Java基礎(chǔ)之代碼死循環(huán)詳解

    這篇文章主要介紹了Java基礎(chǔ)之代碼死循環(huán)詳解,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Java事件處理步驟講解

    Java事件處理步驟講解

    今天小編就為大家分享一篇關(guān)于Java事件處理步驟講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Java項(xiàng)目打包發(fā)布到maven私倉常見的幾種方式

    Java項(xiàng)目打包發(fā)布到maven私倉常見的幾種方式

    這篇文章主要介紹了項(xiàng)目打包發(fā)布到maven私倉常見的幾種方式,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-03-03
  • 詳解Java是如何通過接口來創(chuàng)建代理并進(jìn)行http請求

    詳解Java是如何通過接口來創(chuàng)建代理并進(jìn)行http請求

    今天給大家?guī)淼闹R是關(guān)于Java的,文章圍繞Java是如何通過接口來創(chuàng)建代理并進(jìn)行http請求展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • SpringBoot整合JPA 基礎(chǔ)使用示例教程

    SpringBoot整合JPA 基礎(chǔ)使用示例教程

    JPA(Java Persistence API)是Java提供的一套數(shù)據(jù)持久化標(biāo)準(zhǔn),通過對象-關(guān)系映射(ORM)技術(shù)實(shí)現(xiàn)Java對象與數(shù)據(jù)庫表之間的映射,它提供了一系列注解和接口,簡化了數(shù)據(jù)庫操作,使得開發(fā)者可以通過操作對象來進(jìn)行數(shù)據(jù)庫交互,而無需編寫復(fù)雜的SQL語句
    2024-10-10
  • IntelliJ IDEA導(dǎo)入Gradle項(xiàng)目的方法

    IntelliJ IDEA導(dǎo)入Gradle項(xiàng)目的方法

    這篇文章主要介紹了IntelliJ IDEA導(dǎo)入Gradle項(xiàng)目的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • IntelliJ IDEA中如何構(gòu)建Spring Boot的項(xiàng)目

    IntelliJ IDEA中如何構(gòu)建Spring Boot的項(xiàng)目

    這篇文章主要介紹了IntelliJ IDEA中如何構(gòu)建Spring Boot的項(xiàng)目問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07

最新評論

女生自摸在线观看一区二区三区| 久久久久久cao我的性感人妻| 成人高潮aa毛片免费| 男女啪啪视频免费在线观看| 亚洲av极品精品在线观看| 久久久制服丝袜中文字幕| 99久久中文字幕一本人| 亚洲av可乐操首页| 91超碰青青中文字幕| 人妻少妇性色欲欧美日韩| 亚洲免费福利一区二区三区| 青青青青青免费视频| 亚洲国产最大av综合| 亚洲av色图18p| 91欧美在线免费观看| 天天操夜夜骑日日摸| 国产亚洲天堂天天一区| 精品人人人妻人人玩日产欧| 婷婷色国产黑丝少妇勾搭AV| 亚洲熟女综合色一区二区三区四区| 特大黑人巨大xxxx| 一区二区三区av高清免费| 这里有精品成人国产99| 在线观看的a站 最新| 红桃av成人在线观看| 涩涩的视频在线观看视频| 亚洲综合另类欧美久久| 一区二区三区视频,福利一区二区| 亚洲视频在线视频看视频在线| AV天堂一区二区免费试看| 日本少妇精品免费视频| 日本五十路熟新垣里子| 日本熟妇丰满厨房55| 国产精品国色综合久久| av线天堂在线观看| 午夜激情久久不卡一区二区 | 一色桃子久久精品亚洲| 亚洲激情,偷拍视频| aⅴ精产国品一二三产品| 久久久久久9999久久久久| 男女第一次视频在线观看| 人妻少妇精品久久久久久| 国产视频网站一区二区三区| 扒开腿挺进肉嫩小18禁视频| 欧美精品伦理三区四区| 中文字幕高清在线免费播放| 午夜美女福利小视频| 久草视频首页在线观看| 国产欧美精品免费观看视频| 护士小嫩嫩又紧又爽20p| 一区二区三区av高清免费| 亚洲熟妇无码一区二区三区| 福利片区一区二体验区| 人妻丰满熟妇综合网| 亚洲精品欧美日韩在线播放 | 黑人借宿ntr人妻的沦陷2| 日本脱亚入欧是指什么| 在线视频精品你懂的| 北条麻妃肉色丝袜视频| 精品黑人一区二区三区久久国产| 青青草精品在线视频观看| 国产乱弄免费视频观看| 亚洲国产欧美国产综合在线| 1024久久国产精品| 在线观看av亚洲情色| 日韩影片一区二区三区不卡免费| 哥哥姐姐综合激情小说| 宅男噜噜噜666免费观看| 日本午夜久久女同精女女| 国产亚洲成人免费在线观看| 97小视频人妻一区二区| 中字幕人妻熟女人妻a62v网 | 98视频精品在线观看| 国产精品成人xxxx| 亚洲精品无码色午夜福利理论片| 在线免费观看黄页视频| 日本在线一区二区不卡视频| 中文字幕,亚洲人妻| 激情啪啪啪啪一区二区三区| 日韩亚洲高清在线观看| v888av在线观看视频| 国产乱子伦精品视频潮优女| 天堂v男人视频在线观看| 扒开让我视频在线观看| 亚洲欧美一区二区三区爱爱动图 | 久久精品美女免费视频| 午夜激情久久不卡一区二区| 国产麻豆乱子伦午夜视频观看| 亚洲成人线上免费视频观看| 欧美精产国品一二三产品价格| 中文字幕人妻熟女在线电影| 日本欧美视频在线观看三区| 日本黄在免费看视频| 最新欧美一二三视频 | 18禁污污污app下载| 国产女孩喷水在线观看| 国产精品手机在线看片| 国产福利小视频二区| 新97超碰在线观看| 换爱交换乱高清大片| 欧美一区二区三区高清不卡tv| 亚洲av琪琪男人的天堂| 精品一区二区三区午夜| 超碰中文字幕免费观看| 99re久久这里都是精品视频| 综合精品久久久久97| 在线国产精品一区二区三区| 欧美va不卡视频在线观看| 97超碰免费在线视频| 欧美一级色视频美日韩| 婷婷综合亚洲爱久久| 91精品国产观看免费| 超级碰碰在线视频免费观看| 天天干天天操天天插天天日| 超鹏97历史在线观看| 538精品在线观看视频| 国产av一区2区3区| 在线不卡成人黄色精品| 日本五十路熟新垣里子| 久久热久久视频在线观看| 2018在线福利视频| av无限看熟女人妻另类av| 精产国品久久一二三产区区别| 在线成人日韩av电影| 风流唐伯虎电视剧在线观看| 亚洲一区av中文字幕在线观看| 久久这里只有精品热视频 | 国产精品3p和黑人大战| 免费成人av中文字幕| 亚洲2021av天堂| 亚洲午夜福利中文乱码字幕| 红杏久久av人妻一区| 亚洲综合另类精品小说| 天天色天天操天天透| 99婷婷在线观看视频| 久草电影免费在线观看| 欧美精品伦理三区四区| 视频啪啪啪免费观看| 青青草亚洲国产精品视频| 午夜激情久久不卡一区二区| 中文字幕一区二 区二三区四区| 午夜精品福利一区二区三区p| 在线播放 日韩 av| 日韩美女搞黄视频免费| 久久午夜夜伦痒痒想咳嗽P| 午夜频道成人在线91| 伊人开心婷婷国产av| 日本性感美女写真视频| 又色又爽又黄又刺激av网站| 老司机福利精品视频在线| 最新97国产在线视频| 大香蕉日本伊人中文在线| 99re国产在线精品| 日韩精品电影亚洲一区| 在线观看视频 你懂的| 免费人成黄页网站在线观看国产| 国产在线一区二区三区麻酥酥 | 欧美成人一二三在线网| 黄工厂精品视频在线观看 | 青青草精品在线视频观看| 色婷婷综合激情五月免费观看| 大陆av手机在线观看| 黄色av网站免费在线| 亚洲欧美在线视频第一页| 国产精品精品精品999| 午夜激情高清在线观看| 在线新三级黄伊人网| 中文字幕人妻三级在线观看| 国产精品欧美日韩区二区| 2022国产精品视频| 国产中文精品在线观看| 亚洲av无码成人精品区辽| 免费看国产又粗又猛又爽又黄视频| 大香蕉福利在线观看| av破解版在线观看| 国产伊人免费在线播放| 红杏久久av人妻一区| 亚洲推理片免费看网站| 午夜国产免费福利av| xxx日本hd高清| 天天操天天干天天插| 亚洲一级av大片免费观看| 中文字幕免费福利视频6| 大陆胖女人与丈夫操b国语高清| 老司机在线精品福利视频| 亚洲一区二区激情在线| 麻豆性色视频在线观看| 97精品视频在线观看| 日韩伦理短片在线观看| 超碰公开大香蕉97| 扒开让我视频在线观看| 在线不卡成人黄色精品| 国语对白xxxx乱大交| 强行扒开双腿猛烈进入免费版 | 欧美亚洲国产成人免费在线| 91亚洲精品干熟女蜜桃频道| 年轻的人妻被夫上司侵犯| 亚洲一区二区三区精品视频在线| 国产普通话插插视频| 99热99这里精品6国产| 黄色无码鸡吧操逼视频| 女同久久精品秋霞网| 在线播放一区二区三区Av无码| 国产精品3p和黑人大战| 福利国产视频在线观看| 日韩欧美一级精品在线观看| 偷拍自拍 中文字幕| 国产成人精品午夜福利训2021| 亚洲熟妇无码一区二区三区| 极品粉嫩小泬白浆20p主播| 在线亚洲天堂色播av电影| 在线成人日韩av电影| 丰满少妇翘臀后进式| av中文字幕在线导航| 国产成人一区二区三区电影网站| av老司机精品在线观看| 馒头大胆亚洲一区二区| 黑人解禁人妻叶爱071| 婷婷午夜国产精品久久久| 青春草视频在线免费播放| www,久久久,com| 51国产成人精品视频| 国产一级麻豆精品免费| 精品黑人巨大在线一区| 日韩熟女av天堂系列| 99婷婷在线观看视频| 欧美精品国产综合久久| 久久久久久久久久一区二区三区| 91she九色精品国产| 大肉大捧一进一出好爽在线视频 | 少妇人妻二三区视频| 狠狠躁夜夜躁人人爽天天久天啪| 日韩三级黄色片网站| 青青青青爽手机在线| 视频啪啪啪免费观看| 大胆亚洲av日韩av| 天天干狠狠干天天操| 99热这里只有国产精品6| 五十路息与子猛烈交尾视频| 亚洲高清国产拍青青草原| 日韩加勒比东京热二区| 欧美怡红院视频在线观看| 97少妇精品在线观看| 一区二区三区美女毛片| 日韩美av高清在线| 亚洲色偷偷综合亚洲AV伊人| 91香蕉成人app下载| 天天摸天天亲天天舔天天操天天爽| 亚洲国产精品中文字幕网站| 成年女人免费播放视频| 亚洲av成人网在线观看| jiuse91九色视频| chinese国产盗摄一区二区| 唐人色亚洲av嫩草| 国产精品黄片免费在线观看| 激情内射在线免费观看| 2022精品久久久久久中文字幕| 最新日韩av传媒在线| 久久艹在线观看视频| 亚洲欧美福利在线观看| 日韩欧美一级黄片亚洲| 国产真实灌醉下药美女av福利| 18禁污污污app下载| 久久午夜夜伦痒痒想咳嗽P| 亚洲av香蕉一区区二区三区犇| 色秀欧美视频第一页| 插小穴高清无码中文字幕| 色秀欧美视频第一页| 孕妇奶水仑乱A级毛片免费看| 全国亚洲男人的天堂| 久久久久久性虐视频| 青青草亚洲国产精品视频| 亚洲精品 欧美日韩| 国产精品入口麻豆啊啊啊| 九九视频在线精品播放| 蜜桃视频在线欧美一区| 1024久久国产精品| 91国产在线免费播放| 高潮视频在线快速观看国家快速| 国产黄色大片在线免费播放| 黄色录像鸡巴插进去| 99精品一区二区三区的区| 中文 成人 在线 视频| 久久久久久久久久久免费女人| 一区二区久久成人网| 动漫黑丝美女的鸡巴| 97色视频在线观看| av老司机精品在线观看| 啊啊啊视频试看人妻| 国产福利小视频大全| 岛国免费大片在线观看| 东京热男人的av天堂| 在线视频免费观看网| av天堂中文免费在线| 亚洲中文精品字幕在线观看 | 欧美黑人性猛交xxxxⅹooo| 韩国亚洲欧美超一级在线播放视频 | 色97视频在线播放| 天天干夜夜操啊啊啊| 最新国产精品网址在线观看| 免费黄高清无码国产| 性色av一区二区三区久久久 | 黄页网视频在线免费观看| 成人乱码一区二区三区av| 免费看国产av网站| 女警官打开双腿沦为性奴| av高潮迭起在线观看| 亚洲女人的天堂av| 午夜激情高清在线观看| 久久免看30视频口爆视频| 骚逼被大屌狂草视频免费看| 天天日天天操天天摸天天舔| 亚洲成高清a人片在线观看| 日本在线一区二区不卡视频| 国产aⅴ一线在线观看| 一区二区三区四区视频在线播放| 日韩视频一区二区免费观看| 日韩精品中文字幕播放| av中文字幕网址在线| 欧美美女人体视频一区| 成人网18免费视频版国产| 99热99re在线播放| 97国产精品97久久| 欧美在线精品一区二区三区视频| 喷水视频在线观看这里只有精品| 唐人色亚洲av嫩草| 青青青青青青青青青国产精品视频 | 51国产成人精品视频| 2020久久躁狠狠躁夜夜躁| 99久久超碰人妻国产| av中文字幕国产在线观看| 熟女人妻在线中出观看完整版| 日本高清撒尿pissing| 天天日天天摸天天爱| 97香蕉碰碰人妻国产樱花| 亚洲中文精品字幕在线观看| aⅴ五十路av熟女中出| 蜜桃色婷婷久久久福利在线| 97年大学生大白天操逼| 国产视频精品资源网站| av在线免费观看亚洲天堂| 偷拍3456eee| 熟女在线视频一区二区三区| 欧美日韩情色在线观看| 久久久久久国产精品| 国产精品一二三不卡带免费视频 | 日本美女成人在线视频| 欧美日本在线视频一区| 狠狠鲁狠狠操天天晚上干干| 亚洲av色香蕉一区二区三区| 亚洲成人激情av在线| 午夜久久久久久久精品熟女| 夏目彩春在线中文字幕| 欧美第一页在线免费观看视频| 韩国一级特黄大片做受| 日本精品一区二区三区在线视频。 | 97成人免费在线观看网站| 国产精品日韩欧美一区二区| 97超碰人人搞人人| 黄片大全在线观看观看| 亚洲自拍偷拍综合色| 91试看福利一分钟| 亚洲在线一区二区欧美| 日韩一区二区电国产精品| 传媒在线播放国产精品一区| 国产精品久久久久久美女校花| 伊人情人综合成人久久网小说| 欧美麻豆av在线播放| 欧美性感尤物人妻在线免费看| 亚洲美女美妇久久字幕组| 天天操天天爽天天干| 亚洲免费成人a v| 天天色天天操天天透| 91免费观看在线网站| 福利视频一区二区三区筱慧| 成人av免费不卡在线观看| 日本人妻欲求不满中文字幕| 亚洲av无码成人精品区辽| 青青草视频手机免费在线观看| 国产精品久久久久久美女校花| 国产综合高清在线观看| 黄片色呦呦视频免费看| 青青青国产免费视频| 亚洲一区二区三区精品乱码| 午夜精品一区二区三区福利视频 | 91片黄在线观看喷潮| 直接能看的国产av| 国产精品福利小视频a| 99久久成人日韩欧美精品| 欧亚日韩一区二区三区观看视频 | 欧洲欧美日韩国产在线| 丝袜肉丝一区二区三区四区在线看| 天天干天天插天天谢| 亚洲一级 片内射视正片| 天天干天天爱天天色| 国产三级片久久久久久久| 亚洲国产40页第21页| 粉嫩小穴流水视频在线观看| 日本熟妇一区二区x x| 国产精品手机在线看片| 精品一区二区亚洲欧美| 亚洲一区二区三区uij| 老司机福利精品免费视频一区二区 | 中文字幕人妻熟女在线电影| 91精品国产高清自在线看香蕉网| 91老师蜜桃臀大屁股| sw137 中文字幕 在线| 精品区一区二区三区四区人妻 | 日本一区美女福利视频| 青青尤物在线观看视频网站| 精品欧美一区二区vr在线观看| 人妻av无码专区久久绿巨人| 亚洲一级av无码一级久久精品| 日本熟妇喷水xxx| 久草极品美女视频在线观看| 天天干天天操天天扣| 日韩欧美制服诱惑一区在线| 99人妻视频免费在线| 亚洲人妻30pwc| 欧美麻豆av在线播放| 欧美国产亚洲中英文字幕| 日本少妇的秘密免费视频| 97少妇精品在线观看| 亚洲日本一区二区三区 | 国产女人露脸高潮对白视频| 精品国产高潮中文字幕| 日韩精品中文字幕福利| 2018最新中文字幕在线观看| 最后99天全集在线观看| 国产麻豆91在线视频| 久久丁香婷婷六月天| 日韩一区二区电国产精品| 亚洲欧美综合另类13p| 欧美日韩国产一区二区三区三州| 亚洲精品国品乱码久久久久| 欧美专区第八页一区在线播放| 天天操天天干天天日狠狠插| 韩国三级aaaaa高清视频| 一区二区三区久久中文字幕| 99久久超碰人妻国产| 婷婷六月天中文字幕| www天堂在线久久| 精品成人啪啪18免费蜜臀| 欧美精品一二三视频| 蜜桃视频17c在线一区二区| 精品美女在线观看视频在线观看 | 四虎永久在线精品免费区二区| 午夜精品久久久久麻豆影视| 天天操天天干天天日狠狠插| 成熟丰满熟妇高潮xx×xx| 亚洲男人让女人爽的视频| 久草视频在线一区二区三区资源站 | 少妇被强干到高潮视频在线观看| av完全免费在线观看av| 亚洲精品一线二线在线观看 | 3337p日本欧洲大胆色噜噜| 国产精品中文av在线播放| 亚洲区欧美区另类最新章节| 色爱av一区二区三区| 激情五月婷婷免费视频| gav成人免费播放| 国产精彩福利精品视频| 91‖亚洲‖国产熟女| 国产精品大陆在线2019不卡| 操人妻嗷嗷叫视频一区二区| 日韩中文字幕在线播放第二页 | 美女少妇亚洲精选av| gogo国模私拍视频| 中文字幕免费福利视频6| 日本美女成人在线视频| 精品国产成人亚洲午夜| 天天操,天天干,天天射| 午夜毛片不卡免费观看视频| 999九九久久久精品| 精品久久久久久久久久久a√国产| 久久久久久久久久一区二区三区| 2022国产精品视频| 亚洲精品一线二线在线观看| 国产一区二区欧美三区| av网址在线播放大全| 亚洲一级av无码一级久久精品| 伊人网中文字幕在线视频| 久久久极品久久蜜桃| 欧美精品欧美极品欧美视频| 熟女俱乐部一二三区| 3337p日本欧洲大胆色噜噜| 欧亚乱色一区二区三区| 婷婷午夜国产精品久久久| 99久久99久国产黄毛片| 亚洲一区av中文字幕在线观看| 国产精品自拍在线视频| 免费人成黄页网站在线观看国产| 欧美亚洲国产成人免费在线 | 日日夜夜大香蕉伊人| 一区二区三区日本伦理| 激情五月婷婷综合色啪| 在线免费观看日本片| 国产夫妻视频在线观看免费| 亚洲精品色在线观看视频| 中文字幕欧美日韩射射一| 日本裸体熟妇区二区欧美| 免费在线观看视频啪啪| 传媒在线播放国产精品一区| 亚洲成高清a人片在线观看| 青青青青青免费视频| av天堂加勒比在线| 国产91嫩草久久成人在线视频| 天天躁日日躁狠狠躁av麻豆| 中文字幕av男人天堂| 青青草原网站在线观看| 一区二区在线观看少妇| 亚洲1069综合男同| 成人av中文字幕一区| 91麻豆精品久久久久| wwwxxx一级黄色片| 日本乱人一区二区三区| 80电影天堂网官网| 国产精品一区二区三区蜜臀av| 91亚洲国产成人精品性色| 阴茎插到阴道里面的视频| 激情五月婷婷免费视频| 在线播放 日韩 av| 93视频一区二区三区| 99热久久这里只有精品8| 影音先锋女人av噜噜色| 99热久久这里只有精品8| 日韩欧美亚洲熟女人妻| 成年人中文字幕在线观看| 性色av一区二区三区久久久| 很黄很污很色的午夜网站在线观看 | 2021国产一区二区| 国产视频在线视频播放| 午夜在线精品偷拍一区二| 国产精品国产三级麻豆| 99久久成人日韩欧美精品| 一区二区视频在线观看视频在线| 久久午夜夜伦痒痒想咳嗽P| 午夜精品一区二区三区城中村| 亚洲护士一区二区三区| 欧洲精品第一页欧洲精品亚洲 | 青青草精品在线视频观看| 日韩欧美高清免费在线| 大肉大捧一进一出好爽在线视频| 亚洲一区久久免费视频| 欧美在线精品一区二区三区视频| 日韩剧情片电影在线收看| 日韩伦理短片在线观看| 国产日韩欧美视频在线导航| 激情五月婷婷免费视频| 在线观看成人国产电影| 国产乱弄免费视频观看| 国产伦精品一区二区三区竹菊| 欧美成人黄片一区二区三区| 亚洲福利天堂久久久久久| 91社福利《在线观看| 人妻少妇性色欲欧美日韩| 在线播放国产黄色av| 成年人该看的视频黄免费| 国产精品国产三级国产午| 国产精品3p和黑人大战| 97人人模人人爽人人喊| 日韩av熟妇在线观看| 丝袜国产专区在线观看| 男大肉棒猛烈插女免费视频| 男大肉棒猛烈插女免费视频 | 日韩美av高清在线| 美女操逼免费短视频下载链接| 亚洲国产欧美一区二区三区…| 韩国黄色一级二级三级| 中文字母永久播放1区2区3区| 亚洲激情,偷拍视频| 欧美日韩一区二区电影在线观看| 色婷婷六月亚洲综合香蕉| 男人靠女人的逼视频| 天天干天天搞天天摸| 欧美黑人性暴力猛交喷水| 国产视频一区在线观看| 亚洲高清国产自产av| 中文字幕高清免费在线人妻| 少妇与子乱在线观看| 91精品高清一区二区三区| 一区二区三区四区中文| 国产一区二区在线欧美| 国产高清在线在线视频| 91免费福利网91麻豆国产精品 | 干逼又爽又黄又免费的视频| 精品国产污污免费网站入口自| 91人妻精品久久久久久久网站 | 91麻豆精品秘密入口在线观看 | 天天射夜夜操综合网| 亚洲精品国产在线电影| 色哟哟在线网站入口| 日韩熟女av天堂系列| 欧美亚洲中文字幕一区二区三区| 黄片三级三级三级在线观看| av网站色偷偷婷婷网男人的天堂| 日本www中文字幕| 国产精品一区二区三区蜜臀av| 久久久精品999精品日本| 日本一道二三区视频久久| 精品久久久久久久久久中文蒉| 免费在线观看视频啪啪| 黄色片黄色片wyaa| 蜜桃视频在线欧美一区| 亚洲一级 片内射视正片| 青青青青在线视频免费观看| 九九视频在线精品播放| 一级黄色av在线观看| 国产视频网站一区二区三区| 美女 午夜 在线视频| 午夜精品福利91av| 成人福利视频免费在线| 欧美日本aⅴ免费视频| 97精品人妻一区二区三区精品| 又色又爽又黄的美女裸体| 日韩av中文在线免费观看| 日韩精品二区一区久久| 少妇被强干到高潮视频在线观看| 11久久久久久久久久久| 中文字幕一区二区人妻电影冢本| 久久久久国产成人精品亚洲午夜| 男大肉棒猛烈插女免费视频| 大香蕉大香蕉大香蕉大香蕉大香蕉| 国产白袜脚足J棉袜在线观看| 国产精品三级三级三级| 日本丰满熟妇大屁股久久| 91免费福利网91麻豆国产精品| 97色视频在线观看| 99精品国产自在现线观看| 91国产资源在线视频| 国产精品视频欧美一区二区 | 午夜国产免费福利av| 久久精品美女免费视频| 欧美偷拍自拍色图片| 欧美另类z0z变态| 99精品国产aⅴ在线观看| 免费在线观看污污视频网站| 100%美女蜜桃视频| 揄拍成人国产精品免费看视频| av日韩在线观看大全| 中文字幕之无码色多多| 亚洲欧美另类手机在线| 国产精品3p和黑人大战| 国产成人午夜精品福利| 搡老妇人老女人老熟女| 水蜜桃一区二区三区在线观看视频| 亚洲一级 片内射视正片| 天天日天天日天天擦| AV天堂一区二区免费试看| 老司机深夜免费福利视频在线观看| 日本丰满熟妇BBXBBXHD| 国产熟妇乱妇熟色T区| 精品人人人妻人人玩日产欧| 亚洲综合一区成人在线| 欧美在线偷拍视频免费看| 久久机热/这里只有| 阴茎插到阴道里面的视频| 欧美亚洲国产成人免费在线| 成人国产激情自拍三区| 九色porny九色9l自拍视频| 成人av在线资源网站| ka0ri在线视频| 91色九色porny| 国产成人精品亚洲男人的天堂| 大香蕉伊人中文字幕| 亚洲少妇人妻无码精品| 久久久久久久久久性潮| 三级av中文字幕在线观看| 性欧美日本大妈母与子| 色哟哟国产精品入口| 亚洲免费成人a v| 岳太深了紧紧的中文字幕| 国产日韩av一区二区在线| 在线观看黄色成年人网站| 欧美国品一二三产区区别| 国产乱子伦精品视频潮优女| 狠狠操狠狠操免费视频| 秋霞午夜av福利经典影视| 亚洲日本一区二区久久久精品| 青青青青青免费视频| 色吉吉影音天天干天天操| 精品人妻每日一部精品| 91精品国产高清自在线看香蕉网 | 久久久精品精品视频视频| 青青青青草手机在线视频免费看| www日韩毛片av| 蜜臀成人av在线播放| 偷拍自拍视频图片免费| 91免费黄片可看视频| 成人av在线资源网站| 五月精品丁香久久久久福利社| 久久艹在线观看视频| 亚洲va天堂va国产va久| 久久精品国产亚洲精品166m| 亚洲熟妇无码一区二区三区| yellow在线播放av啊啊啊 | 亚洲欧美国产麻豆综合| 国产chinesehd精品麻豆| 人妻少妇av在线观看| 成人亚洲精品国产精品| 国产片免费观看在线观看| 婷婷午夜国产精品久久久| 熟女国产一区亚洲中文字幕| 久久午夜夜伦痒痒想咳嗽P| 99精品免费观看视频| 美女操逼免费短视频下载链接| 强行扒开双腿猛烈进入免费版 | 在线观看国产网站资源| 黄色中文字幕在线播放| 91精品啪在线免费| 丁香花免费在线观看中文字幕| 亚洲熟妇无码一区二区三区| 四虎永久在线精品免费区二区| 天天干天天操天天扣| 国产V亚洲V天堂无码欠欠| 国产日韩一区二区在线看 | 久久99久久99精品影院| 亚洲久久午夜av一区二区| 日韩在线视频观看有码在线| 国产午夜亚洲精品麻豆| 国产av福利网址大全| 中文字幕 亚洲av| 青青青青青青草国产| 888亚洲欧美国产va在线播放| 欧美视频一区免费在线| 精品国产在线手机在线| 人妻av无码专区久久绿巨人| 啊啊好大好爽啊啊操我啊啊视频 | 欧美日韩一区二区电影在线观看| 在线观看av观看av| 国产精彩福利精品视频| 91av精品视频在线| 2018最新中文字幕在线观看| 免费观看丰满少妇做受| 日韩人妻xxxxx| 亚洲精品麻豆免费在线观看 | 亚洲免费视频欧洲免费视频 | 精品日产卡一卡二卡国色天香| 国产janese在线播放| 欧美黄片精彩在线免费观看| 亚洲一级 片内射视正片| 日本人妻精品久久久久久| 麻豆性色视频在线观看| 91极品新人『兔兔』精品新作| 丝袜长腿第一页在线| 亚洲av男人天堂久久| 日韩a级精品一区二区| 日韩av大胆在线观看| 水蜜桃一区二区三区在线观看视频| 久久久超爽一二三av| 一区二区在线观看少妇| 亚洲av在线观看尤物| 91亚洲国产成人精品性色| 亚洲国际青青操综合网站| 免费看高清av的网站| 青青青青青青草国产| 亚洲一区二区三区av网站| 老司机99精品视频在线观看 | 91成人在线观看免费视频| 亚洲1区2区3区精华液| 中文 成人 在线 视频| 一二三中文乱码亚洲乱码one| 亚洲av自拍天堂网| 美女少妇亚洲精选av| 男人天堂av天天操| 深田咏美亚洲一区二区| 精品高跟鞋丝袜一区二区| 91中文字幕最新合集| 亚洲欧美一区二区三区爱爱动图| 自拍 日韩 欧美激情| 91大屁股国产一区二区| 日本人妻精品久久久久久| 深田咏美亚洲一区二区| 亚国产成人精品久久久| 国产av一区2区3区| 亚洲福利精品福利精品福利| 亚洲自拍偷拍精品网| 亚洲最大黄了色网站| 亚洲综合一区成人在线| 337p日本大胆欧美人| 亚洲av自拍偷拍综合| 888欧美视频在线| 亚洲综合图片20p| 国产精品国色综合久久| 亚洲av午夜免费观看| 人妻少妇一区二区三区蜜桃| 免费费一级特黄真人片| 天天操天天操天天碰| 少妇一区二区三区久久久| 国产污污污污网站在线| 免费成人av中文字幕| 91人妻精品一区二区在线看| 亚洲国产精品黑丝美女| 色哟哟国产精品入口| 成人av中文字幕一区| 日韩美av高清在线| 国产一线二线三线的区别在哪| 男人的天堂一区二区在线观看| 粗大的内捧猛烈进出爽大牛汉子| 新婚人妻聚会被中出| 97超碰国语国产97超碰| 欧美日韩亚洲国产无线码| 亚洲一区制服丝袜美腿| www日韩毛片av| 91av精品视频在线| 国产欧美精品不卡在线| 老熟妇xxxhd老熟女| 99精品国产自在现线观看| 女生被男生插的视频网站| 一区二区三区激情在线| 欧美久久久久久三级网| 精品一线二线三线日本| 欧美一区二区三区久久久aaa| 久草视频在线免播放| 久草电影免费在线观看| 国产刺激激情美女网站| 亚洲成人激情视频免费观看了| 孕妇奶水仑乱A级毛片免费看| 黄色视频在线观看高清无码| 绝色少妇高潮3在线观看| 人妻少妇一区二区三区蜜桃| 国产午夜亚洲精品麻豆| 国产乱子伦精品视频潮优女| 精品美女福利在线观看| 亚洲成人三级在线播放| 人妻少妇性色欲欧美日韩 | 家庭女教师中文字幕在线播放| 只有精品亚洲视频在线观看| 亚洲一区二区三区精品视频在线| 91啪国自产中文字幕在线| 国产白嫩美女一区二区| 亚洲美女自偷自拍11页| 人妻少妇精品久久久久久| 在线观看911精品国产| 国产麻豆剧果冻传媒app| 亚洲精品精品国产综合| 最新中文字幕乱码在线| 男人插女人视频网站| 国产精彩福利精品视频| 国产黄色大片在线免费播放| 久久久久只精品国产三级| 精品黑人巨大在线一区| 欧美黄片精彩在线免费观看| 欧美亚洲自偷自拍 在线| 天天色天天操天天透| 国产av福利网址大全| 人妻熟女中文字幕aⅴ在线| 国产黄色a级三级三级三级| 日噜噜噜夜夜噜噜噜天天噜噜噜| 中文字幕1卡1区2区3区| 亚洲男人在线天堂网| av天堂资源最新版在线看| 女蜜桃臀紧身瑜伽裤| 日韩成人综艺在线播放| 91国产资源在线视频| 91人妻精品一区二区在线看| 免费费一级特黄真人片| 在线观看视频网站麻豆| 中文字幕日韩精品就在这里| 日韩在线中文字幕色| 韩国亚洲欧美超一级在线播放视频| 精品一线二线三线日本| 99久久成人日韩欧美精品| 免费国产性生活视频| 少妇人妻真实精品视频| 少妇与子乱在线观看| 国产亚洲欧美视频网站| av大全在线播放免费| av天堂资源最新版在线看| 一区二区三区另类在线| 大屁股肉感人妻中文字幕在线| 狠狠躁狠狠爱网站视频| 免费黄高清无码国产| 精品美女福利在线观看| 日本美女成人在线视频| 亚洲少妇高潮免费观看| 福利午夜视频在线观看| 天天日天天日天天擦| 天天操天天射天天操天天天| 99久久久无码国产精品性出奶水| 中文字幕国产专区欧美激情| 成人福利视频免费在线| av天堂加勒比在线| 精品久久久久久久久久久a√国产| 精品人妻伦一二三区久| 自拍偷拍亚洲精品第2页| 超级福利视频在线观看| 91国偷自产一区二区三区精品| 91精品免费久久久久久| gav成人免费播放| 精品一区二区三区三区88| 一级黄色片夫妻性生活| 免费岛国喷水视频在线观看| 亚洲综合乱码一区二区| 亚洲日本一区二区久久久精品| 欧美怡红院视频在线观看| 午夜精品福利一区二区三区p| av手机在线观播放网站| a v欧美一区=区三区| 97超碰免费在线视频| 最新国产精品网址在线观看| 视频二区在线视频观看| 中文字幕国产专区欧美激情| 97国产精品97久久| 91久久人澡人人添人人爽乱| 红杏久久av人妻一区| 黄色片黄色片wyaa| 色综合久久五月色婷婷综合| 男人在床上插女人视频| 中文字幕在线乱码一区二区 | 男人和女人激情视频| 中文字幕高清在线免费播放| 精品91自产拍在线观看一区| 午夜激情高清在线观看| 天堂av狠狠操蜜桃| 亚洲av色图18p| 高清成人av一区三区| 成人资源在线观看免费官网| 亚洲欧美成人综合视频| 国产第一美女一区二区三区四区| 色哟哟国产精品入口| av中文字幕在线观看第三页| 青青社区2国产视频| 亚洲一区二区激情在线| 精品人妻伦一二三区久| 亚洲特黄aaaa片| 香港一级特黄大片在线播放| 福利午夜视频在线观看| 中文字幕免费福利视频6| 最新97国产在线视频| 天天色天天操天天透| 人妻丝袜榨强中文字幕| 精品91自产拍在线观看一区| japanese日本熟妇另类| 亚洲视频在线视频看视频在线| 任你操视频免费在线观看| 在线国产日韩欧美视频| 国产视频一区二区午夜| 91精品一区二区三区站长推荐| 久久精品久久精品亚洲人| 亚洲综合乱码一区二区| 国产精品自拍在线视频| 后入美女人妻高清在线| 国产精品污污污久久| 午夜免费观看精品视频| 成人激情文学网人妻| 成年人中文字幕在线观看| 青青尤物在线观看视频网站| yy96视频在线观看| 91试看福利一分钟| 亚洲精品无码色午夜福利理论片| 97人妻无码AV碰碰视频| 日韩精品电影亚洲一区| 国产露脸对白在线观看| 久久尻中国美女视频| 久草电影免费在线观看| 天天射夜夜操综合网| 韩国亚洲欧美超一级在线播放视频| 人人妻人人爽人人添夜| 三级等保密码要求条款| 在线观看视频 你懂的| 亚洲av色香蕉一区二区三区| 国产乱子伦一二三区| 阿v天堂2014 一区亚洲| 午夜在线观看岛国av,com| 又黄又刺激的午夜小视频| 免费在线黄色观看网站| 男人天堂av天天操| 不戴胸罩引我诱的隔壁的人妻| 人妻激情图片视频小说| 日韩精品中文字幕福利| 亚洲免费福利一区二区三区| 日韩欧美高清免费在线| 男人和女人激情视频| 青青青青青青青青青国产精品视频| 午夜福利资源综合激情午夜福利资 | 边摸边做超爽毛片18禁色戒| 在线观看的a站 最新| 超级碰碰在线视频免费观看| 不卡一区一区三区在线| 视频一区二区综合精品| 精品人妻伦一二三区久| 91免费福利网91麻豆国产精品 | 91片黄在线观看喷潮| 天堂av在线最新版在线| 亚洲欧美自拍另类图片| 久久三久久三久久三久久| 水蜜桃国产一区二区三区| 中国黄色av一级片| 99久久99久国产黄毛片| 欧美国产亚洲中英文字幕| 午夜精品福利一区二区三区p | 成人精品在线观看视频| 欧美视频综合第一页| 色综合天天综合网国产成人| 51精品视频免费在线观看| 又大又湿又爽又紧A视频| 水蜜桃一区二区三区在线观看视频 | 91‖亚洲‖国产熟女| 国产熟妇人妻ⅹxxxx麻豆| 18禁精品网站久久| 久久久久久9999久久久久| 啪啪啪18禁一区二区三区| 在线视频精品你懂的| 99精品国产免费久久| 久久99久久99精品影院| 亚洲人成精品久久久久久久| 亚洲在线免费h观看网站| 亚洲欧美另类手机在线| 99热久久这里只有精品| 色偷偷伊人大杳蕉综合网| 免费大片在线观看视频网站| 青青尤物在线观看视频网站| 日韩一个色综合导航| 国产视频一区在线观看| 66久久久久久久久久久| 一区二区视频视频视频| 99精品久久久久久久91蜜桃| 巨乳人妻日下部加奈被邻居中出| 黑人性生活视频免费看| 在线国产中文字幕视频| 午夜在线一区二区免费| 亚洲在线一区二区欧美| 蜜臀成人av在线播放| 国内自拍第一页在线观看| 亚洲视频乱码在线观看| 亚洲 图片 欧美 图片| 亚洲国际青青操综合网站| 日本一道二三区视频久久| 亚洲精品精品国产综合| 在线视频免费观看网| 2018最新中文字幕在线观看| 亚洲护士一区二区三区| 久久久久久9999久久久久| 最新欧美一二三视频| av在线观看网址av| 欧美激情精品在线观看| 1000小视频在线| 国产成人自拍视频在线免费观看 | 加勒比视频在线免费观看| av老司机精品在线观看| 91免费观看国产免费| 青青操免费日综合视频观看| 人妻最新视频在线免费观看| 欧美美女人体视频一区| 男生舔女生逼逼视频| 91久久综合男人天堂| 国产一区av澳门在线观看| 亚洲欧美自拍另类图片| 亚洲免费va在线播放| 中文字幕在线永久免费播放| 亚洲成人av一区久久| 女警官打开双腿沦为性奴| 亚洲 清纯 国产com| 一区二区三区久久久91| 18禁无翼鸟成人在线| 欧美中文字幕一区最新网址| 真实国模和老外性视频| 中文字幕在线免费第一页| 亚洲男人让女人爽的视频| 免费在线观看视频啪啪| 天天夜天天日天天日| 国产在线91观看免费观看| 久久这里只有精品热视频| 又大又湿又爽又紧A视频| 在线不卡成人黄色精品| 绝色少妇高潮3在线观看| 天天操天天插天天色| 国产极品美女久久久久久| 老鸭窝日韩精品视频观看| 国产日韩精品免费在线| 国产又粗又硬又猛的毛片视频| 久久精品亚洲成在人线a| 57pao国产一区二区| 97精品综合久久在线| 亚洲国产精品久久久久久6| 国产又粗又硬又大视频| 欧亚日韩一区二区三区观看视频| 色哟哟国产精品入口| 日韩精品中文字幕播放| 国产精彩福利精品视频| 欧美成人综合色在线噜噜| 在线免费91激情四射| 日韩美女搞黄视频免费| 天天射夜夜操综合网| 在线免费观看黄页视频| 欧美日韩中文字幕欧美| 综合激情网激情五月五月婷婷| 又大又湿又爽又紧A视频| 韩国一级特黄大片做受| 国产高清精品极品美女| 1000部国产精品成人观看视频| 欧美一区二区三区高清不卡tv| 欧美精品黑人性xxxx| 亚洲一级av大片免费观看| 亚洲国产欧美一区二区三区久久| 亚洲熟妇久久无码精品| 精品黑人巨大在线一区| 午夜在线观看一区视频| 亚洲一区制服丝袜美腿| 不卡一不卡二不卡三| 红杏久久av人妻一区| 国产性生活中老年人视频网站| 日本最新一二三区不卡在线| 80电影天堂网官网| 天天干天天插天天谢| 91福利在线视频免费观看| 国产一级精品综合av| 国产+亚洲+欧美+另类| 亚洲综合图片20p| 亚洲偷自拍高清视频| 水蜜桃国产一区二区三区| 夜鲁夜鲁狠鲁天天在线| 水蜜桃一区二区三区在线观看视频| 免费在线看的黄片视频| 99热碰碰热精品a中文| av中文字幕福利网| 内射久久久久综合网| 中文字幕AV在线免费看 | 黄色片一级美女黄色片| 老司机99精品视频在线观看| 国产亚洲欧美45p| 美女视频福利免费看| 亚洲综合色在线免费观看| 欧洲欧美日韩国产在线| 亚洲一级av大片免费观看| 任你操任你干精品在线视频| 狠狠躁夜夜躁人人爽天天天天97| 亚欧在线视频你懂的| 免费男阳茎伸入女阳道视频| 国产午夜激情福利小视频在线| 国产日韩欧美视频在线导航 | 亚洲 欧美 自拍 偷拍 在线| 亚洲2021av天堂| 天天插天天色天天日| 97色视频在线观看| 999九九久久久精品| 久草视频福利在线首页| 97a片免费在线观看| 国产亚洲视频在线二区| 黄色三级网站免费下载| 天堂av中文在线最新版| 老司机你懂得福利视频| 大香蕉玖玖一区2区| 精品国产午夜视频一区二区| 天天操天天干天天日狠狠插| 999久久久久999| 18禁美女黄网站色大片下载| 又色又爽又黄又刺激av网站| 人人妻人人澡欧美91精品| 偷拍自拍亚洲视频在线观看| 亚洲精品ww久久久久久| 玖玖一区二区在线观看| 99精品免费久久久久久久久a| 国产中文字幕四区在线观看| 久久久久久久精品成人热| 免费在线看的黄网站| 水蜜桃国产一区二区三区| 国产精品成人xxxx| 2022国产综合在线干| 国产在线91观看免费观看| 啊用力插好舒服视频| 可以免费看的www视频你懂的| 欧美80老妇人性视频| 久草电影免费在线观看| 无忧传媒在线观看视频| 日韩欧美高清免费在线| 亚洲国产精品久久久久蜜桃| 99久久成人日韩欧美精品| 成人sm视频在线观看| 在线视频这里只有精品自拍| 亚洲图片欧美校园春色| 91精品免费久久久久久| 综合激情网激情五月五月婷婷| 精品久久婷婷免费视频| 青青草精品在线视频观看| 亚洲图片欧美校园春色| 国产精品久久久久网| 欧美viboss性丰满| 天天色天天舔天天射天天爽| 亚洲狠狠婷婷综合久久app| 淫秽激情视频免费观看| 在线免费观看视频一二区| 日韩美av高清在线| 国产之丝袜脚在线一区二区三区| 99精品免费久久久久久久久a| 国产97在线视频观看| 在线视频国产欧美日韩| 91人妻精品一区二区在线看 | 国产综合精品久久久久蜜臀| 国产免费av一区二区凹凸四季| 青青擦在线视频国产在线| 亚洲av日韩高清hd| 国产综合精品久久久久蜜臀| 日本五十路熟新垣里子| 和邻居少妇愉情中文字幕| 丰满熟女午夜福利视频| 天天躁日日躁狠狠躁av麻豆| 欧美第一页在线免费观看视频| 啪啪啪啪啪啪啪啪av| 国产大鸡巴大鸡巴操小骚逼小骚逼| 绝色少妇高潮3在线观看| 午夜美女少妇福利视频| 又黄又刺激的午夜小视频| 亚洲国产在线精品国偷产拍| 最近的中文字幕在线mv视频| 日本人妻欲求不满中文字幕| 亚洲 中文字幕在线 日韩| 国产麻豆乱子伦午夜视频观看| 国产无遮挡裸体免费直播视频| 欧美视频不卡一区四区| 亚洲精品午夜aaa久久| 午夜精品一区二区三区4| 五十路息与子猛烈交尾视频 | 国产精品3p和黑人大战| 51国产成人精品视频| 久久久久久97三级| 青青热久免费精品视频在线观看 | 亚洲人妻30pwc| 黄工厂精品视频在线观看| 美味人妻2在线播放| 极品粉嫩小泬白浆20p主播| 亚洲1区2区3区精华液| 在线国产日韩欧美视频| 精品亚洲中文字幕av| 硬鸡巴动态操女人逼视频| 伊人开心婷婷国产av| 成人蜜臀午夜久久一区| 免费黄高清无码国产| 欧美黄片精彩在线免费观看| 黄色在线观看免费观看在线| 婷婷综合蜜桃av在线| 国产高清女主播在线| 99热久久这里只有精品| 国产亚洲欧美45p| 91麻豆精品久久久久| 日本韩国亚洲综合日韩欧美国产| 亚洲成人国产综合一区| 人人妻人人澡欧美91精品| 亚洲av日韩av第一区二区三区| 视频 国产 精品 熟女 | 性感美女高潮视频久久久| 黄色成人在线中文字幕| 狠狠躁夜夜躁人人爽天天天天97| 久碰精品少妇中文字幕av| 天天日天天干天天搡| 经典av尤物一区二区| 18禁美女羞羞免费网站| 亚洲高清国产一区二区三区| 九九视频在线精品播放| 一区二区三区欧美日韩高清播放| 欧美一级片免费在线成人观看| av中文字幕在线观看第三页| 啪啪啪操人视频在线播放| 黑人性生活视频免费看| 久久久久久久久久久免费女人| av天堂加勒比在线| 国产成人午夜精品福利| 欧美精品国产综合久久| 93视频一区二区三区| 黄色视频在线观看高清无码| 国产一区成人在线观看视频| 91九色porny国产在线| 婷婷久久久综合中文字幕| 欧美va不卡视频在线观看| 美女操逼免费短视频下载链接| 中文人妻AV久久人妻水| 日本熟妇喷水xxx| 大学生A级毛片免费视频| 国产精品亚洲在线观看| 91大屁股国产一区二区| 天天日天天干天天搡| 久久精品在线观看一区二区| 99亚洲美女一区二区三区| 黄色的网站在线免费看| 扒开让我视频在线观看| 五月精品丁香久久久久福利社| 欧美在线精品一区二区三区视频| 狠狠鲁狠狠操天天晚上干干| 成人蜜桃美臀九一一区二区三区| 99re6热在线精品| 抽查舔水白紧大视频| 边摸边做超爽毛片18禁色戒| 天天操夜夜操天天操天天操| 夜色17s精品人妻熟女| 狍和女人的王色毛片| 一级黄色片夫妻性生活| 激情人妻校园春色亚洲欧美| 亚洲午夜电影之麻豆| 欧美精品黑人性xxxx| 亚洲免费国产在线日韩| 视频 国产 精品 熟女 | 一区二区三区综合视频| 丝袜长腿第一页在线| 国产欧美精品免费观看视频| 中文字日产幕乱六区蜜桃| 巨乳人妻日下部加奈被邻居中出 | 日韩欧美一级黄片亚洲| 51国产偷自视频在线播放| 不卡一不卡二不卡三| www天堂在线久久| 蜜桃色婷婷久久久福利在线| 好男人视频在线免费观看网站| asmr福利视频在线观看| 男人的网址你懂的亚洲欧洲av| 日韩北条麻妃一区在线| 天天通天天透天天插| 中文字幕av熟女人妻| 一区二区三区久久中文字幕| 视频一区二区三区高清在线| 日本熟妇一区二区x x| 99久久久无码国产精品性出奶水| 含骚鸡巴玩逼逼视频| 人妻在线精品录音叫床| 天天干天天操天天扣| 亚洲一区久久免费视频| 国产精品人妻66p| av中文字幕在线观看第三页| 日本午夜久久女同精女女| 日辽宁老肥女在线观看视频| 亚洲国产欧美一区二区三区…| 欧美在线偷拍视频免费看| 国产夫妻视频在线观看免费 | 亚洲高清国产拍青青草原| 欧美一级视频一区二区| 偷拍自拍视频图片免费| 少妇露脸深喉口爆吞精| 日本性感美女视频网站| 日本熟妇一区二区x x| 人妻丝袜精品中文字幕| 动漫av网站18禁| 在线视频这里只有精品自拍| 天天日天天玩天天摸| 成年人该看的视频黄免费| 亚洲另类综合一区小说| 亚洲最大免费在线观看| 亚洲激情唯美亚洲激情图片| 11久久久久久久久久久| 福利视频一区二区三区筱慧| mm131美女午夜爽爽爽| 大屁股肉感人妻中文字幕在线| 看一级特黄a大片日本片黑人| 久久国产精品精品美女| 国产亚洲成人免费在线观看| 夜夜骑夜夜操夜夜奸| 新婚人妻聚会被中出| 国产九色91在线视频| 自拍偷区二区三区麻豆| 91试看福利一分钟| 日本18禁久久久久久| 激情五月婷婷综合色啪| 国产日韩av一区二区在线| 天天干天天操天天爽天天摸| 亚洲综合另类精品小说| 91国产资源在线视频| 99精品视频之69精品视频| 高潮喷水在线视频观看| 在线播放国产黄色av| 日本一区二区三区免费小视频| 蜜桃视频17c在线一区二区| 国产超码片内射在线| 亚洲成人熟妇一区二区三区 | 黑人借宿ntr人妻的沦陷2| 3344免费偷拍视频| 亚洲欧美久久久久久久久| av视屏免费在线播放| 中文字幕av熟女人妻| 男人操女人的逼免费视频| 一区二区三区久久久91| 天天做天天爽夜夜做少妇| 亚洲美女自偷自拍11页| 色综合久久无码中文字幕波多| 天堂av在线官网中文| 日韩美女精品视频在线观看网站 | 亚洲第一黄色在线观看| 国产亚洲视频在线二区| 97人人妻人人澡人人爽人人精品 | 99精品国产免费久久| 一区二区免费高清黄色视频| 粉嫩av蜜乳av蜜臀| 青青青青青青青青青青草青青| 日韩a级黄色小视频| 国产精品久久久黄网站| 国产午夜福利av导航| 日本在线一区二区不卡视频| 熟妇一区二区三区高清版| 欧美特级特黄a大片免费| 熟女人妻在线中出观看完整版| 中文人妻AV久久人妻水| 中文 成人 在线 视频| 懂色av之国产精品| 亚洲天堂精品久久久| 99精品视频在线观看婷婷| 一区二区三区日韩久久| 国产一级精品综合av| 91精品国产黑色丝袜| 成人乱码一区二区三区av| 亚洲精品 日韩电影| 亚洲成人情色电影在线观看| 久久丁香婷婷六月天| 免费黄高清无码国产| 超碰在线观看免费在线观看| 最新激情中文字幕视频| 97色视频在线观看| 中文字幕av一区在线观看| 91www一区二区三区| 久久久久久性虐视频| 精品成人啪啪18免费蜜臀| 91国内视频在线观看| 蜜桃精品久久久一区二区| 国产三级片久久久久久久| 美女大bxxxx内射| 99精品免费久久久久久久久a| 亚洲精品国偷自产在线观看蜜桃 | 福利在线视频网址导航| 亚洲精品色在线观看视频| 亚洲人妻30pwc| 国产精品黄片免费在线观看| 免费一级特黄特色大片在线观看 | gav成人免费播放| 91极品新人『兔兔』精品新作| 国产精品中文av在线播放| 2025年人妻中文字幕乱码在线| 老司机福利精品免费视频一区二区| 红桃av成人在线观看| 天天干夜夜操天天舔| 亚洲在线一区二区欧美| 亚洲一级av大片免费观看| 国产乱子伦精品视频潮优女| 日韩美在线观看视频黄| 亚洲一区自拍高清免费视频| 婷婷色国产黑丝少妇勾搭AV | 免费看美女脱光衣服的视频| 国产janese在线播放| 农村胖女人操逼视频| 成人高清在线观看视频| 97超碰最新免费在线观看| 欧美伊人久久大香线蕉综合| 国产欧美精品一区二区高清| 丰满少妇翘臀后进式| 久久麻豆亚洲精品av| 日本精品一区二区三区在线视频。| 天堂av在线官网中文| 欧美亚洲一二三区蜜臀| 伊人日日日草夜夜草| 专门看国产熟妇的网站| 亚洲卡1卡2卡三卡四老狼| 日本真人性生活视频免费看| 成年人中文字幕在线观看| 久久永久免费精品人妻专区| 国产白袜脚足J棉袜在线观看| 99热这里只有国产精品6| 国产精品人妻66p| 99精品视频之69精品视频 | gay gay男男瑟瑟在线网站| xxx日本hd高清| 午夜精品九一唐人麻豆嫩草成人| 岛国毛片视频免费在线观看| 日本裸体熟妇区二区欧美| 午夜免费体验区在线观看| 曰本无码人妻丰满熟妇啪啪| 黄色大片男人操女人逼| 欧美在线一二三视频| 亚洲av男人的天堂你懂的| 天天操夜夜操天天操天天操| 夫妻在线观看视频91| 欧美精品亚洲精品日韩在线| 农村胖女人操逼视频| 国产伊人免费在线播放| 三级等保密码要求条款| 精品一线二线三线日本| 成人乱码一区二区三区av| 在线观看免费av网址大全| 国产乱子伦精品视频潮优女| 色综合久久无码中文字幕波多| 久久精品亚洲国产av香蕉| 日本脱亚入欧是指什么| 9国产精品久久久久老师| 一个人免费在线观看ww视频| 人人超碰国字幕观看97| 大尺度激情四射网站| 少妇露脸深喉口爆吞精| 欧美怡红院视频在线观看| 天天干天天搞天天摸| 香蕉aⅴ一区二区三区| 亚洲在线一区二区欧美| 玖玖一区二区在线观看| 都市激情校园春色狠狠| 天天艹天天干天天操| 欧美日韩高清午夜蜜桃大香蕉| 日本丰满熟妇大屁股久久| yellow在线播放av啊啊啊| 一区二区三区视频,福利一区二区| 国产九色91在线观看精品| 最新日韩av传媒在线| 人人爱人人妻人人澡39| 中文字幕人妻被公上司喝醉在线| 亚洲综合另类精品小说| 蜜桃视频17c在线一区二区| 九九热99视频在线观看97| 精品人妻伦一二三区久| 成人sm视频在线观看| 日本一区精品视频在线观看| 日韩欧美国产一区ab| 久久精品在线观看一区二区| 无忧传媒在线观看视频| 黑人性生活视频免费看| av在线shipin| 不卡一区一区三区在线| 日韩美在线观看视频黄| 青草久久视频在线观看| 国产精品伦理片一区二区| 亚洲少妇人妻无码精品| 一本一本久久a久久精品综合不卡| 日本最新一二三区不卡在线 | 亚洲欧美清纯唯美另类| 夜鲁夜鲁狠鲁天天在线| 最近中文2019年在线看| 国产成人无码精品久久久电影 | 欧美成人小视频在线免费看| 伊人日日日草夜夜草| 中文字幕在线视频一区二区三区| 熟女视频一区,二区,三区| 亚洲另类在线免费观看| 日本女大学生的黄色小视频| 免费观看污视频网站| 亚洲精品三级av在线免费观看| 不卡一区一区三区在线| 亚洲欧美成人综合在线观看| 综合精品久久久久97| 日韩美女福利视频网| 2020中文字幕在线播放| 在线视频免费观看网| 亚洲综合在线观看免费| 精品av国产一区二区三区四区| 日韩一个色综合导航| 中文亚洲欧美日韩无线码| 青青青青视频在线播放| 可以在线观看的av中文字幕| 毛茸茸的大外阴中国视频| 精品亚洲中文字幕av| 一级黄色片夫妻性生活| 经典av尤物一区二区| 亚洲av无码成人精品区辽| 精品视频中文字幕在线播放| 中文字幕av男人天堂| 青春草视频在线免费播放| 国产av自拍偷拍盛宴| 一区二区在线视频中文字幕| 一级黄片久久久久久久久| 午夜极品美女福利视频| 日本裸体熟妇区二区欧美| 制丝袜业一区二区三区| av中文字幕在线观看第三页| 婷婷午夜国产精品久久久| 红杏久久av人妻一区| 亚洲男人让女人爽的视频| av中文字幕在线导航| av在线shipin| 国产精品久久久黄网站| 91精品国产91久久自产久强| 国产高清精品一区二区三区| 中文字幕一区二区三区人妻大片| 福利视频一区二区三区筱慧| 久久综合老鸭窝色综合久久| 亚洲 色图 偷拍 欧美| 都市家庭人妻激情自拍视频| 黄色成人在线中文字幕| 日本人妻精品久久久久久| 天天躁夜夜躁日日躁a麻豆| 四川乱子伦视频国产vip| 日本丰满熟妇大屁股久久| 最新97国产在线视频| 黄色中文字幕在线播放| 1024久久国产精品| 自拍 日韩 欧美激情| 在线免费观看日本片| 成人影片高清在线观看| 51精品视频免费在线观看| 噜噜色噜噜噜久色超碰| 国产欧美日韩第三页| 欧美性受xx黑人性猛交| 阴茎插到阴道里面的视频| 绝色少妇高潮3在线观看| 亚洲国际青青操综合网站| 日韩美女综合中文字幕pp| 偷拍自拍亚洲美腿丝袜| 青青草国内在线视频精选| 少妇露脸深喉口爆吞精| 国产三级精品三级在线不卡| 久草视频在线免播放| jiuse91九色视频| 夜夜骑夜夜操夜夜奸| 美女少妇亚洲精选av| 伊人网中文字幕在线视频| 亚洲av一妻不如妾| 欧美精品激情在线最新观看视频| 成年美女黄网站18禁久久| 80电影天堂网官网| 一区二区三区四区五区性感视频| 深田咏美亚洲一区二区| 在线不卡成人黄色精品| 午夜毛片不卡免费观看视频| 日日夜夜大香蕉伊人| 久草福利电影在线观看| 真实国模和老外性视频| 国产精品久久久久久久精品视频| 亚洲特黄aaaa片| 哥哥姐姐综合激情小说| 啪啪啪啪啪啪啪啪啪啪黄色| 欧美香蕉人妻精品一区二区| 亚洲国产在线精品国偷产拍| 888亚洲欧美国产va在线播放| 黄色资源视频网站日韩| 视频一区二区在线免费播放| 成人高清在线观看视频| 精品乱子伦一区二区三区免费播| 国产女人露脸高潮对白视频| 日韩av熟妇在线观看| 天天日天天干天天插舔舔| 40道精品招牌菜特色| 自拍偷拍一区二区三区图片| 小泽玛利亚视频在线观看| 视频在线亚洲一区二区| 顶级尤物粉嫩小尤物网站| 成人激情文学网人妻| 91‖亚洲‖国产熟女| tube69日本少妇| 麻豆精品成人免费视频| 免费国产性生活视频| av中文字幕福利网| 国产精品视频欧美一区二区| 亚洲无码一区在线影院| 亚洲中文字幕人妻一区| 亚洲综合色在线免费观看| 免费观看理论片完整版| 亚洲精品国品乱码久久久久| 18禁美女黄网站色大片下载| 亚洲国产精品免费在线观看| 色综合久久久久久久久中文| av老司机亚洲一区二区| 一区二区三区的久久的蜜桃的视频| 又黄又刺激的午夜小视频| 国产男女视频在线播放| 日本午夜福利免费视频| 日本最新一二三区不卡在线 | 男女啪啪视频免费在线观看 | 欧洲黄页网免费观看| 国产高清在线观看1区2区| 欧美色呦呦最新网址| 欧美美女人体视频一区| 精品久久久久久久久久中文蒉| 亚洲男人的天堂a在线| 91综合久久亚洲综合| 天天躁日日躁狠狠躁躁欧美av| 大学生A级毛片免费视频| 色婷婷六月亚洲综合香蕉| 精内国产乱码久久久久久| 92福利视频午夜1000看 | 国产美女一区在线观看| 天天日天天干天天要| 中文字幕人妻熟女在线电影| 美女被肏内射视频网站| aiss午夜免费视频| 老熟妇xxxhd老熟女| 粉嫩av蜜乳av蜜臀| 亚洲av成人免费网站| wwwxxx一级黄色片| 老司机福利精品免费视频一区二区 | 亚洲综合另类欧美久久| heyzo蜜桃熟女人妻| 亚洲天堂av最新网址| 欧美怡红院视频在线观看| 不卡一不卡二不卡三| 国产日本精品久久久久久久| huangse网站在线观看| 19一区二区三区在线播放| 亚洲精品无码久久久久不卡| 适合午夜一个人看的视频| 日韩中文字幕在线播放第二页| 天天操夜夜骑日日摸| 天天干天天操天天玩天天射| 91免费观看国产免费| 亚洲熟女久久久36d| 熟女视频一区,二区,三区| 综合激情网激情五月天| 自拍偷拍一区二区三区图片 | 天天操天天爽天天干| 蜜臀av久久久久久久| 老司机福利精品视频在线| 国产老熟女伦老熟妇ⅹ| 99久久成人日韩欧美精品| 三级等保密码要求条款| 亚洲成人情色电影在线观看| 中字幕人妻熟女人妻a62v网| 人人爽亚洲av人人爽av| 黄片大全在线观看观看| 夜女神免费福利视频| 午夜激情高清在线观看| 在线视频免费观看网| 日本少妇人妻xxxxx18| 888欧美视频在线| 99久久久无码国产精品性出奶水| 精品人妻伦一二三区久| 一区二区三区久久久91| 无码日韩人妻精品久久| 午夜91一区二区三区| 91www一区二区三区| 大鸡巴插入美女黑黑的阴毛| 日韩美av高清在线| 97年大学生大白天操逼| 97少妇精品在线观看| 亚洲视频在线观看高清| 57pao国产一区二区| 男人操女人逼逼视频网站| 国产亚洲国产av网站在线| 欧美老妇精品另类不卡片| 91精品资源免费观看| 亚洲天堂av最新网址| 91小伙伴中女熟女高潮| mm131美女午夜爽爽爽| 任我爽精品视频在线播放| 中文字幕AV在线免费看 | 亚洲综合在线视频可播放| 亚洲一级特黄特黄黄色录像片| 一级黄色av在线观看| 蜜臀av久久久久久久| 成人免费公开视频无毒 | 欧美黄片精彩在线免费观看| 91国内精品自线在拍白富美| 在线观看911精品国产| 日韩在线视频观看有码在线| 大骚逼91抽插出水视频| 午夜精品在线视频一区| lutube在线成人免费看| 黄网十四区丁香社区激情五月天| av天堂中文字幕最新| 偷青青国产精品青青在线观看 | 久久麻豆亚洲精品av| 欧美成一区二区三区四区| 老鸭窝在线观看一区| 青青草亚洲国产精品视频| 欧美日韩一级黄片免费观看| 精品成人午夜免费看| 久久这里有免费精品| 55夜色66夜色国产精品站| 一区二区三区国产精选在线播放| 久久久人妻一区二区| 综合激情网激情五月天| 中文字幕 码 在线视频| 精品首页在线观看视频| 亚洲av色图18p| 日韩成人免费电影二区| 91高清成人在线视频| 粉嫩欧美美人妻小视频| 果冻传媒av一区二区三区| 91精品国产黑色丝袜| 欧美日韩亚洲国产无线码| 在线观看欧美黄片一区二区三区| 视频久久久久久久人妻| 日韩不卡中文在线视频网站| 亚洲欧美国产麻豆综合| 极品丝袜一区二区三区| 亚洲va国产va欧美精品88| 在线国产日韩欧美视频| 久久精品国产23696| 天天做天天爽夜夜做少妇| 精品欧美一区二区vr在线观看| 99精品免费久久久久久久久a| 大香蕉大香蕉在线看| 色花堂在线av中文字幕九九| 亚洲福利天堂久久久久久| 日日爽天天干夜夜操| 国产在线91观看免费观看| 日韩熟女系列一区二区三区| 欧美亚洲少妇福利视频| 爆乳骚货内射骚货内射在线| 成人蜜臀午夜久久一区| 中国黄色av一级片| 国产麻豆乱子伦午夜视频观看| 欧亚乱色一区二区三区| 中文字幕日韩精品就在这里| 日本av在线一区二区三区| 91福利在线视频免费观看| 黄色黄色黄片78在线| 女生被男生插的视频网站| 1区2区3区不卡视频| 毛片一级完整版免费| 精品91高清在线观看| 中文字幕在线一区精品| 在线可以看的视频你懂的| 国产高清97在线观看视频| 日本午夜爽爽爽爽爽视频在线观看| 人妻3p真实偷拍一二区| 精品人妻一二三区久久| 国产chinesehd精品麻豆| 色综合久久五月色婷婷综合| 亚洲的电影一区二区三区| 在线视频自拍第三页| 黄片三级三级三级在线观看| 日本一区美女福利视频| 欧美精品黑人性xxxx| 大鸡巴后入爆操大屁股美女| 免费高清自慰一区二区三区网站 | 亚洲av午夜免费观看| 孕妇奶水仑乱A级毛片免费看| 国产精品国产三级麻豆| 国产97在线视频观看| 粉嫩小穴流水视频在线观看| 亚洲成人国产综合一区| 久久久精品精品视频视频| 精品乱子伦一区二区三区免费播| 欧美另类z0z变态| 国产一区av澳门在线观看| 亚洲一区二区三区在线高清| 最新国产亚洲精品中文在线| 国产福利在线视频一区| 国产精品欧美日韩区二区| 啪啪啪啪啪啪啪免费视频| 97超碰人人搞人人| 日韩中文字幕精品淫| 国产va精品免费观看 | 久久精品视频一区二区三区四区 | 日本少妇在线视频大香蕉在线观看| 在线观看的a站 最新| 天天操夜夜操天天操天天操 | 午夜精品一区二区三区福利视频| 午夜精品福利一区二区三区p| 亚洲 清纯 国产com| 亚国产成人精品久久久| sw137 中文字幕 在线| 中文 成人 在线 视频| 亚洲av色图18p| sw137 中文字幕 在线| 亚洲人妻30pwc| 日韩欧美国产一区不卡| 国产九色91在线视频| 超级福利视频在线观看| 精品一线二线三线日本| 国产av自拍偷拍盛宴| 日本一区美女福利视频| 特一级特级黄色网片| 天天干天天日天天谢综合156| 91福利在线视频免费观看| 激情综合治理六月婷婷| 中文字幕1卡1区2区3区| 99精品视频在线观看婷婷| 日本啪啪啪啪啪啪啪| 国产精品亚洲а∨天堂免| 精品美女久久久久久| 国产真实灌醉下药美女av福利| 一色桃子人妻一区二区三区| av天堂加勒比在线| 国产刺激激情美女网站| 亚洲精品无码色午夜福利理论片| asmr福利视频在线观看| huangse网站在线观看| 日韩中文字幕福利av| 97精品成人一区二区三区| 偷青青国产精品青青在线观看| 欧洲欧美日韩国产在线| 大陆胖女人与丈夫操b国语高清 | 成人sm视频在线观看| 国产亚洲欧美另类在线观看| 亚洲欧美清纯唯美另类| 国产高清97在线观看视频| 国产又粗又猛又爽又黄的视频美国| 国产实拍勾搭女技师av在线| 亚洲在线一区二区欧美| 中文字幕人妻被公上司喝醉在线| 99久久久无码国产精品性出奶水 | 激情五月婷婷综合色啪| 天天射,天天操,天天说| 国产激情av网站在线观看| 国产一区二区火爆视频| 婷婷色国产黑丝少妇勾搭AV| 99久久99久国产黄毛片| 亚洲一级美女啪啪啪| av一本二本在线观看| 美女福利视频网址导航| 蝴蝶伊人久久中文娱乐网| 中文字幕中文字幕人妻| 午夜精品一区二区三区4| 丁香花免费在线观看中文字幕| 亚洲国产成人av在线一区| 中文字幕第1页av一天堂网| 粉嫩av蜜乳av蜜臀| 1000部国产精品成人观看视频| 热久久只有这里有精品| 国内精品在线播放第一页| 亚洲区美熟妇久久久久| 日本性感美女写真视频| 美女操逼免费短视频下载链接| 午夜大尺度无码福利视频 | 国产精品伦理片一区二区| 伊人综合aⅴ在线网| 亚洲第17页国产精品| 国产chinesehd精品麻豆| 在线成人日韩av电影| 午夜婷婷在线观看视频| 在线观看911精品国产| 国产精品探花熟女在线观看| 亚洲欧美日韩视频免费观看| 女生被男生插的视频网站| 99国内小视频在现欢看| 国产在线拍揄自揄视频网站| 成人福利视频免费在线| 5528327男人天堂| 91人妻精品一区二区久久| www日韩a级s片av| 91老师蜜桃臀大屁股| 97小视频人妻一区二区| 日韩一区二区电国产精品| 一区二区视频在线观看视频在线| 女同性ⅹxx女同hd| 亚洲高清国产自产av| 国际av大片在线免费观看| 亚洲av男人天堂久久| 午夜久久久久久久精品熟女| 91免费放福利在线观看 | 狠狠的往里顶撞h百合| 日本阿v视频在线免费观看| 精品久久久久久久久久久a√国产 日本女大学生的黄色小视频 | 直接能看的国产av| 日韩美女综合中文字幕pp| 国产一区自拍黄视频免费观看| 亚洲免费国产在线日韩| 欧美另类z0z变态| 91精品国产91青青碰| 成人影片高清在线观看| 人人爽亚洲av人人爽av| 欧美熟妇一区二区三区仙踪林| 午夜频道成人在线91| 亚洲av琪琪男人的天堂| 75国产综合在线视频| 国产精品自拍偷拍a| 中文字幕 码 在线视频| 啊啊啊视频试看人妻| 国产露脸对白在线观看| 中文字幕国产专区欧美激情| 熟妇一区二区三区高清版| 婷婷激情四射在线观看视频| 99热碰碰热精品a中文| 天天干天天日天天谢综合156| 日韩中文字幕在线播放第二页| 日韩影片一区二区三区不卡免费| 青青草亚洲国产精品视频| 亚洲熟女久久久36d| 欧美性感尤物人妻在线免费看| 国产精品人妻一区二区三区网站| 888欧美视频在线| 18禁网站一区二区三区四区| 中文字幕 人妻精品| 视频 一区二区在线观看| 中文字幕在线欧美精品| 91老师蜜桃臀大屁股| 天天操天天弄天天射| 日本熟女50视频免费| 久草视频福利在线首页| 黄色av网站免费在线| 91精品视频在线观看免费| 久久综合老鸭窝色综合久久| 老熟妇凹凸淫老妇女av在线观看| 一区二区在线观看少妇| 蜜桃精品久久久一区二区| 欧美一区二区三区久久久aaa| 精品一区二区三四区| 免费成人va在线观看| 日本一道二三区视频久久 | 亚洲男人让女人爽的视频| 国产一区二区欧美三区| 亚洲熟女久久久36d| 日本人妻少妇18—xx| 欧美国品一二三产区区别| 欧美交性又色又爽又黄麻豆| 久久精品久久精品亚洲人| 国产日韩精品免费在线| 99热99这里精品6国产| 18禁精品网站久久| 2o22av在线视频| 人妻丝袜av在线播放网址| 亚洲 欧美 精品 激情 偷拍| 中文字幕,亚洲人妻| 国产乱子伦一二三区| av中文字幕国产在线观看| 天天日天天干天天要| 免费男阳茎伸入女阳道视频 | 国产美女午夜福利久久| 久久美欧人妻少妇一区二区三区 | 日本高清在线不卡一区二区| 日本人妻欲求不满中文字幕| 欧美成人黄片一区二区三区| 国产午夜福利av导航| 性色蜜臀av一区二区三区| 精品av久久久久久久| 久久综合老鸭窝色综合久久| 成人在线欧美日韩国产| 最新中文字幕免费视频| 色在线观看视频免费的| 欧美第一页在线免费观看视频| 天天操夜夜操天天操天天操| 操人妻嗷嗷叫视频一区二区| 国产揄拍高清国内精品对白| 亚洲欧美一卡二卡三卡| 福利国产视频在线观看| 深夜男人福利在线观看| 欧美亚洲少妇福利视频| 亚洲精品福利网站图片| 91在线视频在线精品3| 一区二区三区视频,福利一区二区| 91九色porny国产蝌蚪视频| 这里有精品成人国产99| av新中文天堂在线网址| 国产福利小视频二区| 自拍偷拍亚洲另类色图| 天堂av在线官网中文| 中文字幕在线乱码一区二区| 中文字幕视频一区二区在线观看| 99久久成人日韩欧美精品| 国产精品久久久久国产三级试频| 好吊操视频这里只有精品| 被大鸡吧操的好舒服视频免费| 视频一区 视频二区 视频| 欧美一区二区三区久久久aaa| 亚洲国产成人av在线一区| 亚洲国产精品黑丝美女| 中文 成人 在线 视频| 成人影片高清在线观看| 日本熟女50视频免费| 97色视频在线观看| 亚洲 中文 自拍 另类 欧美| 国产亚洲视频在线观看| 亚洲中文字幕乱码区| 久久久久久97三级| 亚洲视频乱码在线观看| 小泽玛利亚视频在线观看| 四虎永久在线精品免费区二区| 亚洲熟色妇av日韩熟色妇在线| 扒开腿挺进肉嫩小18禁视频| 国产精品中文av在线播放| 日韩亚洲高清在线观看| 国产综合精品久久久久蜜臀| 成年人黄视频在线观看| 日本后入视频在线观看| 亚洲国产成人无码麻豆艾秋| 啊啊好慢点插舔我逼啊啊啊视频| 欧美在线一二三视频| 亚洲欧美人精品高清| 97小视频人妻一区二区| 天天操天天干天天插| 韩国一级特黄大片做受| 精品国产成人亚洲午夜| 亚洲一区二区三区五区| 这里有精品成人国产99| 中文字幕国产专区欧美激情| 亚洲福利午夜久久久精品电影网 | 欧美亚洲免费视频观看| 国产精品三级三级三级| 少妇人妻二三区视频| 国产精品国产精品一区二区| 亚洲免费va在线播放| 国产亚洲视频在线二区| 75国产综合在线视频| 初美沙希中文字幕在线| 欧美日韩一区二区电影在线观看| 精品av国产一区二区三区四区| 老司机免费福利视频网| 国产熟妇乱妇熟色T区| 亚洲精品av在线观看| 欧美少妇性一区二区三区| 国产亚洲精品视频合集| 性欧美日本大妈母与子| 青草亚洲视频在线观看| 亚洲午夜福利中文乱码字幕| 午夜美女少妇福利视频| 天天躁夜夜躁日日躁a麻豆| 成年人午夜黄片视频资源| 99精品亚洲av无码国产另类| 91精品国产高清自在线看香蕉网| 亚洲欧洲av天堂综合| 在线观看一区二区三级| 欲乱人妻少妇在线视频裸| 啊啊好大好爽啊啊操我啊啊视频| 国产女人被做到高潮免费视频| 一区二区三区激情在线| heyzo蜜桃熟女人妻| 亚洲av男人天堂久久| 最新91精品视频在线| 欧美xxx成人在线| 51国产成人精品视频| 岳太深了紧紧的中文字幕| 国产无遮挡裸体免费直播视频| 一级黄色片夫妻性生活| 亚洲精品久久综合久| 久久综合老鸭窝色综合久久| 大黑人性xxxxbbbb| 国产亚洲欧美45p| 91极品新人『兔兔』精品新作| 青青青青青青草国产| 国产精品3p和黑人大战| 2020中文字幕在线播放| 欧美日韩人妻久久精品高清国产 | 亚洲男人在线天堂网| 亚洲自拍偷拍综合色| 日本www中文字幕| 偷拍3456eee| 中文 成人 在线 视频| 日本后入视频在线观看| 欧美色呦呦最新网址| 精品一区二区三四区| 人妻少妇精品久久久久久| 绯色av蜜臀vs少妇| 2022天天干天天操| 日韩无码国产精品强奸乱伦| av老司机精品在线观看| 国产超码片内射在线| 一区二区三区麻豆福利视频| 清纯美女在线观看国产| 岛国黄色大片在线观看| 国产无遮挡裸体免费直播视频 | 人人爽亚洲av人人爽av| 国内精品在线播放第一页| 日韩无码国产精品强奸乱伦| 国产又粗又猛又爽又黄的视频在线| 婷婷色国产黑丝少妇勾搭AV | 成人激情文学网人妻| 熟女人妻三十路四十路人妻斩| 国产高清97在线观看视频| 亚洲va天堂va国产va久| 日韩美av高清在线| 国产日韩欧美美利坚蜜臀懂色| 久久久久久九九99精品| 午夜精品福利91av| 亚洲1卡2卡三卡4卡在线观看| 日本一二三中文字幕| 国产一级精品综合av| av黄色成人在线观看| 亚洲高清国产拍青青草原| 在线免费视频 自拍| 亚洲偷自拍高清视频| 日韩精品中文字幕福利| 天天日天天做天天日天天做| 天天干天天操天天插天天日| 丰满少妇人妻xxxxx| 在线网站你懂得老司机| 精品乱子伦一区二区三区免费播| 制服丝袜在线人妻中文字幕| 亚洲一区二区三区在线高清| 韩国爱爱视频中文字幕| 天天干狠狠干天天操| 黑人巨大精品欧美视频| 亚洲免费av在线视频| 天天插天天色天天日| 国产女人叫床高潮大片视频| 日本午夜久久女同精女女| 精品91自产拍在线观看一区| 日韩精品啪啪视频一道免费| 国产高清精品极品美女| 国产黄色片蝌蚪九色91| 天天插天天狠天天操| 国产自拍黄片在线观看| 国产日韩精品一二三区久久久| 国产男女视频在线播放| 天天操天天操天天碰| 国产亚洲天堂天天一区| 黄色录像鸡巴插进去| 99国内小视频在现欢看| 国产精品系列在线观看一区二区| 国产三级片久久久久久久| 黄色资源视频网站日韩| 成人国产小视频在线观看| 成年人黄视频在线观看| 午夜精品在线视频一区| 亚洲成人熟妇一区二区三区| 国产高清在线在线视频| 日韩不卡中文在线视频网站| 亚洲区美熟妇久久久久| 四川五十路熟女av| 国产黄色片在线收看| 做爰视频毛片下载蜜桃视频1| 亚洲色偷偷综合亚洲AV伊人| 日韩北条麻妃一区在线| aiss午夜免费视频| 日本脱亚入欧是指什么| 2022国产综合在线干| 国产高潮无码喷水AV片在线观看| 97a片免费在线观看| 精品久久久久久久久久中文蒉| 青青青青草手机在线视频免费看| 日韩欧美高清免费在线| 亚洲欧洲av天堂综合| 日日爽天天干夜夜操| 黄片大全在线观看观看| 9l人妻人人爽人人爽| 国产中文精品在线观看| av乱码一区二区三区| 日本少妇高清视频xxxxx| 动漫精品视频在线观看| 亚洲av人人澡人人爽人人爱| 中国老熟女偷拍第一页| 国产日韩欧美视频在线导航| 亚洲成人线上免费视频观看| 欧美精产国品一二三产品区别大吗| 性生活第二下硬不起来| 免费黄页网站4188| jiujiure精品视频在线| av成人在线观看一区| 亚洲精品三级av在线免费观看| 欧美精品久久久久久影院| 日韩不卡中文在线视频网站| av新中文天堂在线网址| 亚洲成人av一区久久| gogo国模私拍视频| 国产91久久精品一区二区字幕| 欧美日韩一区二区电影在线观看| 77久久久久国产精产品| 最新欧美一二三视频| 19一区二区三区在线播放| 国产精品手机在线看片| 国产麻豆剧传媒精品国产av蜜桃| 九色视频在线观看免费| 97人人模人人爽人人喊| 黄色在线观看免费观看在线| 4个黑人操素人视频网站精品91| 天美传媒mv视频在线观看| 精品老妇女久久9g国产| 亚洲精品成人网久久久久久小说 | 深田咏美亚洲一区二区| 国产福利小视频二区| 天天日天天玩天天摸| 欧美一区二区三区高清不卡tv| 18禁美女黄网站色大片下载| 香蕉91一区二区三区| 大鸡吧插入女阴道黄色片| 午夜精品一区二区三区更新| 一区二区熟女人妻视频| 国产又粗又硬又猛的毛片视频| 成人乱码一区二区三区av| 国产精品一区二区三区蜜臀av| 午夜精品在线视频一区| 天天操天天干天天艹| 亚洲国际青青操综合网站| 久久久久久99国产精品| 在线可以看的视频你懂的| 1769国产精品视频免费观看| weyvv5国产成人精品的视频| 国产精品亚洲а∨天堂免| 亚洲午夜福利中文乱码字幕| 99精品视频在线观看婷婷| 日本av在线一区二区三区| 欧美精品免费aaaaaa| 91免费福利网91麻豆国产精品| 国产精品三级三级三级| 亚洲人妻30pwc| 中国黄片视频一区91| 午夜激情高清在线观看| 91人妻精品一区二区在线看| 18禁精品网站久久| 欧美日韩情色在线观看| caoporm超碰国产| 亚洲欧美一卡二卡三卡| 97色视频在线观看| 色噜噜噜噜18禁止观看| 亚洲高清国产自产av| 抽查舔水白紧大视频| 538精品在线观看视频| 久久精品国产999| 色偷偷伊人大杳蕉综合网| 亚洲日本一区二区三区 | 综合页自拍视频在线播放| 国产白嫩美女一区二区| 国产成人自拍视频播放| 天天日天天敢天天干| 一二三区在线观看视频| 欧美亚洲偷拍自拍色图| 伊人开心婷婷国产av| 98精产国品一二三产区区别| 亚洲一区二区三区久久午夜| 免费成人va在线观看| 日韩美av高清在线| 国产91精品拍在线观看| 亚洲欧美一卡二卡三卡| 亚洲 中文 自拍 另类 欧美| 国产精品久久久久久久女人18| 黑人解禁人妻叶爱071| 大黑人性xxxxbbbb| 天天躁夜夜躁日日躁a麻豆| 六月婷婷激情一区二区三区| 中文字幕第三十八页久久| 亚洲1卡2卡三卡4卡在线观看 | 性感美女诱惑福利视频| 偷拍自拍亚洲美腿丝袜| jiujiure精品视频在线| 欧美日韩精品永久免费网址| 麻豆精品成人免费视频| 日本最新一二三区不卡在线| jul—619中文字幕在线| 婷婷色中文亚洲网68| 亚洲激情,偷拍视频| 在线不卡成人黄色精品| 2018最新中文字幕在线观看| av视屏免费在线播放| 色婷婷久久久久swag精品| 亚洲人一区二区中文字幕| 大白屁股精品视频国产| 天天日天天添天天爽| 亚洲av一妻不如妾| 亚洲1069综合男同| 亚洲午夜在线视频福利| 3337p日本欧洲大胆色噜噜| 精品一区二区三区午夜| 性生活第二下硬不起来| 三上悠亚和黑人665番号| 成人免费毛片aaaa| 国产精品人妻熟女毛片av久| 人妻av无码专区久久绿巨人| 成人久久精品一区二区三区| 天堂中文字幕翔田av| 快点插进来操我逼啊视频| 日韩精品中文字幕在线| 午夜毛片不卡免费观看视频| 91精品国产观看免费| 超碰中文字幕免费观看| 夜夜嗨av蜜臀av| 又色又爽又黄又刺激av网站| 久久人人做人人妻人人玩精品vr| 国产精品一区二区久久久av| 99热这里只有精品中文| 国产熟妇人妻ⅹxxxx麻豆| 国产乱子伦一二三区| 97人人模人人爽人人喊| av一区二区三区人妻| 欧美精品资源在线观看| 97精品综合久久在线| 国产a级毛久久久久精品| 最新黄色av网站在线观看| 国产大学生援交正在播放| 久久机热/这里只有| 大鸡吧插逼逼视频免费看| 亚洲成高清a人片在线观看| 成人亚洲精品国产精品| 这里只有精品双飞在线播放| 中文字幕在线观看极品视频| 日本高清成人一区二区三区| 精品久久久久久久久久久99| 国产亚洲精品欧洲在线观看| 五月婷婷在线观看视频免费| chinese国产盗摄一区二区| 久久久麻豆精亚洲av麻花| 亚洲嫩模一区二区三区| 国产欧美日韩在线观看不卡| 成人乱码一区二区三区av| 天天色天天操天天舔| 午夜久久久久久久精品熟女| 国产在线观看黄色视频| 欧美亚洲一二三区蜜臀| 绝顶痉挛大潮喷高潮无码 | 熟女妇女老妇一二三区| 在线国产日韩欧美视频| 中文字幕综合一区二区| 视频在线免费观看你懂得| 中文字幕在线永久免费播放| 综合精品久久久久97| 亚洲午夜伦理视频在线| 999久久久久999| 久久久人妻一区二区| 中文字幕综合一区二区| 日本一区美女福利视频| 精品久久久久久高潮| 中文字幕奴隷色的舞台50| 宅男噜噜噜666国产| 一个人免费在线观看ww视频 | 天天日天天日天天擦| 精品老妇女久久9g国产| 香蕉片在线观看av| 91国产在线免费播放| 任我爽精品视频在线播放| 大香蕉大香蕉大香蕉大香蕉大香蕉| 性色蜜臀av一区二区三区| 亚洲免费av在线视频| 天天艹天天干天天操| 91人妻精品一区二区在线看| 久久久精品欧洲亚洲av| 五色婷婷综合狠狠爱| 六月婷婷激情一区二区三区| 好了av中文字幕在线| 综合色区亚洲熟妇shxstz| 国产男女视频在线播放| 一区二区三区四区视频在线播放 | 亚洲av日韩av第一区二区三区| 无码中文字幕波多野不卡| 熟女少妇激情五十路| 肏插流水妹子在线乐播下载| 97瑟瑟超碰在线香蕉| av中文字幕国产在线观看| 亚洲欧美精品综合图片小说| 亚洲国产精品免费在线观看| 亚洲视频在线观看高清| 91福利视频免费在线观看| 很黄很污很色的午夜网站在线观看| 九色porny九色9l自拍视频| 岛国黄色大片在线观看| 美女福利视频网址导航| 专门看国产熟妇的网站| 亚洲一区二区三区在线高清 | 亚洲av成人免费网站| 老有所依在线观看完整版 | 国产又粗又硬又大视频| 人妻丝袜诱惑我操她视频| 欧美视频综合第一页| 福利视频网久久91| 国产激情av网站在线观看| av中文在线天堂精品| 2019av在线视频| 亚洲免费视频欧洲免费视频| 五月精品丁香久久久久福利社| 亚洲欧美色一区二区| 色婷婷久久久久swag精品| www日韩毛片av| 国产日韩精品电影7777| 亚洲无线观看国产高清在线| 不卡一不卡二不卡三| 亚洲 清纯 国产com| 国产精品自拍视频大全| 98视频精品在线观看| 91在线免费观看成人| 婷婷五月亚洲综合在线| 国产黄网站在线观看播放| 狠狠躁夜夜躁人人爽天天久天啪|