久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

深入了解JAVA 軟引用

瀏覽:79日期:2022-08-27 08:25:07

定義

軟引用是使用SoftReference創建的引用,強度弱于強引用,被其引用的對象在內存不足的時候會被回收,不會產生內存溢出。

說明

軟引用,顧名思義就是比較“軟”一點的引用。

當一個對象與GC Roots之間存在強引用時,無論何時都不會被GC回收掉。如果一個對象與GC Roots之間沒有強引用與其關聯而存在軟引用關聯時,那么垃圾回收器對它的態度就取決于內存的緊張程度了。如果內存空間足夠,垃圾回收器就不會回收這個對象,但如果內存空間不足了,它就難逃被回收的厄運。

如果一個對象與GC Roots之間不存在強引用,但是存在軟引用,則稱這個對象為軟可達(soft reachable)對象。

在垃圾回收器沒有回收它的時候,軟可達對象就像強可達對象一樣,可以被程序正常訪問和使用,但是需要通過軟引用對象間接訪問,需要的話也能重新使用強引用將其關聯。所以軟引用適合用來做內存敏感的高速緩存。

String s = new String('Frank'); // 創建強引用與String對象關聯,現在該String對象為強可達狀態SoftReference<String> softRef = new SoftReference<String>(s); // 再創建一個軟引用關聯該對象s = null; // 消除強引用,現在只剩下軟引用與其關聯,該String對象為軟可達狀態s = softRef.get(); // 重新關聯上強引用

這里變量s持有對字符串對象的強引用,而softRef持有對該對象的軟引用,所以當執行s = null后,字符串對象就只剩下軟引用了,這時如果因為內存不足發生Full GC,就會把這個字符串對象回收掉。

注意,在垃圾回收器回收一個對象前,SoftReference類所提供的get方法會返回Java對象的強引用,一旦垃圾線程回收該對象之后,get方法將返回null。所以在獲取軟引用對象的代碼中,一定要先判斷返回是否為null,以免出現NullPointerException異常而導致應用崩潰。

下面的代碼會讓s再次持有對象的強引用:

s = softRef.get();

如果在softRef指向的對象被回收前,用強引用指向該對象,那這個對象又會變成強可達。

來看一個使用SoftReference的栗子:

public class TestA { static class OOMClass{ private int[] oom = new int[1024 * 100];// 100KB } public static void main(String[] args) throws InterruptedException { ReferenceQueue<OOMClass> queue = new ReferenceQueue<>(); List<SoftReference> list = new ArrayList<>(); while(true){ for (int i = 0; i < 100; i++) {list.add(new SoftReference<OOMClass>(new OOMClass(), queue)); } Thread.sleep(500); } }}

注意,ReferenceQueue中聲明的類型為OOMClass,即與SoftReference引用的類型一致。

設置一下虛擬機參數:

-verbose:gc -Xms4m -Xmx4m -Xmn2m

運行結果:

[GC (Allocation Failure) 1017K->432K(3584K), 0.0017239 secs][GC (Allocation Failure) 1072K->472K(3584K), 0.0099237 secs][GC (Allocation Failure) 1323K->1296K(3584K), 0.0009528 secs][GC (Allocation Failure) 2114K->2136K(3584K), 0.0009951 secs][Full GC (Ergonomics) 2136K->1992K(3584K), 0.0040658 secs][Full GC (Ergonomics) 2807K->2791K(3584K), 0.0036280 secs][Full GC (Allocation Failure) 2791K->373K(3584K), 0.0032477 secs][Full GC (Ergonomics) 2786K->2773K(3584K), 0.0034554 secs][Full GC (Allocation Failure) 2773K->373K(3584K), 0.0032667 secs][Full GC (Ergonomics) 2798K->2775K(3584K), 0.0036231 secs][Full GC (Allocation Failure) 2775K->375K(3584K), 0.0055482 secs][Full GC (Ergonomics) 2799K->2776K(3584K), 0.0031358 secs]...省略n次GC信息

在TestA中,我們使用死循環不斷的往list中添加新對象,如果是強引用,會很快因為內存不足而拋出OOM,因為這里的堆內存大小設置為了4M,而一個對象就有100KB,一個循環添加100個對象,也就是差不多10M,顯然一個循環都跑不完就會內存不足,而這里,因為使用的是軟引用,所以JVM會在內存不足的時候將軟引用回收掉。

[Full GC (Allocation Failure) 2791K->373K(3584K), 0.0032477 secs]

從這一條可以看出,在內存不足發生Full GC時,回收掉了大部分的軟引用指向的對象,釋放了大量的內存。

因為這里新生代只分配了2M,所以很快就會發生GC,如果你的程序運行沒有看到這個結果,請先確認一下虛擬機參數是否設置正確,如果設置正確還是沒有看到,那么將循環次數由1000改為10000或者100000在試試看。

應用場景

軟引用關聯的對象,只有在內存不足的時候JVM才會回收該對象。這一點可以很好地用來解決OOM的問題,并且這個特性很適合用來實現緩存:比如網頁緩存、圖片緩存等。

現在考慮這樣一個場景 ,在很多應用中,都會出現大量的默認圖片,比如說QQ的默認頭像,應用內的默認圖標等等,這些圖片很多地方會用到。

如果每次都去讀取圖片,由于讀取文件速度較慢,大量重復的讀取會導致性能下降。所以可以考慮將圖片緩存起來,需要的時候直接從內存中讀取。但是,由于圖片占用內存空間比較大,緩存的圖片過多會占用比較多的內存,就可能比較容易發生OOM。這時候,軟引用就派得上用場了。

注意,SoftReference對象是用來保存軟引用的,但它同時也是一個Java對象。所以,當軟可及對象被回收之后,雖然這個SoftReference對象的get()方法返回null,但SoftReference對象本身并不是null,而此時這個SoftReference對象已經不再具有存在的價值,需要一個適當的清除機制,避免大量SoftReference對象帶來的內存泄漏。

ReferenceQueue就是用來保存這些需要被清理的引用對象的。軟引用可以和一個引用隊列(ReferenceQueue)聯合使用,如果軟引用所引用的對象被垃圾回收器回收,Java虛擬機就會把這個軟引用加入到與之關聯的引用隊列中。

下面用SoftReference來實現一個簡單的緩存類:

public class SoftCache<T> { // 引用隊列 private ReferenceQueue<T> referenceQueue = new ReferenceQueue<>(); // 保存軟引用集合,在引用對象被回收后銷毀 private List<Reference<T>> list = new ArrayList<>(); // 添加緩存對象 public synchronized void add(T obj){ // 構建軟引用 Reference<T> reference = new SoftReference<T>(obj, referenceQueue); // 加入列表中 list.add(reference); } // 獲取緩存對象 public synchronized T get(int index){ // 先對無效引用進行清理 clear(); if (index < 0 || list.size() < index){ return null; } Reference<T> reference = list.get(index); return reference == null ? null : reference.get(); } public int size(){ return list.size(); } @SuppressWarnings('unchecked') private void clear(){ Reference<T> reference; while (null != (reference = (Reference<T>) referenceQueue.poll())){ list.remove(reference); } }}

然后測試一下這個緩存類:

public class SoftCacheTest { private static int num = 0; public static void main(String[] args){ SoftCache<OOMClass> softCache = new SoftCache<>(); for (int i = 0; i < 40; i++) { softCache.add(new OOMClass('OOM Obj-' + ++num)); } System.out.println(softCache.size()); for (int i = 0; i < softCache.size(); i++) { OOMClass obj = softCache.get(i); System.out.println(obj == null ? 'null' : obj.name); } System.out.println(softCache.size()); } static class OOMClass{ private String name; private int[] oom = new int[1024 * 100];// 100KB public OOMClass(String name) { this.name = name; } }}

仍使用之前的虛擬機參數:

-verbose:gc -Xms4m -Xmx4m -Xmn2m

運行結果:

[GC (Allocation Failure) 1017K->432K(3584K), 0.0012236 secs][GC (Allocation Failure) 1117K->496K(3584K), 0.0016875 secs][GC (Allocation Failure) 1347K->1229K(3584K), 0.0015059 secs][GC (Allocation Failure) 2047K->2125K(3584K), 0.0018090 secs][Full GC (Ergonomics) 2125K->1994K(3584K), 0.0054759 secs][Full GC (Ergonomics) 2822K->2794K(3584K), 0.0023167 secs][Full GC (Allocation Failure) 2794K->376K(3584K), 0.0036056 secs][Full GC (Ergonomics) 2795K->2776K(3584K), 0.0042365 secs][Full GC (Allocation Failure) 2776K->376K(3584K), 0.0035122 secs][Full GC (Ergonomics) 2795K->2776K(3584K), 0.0054760 secs][Full GC (Allocation Failure) 2776K->376K(3584K), 0.0036965 secs][Full GC (Ergonomics) 2802K->2777K(3584K), 0.0044513 secs][Full GC (Allocation Failure) 2777K->376K(3584K), 0.0041400 secs][Full GC (Ergonomics) 2796K->2777K(3584K), 0.0025255 secs][Full GC (Allocation Failure) 2777K->376K(3584K), 0.0037690 secs][Full GC (Ergonomics) 2817K->2777K(3584K), 0.0037759 secs][Full GC (Allocation Failure) 2777K->377K(3584K), 0.0042416 secs]緩存列表大小:40OOM Obj-37OOM Obj-38OOM Obj-39OOM Obj-40緩存列表大小:4

可以看到,緩存40個軟引用對象之后,如果一次性全部存儲,顯然內存大小無法滿足,所以在不斷創建軟引用對象的過程中,不斷發生GC來進行垃圾回收,最終只有4個軟引用未被清理掉。

強引用與軟引用對比

沒有對比就沒有傷害,來將強引用和軟引用對比一下:

public class Test { static class OOMClass{ private int[] oom = new int[1024]; } public static void main(String[] args) { testStrongReference(); //testSoftReference(); } public static void testStrongReference(){ List<OOMClass> list = new ArrayList<>(); for (int i = 0; i < 1000; i++) { list.add(new OOMClass()); } } public static void testSoftReference(){ ReferenceQueue<OOMClass> referenceQueue = new ReferenceQueue<>(); List<SoftReference> list = new ArrayList<>(); for (int i = 0; i < 1000; i++) { OOMClass oomClass = new OOMClass(); list.add(new SoftReference(oomClass, referenceQueue)); oomClass = null; } }}

運行testStrongReference方法的結果如下:

[GC (Allocation Failure) 1019K->384K(3584K), 0.0033595 secs][GC (Allocation Failure) 1406K->856K(3584K), 0.0013098 secs][GC (Allocation Failure) 1880K->1836K(3584K), 0.0014382 secs][Full GC (Ergonomics) 1836K->1756K(3584K), 0.0039761 secs][Full GC (Ergonomics) 2778K->2758K(3584K), 0.0021269 secs][Full GC (Ergonomics) 2779K->2770K(3584K), 0.0016329 secs][Full GC (Ergonomics) 2779K->2775K(3584K), 0.0023157 secs][Full GC (Ergonomics) 2775K->2775K(3584K), 0.0015927 secs][Full GC (Ergonomics) 3037K->3029K(3584K), 0.0025071 secs][Full GC (Ergonomics) 3067K->3065K(3584K), 0.0017529 secs][Full GC (Allocation Failure) 3065K->3047K(3584K), 0.0033445 secs][Full GC (Ergonomics) 3068K->3059K(3584K), 0.0016623 secs][Full GC (Ergonomics) 3070K->3068K(3584K), 0.0028357 secs][Full GC (Allocation Failure) 3068K->3068K(3584K), 0.0017616 secs]java.lang.OutOfMemoryError: Java heap spaceDumping heap to java_pid3352.hprof ...Exception in thread 'main' java.lang.OutOfMemoryError: Java heap spaceHeap dump file created [3855956 bytes in 0.017 secs][Full GC (Ergonomics) 3071K->376K(3584K), 0.0032068 secs]at reference.Test$OOMClass.<init>(Test.java:11)at reference.Test.testStrongReference(Test.java:22)at reference.Test.main(Test.java:15)

Process finished with exit code 1

可以看到,很快就拋出了OOM,原因是Java heap space,也就是堆內存不足。

如果運行testSoftReference方法,將會得到如下結果:

[GC (Allocation Failure) 1019K->464K(3584K), 0.0019850 secs][GC (Allocation Failure) 1484K->844K(3584K), 0.0015920 secs][GC (Allocation Failure) 1868K->1860K(3584K), 0.0043236 secs][Full GC (Ergonomics) 1860K->1781K(3584K), 0.0044581 secs][Full GC (Ergonomics) 2802K->2754K(3584K), 0.0041726 secs][Full GC (Ergonomics) 2802K->2799K(3584K), 0.0031293 secs][Full GC (Ergonomics) 3023K->3023K(3584K), 0.0024830 secs][Full GC (Ergonomics) 3071K->3068K(3584K), 0.0035025 secs][Full GC (Allocation Failure) 3068K->405K(3584K), 0.0040672 secs][GC (Allocation Failure) 1512K->1567K(3584K), 0.0011170 secs][Full GC (Ergonomics) 1567K->1496K(3584K), 0.0048438 secs]

可以看到,并沒有拋出OOM,而是進行多次了GC,可以明顯的看到這一條:

[Full GC (Allocation Failure) 3068K->405K(3584K), 0.0040672 secs]

當內存不足時進行了一次Full GC,回收了大部分內存空間,也就是將大部分軟引用指向的對象回收掉了。

小結

軟引用弱于強引用 軟引用指向的對象會在內存不足時被垃圾回收清理掉 JVM會優先回收長時間閑置不用的軟引用對象,對那些剛剛構建的或剛剛使用過的軟引用對象會盡可能保留 軟引用可以有效的解決OOM問題 軟引用適合用作非必須大對象的緩存

至此,本篇就告一段落了,這里只簡單的介紹了軟引用的作用以及用法。其實軟引用并沒有這么好,它的使用有一些可能是致命的缺點,如果想要更深入的了解軟引用的運行原理以及軟引用到底是在何時進行回收,又是如何進行回收的話,可以查看翻閱后續的章節。

以上就是深入了解JAVA 軟引用的詳細內容,更多關于JAVA 軟引用的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 欧美一级免费看 | 国产精品日韩一区二区 | 亚洲成人精品网 | 黄色精品视频 | 欧美一区二区三区免费电影 | 手机看片国产精品 | 精品99久久 | 欧美一区二区日韩 | 日韩精品视频免费在线观看 | 国产永久免费 | 久久精品国产91精品亚洲高清 | 视频一区二区中文字幕 | 一级毛片av | 91在线精品秘密一区二区 | www久久99 | 久草视| 日韩免费在线观看视频 | 国产精品久久久久一区二区三区 | 亚洲精品久久久久久久久久久 | 久久久久久成人 | 天天操天天玩 | 日韩中文字幕av | 欧美色性| 亚洲国产精品自拍 | 精品自拍视频 | 99久久久国产精品 | 欧美大片一区二区 | 99热国产在线观看 | 欧美一区二区三区在线视频 | 超级乱淫片国语对白免费视频 | 91中文字幕 | 国产成人精品久久久 | 国内久久精品 | 精品久久网站 | 国产精品久久久久久久久软件 | 伊人网影院 | 国产精品99久久久久久www | 久久视频在线 | 一区二区日韩精品 | 国产精品日韩一区二区 | 天天操天天舔天天爽 | 亚洲一区二区日韩 | 自拍视频在线观看 | 精品视频二区三区 | 成年入口无限观看网站 | 亚洲一区 中文字幕 | 久久九九国产精品 | 国产成人精品久久二区二区 | 精品国产一区二区三区久久 | 青青久久av北条麻妃海外网 | 日韩欧美一级在线 | 黄网在线观看 | 色综合av | 26uuu成人免费毛片 | 国产精品99久久久久久久vr | 欧美一性一交 | 99精品欧美一区二区三区 | 亚洲精品福利网站 | 日本在线视频中文字幕 | 亚洲三级不卡 | 九九热re| 超碰在线9 | 欧美日韩a v | 在线视频91 | 成人精品国产 | 国产激情网 | 免费在线黄色电影 | av手机在线电影 | 日韩精品视频在线播放 | 午夜激情在线免费观看 | 天天射影院 | 欧美一区二区三区在线视频 | 亚洲人成人一区二区在线观看 | 国产视频久久久久久 | 天天干天天看天天操 | 国产xxxx精品 | 99视频免费 | 国产精品免费av | 欧美黄色片| 免费福利网站 | 久久综合久色欧美综合狠狠 | 天天干人人 | 在线小视频 | 成人欧美一区二区三区黑人孕妇 | 国产日韩精品一区二区 | 日韩欧美视频 | 国产精品成人一区二区 | 在线不卡视频 | 亚洲精品在线观看免费 | 成人欧美一区二区三区黑人孕妇 | 亚洲最大av网站 | 91精品国产91综合久久蜜臀 | 久久99国产精品久久99果冻传媒 | 午夜国产在线 | 国产区精品 | 91久久精品一区二区二区 | 毛片av在线播放 | 一区二区三区视频 | 久久香蕉国产视频 | 国产一区二区欧美 | 久久亚洲精品综合 | 国产精品网站在线 | 日本精品一区 | 成人免费视频 | 久久国产精品99久久久久久牛牛 | 在线观看毛片网站 | 国产精品久久久久久久久久妇女 | 精品自拍视频 | 色精品| a久久免费视频 | 黄色精品网站 | 欧美视频一级 | 一区二区欧美视频 | 亚洲成人网一区 | 欧美天堂在线观看 | 免费午夜电影 | 国产欧美精品一区二区三区 | 91婷婷射 | 天天澡天天狠天天天做 | 亚洲www.| 日韩精品一区二区三区四区 | 精品二三区 | 2022中文字幕 | 成人欧美在线视频 | 亚洲欧洲精品视频在线观看 | 羞羞视频在线播放 | 欧美日韩成人在线观看 | 午夜合集 | 暖暖视频日韩欧美在线观看 | 久久91精品国产 | 久久久久国 | 日韩国产欧美 | 成人在线三级 | 国产一区二区精品在线 | 午夜操操 | 成人免费一区二区三区视频网站 | 国产乱叫456 | 簧片免费网站 | 精品国产一区二区国模嫣然 | 国产精品久久久久婷婷二区次 | 亚洲精品久久久久久下一站 | 六月丁香av | 奇米精品一区二区三区在线观看 | 波多野结衣一区二 | 青青草国产成人av片免费 | 久久激情网站 | 99精品欧美一区二区三区 | 成人在线观看免费视频 | 极品一区 | 成人午夜网 | 午夜剧院官方 | 欧美一级高潮片免费的 | 亚洲国产精品视频 | 国产精国产精品 | 成人免费一区二区三区视频软件 | 久草福利资源 | 久久久久国产精品免费免费搜索 | 中文字幕一区二区三区精彩视频 | 欧美一级二级片 | 欧美精品在线一区二区 | 久久成人免费视频 | 亚洲欧洲久久 | 欧洲一区二区三区 | 91中文在线观看 | 午夜激情免费在线观看 | 国产黄色网址在线观看 | 成人a级片在线观看 | 日本激情视频一区二区三区 | 欧美中文字幕在线观看 | 国产精品99久久久久久宅男 | 欧美精品第一页 | 天天爽夜夜爽夜夜爽精品视频 | 成人超碰 | а_天堂中文最新版地址 | 亚洲精品自在在线观看 | 欧美一区二区免费 | 99成人 | 欧美久久久久 | 国产成人av综合 | 天天噜天天干 | 剑来在线观看 | 久久91视频 | 久久久国产精品 | 欧美在线国产 | 在线观看免费av网 | 在线黄av| 久久久亚洲 | 日本三级中国三级99人妇网站 | 国产欧美精品一区二区色综合朱莉 | 不卡视频一区二区 | 国产一区二区综合 | 在线观看视频一区二区三区 | 日韩欧美一区二区三区 | 亚洲高清视频一区二区 | 欧美在线视频播放 | 一区二区视频网站 | 日本一区二区不卡 | 精品www| 91精品国产综合久久久久久 | 香蕉久久夜色精品国产使用方法 | 91色电影| 国产 亚洲 网红 主播 | 天堂一区二区三区 | 久久精品国产99国产 | 日韩视频一 | 国产精品theporn | 精品国产伦一区二区三区观看说明 | 午夜专区| jizz在亚洲 | 国产亚洲女人久久久久毛片 | 亚洲二区在线播放 | 国产精品久久国产精麻豆99网站 | 亚洲精彩视频在线观看 | 超碰人人爽 | 青娱乐一区 | 亚洲小视频 | 久久国产精品一区 | 久久久久久久久一区二区 | 欧美大片一区二区 | 黑人粗黑大躁护士 | 久久99精品久久久久久园产越南 | 国产午夜精品福利 | 亚洲三级网站 | 国产日韩精品在线 | 国产在线1 | 久久精品国产清自在天天线 | 九九久久国产 | 亚洲一区二区三区在线视频 | 91短视频版在线观看免费大全 | 欧洲美女7788成人免费视频 | 欧美二区三区视频 | 操视频网站 | 精品一区二区三区在线观看视频 | 国产精品久久久久久婷婷天堂 | av在线一区二区 | 国产乱码精品一区二区三区忘忧草 | 嫩草精品 | 伊人艹| 国产精品久久久久久婷婷天堂 | 国产精品久久久久久亚洲调教 | 99热精品在线 | 真人女人一级毛片免费播放 | 亚洲精品久久久久久下一站 | 91在线高清观看 | 午夜视频一区二区三区 | 国产一区二区av | 精品91久久久 | 欧洲一级毛片 | 国产伦精品久久久一区二区三区 | 色视频网站在线观看 | 久久久久久久一区 | 一级欧美 | 亚洲欧美在线免费观看 | 国产精品久久久久久久久免费高清 | 在线欧美日韩 | 99久久久无码国产精品 | 久久99视频精品 | 国产精品视频一区二区三区不卡 | 久久麻豆视频 | 一区二区影院 | 国产亚洲www | 欧美黄色一区 | 亚洲一区二区在线电影 | 久久久久久网址 | 丁香午夜| 国精产品99永久一区一区 | 欧美激情精品久久久久久 | 欧美日韩一区在线 | 天天综合网网欲色 | 亚洲一区二区三区高清 | 免费看的毛片 | 日本精品视频网站 | 欧洲妇女成人淫片aaa视频 | 中文字幕亚洲综合 | 吊视频一区二区三区 | 北条麻妃一区二区三区中文字幕 | av免费资源 | 国产日韩精品在线 | 精品九九九| 午夜寂寞少妇aaa片毛片 | 韩日精品在线观看 | 国产精久久久久 | 精品视频网站 | 日韩一二三区视频 | 久色视频在线观看 | 欧美精品免费在线观看 | 黄色精品 | 免费成人在线观看视频 | 不卡一区| 久久se精品一区精品二区 | 欧美一级做a爰片免费视频 亚洲精品一区在线观看 | 超碰免费在线观看 | 欧美国产精品一区 | 久热久热 | 国产精品自产拍在线观看 | 亚洲一区二区三区视频 | 夜夜爽99久久国产综合精品女不卡 | 日本淫视频 | 在线观看免费黄色 | 亚洲成人精品网 | 亚洲天堂一区 | 神马久久久久久 | 国产精品伦一区二区三级视频 | 欧美一级免费 | 欧洲美女性开放视频 | 国产精品国色综合久久 | 国产欧美一区二区精品久久 | 久久97视频 | 国产在线二区 | 欧美激情视频一区二区三区在线播放 | 久久久国产精品入口麻豆 | 日韩精品一区二区三区中文字幕 | 偷拍呻吟高潮91 | 精品久久电影 | 在线观看国产高清视频 | av第一页| 精品久久久久久久久久久久久久 | 亚洲三级av| 美女主播精品视频一二三四 | 亚洲一区二区三区免费在线观看 | 亚洲一区二区三区四区五区中文 | 国产精品一级 | 午夜免费高清视频 | 成人午夜啪啪好大 | 中文字幕自拍偷拍 | 台湾佬成人 | 久在线视频 | 一区二区中文字幕 | 欧美一区二区三区视频 | 成年人在线观看 | 国产伦精品一区二区三区四区视频_ | 91操碰 | 毛片com| 国产成人精品免费视频大全最热 | 成人精品一区二区三区中文字幕 | 中文字幕在线日韩 | 色av综合在线 | a黄视频| 精品一区二区久久久久久久网站 | 日本久久视频 | 中文字幕高清在线 | 色综合久久天天综合网 | www.久久 | 高清国产午夜精品久久久久久 | 毛片网站在线 | 在线中文 | 日韩免费视频一区二区 | 国产成人影院在线观看 | 国产精品久久久久久久久免费丝袜 | 成人h视频| 亚洲精品乱码久久久久久9色 | 91精品在线观看入口 | 亚洲视频免费观看 | 免费观看日韩一级片 | 九色一区| 免费看片一区二区三区 | 北条麻妃一区二区免费播放 | 在线视频二区 | 欧美成人精品一区二区 | 国产v日产∨综合v精品视频 | 日韩精品1区2区3区 成人黄页在线观看 | 精品久久久久久久久久久久久久 | 国产一级电影网 | 亚洲高清av| 成人a网 | 人人精久 | 久久一 | 4hu网站 | 国产精品久久久麻豆 | 国产一区二区黑人欧美xxxx | 色综合社区| www97影院 | 国产精品一区二区久久久久 | 国产一二三区在线播放 | 亚洲成人精品 | 国产精品欧美一区二区三区 | 欧美在线观看视频 | 久久精品99国产精品亚洲最刺激 | 91一区二区三区久久国产乱 | 精品国产乱码久久久久久久软件 | 综合久久久 | 日本一区二区不卡视频 | 最近的中文字幕在线看视频 | 北条麻妃一区二区三区在线 | 日韩三级电影免费观看 | av中文字幕在线播放 | 国产成人免费网站 | 综合视频一区二区三区 | 久久婷婷视频 | 毛片av在线播放 | 精品久久久久久久久久久久久久 | 午夜激情电影在线 | 国产精品伊人 | 奇米色欧美一区二区三区 | 91九色在线| 久久精品99国产精品日本 | 国产精品一区二区久久 | 国产日韩视频在线播放 | 久久91精品 | 视频一区二区中文字幕 | 亚洲一区成人在线 | 亚洲视频一区在线 | 国产91在线播放精品91 | 欧美在线视频一区二区 | 在线欧美色 | 国产伦精品一区二区三区四区视频 | 国产目拍亚洲精品99久久精品 | 亚洲视频中文字幕 | 成人一区二区三区在线观看 | av一区二区三区四区 | 国产精品二区三区 | 日韩欧美在线观看一区二区 | 91在线播放视频 | 人人射av | 国产高清一区二区 | 国产女无套免费网站 | 亚洲国产精品99久久久久久久久 | 98精品国产高清在线xxxx天堂 | 性毛片| 人人干天天干 | 中国妞xxxhd露脸偷拍视频 | 97成人精品视频在线观看 | 亚洲视频一区二区 | 日韩欧美a级v片免费播放 | 看特级毛片 | 亚洲精品成人 | 色先锋影音 | 国产精品久久久久久无遮挡 | 免费的日本网站 | 国产高清一区 | 午夜精品成人一区二区 | 国产精品久久久久久亚洲调教 | 欧美日韩一区二区三区在线观看 | 日日干夜夜干 | 人人草在线观看视频 | 国产大学生援交视频在线观看 | 日韩精品在线免费观看 | 精品一区二区视频 | 一区二区三区亚洲精品国 | 亚洲精品久久久 | 国产欧美日本 | 久草观看| 亚洲狠狠爱一区二区三区 | 一区二区三区在线免费观看 | 久久久亚洲 | a级在线观看| 久久久久久久久久久久久久久久久久久 | www.亚洲成人网 | 久久夜色精品国产 | 国产欧美日韩中文字幕 | 亚洲国产欧美日韩 | 国产一区二区在线免费观看 | 久热精品视频 | 欧美福利电影在线观看 | 中文字幕一区在线 | 欧美性大战久久久久久久蜜臀 | 亚洲精品一 | 91精品国产色综合久久 | 免费毛片网站 | 久久精品免费视频观看 | 欧美精品1区2区3区 国产女无套免费网站 | 国产精品嫩草55av | 最新中文字幕 | 亚洲国产一区二区三区 | 国产全黄| 成人av视 | 九色91视频 | 日日夜夜精品免费视频 | 国产精品久久久久久久久免费桃花 | 亚洲精品国产乱码在线看蜜月 | 亚洲人视频| 九九精品在线 | 成人精品一区二区三区 | 一区二区三区国产亚洲网站 | 国产精品一卡二卡三卡 | 国产精品久久久久久久久久妞妞 | 亚洲人人舔人人 | 日韩av在线电影 | 国产精品久久久久久久久久久久 | 日韩av手机在线免费观看 | 婷婷久久综合 | 狠狠操网站 | 久久兔费看a级 | 太子妃好紧皇上好爽h | 天天艹久久 | 国产成人高清精品免费5388 | 欧美日韩综合精品 | 久久久久久九九 | 亚洲综合一区二区 | 国产精品久久久久久亚洲调教 | 少妇精品视频在线观看 | 欧美激情欧美激情在线五月 | 人人操日日干 | 亚洲综合视频一区 | 欧美精品一区三区 | 国产精品久久久久久久久久妞妞 | 黄色av网站免费看 | 九九热精品视频在线观看 | 99看 | 免费v片 | 成人免费在线网址 | 9l蝌蚪porny中文自拍 | 男女深夜视频 | 91精品国产一区二区三区四区在线 | 99热精品在线 | 亚洲成人免费在线 | 在线a电影| 免费a视频 | 性视频一区二区 | 成人欧美 | 国产综合av | 中文字幕亚洲区 | 最新国产在线视频 | 国产高清视频一区二区 | 亚洲成人日本 | 久久精品一区二区三区四区 | 欧美成人性生活视频 | 色视频在线免费观看 | 日韩一区二区在线观看 | 日韩成人中文字幕 | 韩国精品视频在线观看 | 黄色一级免费观看 | 亚洲欧美少妇 | 国产一区二区在线电影 | 亚洲一区二区在线 | 中文字幕高清av | 欧美一级做a爰片免费视频 亚洲精品一区在线观看 | 久久久久久久国产精品 | 91色视频在线观看 | 永久91嫩草亚洲精品人人 | 97超碰在线免费 | 欧美日一区二区 | 亚洲一区二区三区视频 | av天空 | 中文字幕亚洲欧美日韩在线不卡 | 中国女人黄色大片 | 国产九九在线观看 | 91日韩精品一区二区三区 | 黄色片一区 | 成人网18免费网站 | 久久在线 | 欧美久久久久久久久久久久 | 国产91在线视频 | 欧美精品在线观看 | 人人射人人草 | 欧美精品片 | 日韩精品一二区 | 色黄视频在线观看 | 色婷婷综合在线 | 国家aaa的一级看片 h片在线看 | 日韩婷婷 | 在线第一页| 亚洲午夜精品a | 日韩国产精品一区二区三区 | 精品国产精品三级精品av网址 | 亚洲成人精品 | 色婷婷一区二区三区四区 | 中国特黄毛片 | xxxx欧美 | 亚洲成人一区二区三区 | 国产精品九九九 | 中文字幕 国产精品 | 日韩视频在线免费观看 | 免费国产视频 | 91精品国产综合久久久久久丝袜 | 欧美一级在线 | 国产成人精品一区二区在线 | 可以免费看黄的网站 | 韩日精品 | 国产激情视频网 | 日本另类αv欧美另类aⅴ | 国产色婷婷精品综合在线播放 | 亚洲首页| 国产小视频在线 | 青青伊人久久 | 国产精品视屏 | 精品久久一区二区三区 | 日韩在线欧美 | 亚洲在线视频 | 国产精品456在线影视 | 黄色成人影视 | 国产精品国产三级国产aⅴ中文 | 综合色婷婷一区二区亚洲欧美国产 | 亚洲国产精品久久人人爱 | 婷婷网址| 高清视频一区 | 日韩中文字幕一区二区 | 最新国产精品 | 亚洲福利一区 | 中文字幕日韩在线 | 精品视频一区二区在线观看 | 久久亚洲美女 | 亚洲 欧美 日韩 在线 | 日韩电影在线一区 | 99精品欧美一区二区三区综合在线 | 日日干夜夜操 | 91免费观看国产 | 久久成人国产 | 精品久久久久久久久久久久 | 九色91视频| av一区二区三区四区 | 人人爽在线观看 | 99在线视频精品 | av网站免费看 | 国产精品久久久久9999鸭 | 99亚洲精品 | 精品国产乱码一区二区三区四区 | 少妇无套高潮一二三区 | 特级丰满少妇一级aaaa爱毛片 | 欧美日韩在线观看视频 | 99在线精品视频 | www.福利视频 | 黄色片在线免费观看 | 欧美一卡二卡在线观看 | 亚洲精品91|