精品欧美一区二区三区在线观看 _久久久久国色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)

精品一区二区在线视频| 四虎成人av| 色综合久久综合网97色综合 | japanese色系久久精品| 天天综合天天综合色| 亚洲成人a**址| www.黄色国产| 日韩激情在线观看| 久久久久久久国产精品视频| 日本爱爱爱视频| 9l视频自拍九色9l视频成人| 欧美中文字幕一二三区视频| 欧美日韩福利在线| 色大18成网站www在线观看| 岛国精品一区二区| 成人午夜一级二级三级| 中文字幕国产在线观看| 欧美日韩亚洲一区| 色偷偷88888欧美精品久久久 | 美女视频久久黄| 亚洲久久久久久久| 国产精品qvod| 91精品国产综合久久精品图片| 日本免费不卡一区二区| 黄色av免费在线| 亚洲国产成人私人影院tom| 国产综合精品一区二区三区| av一区二区三| 美女性感视频久久| 国产精品久久久999| 日韩久久久久久久久| 51精产品一区一区三区| 在线中文字幕日韩| 在线不卡av电影| 免费萌白酱国产一区二区三区| 欧美日韩www| 中文字幕有码av| 国产另类xxxxhd高清| 丁香五六月婷婷久久激情| 欧美高清中文字幕| 国产一线二线在线观看 | 中国一级免费毛片| 亚洲私人影院| 色综合久久中文字幕综合网小说| jizz日本在线播放| 欧洲激情视频| 中文字幕国产日韩| 在线免费观看视频| 欧美日韩有码| 中文字幕欧美专区| 亚洲天堂岛国片| 日韩久久视频| 日韩在线观看网站| 手机在线中文字幕| 91综合在线| 久久这里有精品视频| 欧美第一页在线观看| 欧美在线亚洲| 欧美激情亚洲激情| 精品在线播放视频| 亚久久调教视频| 国产精品福利久久久| 国产三级理论片| 精品系列免费在线观看| 3d蒂法精品啪啪一区二区免费| 国产精品久久久久久久久毛片 | 精品亚洲免费视频| 97se视频在线观看| 五月婷婷狠狠干| 国产婷婷色一区二区三区在线| 日韩欧美亚洲日产国产| 美女国产在线| 一区二区三区 在线观看视频| 国产一级做a爰片久久毛片男| 电影k8一区二区三区久久| 欧美日韩国产在线播放| av免费网站观看| 成人av在线播放| 亚洲国产福利在线| 亚洲第一视频区| 欧美福利网址| 欧洲美女7788成人免费视频| 夜夜狠狠擅视频| 懂色中文一区二区在线播放| 麻豆传媒一区二区| 亚洲xxxxxx| 亚洲一级片在线观看| 欧美性猛交xxx乱久交| 日本一区二区乱| 亚洲欧美日韩高清| 永久免费看片直接| 日韩视频一区| 国产欧美日韩91| 日本波多野结衣在线| 日本一区二区三区国色天香| 青青草免费在线视频观看| 黄色aa久久| 欧美精品v国产精品v日韩精品| 欧美成人精品一区二区综合免费| 欧美日韩爱爱| 久久久久久中文| 91国偷自产中文字幕久久| 成人av网站免费| 一区二区精品在线| 中文在线最新版地址| 91精品在线免费观看| 18禁裸乳无遮挡啪啪无码免费| 欧美1级片网站| 日本久久久久久久久久久| av一级黄色片| 国产精品乱人伦| 国模吧无码一区二区三区 | 精品免费二区三区三区高中清不卡| yw在线观看| 欧美日韩性视频在线| 日本成人在线免费观看| www.av导航| 久久精品一级爱片| 99色这里只有精品| 9999在线精品视频| 亚洲片在线观看| 国产做受高潮漫动| 国产成人精品www牛牛影视| 欧美资源一区| 筱崎爱全乳无删减在线观看 | 欧美色图在线视频| 美女流白浆视频| 91亚洲国产高清| 国产精品福利在线| 理论在线观看| 欧美日韩免费区域视频在线观看| 日本女人性视频| 国产精品传媒精东影业在线| 国产精品欧美激情在线播放| 欧美日韩影视| 色综合久久综合网欧美综合网 | 亚洲第一视频在线| 一区二区三区中文字幕| 久热精品在线观看视频| 欧美亚洲国产精品久久| 国产99久久久欧美黑人| 日韩精品视频在线观看一区二区三区| 亚洲国产日韩a在线播放| 精品人妻人人做人人爽夜夜爽| 亚洲国产精品久久久天堂| 国产在线拍偷自揄拍精品| 最新97超碰在线| 欧美日韩视频在线第一区| 国产又粗又长免费视频| 六月丁香综合在线视频| 在线视频91| 亚洲欧美久久精品| 欧美大奶子在线| 成 人片 黄 色 大 片| 亚洲午夜国产一区99re久久| www男人天堂| 99在线|亚洲一区二区| 久久视频在线观看中文字幕| 乡村艳史在线观看| 一区二区三区精品99久久| 国产又粗又猛又黄视频| 国产欧美一区二区三区鸳鸯浴| 九九热免费精品视频| 91视频久久| 国产伦精品一区二区三区视频免费| 捆绑裸体绳奴bdsm亚洲| 日韩经典一区| 久久精品国产91精品亚洲| 国产三级视频在线播放| 亚洲一区二区三区爽爽爽爽爽| 成人做爰www看视频软件 | 欧美激情精品久久久久久黑人| 成人1区2区3区| 欧美日韩免费一区| 国产精品suv一区二区88| 国产麻豆91精品| 无码专区aaaaaa免费视频| 国产日产精品_国产精品毛片| 国产精品都在这里| 在线你懂的视频| 亚洲国产精品久久久久| 日本丰满少妇做爰爽爽| 亚洲视频每日更新| 亚洲天堂成人av| 毛片av一区二区三区| youjizz.com在线观看| 国产欧美高清视频在线| 91美女高潮出水| 特黄毛片在线观看| 久久精品国产一区二区三区| 欧美一区二不卡视频| 欧美在线999| 久久黄色小视频| 欧美激情一区在线| 天堂www中文在线资源| 麻豆一区二区三区| 国产成人无码a区在线观看视频| 成人高清电影网站| 国产伦精品一区二区三区视频免费| 99久久久国产精品免费调教网站| 色综合老司机第九色激情| av在线三区| 亚洲电影av在线| 国产精品自偷自拍| 在线观看日韩精品| 国产精品第二十页| 亚洲色图在线视频| 欧美另类z0zx974| 99久久精品国产网站| 中文字幕亚洲影院| 日一区二区三区| www.av中文字幕| 欧美一区免费| 曰韩不卡视频| 久久成人高清| 久久精品国产精品青草色艺| 久久视频免费| 国产欧美精品日韩| 成人开心激情| 欧洲永久精品大片ww免费漫画| 在线免费av导航| 久久亚洲精品网站| 18视频免费网址在线观看| 亚洲欧洲中文天堂| 全部免费毛片在线播放网站| 精品国产乱码久久久久久老虎| 国产一区二区在线不卡| 欧美视频中文一区二区三区在线观看| 日韩特级黄色片| 欧美日韩国产在线看| 韩国av免费观看| 亚洲成a人v欧美综合天堂下载 | 亚洲综合最新在线| 亚洲精品69| 成人国产精品一区二区| 日韩三区四区| 成人在线视频网| 性欧美video另类hd尤物| 国产欧美精品日韩| 91精品一区| 亚洲aⅴ日韩av电影在线观看 | 久久国产高清视频| 国产精品第一页第二页第三页| 国产一二三四区在线| 中文字幕精品一区| 精品少妇一区二区三区密爱| 中文欧美字幕免费| 老司机深夜福利网站| 国产精品伦理一区二区| 97精品在线播放| 一区二区国产视频| 日本黄色片视频| 欧美性色视频在线| 午夜视频网站在线观看| 欧美性一二三区| 91久久久久国产一区二区| 欧美丰满少妇xxxxx高潮对白 | 一级片中文字幕| 色悠悠久久综合| 中文字幕久久久久| 宅男噜噜噜66一区二区66| 精品黑人一区二区三区在线观看 | 国产福利久久精品| 欧美wwwsss9999| 日本高清视频一区二区三区| 日韩国产在线| 中文字幕日韩精品无码内射| 亚洲小说欧美另类婷婷| 日本中文字幕片| 久久国产精品色| 91亚洲一线产区二线产区| 99精品视频一区二区三区| 亚洲精品一区二区三区影院忠贞| 国产精品久久久久影院色老大| 婷婷久久综合网| 欧美日韩国产精品一区二区三区四区 | 日韩高清在线一区二区| 成人av网址在线| 91无套直看片红桃在线观看| 亚洲精品国产精品乱码不99| 日本一区二区网站| 欧美午夜免费电影| 亚洲精品911| 国产亚洲日本欧美韩国| 手机在线免费看av| 日韩免费在线看| 日韩综合一区二区三区| 欧美精品与人动性物交免费看| 久久精品国产大片免费观看| av免费看网址| 奇米四色…亚洲| 制服丝袜在线第一页| 日本一区二区成人| 91看片在线播放| 在线不卡一区二区| 三级毛片在线免费看| 久久久精品日本| 欧美粗大gay| 成人免费看片网站| 久久国产综合| 丝袜老师办公室里做好紧好爽| 国产又黄又大久久| 亚洲精品国产91| 精品色蜜蜜精品视频在线观看| a视频免费在线观看| 国产亚洲精品一区二555| 男女羞羞视频在线观看| 国产精品视频精品视频| 亚洲午夜久久| 欧美成人三级在线视频| 国产精品影音先锋| 日韩av手机在线免费观看| 色综合久久88色综合天天免费| 午夜久久久久久久久久| 中文字幕在线看视频国产欧美| 欧美一级鲁丝片| 国产成人精品免费视频大全最热 | jvid福利写真一区二区三区| 黄色片子在线观看| 色8久久人人97超碰香蕉987| 蜜臀av免费在线观看| 九色成人免费视频| 日韩免费大片| 中文字幕在线中文字幕日亚韩一区| 久久一二三区| 国产xxxxxxxxx| 亚洲成人av一区二区| 精品国产伦一区二区三区| 久久韩国免费视频| 国产一区二区三区四区五区3d| 欧美日韩一区二区视频在线| 国产精品久久777777毛茸茸| 精品1卡二卡三卡四卡老狼| 亚洲综合另类小说| a级片免费观看| 欧美成人午夜视频| 欧美国产亚洲精品| 国产精品波多野结衣| 国产资源精品在线观看| tube国产麻豆| 欧美一级理论性理论a| 丝袜中文在线| 国产区一区二区| 99热这里只有精品8| 亚洲精品视频大全| 色88888久久久久久影院按摩| 色久视频在线播放| 国产成人精品综合久久久| 精品国产欧美日韩| 午夜视频你懂的| 国产精品久久久久久久午夜片| 一级特黄色大片| 久久国产精品影片| 第四色中文综合网| heyzo国产| 国产日韩欧美精品一区| 亚洲天堂aaa| 欧美久久久精品| 免费日韩一区二区三区| 天天天干夜夜夜操| 国产精品大尺度| 国产黄色小视频在线观看| 欧美精品videosex牲欧美| 欧美日日夜夜| 亚洲黄色a v| 尤物av一区二区| 午夜成人免费影院| 国产精品永久在线| 欧美日韩国产探花| 精品国产无码在线观看| 欧美日韩成人一区二区| 欧美极品少妇videossex| 欧美精品一区二区三区四区五区| 麻豆一区二区三| 久久综合久久鬼| 亚洲性日韩精品一区二区| 亚洲欧洲一二区| 国产男女免费视频| 中文字幕免费不卡| 亚洲男人天堂久久| 国产成人福利网站| 一区二区电影在线观看| 一区二区三区少妇| 欧美日韩高清一区二区三区| 懂色av一区| 伊人久久大香线蕉精品| 99re热这里只有精品免费视频| 欧美成人一区二区视频| 色综合91久久精品中文字幕| 国产精品一区二区av交换| 性久久久久久久久久久久久久| 精品日本高清在线播放| 黄色免费在线观看| 欧美一区二区三区四区在线观看地址| 久久99在线观看| 啦啦啦免费高清视频在线观看| 最近2019年手机中文字幕| 牛牛视频精品一区二区不卡| 911av视频| 色播五月激情综合网|