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

Java常見(jiàn)的四種引用

開(kāi)發(fā) 后端
從JDK1.2版本開(kāi)始,把對(duì)象的引用分為四種級(jí)別,從而使程序能更加靈活的控制對(duì)象的生命周期。這四種級(jí)別由高到低依次為:強(qiáng)引用、軟引用、弱引用和虛引用。

從JDK1.2版本開(kāi)始,把對(duì)象的引用分為四種級(jí)別,從而使程序能更加靈活的控制對(duì)象的生命周期。這四種級(jí)別由高到低依次為:強(qiáng)引用、軟引用、弱引用和虛引用。

1.強(qiáng)引用

本章前文介紹的引用實(shí)際上都是強(qiáng)引用,這是使用最普遍的引用。如果一個(gè)對(duì)象具有強(qiáng)引用,那就 類(lèi)似于必不可少的生活用品,垃圾回收器絕不會(huì)回收它。當(dāng)內(nèi)存空 間不足,Java虛擬機(jī)寧愿拋出OutOfMemoryError錯(cuò)誤,使程序異常終止,也不會(huì)靠隨意回收具有強(qiáng)引用的對(duì)象來(lái)解決內(nèi)存不足問(wèn)題。

2.軟引用(SoftReference)

如果一個(gè)對(duì)象只具有軟引用,那就類(lèi)似于可有可物的生活用品。如果內(nèi)存空間足夠,垃圾回收器就不會(huì)回收它,如果內(nèi)存空間不足了,就會(huì)回收這些對(duì)象的內(nèi)存。只要垃圾回收器沒(méi)有回收它,該對(duì)象就可以被程序使用。軟引用可用來(lái)實(shí)現(xiàn)內(nèi)存敏感的高速緩存。
軟引用可以和一個(gè)引用隊(duì)列(ReferenceQueue)聯(lián)合使用,如果軟引用所引用的對(duì)象被垃圾回收,Java虛擬機(jī)就會(huì)把這個(gè)軟引用加入到與之關(guān)聯(lián)的引用隊(duì)列中。

3.弱引用(WeakReference)

如果一個(gè)對(duì)象只具有弱引用,那就類(lèi)似于可有可物的生活用品。 弱引用與軟引用的區(qū)別在于:只具有弱引用的對(duì)象擁有更短暫的生命周期。在垃圾回收器線程掃描它 所管轄的內(nèi)存區(qū)域的過(guò)程中,一旦發(fā)現(xiàn)了只具有弱引用的對(duì)象,不管當(dāng)前內(nèi)存空間足夠與否,都會(huì)回收它的內(nèi)存。不過(guò),由于垃圾回收器是一個(gè)優(yōu)先級(jí)很低的線程, 因此不一定會(huì)很快發(fā)現(xiàn)那些只具有弱引用的對(duì)象。
弱引用可以和一個(gè)引用隊(duì)列(ReferenceQueue)聯(lián)合使用,如果弱引用所引用的對(duì)象被垃圾回收,Java虛擬機(jī)就會(huì)把這個(gè)弱引用加入到與之關(guān)聯(lián)的引用隊(duì)列中。

4.虛引用(PhantomReference)

"虛引用"顧名思義,就是形同虛設(shè),與其他幾種引用都不同,虛引用并不會(huì)決定對(duì)象的生命周期。如果一個(gè)對(duì)象僅持有虛引用,那么它就和沒(méi)有任何引用一樣,在任何時(shí)候都可能被垃圾回收。
虛 引用主要用來(lái)跟蹤對(duì)象被垃圾回收的活動(dòng)。虛引用與軟引用和弱引用的一個(gè)區(qū)別在于:虛引用必須和引用隊(duì)列(ReferenceQueue)聯(lián)合使用。當(dāng)垃 圾回收器準(zhǔn)備回收一個(gè)對(duì)象時(shí),如果發(fā)現(xiàn)它還有虛引用,就會(huì)在回收對(duì)象的內(nèi)存之前,把這個(gè)虛引用加入到與之關(guān)聯(lián)的引用隊(duì)列中。程序可以通過(guò)判斷引用隊(duì)列中是 否已經(jīng)加入了虛引用,來(lái)了解被引用的對(duì)象是否將要被垃圾回收。程序如果發(fā)現(xiàn)某個(gè)虛引用已經(jīng)被加入到引用隊(duì)列,那么就可以在所引用的對(duì)象的內(nèi)存被回收之前采取必要的行動(dòng)。

在本書(shū)中,"引用"既可以作為動(dòng)詞,也可以作為名詞,讀者應(yīng)該根據(jù)上下文來(lái)區(qū)分"引用"的含義。

在java.lang.ref包中提供了三個(gè)類(lèi):SoftReference類(lèi)、WeakReference類(lèi)和PhantomReference 類(lèi),它 們分別代表軟引用、弱引用和虛引用。ReferenceQueue類(lèi)表示引用隊(duì)列,它可以和這三種引用類(lèi)聯(lián)合使用,以便跟蹤Java虛擬機(jī)回收所引用的對(duì) 象的活動(dòng)。以下程序創(chuàng)建了一個(gè)String對(duì)象、ReferenceQueue對(duì)象和WeakReference對(duì)象:

  1. //創(chuàng)建一個(gè)強(qiáng)引用 
  2. String str = new String("hello"); 
  3. //創(chuàng)建引用隊(duì)列, <String>為范型標(biāo)記,表明隊(duì)列中存放String對(duì)象的引用 
  4. ReferenceQueue<String> rq = new ReferenceQueue<String>(); 
  5. //創(chuàng)建一個(gè)弱引用,它引用"hello"對(duì)象,并且與rq引用隊(duì)列關(guān)聯(lián) 
  6. //<String>為范型標(biāo)記,表明WeakReference會(huì)弱引用String對(duì)象 
  7. WeakReference<String> wf = new WeakReference<String>(str, rq); 

以上程序代碼執(zhí)行完畢,內(nèi)存中引用與對(duì)象的關(guān)系如圖11-10所示。

圖11-10 "hello"對(duì)象同時(shí)具有強(qiáng)引用和弱引用

在圖11-10中,帶實(shí)線的箭頭表示強(qiáng)引用,帶虛線的箭頭表示弱引用。從圖中可以看出,此時(shí)"hello"對(duì)象被str強(qiáng)引用,并且被一個(gè)WeakReference對(duì)象弱引用,因此"hello"對(duì)象不會(huì)被垃圾回收。

在以下程序代碼中,把引用"hello"對(duì)象的str變量置為null,然后再通過(guò)WeakReference弱引用的get()方法獲得"hello"對(duì)象的引用:

  1. String str = new String("hello"); //① 
  2. ReferenceQueue<String> rq = new ReferenceQueue<String>(); //② 
  3. WeakReference<String> wf = new WeakReference<String>(str, rq); //③ 
  4. str=null//④取消"hello"對(duì)象的強(qiáng)引用 
  5. String str1=wf.get(); //⑤假如"hello"對(duì)象沒(méi)有被回收,str1引用"hello"對(duì)象 
  6. //假如"hello"對(duì)象沒(méi)有被回收,rq.poll()返回null 
  7. Reference<? extends String> ref=rq.poll(); //⑥ 

執(zhí)行完以上第④行后,內(nèi)存中引用與對(duì)象的關(guān)系如圖11-11所示,此 時(shí)"hello"對(duì)象僅僅具有弱引用,因此它有可能被垃圾回收。假如它還沒(méi)有被垃圾回收,那么接下來(lái)在第⑤行執(zhí)行wf.get()方法會(huì)返 回"hello"對(duì)象的引用,并且使得這個(gè)對(duì)象被str1強(qiáng)引用。再接下來(lái)在第⑥行執(zhí)行rq.poll()方法會(huì)返回null,因?yàn)榇藭r(shí)引用隊(duì)列中沒(méi)有任 何引用。ReferenceQueue的poll()方法用于返回隊(duì)列中的引用,如果沒(méi)有則返回null。

圖11-11 "hello"對(duì)象只具有弱引用

在以下程序代碼中,執(zhí)行完第④行后,"hello"對(duì)象僅僅具有弱引用。接下來(lái)兩次調(diào)用System.gc()方法,催促垃圾回收器工作,從而提 高"hello"對(duì)象被回收的可能性。假如"hello"對(duì)象被回收,那么WeakReference對(duì)象的引用被加入到ReferenceQueue 中,接下來(lái)wf.get()方法返回null,并且rq.poll()方法返回WeakReference對(duì)象的引用。圖11-12顯示了執(zhí)行完第⑧行后 內(nèi)存中引用與對(duì)象的關(guān)系。

 

  1. String str = new String("hello"); //① 
  2. ReferenceQueue<String> rq = new ReferenceQueue<String>(); //② 
  3. WeakReference<String> wf = new WeakReference<String>(str, rq); //③ 
  4. str=null//④ 
  5. //兩次催促垃圾回收器工作,提高"hello"對(duì)象被回收的可能性 
  6. System.gc(); //⑤ 
  7. System.gc(); //⑥ 
  8. String str1=wf.get(); //⑦ 假如"hello"對(duì)象被回收,str1為null 
  9. Reference<? extends String> ref=rq.poll(); //⑧ 

圖11-12 "hello"對(duì)象被垃圾回收,弱引用被加入到引用隊(duì)列

The important part about strong references -- the part that makes them "strong" -- is how they interact with the garbage collector. Specifically, if an object is reachable via a chain of strong references (strongly reachable), it is not eligible for garbage collection. As you don't want the garbage collector destroying objects you're working on, this is normally exactly what you want.

  1. package com.TestRef; 
  2.  
  3. import java.lang.ref.PhantomReference; 
  4. import java.lang.ref.ReferenceQueue; 
  5. import java.lang.ref.SoftReference; 
  6. import java.lang.ref.WeakReference; 
  7. import java.util.Map; 
  8. import java.util.WeakHashMap; 
  9.  
  10. public class Ref { 
  11.     public Ref() { 
  12.     } 
  13.     /** 
  14.      * @param args 
  15.      */ 
  16.     public static void main(String[] args) { 
  17.         try { 
  18. //            test1(); 
  19. //            test2(); 
  20. //            test3(); 
  21. //            test4(); 
  22. //            test5(); 
  23.             test6(); 
  24.         } catch (InterruptedException e) { 
  25.             // TODO Auto-generated catch block 
  26.             e.printStackTrace(); 
  27.         } 
  28.     } 
  29.     /** 強(qiáng)引用,JVM的默認(rèn)實(shí)現(xiàn) */   
  30.     public static void test1() throws InterruptedException {   
  31.         Object obj = new Object();   
  32.         Object strong = obj;   
  33.         obj = null;   
  34.         System.gc();   
  35.         Thread.sleep(1000);   
  36.         System.out.println("strong="+strong); 
  37.     }   
  38.     /**  
  39.      * WeakReference 弱引用( 當(dāng)所引用的對(duì)象在 JVM 內(nèi)不再有強(qiáng)引用時(shí), GC 后weak reference 將會(huì)被自動(dòng)回收)  
  40.      * */   
  41.     public static void test2() throws InterruptedException {   
  42.         Object obj = new Object();   
  43.         WeakReference<Object> wr = new WeakReference<Object>(obj);   
  44.         obj = null;   
  45.         System.gc();   
  46.         Thread.sleep(1000);   
  47.         System.out.println("wr.get()="+wr.get());   
  48.         System.out.println("wr="+wr);   
  49.         wr.clear(); 
  50.         System.out.println("w1111r="+wr.get());   
  51.     }   
  52.     /**  
  53.      * SoftReference SoftReference 于 WeakReference 的特性基本一致, ***的區(qū)別在于  
  54.      * SoftReference 會(huì)盡可能長(zhǎng)的保留引用直到 JVM 內(nèi)存不足時(shí)才會(huì)被回收(虛擬機(jī)保證)  
  55.      * */   
  56.     public static void test3() throws InterruptedException {   
  57.         Object obj = new Object();   
  58.         SoftReference<Object> sr = new SoftReference<Object>(obj);   
  59.         obj = null;   
  60.         System.gc();   
  61.         Thread.sleep(1000);   
  62.         System.out.println("sr.get()="+sr.get());   
  63.     }   
  64.     /**  
  65.      * PhantomReference Phantom Reference(幽靈引用) 與 WeakReference 和 SoftReference  
  66.      * 有很大的不同, 因?yàn)樗?nbsp;get() 方法永遠(yuǎn)返回 null  
  67.      * */   
  68.     public static void test4() throws InterruptedException {   
  69.         Object obj = new Object();   
  70.         ReferenceQueue<Object> rq = new ReferenceQueue<Object>();   
  71.         PhantomReference<Object> pr = new PhantomReference<Object>(obj, rq);   
  72.         System.out.println("pr.get()="+pr.get());  
  73.     }   
  74.     /** 
  75.      * ReferenceQueue: 
  76.      * @throws InterruptedException 
  77.      */ 
  78.     public static void test5() throws InterruptedException {   
  79.         Object obj = new Object();   
  80.         ReferenceQueue<Object> rq = new ReferenceQueue<Object>();   
  81.         WeakReference<Object> pr = new WeakReference<Object>(obj, rq);   
  82.         System.out.println("**pr.enqueue()="+pr.enqueue());   
  83.         System.out.println("**pr.isEnqueued()="+pr.isEnqueued());       
  84.         System.out.println("**pr="+pr); 
  85.         System.out.println("**rq.poll()="+rq.poll());   
  86.         obj = null;   
  87.         System.gc();   
  88. //        System.out.println("pr.enqueue()="+pr.enqueue());   
  89. //        System.out.println("**pr.isEnqueued()="+pr.isEnqueued());       
  90. //        System.out.println("pr="+pr); 
  91. //        System.out.println("rq.poll()="+rq.poll());   
  92. //        System.out.println("obj5="+obj);   
  93.     }   
  94.      
  95.     /**  
  96.      * 使用 WeakReference 作為 key, 一旦沒(méi)有指向 key 的強(qiáng)引用,   
  97.      * WeakHashMap 在 GC 后將自動(dòng)刪除相關(guān)的  
  98.      * entry  
  99.      */   
  100.     public static void test6() throws InterruptedException {   
  101.         Map<Object, Object> map = new WeakHashMap<Object, Object>();   
  102.         Object key = new Object();   
  103.         Object value = new Object();   
  104.         map.put(key, value);   
  105.         key = null;   
  106. //        System.out.println("value="+value);   
  107. //        System.out.println("key="+key);   
  108. //        System.out.println("map.containsValue(value)="+map.containsValue(value));  
  109. //        System.out.println("map="+map);   
  110.         System.gc();   
  111.         Thread.sleep(1000);   
  112.         System.out.println("value="+value);   
  113.         System.out.println("key="+key);   
  114.         System.out.println("map.containsValue(value)="+map.containsValue(value));  
  115.         System.out.println("map="+map);   
  116.     }   

原文鏈接:http://www.cnblogs.com/-OYK/archive/2011/10/24/2222874.html

【編輯推薦】

  1. Java程序員慣性思維的一個(gè)錯(cuò)誤
  2. 高手真經(jīng) 13條Java核心技術(shù)
  3. Java的ClassLoader機(jī)制解析
  4. 精解Java中代理模式的實(shí)現(xiàn)
  5. Java常量池詳解之抓狂的面試題
責(zé)任編輯:林師授 來(lái)源: 歐陽(yáng)昆的博客
相關(guān)推薦

2019-10-24 07:42:28

Java引用GC

2021-06-04 10:45:31

軟件架構(gòu)分布式

2024-10-24 08:04:00

2017-07-14 16:28:21

2025-09-05 01:23:00

PyTorchPython分支

2010-08-13 13:31:48

Flex效果組件

2011-06-30 14:45:52

外鏈

2024-11-07 11:17:50

2021-08-12 11:37:23

數(shù)據(jù)分析錯(cuò)誤

2021-10-18 15:50:49

Android強(qiáng)引用軟引用

2023-10-30 11:40:36

OOM線程池單線程

2018-06-20 08:47:44

DevOps微服務(wù)UX設(shè)計(jì)師

2010-06-18 09:19:39

UML面向?qū)ο蠼?/a>

2010-06-17 09:34:50

UML面向?qū)ο蠼?/a>

2025-06-12 03:55:00

項(xiàng)目處理異常代碼

2012-09-11 09:55:26

編程HTML5編程能力

2011-03-16 09:05:53

NATiptables

2017-07-06 15:40:19

DevOps核心能力

2010-04-16 16:06:06

2019-04-03 05:04:50

點(diǎn)贊
收藏

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

久久久久无码精品| 黄色网络在线观看| 日本成人一级片| 97视频精品| 日韩欧美一级二级三级| 成人一级生活片| 日韩欧美在线观看一区二区| 美国毛片一区二区三区| 欧美日韩第一视频| 香蕉网在线播放| 日韩五码电影| 午夜激情一区二区三区| 日韩在线导航| 亚洲精品久久久久久动漫器材一区| 亚洲日本国产| 色多多国产成人永久免费网站 | 久久成人亚洲| 日韩在线免费观看视频| 国产午夜在线一区二区三区| 欧美一区 二区 三区| 亚洲嫩草精品久久| 欧美一级爱爱| 亚洲精品无码专区| 视频一区免费在线观看| 欧美日韩第一页| 亚洲女同二女同志奶水| 久草在线综合| 91精品欧美综合在线观看最新| 欧美日韩性生活片| 久久亚洲天堂| 久久亚洲影视婷婷| 国产高清一区视频| 国产精品视频a| 日韩在线一区二区三区| 欧美激情a∨在线视频播放| 天天干天天舔天天操| 精品综合久久88少妇激情| 777色狠狠一区二区三区| 久久久久久久久久久视频| 50度灰在线| 国产精品精品国产色婷婷| 欧美日韩精品久久久免费观看| www视频在线| 精品一区二区av| 国产精品第100页| 99热在线观看免费精品| 欧美色图麻豆| 久色乳综合思思在线视频| 国产亚洲精品熟女国产成人| 日本欧美韩国国产| 日韩av综合网站| 日本黄色大片在线观看| 国产精品一区二区三区四区在线观看 | 韩国精品一区二区三区六区色诱| 国产视频在线免费观看| 久久精品久久精品| 国产精品偷伦免费视频观看的| 欧美啪啪小视频| 亚洲欧洲综合| 国内免费久久久久久久久久久| 国产探花在线免费观看| 午夜av一区| 精品国产一区二区三区久久| 国产精品综合激情| 成人动漫免费在线观看| 一色桃子一区二区| 亚洲熟女少妇一区二区| 99久久精品国产亚洲精品 | 亚洲最大福利网| 99国产精品久久久久久久成人| 久久成人麻豆午夜电影| 成人动漫网站在线观看| av免费在线不卡| 国产精品一区二区三区99| 666精品在线| 亚洲国产999| 国产99久久久国产精品潘金| 国产乱码精品一区二区三区不卡| 黄频网站在线观看| 久久综合资源网| 欧美在线一二三区| 日本中文在线观看| 亚洲另类在线视频| 国产精品久久中文字幕| 激情开心成人网| 9191精品国产综合久久久久久| 91网址在线观看精品| 国产 日韩 欧美 综合 一区| 亚洲免费视频一区二区| 毛片久久久久久| 欧美成人日韩| 992tv成人免费影院| 无码久久精品国产亚洲av影片| 久久99最新地址| 999热视频在线观看| 日本激情视频网站| 国产精品拍天天在线| 日韩欧美视频免费在线观看| 在线看片国产福利你懂的| 国内偷拍精品视频| 老牛影视一区二区三区| 成人www视频在线观看| 天天操天天操天天| 中文字幕乱码亚洲精品一区 | 在线免费观看黄色| 亚洲午夜电影在线观看| 国产三级三级三级看三级| 成人在线精品| 日韩成人中文字幕| 欧美性生交大片| av成人激情| 国产在线播放91| 香蕉久久国产av一区二区| 中文字幕五月欧美| 免费 成 人 黄 色| 狂野欧美xxxx韩国少妇| 亚洲欧美日韩天堂| 久久久久免费看| 美女视频免费一区| 久久综合一区二区三区| 午夜小视频在线观看| 欧美性猛交xxxx黑人交| a级一a一级在线观看| 亚洲国产精品日韩专区av有中文| 欧洲午夜精品久久久| 精品二区在线观看| 中文字幕在线一区免费| 久久国产成人精品国产成人亚洲| 韩国三级成人在线| 中文字幕免费精品一区高清| www.中文字幕在线观看| 国产福利一区二区三区在线视频| 日韩中文字幕一区| 欧美aa免费在线| 欧美成人一区二区三区片免费 | 欧美—级a级欧美特级ar全黄| 中文在线最新版天堂| 97久久超碰国产精品| 2021狠狠干| 亚洲一区二区三区久久久| 亚洲精品一二区| 国产午夜精品无码一区二区| 国产一区二区三区精品欧美日韩一区二区三区 | 国产91av视频| 国产一区高清在线| 中文字幕一区二区三区四区五区| 原纱央莉成人av片| 亚洲精品福利在线观看| 日本天堂在线视频| 成人福利视频在线| 日本男女交配视频| 日韩在线亚洲| 欧美成人一区二区三区电影| 一区二区三区黄| 国产精品国产精品国产专区不片| 国产九九在线视频| 国产成人精品999在线观看| 欧美一级免费看| 久久精品国产亚洲a∨麻豆| 欧美视频在线观看免费| 免费不卡的av| 亚洲另类黄色| 麻豆传媒一区二区| 午夜伦理福利在线| 亚洲毛片在线免费观看| 在线观看日本网站| 国产欧美日韩综合| 91日韩视频在线观看| 日韩成人a**站| 成人亲热视频网站| 牛牛精品在线视频| 欧美精品一区二区久久婷婷| 色婷婷av国产精品| 国产女同互慰高潮91漫画| 亚洲欧美日韩一级| 影音先锋日韩精品| 国产欧美日韩综合精品二区| 筱崎爱全乳无删减在线观看 | 91九色蝌蚪porny| 999亚洲国产精| 欧美在线播放一区二区| 狂野欧美性猛交xxxx| 色中色综合影院手机版在线观看| 亚洲av无码国产精品永久一区| 亚洲国产精品人人做人人爽| 97人妻精品一区二区三区免| 人人精品人人爱| 激情视频小说图片| 欧洲亚洲一区二区三区| 国产精品一区二区3区| 青春草在线免费视频| 亚洲美女视频网| 一级黄色大片免费| 亚洲午夜一二三区视频| 在线国产视频一区| 国产美女在线精品| 欧美日韩二三区| 国产精品99在线观看| 国产日韩一区欧美| 福利一区二区| 欧美激情二区三区| 成人免费在线视频网| 欧美成人官网二区| 亚洲图片欧美日韩| 午夜私人影院久久久久| 麻豆视频免费在线播放| 成人美女视频在线观看18| 天天操天天摸天天爽| 激情欧美日韩| 亚洲人成人77777线观看| 国产精品毛片视频| 成人精品久久久| 久久爱91午夜羞羞| 欧美激情一级精品国产| wwwww在线观看免费视频| 亚洲第一视频在线观看| 国产乱码精品一区二三区蜜臂| 色妞www精品视频| 国产第一页在线播放| 17c精品麻豆一区二区免费| 美女又爽又黄视频毛茸茸| 国产老女人精品毛片久久| 天堂av在线网站| 国产精品腿扒开做爽爽爽挤奶网站| 潘金莲一级淫片aaaaa免费看| 在线日韩网站| 国产精品视频福利| 日韩不卡在线视频| 成人免费视频a| 久久亚洲精品中文字幕| 国产成人黄色av| 偷拍自拍在线看| 97超级碰碰人国产在线观看| 俺来俺也去www色在线观看| 不卡毛片在线看| 日本中文字幕在线2020| 中文字幕精品一区久久久久| 欧美zozo| 日韩黄在线观看| 欧美一级做性受免费大片免费| 91精品国产综合久久精品app | 日本午夜一区二区| 日本在线观看a| 欧美亚洲一级| 欧美在线观看www| 亚洲大片av| 日本黄大片在线观看| 欧美日本二区| 国产精品久久久久久久乖乖| 国内久久视频| 日韩精品视频在线观看视频| 精品999网站| 男的插女的下面视频| 99热免费精品| 精品这里只有精品| 性xx色xx综合久久久xx| 黄色影院一级片| 久久久噜噜噜| 亚洲精品一二三四五区| 美女任你摸久久| 中文字幕中文在线| 国产精品一区三区| 中文字幕人妻一区| 91亚洲永久精品| 少妇精品一区二区三区| 国产欧美一区二区精品性色| 999福利视频| 亚洲免费资源在线播放| 久久精品国产亚洲av无码娇色| 精品久久久久国产| 亚洲av无码不卡| 欧美精品v日韩精品v韩国精品v| 国产精品女人久久久| 欧美一区二区三区色| 天天操天天干天天干| 亚洲视频免费一区| 免费a级毛片在线播放| 欧美人在线观看| 色戒汤唯在线观看| 国产欧美va欧美va香蕉在| 日本高清精品| 精品国产福利| 日韩av自拍| 国产91沈先生在线播放| 亚洲欧美日本日韩| 天天操狠狠操夜夜操| 成人丝袜高跟foot| 黄免费在线观看| 亚洲精品伦理在线| 久久久精品免费看| 在线观看91精品国产麻豆| 丰满人妻一区二区三区四区53 | 中文字幕在线播放一区| 国产视频一区在线播放| 综合五月激情网| 好吊成人免视频| 97人妻精品一区二区三区软件 | 精品乱码一区二区三四区视频| 日韩中文有码在线视频| 波多野结衣在线观看| 国产精品网址在线| 琪琪久久久久日韩精品| 超碰在线免费观看97| 国产精品色网| 性生交大片免费看l| 欧美激情一区在线观看| 久久精品美女视频| 欧美日韩免费在线视频| 亚洲av片一区二区三区| 久久中文字幕一区| 九九热线视频只有这里最精品| 成人h视频在线观看| 欧美日一区二区| 欧美亚洲日本一区二区三区 | 韩国av中国字幕| 国产精品欧美精品| 亚洲GV成人无码久久精品| 日韩一区和二区| av网站在线免费观看| 日本免费一区二区三区视频观看| 永久免费精品视频| 自拍另类欧美| 青草av.久久免费一区| 国产精品三级在线观看无码| 夜夜亚洲天天久久| 96亚洲精品久久久蜜桃| 国产亚洲精品久久久| 日韩伦理精品| 国产欧美日韩伦理| 亚洲午夜久久久久久尤物| 成人亚洲免费视频| 国产精品污www在线观看| 91精品国产高清一区二区三密臀| 亚洲成人久久一区| 久久久123| 国产二区一区| 亚洲午夜黄色| 亚洲少妇一区二区三区| 亚洲乱码一区二区三区在线观看| 国产又粗又猛又爽又黄视频| 中文字幕av一区二区| 欧美xnxx| 亚洲高清在线播放| 蜜桃精品在线观看| 国产传媒在线看| 欧美私模裸体表演在线观看| 高清美女视频一区| 国产97色在线|日韩| 精品欧美久久| 中文字幕在线导航| 中文字幕成人在线观看| 中文字幕乱码一区二区 | 国产精品免费在线| 欧美日韩1区| 小毛片在线观看| 狠狠做深爱婷婷久久综合一区| 日本五码在线| 国产精品成久久久久三级| 日韩欧美国产精品综合嫩v| 性生活免费在线观看| 中文字幕在线一区| 午夜精品久久久久久久99热黄桃 | 日本一二三不卡视频| 91久久综合| 中国极品少妇videossexhd| 黄色成人av网| 牛牛影视精品影视| 国产精品日韩欧美综合| 91av精品| 亚洲午夜久久久久久久久| 欧美日韩亚洲一区二区三区| 国产区在线视频| 91久久精品国产| 亚洲无线一线二线三线区别av| www.免费av| 欧美在线观看18| caoporn免费在线视频| 国产精品区二区三区日本| 久久国产毛片| 欧美手机在线观看| 亚洲大尺度美女在线| 美女网站视频一区| 国产资源第一页| 99re热这里只有精品视频| 在线免费观看国产精品| 精品国产一区二区三区久久狼5月 精品国产一区二区三区久久久狼 精品国产一区二区三区久久久 | 男人天堂亚洲天堂| 女人一区二区三区| 国产一区视频导航| av资源免费观看| 久久视频精品在线| 性人久久久久| 一个人看的视频www| 欧美视频在线免费| 99自拍视频在线观看| 欧美一卡2卡3卡4卡无卡免费观看水多多| 麻豆成人免费电影| 日韩av无码中文字幕| 久久精品成人欧美大片古装| 日韩成人一级|