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

Java程序員必須了解GC的工作原理

開發 后端

一個優秀的Java程序員必須了解GC的工作原理、如何優化GC的性能、如何與GC進行有限的交互,有一些應用程序對性能要求較高,例如嵌入式系統、實時系統等,只有全面提升內存的管理效率,才能提高整個應用程序的性能。本文將從GC的工作原理、GC的幾個關鍵問題進行探討,***提出一些Java程序設計建議,如何從GC角度提高Java程序的性能。

一、GC的基本原理:
   
GC是什么? 為什么要有GC呢?
GC是垃圾收集的意思(Garbage Collection),內存處理是編程人員容易出現問題的地方,忘記或者錯誤的內存回收會導致程序或系統的不穩定甚至崩潰,Java提供的GC功能可以自動監測對象是否超過作用域從而達到自動回收內存的目的,Java語言沒有提供釋放已分配內存的顯示操作方法。

所以,Java的內存管理實際上就是對象的管理,其中包括對象的分配和釋放。

對于Java程序員來說,分配對象使用new關鍵字;釋放對象時,只要將對象所有引用賦值為null,讓程序不能夠再訪問到這個對象,我們稱該對象為"不可達的".GC將負責回收所有"不可達"對象的內存空間。

對于GC來說,當程序員創建對象時,GC就開始監控這個對象的地址、大小以及使用情況。通常,GC采用有向圖的方式記錄和管理堆(heap)中的所有對象。通過這種方式確定哪些對象是"可達的",哪些對象是"不可達的".當GC確定一些對象為"不可達"時,GC就有責任回收這些內存空間。但是,為了保證GC能夠在不同平臺實現的問題,Java規范對GC的很多行為都沒有進行嚴格的規定。例如,對于采用什么類型的回收算法、什么時候進行回收等重要問題都沒有明確的規定。因此,不同的JVM的實現者往往有不同的實現算法。這也給Java程序員的開發帶來行多不確定性。本文研究了幾個與GC工作相關的問題,努力減少這種不確定性給Java程序帶來的負面影響。

二、增量式GC(Incremental GC):

GC在JVM中通常是由一個或一組進程來實現的,它本身也和用戶程序一樣占用heap空間,運行時也占用CPU.當GC進程運行時,應用程序停止運行。因此,當GC運行時間較長時,用戶能夠感到Java程序的停頓,另外一方面,如果GC運行時間太短,則可能對象回收率太低,這意味著還有很多應該回收的對象沒有被回收,仍然占用大量內存。因此,在設計GC的時候,就必須在停頓時間和回收率之間進行權衡。一個好的GC實現允許用戶定義自己所需要的設置,例如有些內存有限有設備,對內存的使用量非常敏感,希望GC能夠準確的回收內存,它并不在意程序速度的放慢。另外一些實時網絡游戲,就不能夠允許程序有長時間的中斷。增量式GC就是通過一定的回收算法,把一個長時間的中斷,劃分為很多個小的中斷,通過這種方式減少GC對用戶程序的影響。雖然,增量式GC在整體性能上可能不如普通GC的效率高,但是它能夠減少程序的最長停頓時間。

Sun JDK提供的HotSpot JVM就能支持增量式GC.HotSpot JVM缺省GC方式為不使用增量GC,為了啟動增量GC,我們必須在運行Java程序時增加-Xincgc的參數。HotSpot JVM增量式GC的實現是采用Train GC算法。它的基本想法就是,將堆中的所有對象按照創建和使用情況進行分組(分層),將使用頻繁高和具有相關性的對象放在一隊中,隨著程序的運行,不斷對組進行調整。當GC運行時,它總是先回收最老的(最近很少訪問的)的對象,如果整組都為可回收對象,GC將整組回收。這樣,每次GC運行只回收一定比例的不可達對象,保證程序的順暢運行。

三、詳解finalize函數:

finalize 是位于Object類的一個方法,該方法的訪問修飾符為protected,由于所有類為Object的子類,因此用戶類很容易訪問到這個方法。由于,finalize函數沒有自動實現鏈式調用,我們必須手動的實現,因此finalize函數的***一個語句通常是 super.finalize()。通過這種方式,我們可以實現從下到上實現finalize的調用,即先釋放自己的資源,然后再釋放父類的資源。

根據Java語言規范,JVM保證調用finalize函數之前,這個對象是不可達的,但是JVM不保證這個函數一定會被調用。另外,規范還保證finalize函數最多運行一次。

很多Java初學者會認為這個方法類似與C++中的析構函數,將很多對象、資源的釋放都放在這一函數里面。其實,這不是一種很好的方式。原因有三,其一,GC為了能夠支持finalize函數,要對覆蓋這個函數的對象作很多附加的工作。其二,在finalize運行完成之后,該對象可能變成可達的,GC還要再檢查一次該對象是否是可達的。因此,使用 finalize會降低GC的運行性能。其三,由于GC調用finalize的時間是不確定的,因此通過這種方式釋放資源也是不確定的。

通常,finalize用于一些不容易控制、并且非常重要資源的釋放,例如一些I/O的操作,數據的連接。這些資源的釋放對整個應用程序是非常關鍵的。在這種情況下,程序員應該以通過程序本身管理(包括釋放)這些資源為主,以finalize函數釋放資源方式為輔,形成一種雙保險的管理機制,而不應該僅僅依靠finalize來釋放資源。

下面給出一個例子說明,finalize函數被調用以后,仍然可能是可達的,同時也可說明一個對象的finalize只可能運行一次。

  1. view plaincopy to clipboardprint?  
  2. class MyObject {     
  3.     Test main; // 記錄Test對象,在finalize中時用于恢復可達性     
  4.     
  5.     public MyObject(Test t) {     
  6.         main = t; // 保存Test 對象     
  7.     }     
  8.     
  9.     protected void finalize() {     
  10.         main.ref = this;// 恢復本對象,讓本對象可達     
  11.         System.out.println("This is finalize");// 用于測試finalize只運行一次     
  12.     }     
  13. }     
  14.     
  15. class Test {     
  16.     MyObject ref;     
  17.     
  18.     public static void main(String[] args) {     
  19.         Test test = new Test();     
  20.         test.ref = new MyObject(test);     
  21.         test.ref = null// MyObject對象為不可達對象,finalize將被調用     
  22.         System.gc();     
  23.         if (test.ref != null)     
  24.             System.out.println("My Object還活著");     
  25.     }     
  26. }    
  27. class MyObject {  
  28.  Test main; // 記錄Test對象,在finalize中時用于恢復可達性  
  29.  
  30.  public MyObject(Test t) {  
  31.   main = t; // 保存Test 對象  
  32.  }  
  33.  
  34.  protected void finalize() {  
  35.   main.ref = this;// 恢復本對象,讓本對象可達  
  36.   System.out.println("This is finalize");// 用于測試finalize只運行一次  
  37.  }  
  38. }  
  39.  
  40. class Test {  
  41.  MyObject ref;  
  42.  
  43.  public static void main(String[] args) {  
  44.   Test test = new Test();  
  45.   test.ref = new MyObject(test);  
  46.   test.ref = null// MyObject對象為不可達對象,finalize將被調用  
  47.   System.gc();  
  48.   if (test.ref != null)  
  49.    System.out.println("My Object還活著");  
  50.  }  
  51. }  

運行結果:
    This is finalize

MyObject還活著:此例子中,需要注意的是雖然MyObject對象在finalize中變成可達對象,但是下次回收時候,finalize卻不再被調用,因為finalize函數最多只調用一次。

四、Java程序如何與GC進行交互:

Java2 增強了內存管理功能,增加了一個java.lang.ref包,其中定義了三種引用類。這三種引用類分別為SoftReference、WeakReference和 PhantomReference.通過使用這些引用類,程序員可以在一定程度與GC進行交互,以便改善GC的工作效率。這些引用類的引用強度介于可達對象和不可達對象之間。

創建一個引用對象也非常容易,例如如果你需要創建一個Soft Reference對象,那么首先創建一個對象,并采用普通引用方式(可達對象);然后再創建一個SoftReference引用該對象;***將普通引用設置為null.通過這種方式,這個對象就只有一個Soft Reference引用。同時,我們稱這個對象為Soft Reference 對象。

Soft Reference的主要特點是據有較強的引用功能。只有當內存不夠的時候,才進行回收這類內存,因此在內存足夠的時候,它們通常不被回收。另外,這些引用對象還能保證在Java拋出OutOfMemory 異常之前,被設置為null.它可以用于實現一些常用圖片的緩存,實現Cache的功能,保證***限度的使用內存而不引起OutOfMemory.以下給出這種引用類型的使用偽代碼;

  1.     //申請一個圖像對象  
  2.   Image image=new Image();//創建Image對象  
  3.   …  
  4.   //使用 image  
  5.   …  
  6.   //使用完了image,將它設置為soft 引用類型,并且釋放強引用;  
  7.   SoftReference sr=new SoftReference(image);  
  8.   image=null;  
  9.    …  
  10.    //下次使用時  
  11.    if (sr!=null) image=sr.get();  
  12.    else{  
  13.    //由于GC由于低內存,已釋放image,因此需要重新裝載;  
  14.    image=new Image();  
  15.   sr=new SoftReference(image);  
  16.   } 


Weak 引用對象與Soft引用對象的***不同就在于:GC在進行回收時,需要通過算法檢查是否回收Soft引用對象,而對于Weak引用對象,GC總是進行回收。Weak引用對象更容易、更快被GC回收。雖然,GC在運行時一定回收Weak對象,但是復雜關系的Weak對象群常常需要好幾次 GC的運行才能完成。Weak引用對象常常用于Map結構中,引用數據量較大的對象,一旦該對象的強引用為null時,GC能夠快速地回收該對象空間。

Phantom 引用的用途較少,主要用于輔助finalize函數的使用。Phantom對象指一些對象,它們執行完了finalize函數,并為不可達對象,但是它們還沒有被GC回收。這種對象可以輔助finalize進行一些后期的回收工作,我們通過覆蓋Reference的clear()方法,增強資源回收機制的靈活性。


五、一些Java編程的建議:

根據GC的工作原理,我們可以通過一些技巧和方式,讓GC運行更加有效率,更加符合應用程序的要求。一些關于程序設計的幾點建議:

1.最基本的建議就是盡早釋放無用對象的引用。大多數程序員在使用臨時變量的時候,都是讓引用變量在退出活動域(scope)后,自動設置為 null.我們在使用這種方式時候,必須特別注意一些復雜的對象圖,例如數組,隊列,樹,圖等,這些對象之間有相互引用關系較為復雜。對于這類對象,GC 回收它們一般效率較低。如果程序允許,盡早將不用的引用對象賦為null.這樣可以加速GC的工作。

2.盡量少用finalize函數。finalize函數是Java提供給程序員一個釋放對象或資源的機會。但是,它會加大GC的工作量,因此盡量少采用finalize方式回收資源。

3.如果需要使用經常使用的圖片,可以使用soft應用類型。它可以盡可能將圖片保存在內存中,供程序調用,而不引起OutOfMemory.

4.注意集合數據類型,包括數組,樹,圖,鏈表等數據結構,這些數據結構對GC來說,回收更為復雜。另外,注意一些全局的變量,以及一些靜態變量。這些變量往往容易引起懸掛對象(dangling reference),造成內存浪費。

5.當程序有一定的等待時間,程序員可以手動執行System.gc(),通知GC運行,但是Java語言規范并不保證GC一定會執行。使用增量式GC可以縮短Java程序的暫停時間。

 

【編輯推薦】

  1. 20個開發人員非常有用的Java功能代碼
  2. 走進Java 7中的模塊系統
  3. JavaFX 1.2 已經發布 主要新功能一覽
  4. 2009年十大Java技術解決方案
  5. 2008最值得學習的五種JAVA技術
責任編輯:仲衡 來源: CSDN博客
相關推薦

2021-02-24 09:26:03

JavaGC程序員

2018-08-13 13:56:24

2024-03-20 17:35:42

2011-03-11 09:41:17

JavaGC

2018-03-28 13:32:43

程序員技能溝通

2018-07-02 10:15:11

Java程序員注解

2015-03-24 14:11:41

程序員

2019-08-16 11:16:25

Java程序員流程圖

2022-08-10 14:51:33

開源Java工具

2018-11-26 09:21:56

2023-11-20 14:23:51

2009-01-07 09:52:37

程序員愛情工作

2009-09-15 16:16:35

代碼習慣

2017-03-27 10:17:54

程序員工作學習

2015-08-11 09:20:51

初級程序員Linux命令

2018-05-31 15:22:53

程序員女程序男性程序員

2009-07-28 10:18:03

程序員誤區

2025-07-21 06:30:00

AIInfra大模型

2020-04-24 09:26:30

Java程序員工具

2014-07-15 15:38:41

Android
點贊
收藏

51CTO技術棧公眾號

久久久高清视频| 免费一区二区三区在在线视频| 国产wwwwxxxx| 免费一级欧美在线大片| 亚洲一区二区在线视频| 久久久久成人精品免费播放动漫| www.亚洲激情| 欧美在线亚洲综合一区| 精品福利av导航| 91蝌蚪视频在线观看| 黄色网在线免费观看| 国产小视频免费在线网址| 欧美精品播放| 亚洲欧美福利视频| theporn国产精品| 超碰在线资源| 欧美国产日产图区| 成人av影视在线| 香蕉影院在线观看| 亚洲影视一区| 国产一区二区三区在线观看网站| 欧美性猛交xx| 日本精品另类| 黄色成人在线免费| 成人手机视频在线| 你懂的视频在线观看| 国产精品资源网| 国产福利成人在线| 国产一级片免费看| 99久久99久久精品国产片桃花 | 日本美女视频一区| 成年男女免费视频网站不卡| 国产精品伦一区二区三级视频| 好吊色欧美一区二区三区四区| 中文字幕人妻互换av久久| 99精品99| 久久久久中文字幕| 国产精品99久久久久久成人| 国产亚洲第一伦理第一区| 日韩你懂的在线播放| 国产又大又黄又猛| 一区二区电影免费观看| 亚洲电影在线免费观看| 在线视频一二三区| 一级毛片视频在线| 国产欧美日产一区| 18欧美亚洲精品| 成人免费福利视频| 自拍偷拍色综合| 视频在线观看一区| 日本精品免费观看| av图片在线观看| 国产欧美精品| 97人洗澡人人免费公开视频碰碰碰| 国产精品老熟女一区二区| 日韩欧美网站| 日韩在线观看免费全集电视剧网站| 天天躁夜夜躁狠狠是什么心态| 婷婷综合电影| 日韩精品中文字| 亚洲第九十七页| 青青久久av| 亚洲精品久久久久| 日韩av手机在线播放| jizz性欧美2| 欧美白人最猛性xxxxx69交| 日本网站在线看| 九九99久久精品在免费线bt| 欧美丰满嫩嫩电影| 北条麻妃亚洲一区| 人人爱人人干婷婷丁香亚洲| 日韩精品一区二区三区视频播放 | 国产精品对白久久久久粗| 日韩精品一区二区三区四区 | 日韩av资源在线| 春暖花开亚洲一区二区三区| 在线观看日韩av先锋影音电影院| 天堂网在线免费观看| 欧美一级做一级爱a做片性| 欧美另类变人与禽xxxxx| 一区二区福利视频| 日批在线观看视频| 亚洲aaa级| 永久免费看mv网站入口亚洲| 久久99久久99精品免费看小说| 亚洲女同另类| 午夜精品在线观看| 在线观看日本网站| 精品一区二区成人精品| www.成人av| 青青久草在线| 日韩一区在线免费观看| 国产一区二区片| 2022成人影院| 欧美一区二区三区在线| 成熟妇人a片免费看网站| 亚洲精品456| 精品国产一区二区三区久久狼黑人 | 福利欧美精品在线| 亚洲香蕉伊综合在人在线视看| 日韩免费av一区| 亚洲午夜精品久久久久久app| 日韩av第一页| 精品久久无码中文字幕| 91麻豆精品秘密| 青青草原国产免费| 午夜影院在线播放| 91麻豆精品91久久久久久清纯 | 欧美aⅴ在线观看| 亚洲成人1区| 日韩精品极品在线观看播放免费视频| 999福利视频| 国产精品毛片一区二区三区| 成人夜晚看av| 国产一区二区三区福利| 一区二区三区国产| 色综合天天色综合| 国产人妻精品久久久久野外| 成人在线啊v| 日韩乱码在线视频| 久久久久99精品成人片试看| 日韩精品一级二级| 国产综合动作在线观看| 免费a级毛片在线播放| 欧美日韩在线免费| 免费观看黄网站| 精品日韩免费| 57pao成人国产永久免费| www国产一区| 国产精品成人午夜| 欧美污视频网站| 国产无遮挡裸体免费久久| www.亚洲成人| 老熟妇一区二区三区啪啪| 99视频一区二区| 亚洲天堂第一区| 国产情侣一区二区三区| 亚洲男人的天堂在线播放| 国产一级做a爱免费视频| 久久se精品一区二区| 天天综合狠狠精品| 国产综合色区在线观看| 国产视频精品xxxx| 亚洲日本视频在线观看| 暴力调教一区二区三区| 日本香蕉视频在线观看| 日韩在线精品强乱中文字幕| 久久人人爽人人爽人人片亚洲| 在线观看免费高清视频| 中文av一区二区| 黄色片在线免费| 教室别恋欧美无删减版| 国产精品夫妻激情| 国产九九在线| 欧美日韩一区久久| 国产大屁股喷水视频在线观看| 91精品中文字幕| 成人av网站在线| 国产精品一线二线三线| 精品国产一区二区三区不卡蜜臂 | 亚洲a∨无码无在线观看| 日韩电影一区二区三区四区| 午夜一区二区三区| 青青伊人久久| 久久久精品国产亚洲| 国产美女免费视频| 亚洲摸摸操操av| 麻豆tv在线观看| 日韩午夜av| 欧美一区1区三区3区公司 | 亚洲精品日产aⅴ| 1区2区3区在线视频| 欧美不卡视频一区| 黄色在线视频网址| 国产日韩欧美精品综合| 不卡的av中文字幕| 日本一二三区不卡| 精品一区二区在线视频| 日本a在线天堂| 日本在线成人| 国产91精品黑色丝袜高跟鞋| 国产鲁鲁视频在线观看免费| 91精品国产一区二区三区| 精国产品一区二区三区a片| 成人av午夜电影| 国产成人av影视| 久久免费大视频| 风间由美久久久| 欧美成人精品一区二区男人小说| 尤物yw午夜国产精品视频| 国产日韩欧美中文字幕| 婷婷开心久久网| 天美传媒免费在线观看| 国产99久久久国产精品免费看 | 天堂电影一区| 久久精品国产清自在天天线| 日本免费网站在线观看| 精品视频在线免费看| 久久久久久久久精| 国产视频亚洲色图| 日本人添下边视频免费| 日韩高清在线电影| 色欧美88888久久久久久影院| youjizz.com日本| 欧美96一区二区免费视频| 欧美美女黄色网| 九一亚洲精品| 国产精品国产三级国产专区53| 国产v综合v| 久久久久久国产精品三级玉女聊斋| 黄色免费在线播放| 精品久久99ma| 中文字幕a级片| 黄网动漫久久久| 欧美第一页在线观看| 国产欧美日本一区二区三区| 亚洲精品乱码久久久久久蜜桃欧美| 丝袜诱惑制服诱惑色一区在线观看| 黄色录像特级片| 成人激情开心网| 久久久久久艹| heyzo欧美激情| 亚洲一区二区自拍| 美女久久久久久| 国产成人福利网站| 欧洲一区精品| 欧美精品videosex极品1| 老司机在线看片网av| 亚洲人在线视频| 无码精品人妻一区二区| 欧美第一区第二区| 国产精品一品二区三区的使用体验| 欧美性生交xxxxxdddd| 国产精品不卡av| 一区二区三区欧美日| 日韩av手机在线免费观看| 日本一区二区三区免费乱视频| 无码精品一区二区三区在线播放 | 91在线视频九色| 成人免费一区| 国产精品欧美一区二区| 国模套图日韩精品一区二区| 欧美亚洲日本黄色| 国模精品视频| 91精品国产成人| 成人免费观看在线观看| 久久免费精品视频| 超碰在线97国产| 9.1国产丝袜在线观看| av美女在线观看| 久久精品国产久精国产| 日韩欧美精品在线观看视频| 亚洲永久免费精品| 无码精品国产一区二区三区免费| 国产欧美午夜| 熟女性饥渴一区二区三区| 久久久噜噜噜| 欧美日韩在线成人| 日本欧美在线观看| 在线观看岛国av| 精品亚洲成av人在线观看| 一区二区久久精品| 国产高清一区日本| 日本成人在线免费| 99久久久无码国产精品| 女~淫辱の触手3d动漫| 国产亚洲精品aa午夜观看| 国精产品一区一区| 亚洲欧美激情小说另类| 黄色一级视频在线观看| 午夜精品一区在线观看| 亚洲成人第一网站| 欧美午夜不卡视频| www.黄色片| 亚洲精品美女久久久| 国产三区四区在线观看| 久久精品国产电影| √8天堂资源地址中文在线| 国产91精品久久久久| 欧美日韩在线精品一区二区三区激情综合 | heyzo一本久久综合| 日本黄色网址大全| 国产精品国产三级国产aⅴ中文 | 久久精品中文字幕一区二区三区 | 999视频在线| 欧美高清视频一二三区| 黄色一级大片在线免费看国产一| 91麻豆国产在线观看| 美脚丝袜一区二区三区在线观看| 成人看片黄a免费看视频| 欧美污视频久久久| 91精品一区国产高清在线gif | 噜噜噜噜噜久久久久久91| 久久高清精品| 欧美久久在线观看| 日韩国产欧美一区二区三区| 色综合久久久无码中文字幕波多| 久久久精品黄色| 日本a级片视频| 日本乱人伦一区| 亚洲黄色片视频| 在线视频日本亚洲性| 暖暖在线中文免费日本| 国产精品电影一区| 久久国产精品免费精品3p| 亚洲欧美日韩不卡一区二区三区| 亚洲区欧美区| 日本黄色一级网站| 国产欧美日产一区| 日韩欧美亚洲视频| 777xxx欧美| 国产二区在线播放| 91精品国产色综合| 精品视频一区二区三区在线观看| 欧美亚洲免费高清在线观看 | 97国产真实伦对白精彩视频8| 欧美黄色a视频| 色88888久久久久久影院野外| 欧美男人亚洲天堂| 精品国产亚洲在线| av在线下载| 国产欧美日韩亚洲精品| 精品中文字幕一区二区三区av| 国产免费黄色一级片| 国产美女精品一区二区三区| 在线免费看视频| 91精品福利视频| 婷婷国产在线| 97视频免费观看| 盗摄牛牛av影视一区二区| 可以免费看的黄色网址| 蜜臀av一级做a爰片久久| 国产精久久一区二区三区| 欧美性xxxxxxx| 视频一区 中文字幕| 欧美黄色片在线观看| 欧美一区一区| 玖玖精品在线视频| 黄色精品一二区| 日韩在线观看免| 欧美日韩国产高清一区二区 | 欧美极品在线播放| 国产一区二区三区视频在线| 正在播放一区二区三区| 久久99精品久久久久久国产越南 | 五月婷婷色综合| 亚洲精品国产精品乱码不卡| 九九久久精品一区| 亚洲国产欧美国产第一区| 精品久久久无码人妻字幂| 国产69精品久久久久毛片| 久久亚洲AV无码| 亚洲精品福利免费在线观看| 天堂а√在线最新版中文在线| 农村寡妇一区二区三区| 久久精品人人| 国产真人真事毛片视频| 6080午夜不卡| 日韩影视在线| 精品乱码一区二区三区| 香蕉久久夜色精品| 欧美性猛交xxxx乱大交少妇| 91精品国产色综合久久| 天堂av在线电影| 欧美日本高清视频在线观看| 天天爽夜夜爽夜夜爽| 日韩美女av在线免费观看| 大胆日韩av| 久久发布国产伦子伦精品| 午夜日韩在线电影| 高清美女视频一区| 91系列在线播放| 一区二区三区福利| 国产又黄又粗视频| 7777精品久久久大香线蕉| √最新版天堂资源网在线| 欧美国产综合视频| 激情六月婷婷综合| 日韩欧美大片在线观看| 亚洲一区二区福利| 久久爱www.| 凹凸日日摸日日碰夜夜爽1| 亚洲欧美在线另类| 亚洲欧洲精品视频| 国产在线精品播放| 亚洲网站在线| 国产一二三四五区| 91麻豆精品国产91久久久使用方法| av在线导航| 日韩高清dvd| 国产精品亚洲产品| www.5588.com毛片| 欧美电影在线免费观看| 国产无遮挡裸体视频在线观看| 日本在线一区| 成人高清视频免费观看| 色老头在线视频| 97人人模人人爽人人喊中文字| 成人aaaa| 91午夜在线播放|