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

Java對象池技術的原理及其實現

開發 后端
Java對象的生命周期大致包括三個階段:對象的創建,對象的使用,對象的清除。

Java對象的生命周期分析

  Java對象的生命周期大致包括三個階段:對象的創建,對象的使用,對象的清除。因此,對象的生命周期長度可用如下的表達式表示:T = T1 + T2 +T3。其中T1表示對象的創建時間,T2表示對象的使用時間,而T3則表示其清除時間。由此,我們可以看出,只有T2是真正有效的時間,而T1、T3則是對象本身的開銷。下面再看看T1、T3在對象的整個生命周期中所占的比例。

  我們知道,Java對象是通過構造函數來創建的,在這一過程中,該構造函數鏈中的所有構造函數也都會被自動調用。另外,默認情況下,調用類的構造函數時,Java會把變量初始化成確定的值:所有的對象被設置成 null,整數變量(byte、short、int、long)設置成0,float和double變量設置成0.0,邏輯值設置成false。所以用 new關鍵字來新建一個對象的時間開銷是很大的,如表1所示。

  表1 一些操作所耗費時間的對照表

  1. 運算操作 示例 標準化時間   
  2. 本地賦值 i = n 1.0   
  3. 實例賦值 this.i = n 1.2   
  4. 方法調用 Funct() 5.9   
  5. 新建對象 New Object() 980   
  6. 新建數組 New int[10] 3100  

 從表1可以看出,新建一個對象需要980個單位的時間,是本地賦值時間的980倍,是方法調用時間的166倍,而若新建一個數組所花費的時間就更多了。

  再看清除對象的過程。我們知道,Java語言的一個優勢,就是Java程序員勿需再像C/C++程序員那樣,顯式地釋放對象,而由稱為垃圾收集器(Garbage Collector)的自動內存管理系統,定時或在內存凸現出不足時,自動回收垃圾對象所占的內存。凡事有利總也有弊,這雖然為Java程序設計者提供了極大的方便,但同時它也帶來了較大的性能開銷。這種開銷包括兩方面,首先是對象管理開銷,GC為了能夠正確釋放對象,它必須監控每一個對象的運行狀態,包括對象的申請、引用、被引用、賦值等。其次,在GC開始回收“垃圾”對象時,系統會暫停應用程序的執行,而獨自占用CPU。

  因此,如果要改善應用程序的性能,一方面應盡量減少創建新對象的次數;同時,還應盡量減少T1、T3的時間,而這些均可以通過對象池技術來實現。

  對象池技術的基本原理

  對象池技術基本原理的核心有兩點:緩存和共享,即對于那些被頻繁使用的對象,在使用完后,不立即將它們釋放,而是將它們緩存起來,以供后續的應用程序重復使用,從而減少創建對象和釋放對象的次數,進而改善應用程序的性能。事實上,由于對象池技術將對象限制在一定的數量,也有效地減少了應用程序內存上的開銷。

  實現一個對象池,一般會涉及到如下的類:

  1)對象池工廠(ObjectPoolFactory)類

  該類主要用于管理相同類型和設置的對象池(ObjectPool),它一般包含如下兩個方法:

  ·createPool:用于創建特定類型和設置的對象池;

  ·destroyPool:用于釋放指定的對象池;

  同時為保證ObjectPoolFactory的單一實例,可以采用Singleton設計模式,見下述getInstance方法的實現:

  1. public static ObjectPoolFactory getInstance() {   
  2.  if (poolFactory == null) {   
  3.   poolFactory = new ObjectPoolFactory();   
  4.  }   
  5.  return poolFactory;   
  6. }   

  2)參數對象(ParameterObject)類

  該類主要用于封裝所創建對象池的一些屬性參數,如池中可存放對象的數目的最大值(maxCount)、最小值(minCount)等。

  3)對象池(ObjectPool)類

  用于管理要被池化對象的借出和歸還,并通知PoolableObjectFactory完成相應的工作。它一般包含如下兩個方法:

   ·getObject:用于從池中借出對象;
   ·returnObject:將池化對象返回到池中,并通知所有處于等待狀態的線程;

  4)池化對象工廠(PoolableObjectFactory)類

  該類主要負責管理池化對象的生命周期,就簡單來說,一般包括對象的創建及銷毀。該類同ObjectPoolFactory一樣,也可將其實現為單實例。
 通用對象池的實現

  對象池的構造和管理可以按照多種方式實現。最靈活的方式是將池化對象的Class類型在對象池之外指定,即在ObjectPoolFactory類創建對象池時,動態指定該對象池所池化對象的Class類型,其實現代碼如下:

  1. . . .   
  2. public ObjectPool createPool(ParameterObject paraObj,Class clsType) {   
  3.  return new ObjectPool(paraObj, clsType);   
  4. }   
  5. . . .  


  其中,paraObj參數用于指定對象池的特征屬性,clsType參數則指定了該對象池所存放對象的類型。對象池(ObjectPool)創建以后,下面就是利用它來管理對象了,具體實現如下:
 

  1. public class ObjectPool {   
  2.  private ParameterObject paraObj;//該對象池的屬性參數對象   
  3.  private Class clsType;//該對象池中所存放對象的類型   
  4.  private int currentNum = 0//該對象池當前已創建的對象數目   
  5.  private Object currentObj;//該對象池當前可以借出的對象   
  6.  private Vector pool;//用于存放對象的池   
  7.  public ObjectPool(ParameterObject paraObj, Class clsType) {   
  8.   this.paraObj = paraObj;   
  9.   this.clsType = clsType;   
  10.   pool = new Vector();   
  11.  }   
  12.  public Object getObject() {   
  13.   if (pool.size() <= paraObj.getMinCount()) {   
  14.    if (currentNum <= paraObj.getMaxCount()) {   
  15.     //如果當前池中無對象可用,而且已創建的對象數目小于所限制的最大值,就利用   
  16.     //PoolObjectFactory創建一個新的對象   
  17.     PoolableObjectFactory objFactory =PoolableObjectFactory.getInstance();   
  18.     currentObj = objFactory.create Object (clsType);   
  19.     currentNum++;   
  20.    } else {   
  21.     //如果當前池中無對象可用,而且所創建的對象數目已達到所限制的最大值,   
  22.     //就只能等待其它線程返回對象到池中   
  23.     synchronized (this) {   
  24.      try {   
  25.       wait();   
  26.      } catch (InterruptedException e) {   
  27.       System.out.println(e.getMessage());   
  28.       e.printStackTrace();   
  29.      }   
  30.      currentObj = pool.firstElement();   
  31.     }   
  32.    }   
  33.   } else {   
  34.    //如果當前池中有可用的對象,就直接從池中取出對象   
  35.    currentObj = pool.firstElement();   
  36.   }   
  37.   return currentObj;   
  38. }   
  39.   public void returnObject(Object obj) {   
  40.    // 確保對象具有正確的類型   
  41.    if (obj.isInstance(clsType)) {   
  42.     pool.addElement(obj);   
  43.     synchronized (this) {   
  44.      notifyAll();   
  45.     }   
  46.    } else {   
  47.     throw new IllegalArgumentException("該對象池不能存放指定的對象類型");   
  48.    }   
  49.   }   
  50. }   


  從上述代碼可以看出,ObjectPool利用一個java.util.Vector作為可擴展的對象池,并通過它的構造函數來指定池化對象的 Class類型及對象池的一些屬性。在有對象返回到對象池時,它將檢查對象的類型是否正確。當對象池里不再有可用對象時,它或者等待已被使用的池化對象返回池中,或者創建一個新的對象實例。不過,新對象實例的創建并不在ObjectPool類中,而是由PoolableObjectFactory類的 createObject方法來完成的,具體實現如下:

  1. . . .   
  2. public Object createObject(Class clsType) {   
  3.  Object obj = null;   
  4.  try {   
  5.   obj = clsType.newInstance();   
  6.  } catch (Exception e) {   
  7.   e.printStackTrace();   
  8.  }   
  9.  return obj;   
  10. }   
  11. . . .   



  這樣,通用對象池的實現就算完成了,下面再看看客戶端(Client)如何來使用它,假定池化對象的Class類型為StringBuffer:

 

  1. . . .   
  2. //創建對象池工廠   
  3. ObjectPoolFactory poolFactory = ObjectPoolFactory. getInstance ();   
  4. //定義所創建對象池的屬性   
  5. ParameterObject paraObj = new ParameterObject(2,1);   
  6. //利用對象池工廠,創建一個存放StringBuffer類型對象的對象池   
  7. ObjectPool pool = poolFactory.createPool(paraObj,String Buffer.class);   
  8. //從池中取出一個StringBuffer對象   
  9. StringBuffer buffer = (StringBuffer)pool.getObject();   
  10. //使用從池中取出的StringBuffer對象   
  11. buffer.append("hello");   
  12. System.out.println(buffer.toString());   
  13. . . .   


  可以看出,通用對象池使用起來還是很方便的,不僅可以方便地避免頻繁創建對象的開銷,而且通用程度高。但遺憾的是,由于需要使用大量的類型定型(cast)操作,再加上一些對Vector類的同步操作,使得它在某些情況下對性能的改進非常有限,尤其對那些創建周期比較短的對象。
專用對象池的實現     

  由于通用對象池的管理開銷比較大,某種程度上抵消了重用對象所帶來的大部分優勢。為解決該問題,可以采用專用對象池的方法。即對象池所池化對象的Class類型不是動態指定的,而是預先就已指定。這樣,它在實現上也會較通用對象池簡單些,可以不要ObjectPoolFactory和PoolableObjectFactory類,而將它們的功能直接融合到ObjectPool類,具體如下(假定被池化對象的Class類型仍為StringBuffer,而用省略號表示的地方,表示代碼同通用對象池的實現):

  1. public class ObjectPool {   
  2.  private ParameterObject paraObj;//該對象池的屬性參數對象   
  3.  private int currentNum = 0//該對象池當前已創建的對象數目   
  4.  private StringBuffer currentObj;//該對象池當前可以借出的對象   
  5.  private Vector pool;//用于存放對象的池   
  6.  public ObjectPool(ParameterObject paraObj) {   
  7.   this.paraObj = paraObj;   
  8.   pool = new Vector();   
  9.  }   
  10.  public StringBuffer getObject() {   
  11.   if (pool.size() <= paraObj.getMinCount()) {   
  12.    if (currentNum <= paraObj.getMaxCount()) {   
  13.     currentObj = new StringBuffer();   
  14.     currentNum++;   
  15.    }   
  16.    . . .   
  17.   }   
  18.   return currentObj;   
  19.  }   
  20.  public void returnObject(Object obj) {   
  21.   // 確保對象具有正確的類型   
  22.   if (StringBuffer.isInstance(obj)) {   
  23.    . . .   
  24.   }   
  25.  }   


  結束語

  恰當地使用對象池技術,能有效地改善應用程序的性能。目前,對象池技術已得到廣泛的應用,如對于網絡和數據庫連接這類重量級的對象,一般都會采用對象池技術。但在使用對象池技術時也要注意如下問題:

  并非任何情況下都適合采用對象池技術。基本上,只在重復生成某種對象的操作成為影響性能的關鍵因素的時候,才適合采用對象池技術。而如果進行池化所能帶來的性能提高并不重要的話,還是不采用對象池化技術為佳,以保持代碼的簡明。

  要根據具體情況正確選擇對象池的實現方式。如果是創建一個公用的對象池技術實現包,或需要在程序中動態指定所池化對象的Class類型時,才選擇通用對象池。而大部分情況下,采用專用對象池就可以了。

【編輯推薦】

  1. Java序列化的機制和原理
  2. Java Socket通信的序列化和反序列化代碼介紹
  3. Java輸入數據流詳解
  4. Java語言深入 文件和流
  5. Java對象序列化

 

責任編輯:金賀 來源: JavaEye博客
相關推薦

2023-10-30 13:31:22

Springboot工具Java

2017-11-22 10:53:22

2025-10-28 02:11:00

2020-09-25 08:49:42

HashMap

2011-04-22 13:10:46

計算機邏輯門

2012-09-10 10:39:04

IBMdw

2015-11-03 09:24:12

Java讀寫鎖分析

2021-10-31 23:57:33

Eslint原理

2024-06-04 09:02:03

2024-04-24 08:32:55

.NET對象映射

2009-07-10 14:55:34

2025-07-17 07:26:47

2018-10-31 15:54:47

Java線程池源碼

2015-11-30 11:14:59

C++對象池自動回收

2020-10-29 10:47:25

云計算容量管理

2021-05-26 11:30:24

Java線程池代碼

2010-01-06 16:22:53

第三層交換技術

2019-04-01 08:15:21

Java線程池多核處理器

2018-05-25 14:51:42

敏捷軟件開發測試

2019-11-27 10:31:51

數據庫連接池內存
點贊
收藏

51CTO技術棧公眾號

欧美性在线观看| 欧美变态tickling挠脚心| 亚洲黄色成人久久久| 一二三区中文字幕| 国产一区二区三区四区老人| 亚洲激情在线观看视频免费| 青青在线视频观看| 免费大片在线观看www| 国产v日产∨综合v精品视频| 国产不卡精品视男人的天堂| 欧美做爰爽爽爽爽爽爽| 偷拍亚洲精品| 555夜色666亚洲国产免| 奇米精品一区二区三区| 蜜桃视频网站在线| 久久九九久精品国产免费直播| 91久久国产精品91久久性色| 欧美一区二区激情视频| 亚洲午夜精品一区 二区 三区| 日韩精品小视频| 91香蕉国产线在线观看| 午夜欧美巨大性欧美巨大| 一个色在线综合| 亚洲日本理论电影| 久久国产精品高清一区二区三区| 国产精品自在在线| 国产精品视频久久久| 欧美不卡视频在线观看| 欧美精品一卡| 精品国偷自产在线视频| av永久免费观看| 亚洲图片久久| 亚洲精品在线免费观看视频| 国产免费中文字幕| 成人看片网页| 欧美性猛交xxxx免费看| 成人免费看片'免费看| 黄色av免费在线| 欧美国产精品劲爆| 欧美日韩最好看的视频| 亚洲欧美日韩成人在线| 丰满白嫩尤物一区二区| 亚洲va码欧洲m码| 亚洲视频中文字幕在线观看| 久久一区激情| 国产91热爆ts人妖在线| 亚洲人成77777| av直播在线观看| 精品国产麻豆| 欧美日韩精品一区二区三区四区| 69堂免费视频| 精品众筹模特私拍视频| 日韩毛片精品高清免费| 亚洲欧美日韩国产yyy | 91精品国产高清一区二区三区蜜臀| 超碰影院在线观看| 朝桐光一区二区| 色诱视频网站一区| 欧美激情精品久久久久久小说| 中文字幕 在线观看| 日韩欧美在线免费| 欧美精品第三页| 欧美动物xxx| 在线免费视频一区二区| av丝袜天堂网| 青青青国产精品| 欧美卡1卡2卡| 久久精品视频在线观看免费| 日韩欧美中文在线观看| 精品久久久久av影院 | 精品国产乱码一区二区三区| 日韩欧美资源站| 国产伦理在线观看| 久久综合五月婷婷| 亚洲网站在线播放| 永久免费未视频| 国产精品第十页| 97精品国产97久久久久久春色| www日韩精品| 久久久久久黄| 91精品啪aⅴ在线观看国产| av免费观看网址| 99久久久精品免费观看国产蜜| 欧美一区二区三区精美影视| 在线免费观看的av网站| 亚洲精品成人在线| 日韩少妇内射免费播放| 成人在线高清| 日韩一区二区麻豆国产| 中文字幕在线播放视频| 国产影视一区| 操日韩av在线电影| 999这里只有精品| 免费一级片91| 国产精品久久久久久久小唯西川 | 久久久极品av| 国产极品美女高潮无套嗷嗷叫酒店| 国产免费成人| 91九色单男在线观看| 五月婷婷丁香花| 国产精品久久久久久亚洲伦| 人人妻人人澡人人爽欧美一区双| 婷婷激情一区| 精品电影一区二区| 婷婷国产成人精品视频| 激情视频一区| 国产欧美日韩中文字幕| 天天操天天干天天操| 国产精品灌醉下药二区| 亚洲精品久久久久久久蜜桃臀| 国模一区二区| 精品国精品自拍自在线| 一级特黄曰皮片视频| 亚洲作爱视频| 亚洲一区二区三区乱码aⅴ| 免费福利在线观看| 亚洲午夜日本在线观看| 日本激情综合网| 日韩大片在线免费观看| 米奇精品一区二区三区在线观看| 国产一级免费视频| 丁香啪啪综合成人亚洲小说 | 91亚洲午夜在线| 久久手机免费观看| 午夜精品一区二区三区电影天堂 | 中文字幕亚洲天堂| 亚洲精品成人在线视频| 处破女av一区二区| 一区二区不卡在线观看| 欧洲一级精品| 亚洲精品99久久久久| 欧美成欧美va| 国产一区二区三区在线观看免费 | av在线播放网址| 一区二区三区网站| 国产专区欧美专区| 成人免费高清在线播放| 色综合天天天天做夜夜夜夜做| 一级黄色电影片| 亚洲国产精品91| 国产欧美久久久久久| 北岛玲一区二区三区| 在线观看亚洲成人| 蜜臀久久99精品久久久久久| 亚洲欧美卡通另类91av| 精品久久久久久一区二区里番| 视频在线这里都是精品| 欧美一区二区私人影院日本| 精品无码一区二区三区蜜臀| 男人的天堂亚洲一区| 日韩中文字幕一区二区| 亚洲伦理影院| 日韩中文字幕网址| 一级黄色片视频| ●精品国产综合乱码久久久久| 亚洲怡红院在线| 亚洲欧美在线专区| 成人久久一区二区三区| 高潮毛片在线观看| 日韩三级视频在线观看| 久久精品国产亚洲av无码娇色| 粉嫩绯色av一区二区在线观看| 国产一区二区四区| 任你弄精品视频免费观看| 欧美最猛性xxxx| 成人在线观看一区| 欧美美女一区二区三区| 久久久www成人免费毛片| 成人av在线资源| 日日碰狠狠添天天爽超碰97| 国产一区二区三区四区二区 | 国产一区二区三区中文字幕| 最新成人av在线| 三上悠亚 电影| 一本色道久久| 亚洲国产精品久久久久婷婷老年 | 一级片久久久久| 精品一区二区三区香蕉蜜桃 | 亚洲精品白浆| 日韩av影视综合网| 青青草视频在线观看免费| 国产精品久久久久久久久久久免费看 | 日本不卡不卡| 精品久久一区二区三区| 看片网址国产福利av中文字幕| 欧美激情自拍偷拍| 久久久国产精品久久久| 性久久久久久| 在线丝袜欧美日韩制服| 国产精品黄网站| 国产精品678| 特级毛片在线| 原创国产精品91| av手机免费看| 日本黄色一区二区| 在线观看成人毛片| 久久精品一区二区三区不卡 | 99麻豆久久久国产精品免费| 另类小说色综合| 亚洲精品欧美| 国产日韩视频在线播放| 日韩av三区| 亚洲一区二区三区香蕉| 亚洲成人短视频| 欧美国产日韩一区二区三区| 国产三区四区在线观看| 精品日韩成人av| 一区二区三区在线免费观看视频| 亚洲图片自拍偷拍| 黄色录像一级片| 国产三级久久久| 中文在线永久免费观看| 国产一区二区三区黄视频 | 免费成人高清在线视频| 97视频国产在线| 国产精品刘玥久久一区| 亚洲四色影视在线观看| 男人天堂av网| 91精品国产欧美一区二区| 中文字幕在线天堂| 欧美性xxxxxxxxx| 久久久久久久蜜桃| 国产精品久久久久天堂| 久久精品国产亚洲AV熟女| 成人激情午夜影院| 国产精品久久久久久久99| 日韩成人免费电影| 日本成年人网址| 亚洲精品裸体| 日本福利视频网站| 国产精品99久久| 一卡二卡3卡四卡高清精品视频| 欧美日韩123| 欧美日韩一区二区三区在线视频| 国产区精品视频在线观看豆花| 亚洲一区二区中文| 农村妇女一区二区| 国产精品免费视频xxxx| 日韩精品影院| 国产成人中文字幕| 唐人社导航福利精品| 国产91热爆ts人妖在线| 26uuu亚洲电影| 欧美在线激情视频| 亚洲日本天堂| 欧美在线视频网| www.成人影院| 国产精品99久久久久久久久| 依依综合在线| 国产97在线亚洲| 另类专区亚洲| 国产精品久久91| 国产美女久久| 91麻豆国产精品| 国产高清视频一区二区| 91亚洲精品丁香在线观看| 日韩激情综合| 含羞草久久爱69一区| 欧美爱爱网站| 日本婷婷久久久久久久久一区二区| 女人av一区| 亚洲精品成人久久久998| 日本a口亚洲| 在线成人性视频| 欧美在线国产| 欧美一级欧美一级| 一本色道久久综合亚洲精品不| 美女av免费在线观看| 日韩av电影一区| 亚洲一区二区中文字幕在线观看| 丰满放荡岳乱妇91ww| 美女黄色一级视频| 国产亚洲一本大道中文在线| 五月婷婷六月香| 一区二区久久久| 欧美精品韩国精品| 欧美日韩国产影片| www.色亚洲| 日韩精品一区二区视频| 18视频免费网址在线观看| 久久影视免费观看| 色偷偷色偷偷色偷偷在线视频| 国产精品爱啪在线线免费观看| 亚洲午夜国产成人| 精品蜜桃一区二区三区| 欧美丝袜丝交足nylons172| 午夜探花在线观看| 夜夜精品视频| 免费看涩涩视频| 成人国产精品免费观看| 久久久久无码精品国产sm果冻| 亚洲精品一二三区| 天天操中文字幕| 日韩一区二区三区视频在线 | 久久久久国产成人精品亚洲午夜 | 亚洲色图插插| 国产精品丝袜久久久久久消防器材| 青青草成人在线观看| zjzjzjzjzj亚洲女人| 久久精品夜色噜噜亚洲aⅴ| 中文字幕五月天| 色成人在线视频| 高h调教冰块play男男双性文| 亚洲欧美日韩精品久久奇米色影视| 久久久久久久久免费视频| 欧美一区在线直播| 亚洲视频国产精品| 一本久久a久久精品vr综合| 亚洲高清激情| 国产高清999| 欧美极品aⅴ影院| 99热国产在线观看| 日韩欧美一区二区三区在线| 国产片在线观看| 97精品久久久| 91欧美极品| 国产av不卡一区二区| 免费在线观看视频一区| 久久国产精品无码一级毛片| 一区二区三区 在线观看视频| 中文字幕在线观看视频一区| 精品亚洲一区二区三区四区五区| 国产最新在线| 国产精品网红直播| 亚洲免费福利一区| 妞干网在线视频观看| 国产乱淫av一区二区三区| eeuss中文字幕| 色噜噜狠狠成人网p站| 亚洲 欧美 精品| 午夜精品一区二区三区在线视频| 麻豆国产精品| 男人天堂成人网| 激情五月激情综合网| 香蕉久久久久久久| 欧美怡红院视频| 精品电影在线| 日本久久久久久久久| 五月综合久久| 精品一卡二卡三卡| 久久精品视频在线看| 美女又爽又黄免费视频| 日韩精品视频观看| 午夜影院一区| 日本不卡高清视频一区| 久久夜色精品| 免费黄色片网站| 欧洲国内综合视频| 国产露出视频在线观看| 国产成人一区二区| 日韩不卡一区| 国产美女18xxxx免费视频| 亚洲欧洲www| 国产高潮在线观看| 欧美国产在线电影| jizz性欧美2| 女人和拘做爰正片视频| 91色综合久久久久婷婷| 狠狠人妻久久久久久综合| 亚洲精品自在久久| 欧美极品免费| 中文字幕中文字幕在线中一区高清 | 午夜精品久久久内射近拍高清| 91啦中文在线观看| 黄色av网站免费观看| 色一情一乱一区二区| 成人久久精品| 成年人看的毛片| 久久九九99视频| 97精品人妻一区二区三区在线| 久久天堂电影网| 白嫩白嫩国产精品| 91av在线免费播放| 国产精品初高中害羞小美女文| av手机免费看| 午夜精品久久久久久久99热| 无码日韩精品一区二区免费| 国产一区二区在线免费播放| 亚洲精品免费电影| 手机看片国产1024| 国产精品99久久99久久久二8| 欧美成人激情| 久久精品aⅴ无码中文字字幕重口| 亚瑟在线精品视频| 国产天堂在线| 亚洲一区中文字幕在线观看| 国产精品嫩草99av在线| 久久日免费视频| 欧美精品一区二区在线播放| 中文.日本.精品| 日本精品福利视频| 久久综合一区二区| 国产精品无码在线播放| 97在线看福利| 91精品1区| 中文字幕xxx| 4438x亚洲最大成人网| 在线天堂资源www在线污| 一区二区精品在线| 99国产麻豆精品|