精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

JVM如何判斷哪些對(duì)象可以回收?

云計(jì)算 虛擬化
我們知道在JVM內(nèi)存中,實(shí)例對(duì)象基本都是存在于堆中的,那總不能無(wú)期限的往里面放吧,一些用不著的對(duì)象就需要隨時(shí)回收掉,這樣才能保證這個(gè)內(nèi)存的均衡性,才能保證JVM的正常運(yùn)行。

[[387518]]

前言

我們上一篇分析的是JVM的內(nèi)存分布,分為堆內(nèi)存、虛擬機(jī)棧、本地方法棧、方法區(qū)以及程序計(jì)數(shù)器等主要區(qū)域;各個(gè)區(qū)域的特點(diǎn)我也就不啰嗦了,想看的給大家直通車:

大魚(yú)今天在家本來(lái)是閑暇的一天,很舒適,結(jié)果這個(gè)時(shí)候,媽媽敲門(mén)進(jìn)來(lái)我房間了,咨詢我有沒(méi)有時(shí)間幫忙打掃一下父母的房間;(沒(méi)有時(shí)間

當(dāng)然我不能這么說(shuō)了,我是個(gè)炒雞孝順的好孩子,當(dāng)然了,媽媽,當(dāng)然有時(shí)間了啊,now go,我的乖乖,這么亂的屋子,不對(duì)啊,平時(shí)都是很干凈的啊(內(nèi)心想逃,后悔,想拒絕

不對(duì)啊,媽,為什么房間這么亂啊,這有的東西我也不知道要不要扔掉啊,瞬間難到我了,你們生活中有沒(méi)有遇到過(guò)類似的煩惱?

或者有沒(méi)有遇到糾結(jié)一個(gè)東西要不要扔掉的時(shí)候,那時(shí)候你是如何做的呢?

我們知道在JVM內(nèi)存中,實(shí)例對(duì)象基本都是存在于堆中的,那總不能無(wú)期限的往里面放吧,一些用不著的對(duì)象就需要隨時(shí)回收掉,這樣才能保證這個(gè)內(nèi)存的均衡性,才能保證JVM的正常運(yùn)行

那么問(wèn)題來(lái)了,JVM如何知道哪些對(duì)象該回收、哪些不該回收,就像剛才大魚(yú)不知道爸媽房間哪些東西該收拾、哪些不該收拾一個(gè)道理的,其實(shí)在JVM中是有兩種解決辦法的,分別是引用計(jì)數(shù)法和可達(dá)性分析法兩種方法,來(lái)確定這些對(duì)象之中哪些是存活著的、哪些是已經(jīng)死去的(不可能再被任何途徑使用的對(duì)象)

問(wèn)題明白了,下面就是來(lái)解決這個(gè)問(wèn)題了,沖吧,干飯人

引用計(jì)數(shù)算法

這個(gè)其實(shí)很簡(jiǎn)單了,重點(diǎn)就是計(jì)數(shù);給對(duì)象添加一個(gè)引用計(jì)數(shù)器,每引用一次,計(jì)數(shù)器加一;引用失效的時(shí)候,計(jì)數(shù)器減一;當(dāng)計(jì)數(shù)器為0 的時(shí)候,則認(rèn)為不可能被再次使用了;

我覺(jué)得不需要大魚(yú)多解釋了應(yīng)該,這個(gè)應(yīng)該及其好理解,但是,這種方法存在一個(gè)致命的問(wèn)題:無(wú)法解決對(duì)象相互循環(huán)引用的問(wèn)題

解釋下這個(gè)循環(huán)引用問(wèn)題

一起來(lái)看看下面這個(gè)例子

  1. public class ReferenceCountingGC { 
  2.  
  3.     public Object instance = null
  4.      
  5.     private byte[] bigSize = new byte[2 * 1024 * 1024]; 
  6.     public static void main(String[] args) { 
  7.         ReferenceCountingGC o1 = new ReferenceCountingGC(); 
  8.         ReferenceCountingGC o2 = new ReferenceCountingGC(); 
  9.         o1.instance = o2; 
  10.         o2.instance = o1; 
  11.         o1 = null
  12.         o2 = null
  13.         //假設(shè)在這行發(fā)生了GC,o1和o2是否被回收 
  14.         System.gc(); 
  15.     } 

上面例子中o1和o2對(duì)象都分別將對(duì)方作為自己的屬性注入,這也就是形成了所謂的循環(huán)引用;最后o1和o2對(duì)象都置為null,也就是棧中不再指向堆中的實(shí)例對(duì)象地址,但是他們還是會(huì)互相引用,所以不會(huì)被GC回收

再來(lái)看個(gè)圖解版,加深理解

剛new的o1和o2對(duì)象是這個(gè)樣子的:

分別引用了雙方之后是這樣子的狀態(tài):

最后置為null變成這個(gè)樣子的:

是的,沒(méi)錯(cuò),最后就變成了如上圖所示的尷尬境地,對(duì)象1和對(duì)象2在內(nèi)部互相引用,永遠(yuǎn)失效不了,導(dǎo)致GC通過(guò)引用計(jì)數(shù)法判斷他們的引用計(jì)數(shù)的時(shí)候,永遠(yuǎn)無(wú)法判斷為0,也就是無(wú)法回收咯,不就造成了內(nèi)存泄漏了嗎

可達(dá)性分析法

上面說(shuō)的引用計(jì)數(shù)法有缺點(diǎn),而且這個(gè)問(wèn)題還不小,所以現(xiàn)在使用這種方式來(lái)作為判斷對(duì)象是否存活標(biāo)準(zhǔn)的比較少,多數(shù)使用的是另一種,可達(dá)性分析法;

先來(lái)解釋下可達(dá)性分析法

基本思路就是通過(guò)一系列的”GC Roots“的對(duì)象作為起始點(diǎn),從這些節(jié)點(diǎn)開(kāi)始向下搜索,搜索所走過(guò)的路徑就是引用鏈,當(dāng)一個(gè)對(duì)象到GC Roots沒(méi)有任何的引用鏈可達(dá)的時(shí)候,則證明這個(gè)對(duì)象是不可用的

什么意思呢?來(lái)個(gè)白話文版本的,就是選擇一系列的基準(zhǔn)點(diǎn),這個(gè)點(diǎn)能通過(guò)引用鏈連接到的對(duì)象就被認(rèn)為是可用的,只要是無(wú)法到達(dá)的,都被認(rèn)為是不可用的,這個(gè)不可用并不一定代表對(duì)象死亡,只代表對(duì)象無(wú)法觸達(dá),無(wú)法再次引用

這就像遞歸定義的關(guān)系一樣,如果只定義了遞歸項(xiàng)而不定義初始項(xiàng)的話,關(guān)系也就無(wú)從成立,無(wú)從開(kāi)始;如果初始項(xiàng)定義漏掉了內(nèi)容的話,遞推的結(jié)果也會(huì)隨之而漏掉;

什么是GC Roots

垃圾回收時(shí),JVM會(huì)首先找到所有的GC Roots,這個(gè)過(guò)程叫做枚舉根節(jié)點(diǎn),這個(gè)過(guò)程需要暫停用戶線程,也就是stop the world;然后再?gòu)腉C Roots這些根節(jié)點(diǎn)向下搜索,可達(dá)的對(duì)象保留,不可達(dá)的便會(huì)回收掉

那么,到底什么是GC Roots呢?

GC Roots就是對(duì)象,就是JVM確定當(dāng)前絕對(duì)不能回收的對(duì)象,只有找到這種對(duì)象,后面的搜索才會(huì)有意義,不能被回收的對(duì)象所依賴的對(duì)象也就必然不能回收

GC Roots是一種特殊的對(duì)象,是Java程序在運(yùn)行過(guò)程中所必須的對(duì)象,而且必須是根對(duì)象

哪些對(duì)象可以作為GC Roots

基本可以作為GC Roots的對(duì)象基本分為兩大類:全局對(duì)象和執(zhí)行上下文;

全局對(duì)象

  • 方法區(qū)靜態(tài)屬性引用的對(duì)象:全局對(duì)象的一種,Class對(duì)象本身很難被回收,回收的條件也是很苛刻,只要Class不被回收,靜態(tài)成員不會(huì)被回收
  • 方法區(qū)常量池引用的對(duì)象:全局對(duì)象,比如字符串常量池,常量初始化之后不會(huì)再次改變

執(zhí)行上下文對(duì)象

  • 方法棧的棧幀本地變量表引用的對(duì)象:線程方法執(zhí)行的時(shí)候,會(huì)將方法打包成一個(gè)棧幀入棧執(zhí)行,方法里得到的局部變量會(huì)存放到本地變量表中,只要方法未執(zhí)行完,還沒(méi)出棧,即本地變量表還會(huì)被訪問(wèn),GC不應(yīng)該回收
  • JNI本地方法棧引用的對(duì)象:和上面同樣的道理
  • 被同步鎖持有的對(duì)象:被synchronized鎖住的對(duì)象不可回收,否則鎖就失效了,那鎖就沒(méi)意義了

不可達(dá)的對(duì)象一定會(huì)回收嗎?(緩刑階段)

其實(shí)被判定為 不可達(dá)的對(duì)象,也不一定是”非死不可“的,還有一次復(fù)活機(jī)會(huì),這時(shí)是處于緩刑階段,要真正宣告一個(gè)對(duì)象死亡,至少要經(jīng)歷再次標(biāo)記過(guò)程(其實(shí)就是finalize方法在搞怪)

我們?cè)陔娨曋幸彩墙?jīng)常見(jiàn)到類似的場(chǎng)景,一個(gè)人被判定死刑了,午時(shí)已到,立即執(zhí)行,一般這個(gè)時(shí)候就會(huì)出來(lái)一個(gè)飛刀,刀下留人,皇上有旨;也有可能是一個(gè)飛刀,直接二話不說(shuō),噼里啪啦一頓操作,把人救走,是不是很熟悉

沒(méi)錯(cuò),這個(gè)過(guò)程就是finalize的內(nèi)部過(guò)程,讓被判定死刑的犯人”重獲新生“

標(biāo)記的前提是對(duì)象在進(jìn)行可達(dá)性分析后發(fā)現(xiàn)沒(méi)有與GC Roots相連接的引用鏈

第一次標(biāo)記

篩選的條件是這個(gè)對(duì)象是否有必要執(zhí)行finalize()方法;若對(duì)象未重寫(xiě)這個(gè)方法或者已被虛擬機(jī)調(diào)用過(guò),虛擬機(jī)則認(rèn)為沒(méi)有必要執(zhí)行,對(duì)象被回收

第二次標(biāo)記

若這個(gè)對(duì)象有必要執(zhí)行finalize方法,則這個(gè)對(duì)象會(huì)被放到一個(gè)F-Queue隊(duì)列中,并在稍后由虛擬機(jī)自動(dòng)創(chuàng)建的一個(gè)低優(yōu)先級(jí)的finalizer線程去執(zhí)行;

這里的執(zhí)行指的是虛擬機(jī)會(huì)觸發(fā)這個(gè)方法,但是不保證運(yùn)行完成,這樣做的原因是這個(gè)方法執(zhí)行緩慢,也可能出現(xiàn)死循環(huán),嚴(yán)重可能會(huì)導(dǎo)致回收系統(tǒng)崩潰

finalize是對(duì)象逃脫死亡命運(yùn)的最后一次機(jī)會(huì),稍后GC會(huì)對(duì)F-Queue中的對(duì)象進(jìn)行二次標(biāo)記,如果在這里面重新和GC Roots掛上引用關(guān)系,則可以逃脫被回收的命運(yùn);否則,就肯定GG了

方法區(qū)的回收

很多人認(rèn)為方法區(qū)沒(méi)有垃圾回收,Java虛擬機(jī)規(guī)范中也確實(shí)說(shuō)過(guò)可以不要求虛擬機(jī)在方法區(qū)實(shí)現(xiàn)垃圾收集,而且在方法區(qū)中的垃圾回收的性價(jià)比一般比較低,在上面說(shuō)的堆中進(jìn)行一次垃圾回收會(huì)回收70—95的空間,而永久代中的垃圾回收的效率遠(yuǎn)低于此

方法區(qū)中的垃圾回收主要是兩部分:廢棄常量和無(wú)用的類;廢棄常量的回收和Java堆中的對(duì)象類似,不多說(shuō)了

但是判斷一個(gè)類是否是無(wú)用的類,則條件比較苛刻,需要滿足三個(gè)條件:

  • 該類的所有實(shí)例都已經(jīng)被回收,即Java堆中無(wú)該類的任何實(shí)例
  • 加載該類的ClassLoader已經(jīng)被回收
  • 該類對(duì)應(yīng)的java.lang.Class對(duì)象沒(méi)有在任何地方被引用,無(wú)法在任何地方通過(guò)反射訪問(wèn)到該類的方法

虛擬機(jī)規(guī)范中說(shuō)的是滿足上面三個(gè)條件,便可以對(duì)無(wú)用的類進(jìn)行回收,但是并不是必然回收;是否對(duì)類對(duì)類進(jìn)行回收,可以根據(jù)虛擬機(jī)提供的參數(shù)來(lái)進(jìn)行控制

在大量使用反射、動(dòng)態(tài)代理、CGLib等ByteCode框架、動(dòng)態(tài)生成JSP以及OSGI這類頻繁自定義ClassLoader的場(chǎng)景都需要虛擬機(jī)具備類的卸載功能,以保證永久代不會(huì)溢出

我愛(ài)總結(jié)

我愛(ài)總結(jié)之JVM如何判斷哪些對(duì)象可以回收,總結(jié)很重要,整理思路,記得后續(xù)的溫故而知新,GitHub地址在下面,我會(huì)把所有原創(chuàng)技術(shù)文章放到上面,持續(xù)不斷的更新

引用計(jì)數(shù)法:存在循環(huán)引用的致命問(wèn)題

可達(dá)性分析法:以GC Roots作為起點(diǎn),可以達(dá)到的就不可回收,不可達(dá)到的暫定認(rèn)為”死亡“;但是不是非死不可,有通過(guò)finalize方法加重新連接引用鏈的方法,讓一個(gè)對(duì)象重新復(fù)活;但是不保證執(zhí)行完成,這種方法是不靠譜的,也是不建議使用的

好了,以上就是全部?jī)?nèi)容了,我是小魚(yú)仙,你們的學(xué)習(xí)成長(zhǎng)小伙伴

我希望有一天能夠靠寫(xiě)字養(yǎng)活自己,現(xiàn)在還在磨練,這個(gè)時(shí)間可能會(huì)有很多年,感謝你們做我最初的讀者和傳播者。請(qǐng)大家相信,只要給我一份愛(ài),我終究會(huì)還你們一頁(yè)情的。

 

 

責(zé)任編輯:武曉燕 來(lái)源: 大魚(yú)仙人
相關(guān)推薦

2021-01-21 08:00:25

JVM

2012-02-09 10:26:33

JVMJava

2023-08-08 10:29:55

JVM優(yōu)化垃圾回收

2017-08-04 10:53:30

回收算法JVM垃圾回收器

2022-01-20 10:34:49

JVM垃圾回收算法

2010-09-26 16:42:04

JVM內(nèi)存組成JVM垃圾回收

2010-09-27 09:01:26

JVM分代垃圾回收

2022-03-21 11:33:11

JVM垃圾回收器垃圾回收算法

2009-12-30 10:14:29

JVM垃圾回收

2010-09-25 15:33:19

JVM垃圾回收

2010-09-27 13:41:22

JVM內(nèi)存回收

2022-06-22 09:54:45

JVM垃圾回收Java

2023-12-07 12:21:04

GCJVM垃圾

2021-11-05 15:23:20

JVM回收算法

2022-06-10 07:13:29

JVM垃圾回收

2010-09-16 15:10:24

JVM垃圾回收機(jī)制

2017-04-25 14:39:55

JVM內(nèi)存Java

2010-09-25 15:26:12

JVM垃圾回收

2022-06-07 07:10:40

MinorGCMajorGCFullGC

2009-12-25 16:15:31

JVM垃圾回收算法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产视频在线观看免费| 欧美成人综合网站| 日韩在线观看网址| 久久99中文字幕| 国产精品无码在线播放| 日本一区福利在线| 国内精品久久久久影院一蜜桃| 亚洲精品国产综合久久| av影院在线播放| 国产口爆吞精一区二区| 激情丁香综合| 日韩免费电影一区| 波多野结衣50连登视频| 成人久久精品人妻一区二区三区| 久久精品国内一区二区三区水蜜桃| 日韩欧美精品网址| 九9re精品视频在线观看re6 | 久久国产精品色| 亚洲精品国产综合久久| 91小视频网站| seseavlu视频在线| 亚洲精品进入| 午夜激情综合网| 国产精品视频福利| 国产一级久久久| 亚洲精品aⅴ| 亚洲激情图片小说视频| 亚洲永久免费观看| 国产真实乱在线更新| 亚洲一区av| 一区在线中文字幕| 97操在线视频| 日本少妇裸体做爰| 神马久久影院| 色国产精品一区在线观看| 日韩av一级大片| 中文字幕一区二区三区四区免费看| 国产一区二区在线| 欧美色网一区二区| 伊人狠狠色丁香综合尤物| 国产又大又黑又粗| 日本欧洲一区二区| 日韩一区二区三区在线播放| 不卡中文字幕在线观看| 在线你懂的视频| 成人一二三区视频| 青青a在线精品免费观看| 人妻av无码一区二区三区| 91国内外精品自在线播放| 中文字幕视频一区| 日韩av一区二区三区在线观看| 日本精品一区二区在线观看| 国产精品久久久久9999高清| 亚洲天堂av综合网| 国产女同无遮挡互慰高潮91| 国产成人精品一区二三区在线观看 | 国产欧美一区二区精品婷婷 | 日本一区二区免费高清视频| 国产精品嫩草影院精东| 日本视频一区二区三区| 国产成人精品在线| 欧美 日韩 国产 一区二区三区| 亚洲精品高潮| 日韩一卡二卡三卡四卡| 九色在线视频观看| av一本在线| 国产精品一二三区| 欧美壮男野外gaytube| 亚洲精品视频在线观看免费视频| 国产一区二区三区四区五区传媒| 亚洲精品永久免费| 中文字幕一区二区在线观看视频| heyzo在线欧美播放| 国产视频不卡一区| 国产精品av一区| 精品国产青草久久久久96| 欧美日一区二区在线观看| 亚洲日本成人网| 国产99在线 | 亚洲| 国产精品白丝一区二区三区| 欧美性视频一区二区三区| 日韩精品一区二区免费| 91精彩视频在线观看| 中文字幕成人在线观看| 国产一区二区三区四区五区加勒比| 国产情侣免费视频| 国产在线国偷精品产拍免费yy| 欧美亚洲国产日本| 久久久久久久久久91| 日韩中文欧美| 亚洲欧美精品一区| 中文字幕在线视频播放| 国产精品一区二区三区www| 疯狂欧美牲乱大交777| 异国色恋浪漫潭| 久久香蕉av| 亚洲图片激情小说| 少妇精品久久久久久久久久| 少妇人妻一区二区| 国产**成人网毛片九色| 91精品久久久久久久久久| 免费污污视频在线观看| 99国产精品| 欧美福利视频网站| 中文字幕亚洲欧美日韩| 亚洲第一精品影视| 国产精品黄页免费高清在线观看| 天天操夜夜操视频| 亚洲人成高清| 欧美理论电影在线观看| 波多野结衣久久久久| 成人在线亚洲| 亚洲最新在线视频| 欧美日韩国产黄色| 尤物在线精品| 成人国产精品av| 一级成人免费视频| 久久国产精品99久久久久久老狼 | 97在线国产视频| av文字幕在线观看| 亚洲欧美偷拍三级| 少妇人妻互换不带套| 美女100%一区| 色综合久久综合网| 成人一级片网站| 自拍偷自拍亚洲精品被多人伦好爽| 欧美午夜片欧美片在线观看| 午夜激情视频网| 国产尤物久久久| 午夜免费久久久久| 青青视频在线免费观看| 日日摸夜夜添夜夜添亚洲女人| 国产成人97精品免费看片| 精品久久久久中文慕人妻| 粉嫩蜜臀av国产精品网站| 先锋影音网一区| 国产欧美一区二区三区精品酒店| 精品国产伦理网| 亚洲国产精品成人综合久久久| 日韩av中文字幕一区| 欧美精品免费看| 日本三级视频在线| 国产99精品国产| 青少年xxxxx性开放hg| 成人高清一区| 伊人亚洲福利一区二区三区| 99热在线观看免费精品| 日韩电影免费在线看| 美女视频久久| 欧美日韩欧美| 亚洲女女做受ⅹxx高潮| av免费观看大全| 国产精品字幕| 国产一区二区三区高清在线观看| 日本女人性生活视频| 欧美日韩一区二区高清| 91色视频在线导航| 五月婷婷在线播放| 亚洲国产精品成人久久综合一区 | 蜜臀精品久久久久久蜜臀| 91人成网站www| 成人影院在线观看| 日韩一区二区三| 久久99久久98精品免观看软件 | 欧美激情免费在线| 亚洲高清在线观看视频| 91麻豆.com| 在线成人av电影| 95精品视频| 欧美黑人一区二区三区| 日本高清视频免费看| 天天综合色天天综合| 欧美大尺度做爰床戏| 成人婷婷网色偷偷亚洲男人的天堂| 国产精品久久久久久久av大片| 国产高清视频在线播放| 亚洲网友自拍偷拍| www.亚洲高清| 奇米影视777在线欧美电影观看| 性欧美暴力猛交69hd| 欧美偷拍视频| 中文字幕不卡在线观看| 鲁一鲁一鲁一鲁一av| 亚洲精品国产偷自在线观看| 国产精品国产精品国产专区不卡| av资源网在线播放| 国产一区二区黑人欧美xxxx| 国产女同91疯狂高潮互磨| 亚洲主播在线观看| 岛国av在线免费| 欧美特黄a级高清免费大片a级| 国产精品高清一区二区三区| 欧美电影免费观看高清完整| 精品精品国产高清一毛片一天堂| 国产农村妇女精品一区| 香蕉av777xxx色综合一区| 亚洲综合在线中文字幕| 美女91在线看| 亚洲精品久久久久久久久久久久久 | 污视频软件在线观看| 色婷婷精品久久二区二区蜜臂av| 国精产品一区一区二区三区mba| 成人免费高清视频在线观看| 久久久精品三级| 中文字幕亚洲影视| 亚洲影院在线看| 一呦二呦三呦精品国产| 欧美裸体xxxx极品少妇| 国产在线91| 91官网在线观看| 中文字幕av久久爽av| 国产一区999| 农村妇女精品一二区| 欧美啪啪一区| 亚洲精品成人久久久998| 色香欲www7777综合网| 欧美成人免费网| 国产精品影院在线| 亚洲国产精品中文| 99热这里只有精品在线观看| 亚洲日本在线看| 国产肉体xxxx裸体784大胆| 国产成人自拍网| 精品国产一区二区三区无码| 日韩欧美视频在线播放| 久久免费视频1| 欧美男女交配| 久久久久久久久久国产精品| 无码国产精品一区二区色情男同| 欧美情侣在线播放| 麻豆视频在线观看| 国产精品无遮挡| 国产sm调教视频| 91在线视频网址| 一道本视频在线观看| 一本久久知道综合久久| 欧美日韩dvd| 在线精品视频在线观看高清| 99蜜桃在线观看免费视频网站| 欧美人动性xxxxz0oz| 日韩中文字幕免费视频| 国产精品无码2021在线观看| 日韩av在线网站| 亚洲视屏在线观看| 日本久久精品电影| 岛国av中文字幕| 日韩欧美主播在线| 亚洲第一在线播放| 精品久久久久久久久久国产| 国产午夜久久久| 亚洲sss视频在线视频| 久久久一区二区三区四区| 樱花影视一区二区| 麻豆亚洲av成人无码久久精品| 一区二区在线观看不卡| 加勒比av在线播放| 亚洲一卡二卡三卡四卡无卡久久| 欧美丰满艳妇bbwbbw| 亚洲最大色网站| 国产午夜小视频| 欧美日韩国产影院| 四虎成人在线观看| 日本道在线观看一区二区| 国产裸体美女永久免费无遮挡| 在线免费观看日本一区| 国产无遮挡又黄又爽又色| 亚洲国产精品一区二区www | 97人人澡人人爽91综合色| 奇米四色中文综合久久| 欧美freesex| 国产精品免费小视频| brazzers在线观看| 91国内在线视频| 91亚洲天堂| 欧美精品成人在线| 欧美调教sm| 国产精品极品在线| 91麻豆精品国产综合久久久| 成人黄色在线免费观看| 欧美挤奶吃奶水xxxxx| 奇米精品在线| 国产精品流白浆在线观看| 国产精品9999久久久久仙踪林| 婷婷国产精品| 一本久道久久综合狠狠爱亚洲精品| 精品按摩偷拍| 91成人在线看| 国产精东传媒成人av电影| 久久99九九| 欧美丰满老妇| 午夜一区二区三视频在线观看| 91tv精品福利国产在线观看| 国产日本在线播放| 日本欧美大码aⅴ在线播放| 永久免费黄色片| 91美女视频网站| 极品颜值美女露脸啪啪| 欧美午夜www高清视频| 国产精品久久久久久免费播放| 亚洲成人黄色在线| 精品人妻少妇嫩草av无码专区| 亚洲精品电影在线| 黄色网页在线播放| 日韩综合中文字幕| 久草在线视频网站| 国产欧美欧洲在线观看| 亚洲日本在线观看视频| 97久久精品午夜一区二区| 久久93精品国产91久久综合| 久久综合入口| 一区二区三区四区在线观看国产日韩 | 欧美电影一区| 国产视频九色蝌蚪| 国产呦萝稀缺另类资源| av黄色免费网站| 久久久久久久久久久黄色| 91精品国产自产| 亚洲欧美激情插| 国产亚洲欧美日韩高清| 91国内精品野花午夜精品| 亚洲精品911| 久久久国产成人精品| av网站免费在线观看| 国产激情久久久久| 欧美高清视频看片在线观看| 成年人视频大全| 亚洲精品123区| 香蕉视频色在线观看| 成人免费视频视频| www.97视频| 欧美日韩色综合| 精品成人一区二区三区免费视频| 午夜精品久久久久久久99黑人 | 国产亚洲无码精品| 亚洲午夜三级在线| 国产黄色一区二区| 久久大大胆人体| 日本天码aⅴ片在线电影网站| 欧美精品aaa| 久久9999免费视频| 国产一区自拍视频| 在线成人黄色| 最新日本中文字幕| 久久午夜国产精品| 大胸美女被爆操| 欧美自拍丝袜亚洲| 成人av毛片| 国产精品久久在线观看| 欧美日韩爱爱| 美女网站免费观看视频| 捆绑调教美女网站视频一区| xxxxwww一片| 久久精品亚洲精品国产欧美| 毛片在线免费视频| 亚洲精选中文字幕| 国模冰冰炮一区二区| 农村寡妇一区二区三区| 久久亚洲二区| 人妻互换一二三区激情视频| 亚洲综合色婷婷| 色一情一乱一乱一区91av| 97在线免费视频| 首页亚洲中字| 国产精品久久久久9999小说| 日本一区二区三区四区在线视频| 黄色大全在线观看| 色妞一区二区三区| 日本一区二区三区播放| 日本高清视频一区二区三区| 日韩精品亚洲一区| 免费成人美女女在线观看| 欧美一级精品在线| 成人免费网站观看| 成人网在线观看| 欧美视频官网| 免费成人蒂法网站| 一区二区三区丝袜| 天堂av中文字幕| 国产精品福利小视频| 婷婷亚洲综合| 精品久久久久久久无码 | 日本一区二区精品视频| 秋霞午夜av一区二区三区| 欧美第一页在线观看| 亚洲国产中文字幕久久网| 国产超碰精品| 亚洲啊啊啊啊啊| 久久久久国产一区二区三区四区 | 日韩区国产区| 国产在线视频精品一区| 日产电影一区二区三区| 一二美女精品欧洲| 伊人久久影院| 国产精品igao| 亚洲午夜日本在线观看| av在线免费一区| 狠狠色综合网站久久久久久久| 日本中文字幕一区二区视频 | 色综合久久久久综合体桃花网| 欧美一区二区三区在线观看免费|