亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

JVM-GC設(shè)計(jì)思路分析

2019-11-10 20:14:48
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

原文地址http://blog.csdn.net/zhshulin/article/details/50583724

java中將內(nèi)存的控制交給JVM來(lái)實(shí)現(xiàn),方便了JAVA程序猿,當(dāng)然犧牲了一部分效率,不過(guò)總體來(lái)看是值得的。那么JVM中是如何設(shè)計(jì)GC的呢,本文從幾個(gè)問(wèn)題入手,然后分析了一下設(shè)計(jì)思路,如果有理解錯(cuò)誤的地方,請(qǐng)批評(píng)指正!主要參考了《深入理解JAVA虛擬機(jī)》這本書(shū),圖是盜來(lái)的,圖的內(nèi)容和書(shū)上一樣。

    在JVM的內(nèi)存模型中,堆內(nèi)存是JAVA內(nèi)存區(qū)域中最大的一部分,GC主要就是發(fā)生在堆中,用來(lái)回收那些無(wú)用的對(duì)象。這樣直接就引申出了第一個(gè)問(wèn)題:什么樣的對(duì)象需要被回收?判斷條件是什么?如何判斷?

    先談?wù)勈裁磳?duì)象需要被回收,OK,我們自己想一想,肯定是沒(méi)用的對(duì)象需要被回收,對(duì)吧?那么如何判斷哪些對(duì)象還有用,哪些沒(méi)用了呢?一個(gè)對(duì)象被創(chuàng)建,如果被引用了,那這個(gè)對(duì)象肯定是有用的對(duì)吧,如果引用全失效了,那就是沒(méi)用的對(duì)象了,需要被回收?;谶@個(gè)思想,引用計(jì)數(shù)法誕生了。引用計(jì)數(shù)算法:這個(gè)非常容易理解,給每個(gè)對(duì)象添加一個(gè)引用計(jì)數(shù)器,對(duì)象每被引用一次,引用計(jì)數(shù)器就+1,引用失效時(shí)就-1。那么判斷一個(gè)對(duì)象是否有用的條件就變成了對(duì)這個(gè)計(jì)數(shù)器值得判斷了,如果為0,那么被回收,如果為>0,那么保留。但是這種方式會(huì)產(chǎn)生一個(gè)問(wèn)題,就是對(duì)象之間的循環(huán)引用無(wú)法被識(shí)別,即使這兩個(gè)對(duì)象不能被訪問(wèn),但是它們之間互相引用著對(duì)方,故而計(jì)數(shù)器肯定>0,那么就不能被回收。JVM中并沒(méi)有使用引用計(jì)數(shù)算法,而是使用了根搜索算法。根搜索算法:這個(gè)算法也不難理解,通過(guò)條件,選擇一系列的對(duì)象成為“GC Roots"對(duì)象,然后將”GC Roots"對(duì)象作為起始點(diǎn)開(kāi)始向下搜索,搜索所有走過(guò)的路徑成為“引用鏈”。在這個(gè)引用鏈上的對(duì)象就保留,而如果一個(gè)或多個(gè)互相引用的對(duì)象不在這個(gè)引用鏈上,或者說(shuō)對(duì)象到“GC Roots"不可達(dá),那么這些就是無(wú)用的對(duì)象,都需要被回收。

注:Java語(yǔ)言中,可作為GC Roots的對(duì)象包括下面幾種:

1) 虛擬機(jī)棧(棧幀中的本地變量表)中引用的對(duì)象

2) 方法區(qū)中類靜態(tài)屬性引用的對(duì)象

3) 方法區(qū)中常量引用的對(duì)象

4) 本地方法棧中JNI(即一般說(shuō)的Native方法)引用的對(duì)象

既然根搜索算法需要考慮到對(duì)象之間的引用,那么就要說(shuō)一下JAVA中對(duì)象的引用類型了:

從JDK1.2之后,Java對(duì)引用的概念進(jìn)行了擴(kuò)充,將引用分為強(qiáng)引用,軟引用,弱引用,虛引用,這四種引用的強(qiáng)度依次減弱

1) 強(qiáng)引用就是指在程序代碼之中普遍存在的,類似 “Object obj = new Object()” 這類的引用,只要強(qiáng)引用還存在,垃圾回收器永遠(yuǎn)不會(huì)回收被引用的對(duì)象。我們也正是利用這個(gè)原理來(lái)重現(xiàn)了OOM異常。

2) 軟引用(SoftReference類)是用來(lái)描述一些還有用但并非需要的對(duì)象,對(duì)于軟引用關(guān)聯(lián)著的對(duì)象,在系統(tǒng)將要發(fā)生內(nèi)存異常之前,將會(huì)把這些對(duì)象列進(jìn)回收范圍之中進(jìn)行第二次回收,如果這次回收還沒(méi)有足夠的內(nèi)存,才會(huì)拋出內(nèi)存異常

3) 弱引用(WeakReference類)也是用來(lái)描述非必需對(duì)象的,被弱引用關(guān)聯(lián)的對(duì)象只能生存到下一次GC發(fā)生之前,當(dāng)垃圾收集器工作時(shí),無(wú)論當(dāng)前內(nèi)存釋放足夠,都會(huì)回收掉只被弱引用關(guān)聯(lián)的對(duì)象

4) 虛引用(PhantomReference類)也稱為幽靈引用或者幻影引用,它是最弱的一種引用關(guān)系,一個(gè)對(duì)象是否有虛引用的存在,完全不會(huì)對(duì)其生存時(shí)間構(gòu)成影響,也無(wú)法通過(guò)虛引用來(lái)取得一個(gè)對(duì)象實(shí)例,對(duì)一個(gè)對(duì)象設(shè)置虛引用關(guān)聯(lián)的唯一目的就是能在這個(gè)對(duì)象被收集器回收時(shí)收到一個(gè)系統(tǒng)通知

    那么上述內(nèi)容看完之后想必都知道了什么樣的對(duì)象會(huì)被GC了吧,那么JVM又是通過(guò)什么方式來(lái)回收這些內(nèi)存的呢?下面就需要了解一下垃圾的回收算法了。

標(biāo)記-清除算法    試著想一想,如果要你要設(shè)計(jì)一個(gè)算法清除滿足收集條件的對(duì)象來(lái)釋放內(nèi)存的時(shí)候你該怎么做呢?最簡(jiǎn)單的是不是就是把需要回收的對(duì)象標(biāo)記一下,然后直接全部回收就行了?照著這個(gè)思路就是”標(biāo)記-清除算法”的思想了,算法分為“標(biāo)記”和“清除”兩個(gè)階段:首先標(biāo)記出所有需要回收的對(duì)象,在標(biāo)記完成后統(tǒng)一回收掉所有被標(biāo)記的對(duì)象。想法很簡(jiǎn)單,實(shí)際也就是這么做的。但是呢,這種方式是不是最好的?有什么缺陷?    想到這里,就需要分析一下了。一個(gè)個(gè)的標(biāo)記然后清除,效率高嗎?當(dāng)然不??纯聪聢D的標(biāo)記-清除算法的示意圖,可以發(fā)現(xiàn),標(biāo)記-清除之后會(huì)產(chǎn)生大量的內(nèi)存碎片,如果碎片太多,當(dāng)程序運(yùn)行沒(méi)有足夠連續(xù)的內(nèi)存空間來(lái)存放大對(duì)象的時(shí)候,就會(huì)不得不提前觸發(fā)一次GC。概括來(lái)說(shuō)就是有兩個(gè)缺點(diǎn):效率不高;內(nèi)存碎片可能導(dǎo)致提前發(fā)生GC。    學(xué)習(xí)算法的童鞋應(yīng)該都很清楚,效率是很重要的,有時(shí)候需要使用空間來(lái)?yè)Q時(shí)間提高效率,那么就需要了解一下第二種回收算法了——復(fù)制算法。

復(fù)制算法    復(fù)制算法呢?它的思想就是空間換時(shí)間,將內(nèi)存容量劃分成相等的兩塊,當(dāng)這一塊的內(nèi)存用完了,就將還存活的內(nèi)存復(fù)制到另一塊上,然后再把使用過(guò)的內(nèi)存空間一次性清理干凈。這樣每次都是對(duì)其中的一塊的內(nèi)存進(jìn)行回收,也就不需要考慮內(nèi)存碎片等復(fù)雜情況了,只需要移動(dòng)堆頂指針,然后按照順序分配即可,實(shí)現(xiàn)簡(jiǎn)單,運(yùn)行高效。但是缺點(diǎn)也很明顯:內(nèi)存變成一半了.......下圖就是復(fù)制算法的示意圖:

    我們知道,在JVM中堆內(nèi)存的新生代(new )中的對(duì)象存活率較低,采用復(fù)制算法每次需要復(fù)制的對(duì)象也不是很多,效率較高,空間換時(shí)間值得的?,F(xiàn)在的商業(yè)虛擬機(jī)都是采用復(fù)制算法來(lái)回收新生代,IBM的專門(mén)研究表明:新生代中對(duì)象98%是朝生夕死,所以并不需要按照1:1的比例來(lái)劃分空間來(lái)實(shí)現(xiàn)復(fù)制算法,而是將內(nèi)存分為一塊較大的Eden空間和兩塊較小的Survivor空間,每次使用Eden空間和其中一個(gè)Survivor空間。當(dāng)發(fā)生GC的時(shí)候,將Eden空間和Survivor空間中還存活的對(duì)象拷貝到另一個(gè)沒(méi)使用的Survivor空間中,然后再清理掉Eden和剛剛使用的Survivor空間。Hotspot虛擬機(jī)默認(rèn)Eden和Survivor的大小比例是8:1,也就是新生代每次可以使用的內(nèi)存空間是整個(gè)新生代的90%,只有10%的空間會(huì)被浪費(fèi)。    OK,通過(guò)上述的分析,我們知道了在JVM中對(duì)于新生帶的垃圾回收使用的復(fù)制算法(此時(shí)發(fā)生的GC成為young gc),效率高,我們也就只犧牲了10%的內(nèi)存空間,挺不錯(cuò)的。請(qǐng)注意這里提到的young gc,后面會(huì)提到full gc。但是雖然IBM研究表明一般情況下有98%的對(duì)象是朝生夕死,需要回收的,但是不能保證每次回收的時(shí)候?qū)ο蟮拇婊盥识嫉陀?0%啊,是不是?一旦超過(guò)了10%,那么空閑的survivor空間就不夠用了,此時(shí)就必須依賴?yán)夏甏目臻g來(lái)進(jìn)行分配擔(dān)保(就相當(dāng)于A找B借錢(qián),C替A做擔(dān)保,保證如果A換不起就自己來(lái)還,C就是擔(dān)保人,映射到內(nèi)存中老年代所占內(nèi)存就是擔(dān)保人)。如果空閑的Survivor空間無(wú)法存放上次GC之后的存活對(duì)象,那么這些對(duì)象就會(huì)通過(guò)分配擔(dān)保機(jī)制進(jìn)入老年代。    老年代呢,里面保存的都是生存周期較長(zhǎng)的對(duì)象(老年代里面的對(duì)象都是經(jīng)過(guò)了新生代,然后多次存活下來(lái)的對(duì)象),而復(fù)制算法在應(yīng)對(duì)這種存活率極高的內(nèi)存區(qū)域的對(duì)象回收時(shí),需要執(zhí)行較多的復(fù)制操作,效率將會(huì)變低。關(guān)鍵的還是如果不想浪費(fèi)50%的空間,那么就需要分配擔(dān)保機(jī)制(參考新生代的設(shè)計(jì)),但是并沒(méi)有額外的空間來(lái)?yè)?dān)保了。所以對(duì)于老年代的特性,有人提出了一種“標(biāo)記-整理算法”,看到這里肯定就想到了前面提到的“標(biāo)記-清除算法“了,OK,這兩個(gè)算法標(biāo)記的過(guò)程都是一樣的,就在于”標(biāo)記-整理算法”不是直接對(duì)可回收對(duì)象進(jìn)行清理,而是讓所有存活的對(duì)象都向一端移動(dòng),然后直接清理掉端邊界以外的內(nèi)存,示意圖如下圖所示。    很明顯,這種”標(biāo)記-整理算法“的效率不高,所以如果老年代發(fā)生GC,那么效率也就不高了,并且一旦老年代發(fā)生GC,那么發(fā)生的必然是Full GC ,Full GC 會(huì)同時(shí)對(duì)老年代和新生代進(jìn)行GC操作,順便也會(huì)回收一下perm gen中的內(nèi)存,所以相比較young gc來(lái)說(shuō)很慢,我們?cè)贘VM調(diào)優(yōu)的時(shí)候需要避免JVM頻繁發(fā)生full gc。full gc的速度比young gc要慢10倍。

分代收集算法    通過(guò)上述的分析呢,就知道了對(duì)于堆中的新生代和老年代會(huì)采用不同的垃圾回收算法來(lái)回收“死亡”的對(duì)象,這種分代回收對(duì)象的方法稱為“分代收集算法”。這個(gè)分代收集算法根據(jù)各個(gè)年代的特點(diǎn)采用適當(dāng)?shù)氖占惴āT谛律?,每次GC的時(shí)候都發(fā)現(xiàn)大批的對(duì)象死去,只有少量存活,自然選用復(fù)制算法;而對(duì)于老年代這種存活率高、沒(méi)有額外擔(dān)??臻g的,就必須使用“標(biāo)記-清除算法”或者“標(biāo)記-整理算法“了。    GC設(shè)計(jì)的理論基礎(chǔ)就是這些了,其實(shí)原理還是比較容易理解的。GC的具體實(shí)現(xiàn)就是垃圾收集器,目前尚沒(méi)有一個(gè)垃圾收集器是完美的,需要配合使用。下面插上一副堆內(nèi)存劃分圖。注:本文寫(xiě)的比較片面,如果想更深入了解,推薦這篇博文:http://jbutton.iteye.com/blog/1569746


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
日韩a在线看| 亚洲精品一区二区在线| 一本一道久久a久久精品综合| 日韩在线观看电影完整版高清免费悬疑悬疑| www.色就是色.com| 亚洲大尺度视频在线观看| av网址在线播放| 欧美精品一区二区高清在线观看| 欧美亚洲天堂| 久久精品九九| 国产香蕉免费精品视频| 一级片视频免费| 欧美日韩欧美| 最近中文字幕mv免费高清在线| 视频一区免费在线观看| 成人小电影网站| 美女又爽又黄免费视频| 影音先锋男士资源站| 欧美丰满老妇熟乱xxxxyyy| 日本成人免费网站| 97视频com| 最新91在线视频| 激情成人四房播| 成人性做爰片免费视频| 摸摸摸bbb毛毛毛片| 日韩视频一区二区三区在线播放| 久久九九精品| 九九精品视频在线看| www在线视频观看| 女人18毛片一区二区三区| 国产在线精品一区二区| 欧美色视频免费| www.99热这里只有精品| 在线播放一区二区精品产| 青青操视频在线观看| 女同性互吃奶乳免费视频| 日韩一区二区精品| 678五月天丁香亚洲综合网| 亚洲同性同志一二三专区| 丝袜足控免费网站xx网站| 精品福利影视| 欧美午夜精品久久久久免费视| 男人资源在线播放| 国产v亚洲v天堂无码| 亚洲性日韩精品一区二区| 性做爰过程免费播放| 久久免费公开视频| 欧美夫妻性生活| 欧美成人一区二区视频| 国产精品福利无圣光在线一区| 国产在线拍偷自揄拍精品| 男人天堂成人网| 视频一区中文字幕国产| 91麻豆精品国产91久久久| 久久久久亚洲av无码a片| 18深夜在线观看免费视频| 激情综合五月| 蜜臀av粉嫩av懂色av| 亚洲欧美偷拍另类a∨色屁股| 番号集在线观看| 国产成人免费观看视频| 欧美亚洲第一页| 免费av不卡| 精品视频一区二区三区在线观看| 欧美日韩亚洲高清一区二区| 国产精品毛片久久久| ijzzijzzij亚洲大全| 精品国产青草久久久久福利| 麻豆一区二区99久久久久| 九九久久综合网站| 亚洲一级片免费观看| 91免费精品国自产拍在线不卡| 亚洲在线视频福利| 欧美一二三区在线观看| 无码人妻久久一区二区三区蜜桃| 中国字幕a在线看韩国电影| 91精品久久久久久综合五月天| 欧美日韩一区精品| 日韩不卡一二区| 欧美一区欧美二区| 调教+趴+乳夹+国产+精品| 久久在线视频| 一级 黄 色 片一| 91免费在线看片| 亚洲成**性毛茸茸| 成年人国产在线观看| av大片免费观看| 色综合久久av| 少妇大叫太大太粗太爽了a片小说| 欧美中文字幕亚洲一区二区va在线| 亚洲最新永久观看在线| 国产在线观看一区| 亚洲欧美一区二区精品久久久| 超碰资源在线| 任你弄精品视频免费观看| 看国产成人h片视频| 国产精品小仙女| 国产综合无码一区二区色蜜蜜| 最新中文在线视频| 四虎永久免费影院| 国产亚洲第一的欧洲日产| 亚洲色大成网站www久久九九| 国产尤物在线观看| 亚洲国产成人tv| 成年网站免费| 制服.丝袜.亚洲.中文.综合懂色| 这里只有精品在线观看视频| 亚洲国产精品ⅴa在线观看| 日本一区免费网站| 9l亚洲国产成人精品一区二三| 国产精品人妻一区二区三区| 国产探花在线观看| 91麻豆成人精品国产| 欧美三级午夜理伦三级中文幕| 欧美巨猛xxxx猛交黑人97人| 免费精品国产| 日韩尤物视频| 国产又粗又大又爽的视频| 91国产在线免费观看| 成年人av网站| lutube成人福利在线观看| 国产综合色在线视频区| 欧美精品丝袜久久久中文字幕| 欧美夫妻性生活视频| 久久99国产综合精品免费| 精品一区日韩成人| 99久免费精品视频在线观看| 一级黄色片在线看| 老鸭窝亚洲一区二区三区| 粉嫩av性色av蜜臀av网站| 国产精品久久久免费观看| 欧美亚洲综合另类| 国产97免费视| 欧美一区二区免费视频| 欧美三区美女| 日韩电影在线一区二区三区| 日韩a视频在线观看| 欧美zozozo| 国产精品午夜一区二区| 亚洲最大激情网| 欧美熟妇精品一区二区| 裸体一区二区| 99久久国产综合精品五月天喷水| 在线观看黄色av| 亚洲国产aⅴ精品一区二区| 毛片一区二区三区四区| 中文字幕av在线播放| 欧美亚州韩日在线看免费版国语版| 92看片淫黄大片欧美看国产片| 妺妺窝人体色www看人体| 久久亚洲精品小早川怜子66| 亚洲看片网站| 樱花草www在线观看| av福利在线| 99精产国品一二三产品香蕉| 三年片观看免费观看大全视频下载| 久久久亚洲国产天美传媒修理工| 欧美sm一区| 国产在线高清| 一区二区三区免费在线观看| 久久久精品在线视频| 日韩精品在线观看视频| 中文字幕一区二区人妻视频| 久久久久久久久久久久久久av| 一女二男3p波多野结衣| 免费黄色电影在线观看| 国产最新精品| 欧美精品一区二区不卡| 97久久综合精品久久久综合| 2023国产精品久久久精品双| 日韩欧美黄色| jiyouzz国产精品久久| 亚洲欧洲av一区二区三区久久| 一本久道久久综合中文字幕| caopor在线| 91精品在线免费观看| 欧美亚洲国产日韩2020| 欧美 日韩 国产 高清| 亚洲精品国产欧美| 午夜亚洲福利老司机| 538任你躁在线精品免费| 亚洲自拍偷拍福利| 91精品久久久久久久99蜜桃| 欧美特黄aaaaaaaa大片| 男人女人拔萝卜视频| 美女网站免费观看| 国产精品黄色在线观看| 精品深夜av无码一区二区老年| 99久久久无码国产精品不卡| 污导航在线观看| 日本高清不卡一区二区三区视频| 少妇人妻精品一区二区三区| 免费日本视频一区| a在线欧美一区| 久久99国产综合精品女同| 欧美天堂在线观看| 免费成人直播| 国产精品一区二区av影院萌芽| 欧美韩日亚洲| 亚洲一区二区精品在线观看| 欧美黑人巨大xxx极品| 男人日女人逼逼| 亚洲午夜激情网站| 国产一区二区毛片| 91大神精品| 亚洲在线视频一区二区| 国产麻豆成人传媒免费观看| 亚洲国内精品| 亚洲欧美日本一区二区| 国产富婆一区二区三区| 国产黄在线播放| 免费a级毛片永久免费| 亚洲丝袜美腿综合| 久久国产在线观看| 欧美色网一区| 亚洲第一网站免费视频| 国产红桃视频| 国产精品三级av在线播放| 91精品精品| 新天堂中文资源官网在线观看| 精品精品国产三级a∨在线| 亚洲日韩欧美一区二区在线| av软件在线观看| 国产成人精品免高潮在线观看| 欧美一区视频在线| 日日噜噜噜夜夜爽爽狠狠| 五十路中文字幕| 日韩电影在线观看中文字幕| 欧美丝袜美腿| xxxxx成人.com| 国产欧美日韩在线观看视频| 亚洲va欧美va人人爽成人影院| 丁香婷婷激情网| 亚洲男人都懂第一日本| 91视频88av| 久久精品国产精品亚洲毛片| 国产精品一区二区三区免费视频| 一本色道久久88亚洲综合88| 都市激情国产精品| 久久精品视频导航| 日本黄色片免费观看| 91网在线观看| 日本亚洲欧洲色| 亚洲午夜久久久| 日韩毛片一二三区| 一本色道无码道dvd在线观看| 99精品全国免费观看视频软件| 免费看黄色网址| 婷婷综合成人| 精品一区二区三区在线播放| 午夜一级在线看亚洲| 成人免费在线一区二区三区| 国产免费永久在线观看| 亚洲精品理论电影| 日本一区二区在线免费观看| 最近的2019中文字幕免费一页| 亚洲人成伊人成综合图片| 欧美成人综合网站| 国产传媒日韩欧美成人| 不卡的电视剧免费网站有什么| 久久九九免费| 久久在线视频免费观看| 中文字幕在线观看不卡| 亚洲自拍第三页| 国产免费拔擦拔擦8x高清在线人| 国产视频aaa| 猫咪av永久| 桥本有菜av在线| 国产亚洲欧洲一区高清在线观看| 亚洲精品久久久久久国| 国产精品自拍片| 日本中文字幕视频| 久久夜色精品国产噜噜亚洲av| caoliu在线| 欧美14一18处毛片| 99精品久久久久久中文字幕| 欧美人与性囗牲恔配| 国产精品成人观看视频国产奇米| 呦呦在线视频| 日日噜噜夜夜狠狠视频欧美人| 日韩av男人的天堂| 好吊色这里只有精品| 色老头在线一区二区三区| 久久久久亚洲天堂| 欧美成人中文字幕在线| 国产视频亚洲精品| 国产极品美女在线| 久久综合社区| 国产又大又粗又爽| 成人av综合一区| 麻豆国产va免费精品高清在线| 欧美日韩不卡中文字幕在线| av资源在线观看免费高清| 99九九99九九九视频精品| 精品免费一区二区三区| 欧美一二三四区在线| 亚洲图片小说视频| 欧美亚洲色图视频| 成人一区二区三区视频在线观看| 久久久亚洲一区| 狠狠狠色丁香婷婷综合久久五月| 日韩av手机在线看| 日韩在线视频在线| 一本色道久久88| 噜噜噜噜噜久久久久久91| 欧美有码在线观看| 亚洲天堂男人的天堂| 午夜免费啪视频观看视频| 欧美一级黄色网| 久久精品亚洲欧美日韩精品中文字幕| 猛男欧美办公室激情在线| 男人免费av| 色哟哟精品丝袜一区二区| 麻豆国产尤物av尤物在线观看| 五月婷婷一区| 性欧美xxxx| 日韩中文字幕91| 亚洲成人精品女人久久久| 欧美日韩免费观看一区二区三区| 午夜精品福利影院| 操人真爽免费视频| 久久婷婷五月综合| 日本免费一区二区三区四区| 欧美国产视频日韩| 欧美在线观看一区二区| 久久久影院官网| 羞羞的视频免费| 一本大道av伊人久久综合|