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

從原型模式到淺拷貝和深拷貝

開發(fā) 前端
“如果你有一個對象, 并希望生成與其完全相同的一個復制品, 你該如何實現呢?首先, 你必須新建一個屬于相同類的對象。然后, 你必須遍歷原始對象的所有成員變量, 并將成員變量值復制到新對象中。

[[336025]]

本文轉載自微信公眾號「JavaKeeper」,作者不假  。轉載本文請聯系JavaKeeper公眾號。 

問題

“如果你有一個對象, 并希望生成與其完全相同的一個復制品, 你該如何實現呢?首先, 你必須新建一個屬于相同類的對象。然后, 你必須遍歷原始對象的所有成員變量, 并將成員變量值復制到新對象中。

  1. for (int i = 0; i < 10; i++) { 
  2.   Sheep sheep = new Sheep("肖恩"+i+"號",2+i,"白色"); 
  3.   System.out.println(sheep.toString()); 

這種方式是比較容易想到的,但是有幾個不足

  • 在創(chuàng)建新對象的時候,總是需要重新獲取原始對象的屬性,如果創(chuàng)建的對象比較復雜,效率會很低
  • 總是需要重新初始化對象,而不是動態(tài)地獲得對象運行時的狀態(tài), 不夠靈活
  • 另一方面,并非所有對象都能通過這種方式進行復制, 因為有些對象可能擁有私有成員變量, 它們在對象本身以外是不可見的

“萬物兼對象的 Java 中的所有類的根類 Object,提供了一個 clone() 方法,該方法可以將一個 Java 對象復制一份,但是需要實現 clone() 的類必須要實現一個接口 Cloneable,該接口表示該類能夠復制且具有復制的能力。這就引出了原型模式。

基本介紹

  1. 原型模式(Prototype模式)是指:用原型實例指定創(chuàng)建對象的種類,并且通過拷貝這些原型,創(chuàng)建新的對象
  2. 原型模式是一種創(chuàng)建型設計模式, 使你能夠復制已有對象, 而又無需使代碼依賴它們所屬的類
  3. 工作原理是:通過將一個原型對象傳給那個要發(fā)動創(chuàng)建的對象,這個要發(fā)動創(chuàng)建的對象通過請求原型對象拷貝它們自己來實施創(chuàng)建,即 對象**.clone**()

類圖

  • Prototype : 原型 (Prototype) 接口將對克隆方法進行聲明

Java 中 Prototype 類需要具備以下兩個條件

  1. 實現 Cloneable 接口。在 Java 語言有一個 Cloneable 接口,它的作用只有一個,就是在運行時通知虛擬機可以安全地在實現了此接口的類上使用 clone 方法。在 Java 虛擬機中,只有實現了這個接口的類才可以被拷貝,否則在運行時會拋出 CloneNotSupportedException 異常
  2. 重寫 Object 類中的 clone 方法。Java 中,所有類的父類都是 Object 類,Object 類中有一個 clone 方法,作用是返回對象的一個拷貝
  • ConcretePrototype:具體原型 (Concrete Prototype) 類將實現克隆方法。除了將原始對象的數據復制到克隆體中之外, 該方法有時還需處理克隆過程中的極端情況, 例如克隆關聯對象和梳理遞歸依賴等等。
  • Client: 使用原型的客戶端,首先要獲取到原型實例對象,然后通過原型實例克隆自己,從而創(chuàng)建一個新的對象。

實例

“我們用王二小放羊的例子寫這個實例

1、原型類(實現 Clonable)

  1. @Setter 
  2. @Getter 
  3. @NoArgsConstructor 
  4. @AllArgsConstructor 
  5. class Sheep implements Cloneable { 
  6.     private String name
  7.     private Integer age; 
  8.     private String color; 
  9.  
  10.     @Override 
  11.     protected Sheep clone() { 
  12.         Sheep sheep = null
  13.         try { 
  14.             sheep = (Sheep) super.clone(); 
  15.         } catch (Exception e) { 
  16.             System.out.println(e.getMessage()); 
  17.         } 
  18.         return sheep; 
  19.     } 

2、具體原型

按業(yè)務的不同實現不同的原型對象,假設現在主角是王二小,羊群里有山羊、綿羊一大群

  1. public class Goat extends Sheep{ 
  2.     public void graze() { 
  3.         System.out.println("山羊去吃草"); 
  4.     } 
  1. public class Lamb extends Sheep{ 
  2.     public void graze() { 
  3.         System.out.println("羔羊去吃草"); 
  4.     } 

3、客戶端

  1. public class Client { 
  2.  
  3.     static List<Sheep> sheepList = new ArrayList<>(); 
  4.     public static void main(String[] args) { 
  5.         Goat goat = new Goat(); 
  6.         goat.setName("山羊"); 
  7.         goat.setAge(3); 
  8.         goat.setColor("灰色"); 
  9.         for (int i = 0; i < 5; i++) { 
  10.             sheepList.add(goat.clone()); 
  11.         } 
  12.  
  13.         Lamb lamb = new Lamb(); 
  14.         lamb.setName("羔羊"); 
  15.         lamb.setAge(2); 
  16.         lamb.setColor("白色"); 
  17.         for (int i = 0; i < 5; i++) { 
  18.             sheepList.add(lamb.clone()); 
  19.             System.out.println(lamb.hashCode()+","+lamb.clone().hashCode()); 
  20.         } 
  21.  
  22.         for (Sheep sheep : sheepList) { 
  23.             System.out.println(sheep.toString()); 
  24.         } 

原型模式將克隆過程委派給被克隆的實際對象。模式為所有支持克隆的對象聲明了一個通用接口, 該接口讓你能夠克隆對象,同時又無需將代碼和對象所屬類耦合。通常情況下,這樣的接口中僅包含一個 克隆方法。

所有的類對 克隆方法的實現都非常相似。該方法會創(chuàng)建一個當前類的對象, 然后將原始對象所有的成員變量值復制到新建的類中。你甚至可以復制私有成員變量, 因為絕大部分編程語言都允許對象訪問其同類對象的私有成員變量。

支持克隆的對象即為原型。當你的對象有幾十個成員變量和幾百種類型時, 對其進行克隆甚至可以代替子類的構造。

優(yōu)勢

使用原型模式創(chuàng)建對象比直接 new 一個對象在性能上要好的多,因為 Object 類的 clone 方法是一個本地方法,它直接操作內存中的二進制流,特別是復制大對象時,性能的差別非常明顯。

使用原型模式的另一個好處是簡化對象的創(chuàng)建,使得創(chuàng)建對象就像我們在編輯文檔時的復制粘貼一樣簡單。

因為以上優(yōu)點,所以在需要重復地創(chuàng)建相似對象時可以考慮使用原型模式。比如需要在一個循環(huán)體內創(chuàng)建對象,假如對象創(chuàng)建過程比較復雜或者循環(huán)次數很多的話,使用原型模式不但可以簡化創(chuàng)建過程,而且可以使系統的整體性能提高很多。

適用場景

《Head First 設計模式》是這么形容原型模式的:當創(chuàng)建給定類的實例的過程很昂貴或很復雜時,就是用原型模式。

如果你需要復制一些對象,同時又希望代碼獨立于這些對象所屬的具體類,可以使用原型模式。

如果子類的區(qū)別僅在于其對象的初始化方式, 那么你可以使用該模式來減少子類的數量。別人創(chuàng)建這些子類的目的可能是為了創(chuàng)建特定類型的對象

原型模式在 Spring 中的應用

我們都知道 Spring bean 默認是單例的,但是有些場景可能需要原型范圍,如下

  1. <bean id="sheep" class="priv.starfish.prototype.Sheep" scope="prototype"
  2.    <property name="name" value="肖恩"/> 
  3.    <property name="age" value="2"/> 
  4.    <property name="color" value="白色"/> 
  5. </bean> 

同樣,王二小還是有 10 只羊,感興趣的也可以看下他們創(chuàng)建的對象是不是同一個

  1. public class Client { 
  2.     public static void main(String[] args) { 
  3.         ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); 
  4.         for (int i = 0; i < 10; i++) { 
  5.             Object bean = context.getBean("sheep"); 
  6.             System.out.println(bean); 
  7.         } 
  8.     } 

感興趣的同學可以深入源碼看下具體的實現,在 AbstractBeanFactory 的 doGetBean() 方法中

原型模式的注意事項

  • 使用原型模式復制對象不會調用類的構造方法。因為對象的復制是通過調用 Object 類的 clone 方法來完成的,它直接在內存中復制數據,因此不會調用到類的構造方法。不但構造方法中的代碼不會執(zhí)行,甚至連訪問權限都對原型模式無效。還記得單例模式嗎?單例模式中,只要將構造方法的訪問權限設置為 private 型,就可以實現單例。但是 clone 方法直接無視構造方法的權限,所以,單例模式與原型模式是沖突的,在使用時要特別注意。
  • 深拷貝與淺拷貝。Object 類的 clone方法只會拷貝對象中的基本的數據類型,對于數組、容器對象、引用對象等都不會拷貝,這就是淺拷貝。如果要實現深拷貝,必須將原型模式中的數組、容器對象、引用對象等另行拷貝。

淺拷貝和深拷貝

首先需要明白,淺拷貝和深拷貝都是針對一個已有對象的操作。

在 Java 中,除了基本數據類型(元類型)之外,還存在 類的實例對象 這個引用數據類型。而一般使用 『 = 』號做賦值操作的時候。對于基本數據類型,實際上是拷貝的它的值,但是對于對象而言,其實賦值的只是這個對象的引用,將原對象的引用傳遞過去,他們實際上還是指向的同一個對象。

而淺拷貝和深拷貝就是在這個基礎之上做的區(qū)分,如果在拷貝這個對象的時候,只對基本數據類型進行了拷貝,而對引用數據類型只是進行了引用的傳遞,而沒有真實的創(chuàng)建一個新的對象,則認為是淺拷貝。反之,在對引用數據類型進行拷貝的時候,創(chuàng)建了一個新的對象,并且復制其內的成員變量,則認為是深拷貝。

“所謂的淺拷貝和深拷貝,只是在拷貝對象的時候,對 類的實例對象 這種引用數據類型的不同操作而已

淺拷貝

  1. 對于數據類型是基本數據類型的成員變量,淺拷貝會直接進行值傳遞,也就是將該屬性值復制一份給新的對象。
  2. 對于數據類型是引用數據類型的成員變量,比如說成員變量是某個數組、某個類的對象等,那么淺拷貝會進行引用傳遞,也就是只是將該成員變量的引用值(內存地址)復制一份給新的對象。因為實際上兩個對象的該成員變量都指向同一個實例。在這種情況下,在一個對象中修改該成員變量會影響到另一個對象的該成員變量值
  3. 前面我們克隆羊就是淺拷貝,如果我們在 Sheep 中加一個對象類型的屬性,public Sheep child;可以看到 s 和 s1 的 friend 是同一個。
  1.  Sheep s = new Sheep(); 
  2.   s.setName("sss"); 
  3.    
  4.   s.friend = new Sheep(); 
  5.   s.friend.setName("喜洋洋"); 
  6.    
  7.   Sheep s1 = s.clone(); 
  8.   System.out.println(s == s1); 
  9.   System.out.println(s.hashCode()+"---"+s.clone().hashCode()); 
  10.    
  11.   System.out.println(s.friend == s1.friend); 
  12.   System.out.println(s.friend.hashCode() + "---" +s1.friend.hashCode()); 
  13. false 
  14. 621009875---1265094477 
  15. true 
  16. 2125039532---2125039532 

深拷貝

現在我們知道 clone() 方法,只能對當前對象進行淺拷貝,引用類型依然是在傳遞引用。那如何進行一個深拷貝呢?

常見的深拷貝實現方式有兩種:

  1. 重寫 clone 方法來實現深拷貝
  2. 通過對象序列化實現深拷貝

淺拷貝和深拷貝只是相對的,如果一個對象內部只有基本數據類型,那用 clone() 方法獲取到的就是這個對象的深拷貝,而如果其內部還有引用數據類型,那用 clone() 方法就是一次淺拷貝的操作。

 

 

責任編輯:武曉燕 來源: JavaKeeper
相關推薦

2021-07-16 12:33:24

Javascript深拷貝淺拷貝

2017-08-16 13:30:05

Java深拷貝淺拷貝

2021-09-27 11:07:11

深拷貝淺拷貝內存

2022-07-26 08:07:03

Python淺拷貝深拷貝

2018-09-26 14:37:17

JavaScript前端編程語言

2021-01-08 06:15:09

深拷貝淺拷貝寫時拷貝

2023-05-17 08:42:46

深拷貝Golang

2020-10-21 14:29:15

原型模式

2009-05-19 17:28:44

深拷貝淺拷貝clone()

2020-10-12 08:35:22

JavaScript

2024-03-15 15:03:23

2023-05-17 07:36:00

淺拷貝深拷貝對象

2022-09-30 15:03:09

C語言深拷貝淺拷貝

2018-05-10 14:20:18

前端JavaScript深拷貝

2024-02-05 22:56:16

C++拷貝開發(fā)

2020-06-23 08:41:47

JavaScript開發(fā)技術

2023-09-22 12:21:33

Python深拷貝淺拷貝

2021-10-18 09:01:01

前端賦值淺拷貝

2019-02-25 08:58:16

Python深拷貝淺拷貝

2021-09-10 07:41:06

Python拷貝Python基礎
點贊
收藏

51CTO技術棧公眾號

日韩av在线看免费观看| 国产资源在线视频| www.黄色av| 亚洲国产网站| 亚洲视频欧美视频| 日本中文字幕观看| 99色在线观看| 国产精品久久午夜| 国产一区二区在线网站| 天堂av免费在线观看| 欧美成人69av| 亚洲区在线播放| 中文字幕第10页| 91av亚洲| 亚洲一二三专区| 热re99久久精品国产99热| 精品人妻伦一区二区三区久久| 麻豆91精品| 欧美激情xxxx性bbbb| www.久久成人| 玖玖玖电影综合影院| 婷婷开心激情综合| 婷婷视频在线播放| 日韩在线免费播放| 国产精品1区2区3区在线观看| 欧美在线观看视频| 毛片aaaaa| 色婷婷色综合| 亚洲视频在线观看视频| 麻豆短视频在线观看| 国产麻豆一区| 日韩欧美在线视频观看| 日本五级黄色片| 欧美成人三区| 91网站视频在线观看| 成人自拍偷拍| 国产深喉视频一区二区| 美女视频一区二区三区| 日本午夜在线亚洲.国产| 久久久综合久久久| 91精品综合| 日韩一区二区欧美| www.涩涩爱| 成人免费电影网址| 亚洲欧美激情在线视频| 李丽珍裸体午夜理伦片| 一区二区三区自拍视频| 欧美一级久久久久久久大片| 天天干天天玩天天操| 偷拍中文亚洲欧美动漫| 色婷婷久久99综合精品jk白丝| 欧美精品久久久久久久免费| 久久av色综合| 亚洲国产精品欧美一二99 | 欧美亚视频在线中文字幕免费| 日韩丝袜情趣美女图片| 极品人妻一区二区| 三级欧美日韩| 精品国产免费视频| 四虎成人免费视频| 成人自拍在线| 亚洲国产欧美一区二区三区同亚洲 | 深夜国产在线播放| 亚洲免费高清视频在线| 日本国产中文字幕| 免费在线看电影| 亚洲国产精品视频| 爱福利视频一区二区| 亚洲成人激情社区| 欧美日韩不卡在线| 中文字幕人妻无码系列第三区| 欧美三级一区| 亚洲第一精品福利| 蜜桃av免费看| 日韩欧美大片| 九九热精品视频国产| 国产乡下妇女做爰视频| 久久精品123| 国产这里只有精品| 亚洲欧美激情在线观看| 91污片在线观看| 致1999电视剧免费观看策驰影院| h片在线免费| 岛国av一区二区在线在线观看| 久久久久久久久久久久久国产精品 | 日韩一卡二卡在线| 国产日产精品一区| 91社在线播放| 国产网站在线| 欧美午夜视频网站| 99久久综合网| 伊人久久大香线蕉| 久久伊人免费视频| 影音先锋亚洲天堂| 精品一区二区三区的国产在线播放| 99在线国产| 精品三级久久久久久久电影聊斋| 亚洲丝袜美腿综合| 伊人成色综合网| 欧洲亚洲精品久久久久| 亚洲精品国产综合久久| 国精产品视频一二二区| 尤物网精品视频| 国产免费亚洲高清| 亚洲 另类 春色 国产| 中文字幕一区二区三区在线播放 | 刘亦菲国产毛片bd| 在线视频观看日韩| 国产精品一区二区久久久久| 色呦呦中文字幕| 中文字幕制服丝袜成人av| 欧美综合在线播放| 日韩精品久久久久久久软件91| 亚洲人午夜精品免费| 久久久久久久久久一区二区三区 | 国产精品久久久久久久9999 | 美女又爽又黄免费视频| 国产在线播精品第三| 欧美一区二区视频17c| 欧美极品少妇videossex| 欧美日韩一区视频| 成人精品999| 亚洲欧美日本日韩| 国产69精品久久久久9999apgf | 一区二区成人网| 四虎影视精品| 午夜精品久久久久久久99热| 99热这里只有精品66| 国产精品久久久一本精品| 成人免费观看视频在线观看| 一区二区三区视频免费视频观看网站 | 亚洲影院高清在线| 色综合久久影院| 日本韩国欧美在线| 亚洲自拍偷拍一区二区| 激情亚洲网站| 成人永久免费| 日本精品600av| 日韩一级片网址| 日韩在线一卡二卡| 精品一区二区三区久久| 伊人色综合影院| 日韩精品第二页| 色老头一区二区三区| 一级特黄aaaaaa大片| 欧美国产禁国产网站cc| 久久婷婷国产91天堂综合精品| 精品中文字幕一区二区三区av| 国内成人精品视频| 四虎永久在线精品免费网址| 亚洲一二三四区| 日韩精品视频一区二区| 亚洲视频大全| 蜜桃视频日韩| 日韩性xxx| 一区二区三区无码高清视频| 姑娘第5集在线观看免费好剧| 国产三级欧美三级日产三级99| 99视频在线免费| 成人在线免费观看网站| 国产在线播放不卡| www在线视频| 精品国产电影一区二区| 91在线看视频| 国产三级久久久| 久久成年人网站| 欧美日韩一区自拍| 国内精品国语自产拍在线观看| 精品丝袜在线| 亚洲三级av在线| 在线观看国产精品入口男同| 亚洲色图制服诱惑| 无码人妻精品一区二区三区99不卡| 18成人免费观看视频| 欧美精品亚洲| 欧美天堂在线| 色与欲影视天天看综合网| 无码精品一区二区三区在线 | 日韩在线xxx| 欧美激情电影| 国产精品美女黄网| 高清av不卡| 久久天堂电影网| 日韩在线视频免费| 欧美性受xxxx| 欧美交换国产一区内射| 久久久青草青青国产亚洲免观| 麻豆一区二区三区视频| 午夜天堂精品久久久久| 欧美一区二区在线| 国产一区二区三区亚洲综合 | 青草视频在线观看免费| 国产精品久久久久久户外露出| 伊人国产精品视频| 国产精品久久久亚洲一区| 中文字幕久久一区| 亚洲电影男人天堂| 91超碰在线免费观看| 伊人久久国产| 欧美日韩成人在线视频| caoporn国产精品免费视频| 精品三级av在线| 亚洲无码精品一区二区三区| 亚洲一区二区三区四区中文字幕| 男女黄床上色视频| 国产99久久精品| 日韩一级免费片| 亚洲伊人观看| 久久www视频| 日韩大片在线| 欧美成人综合一区| aiss精品大尺度系列| 国产啪精品视频| 国产精品高清乱码在线观看| 欧美激情乱人伦| 免费黄色网页在线观看| 亚洲无av在线中文字幕| 日本免费网站在线观看| 欧美一级电影网站| 亚洲图片小说视频| 91福利在线看| 制服.丝袜.亚洲.中文.综合懂色| 亚洲男人的天堂av| 91免费在线看片| 亚洲国产精品国自产拍av| 天堂久久久久久| 成人精品亚洲人成在线| 中文字幕欧美视频| 久久超碰97人人做人人爱| 天堂在线资源视频| 免费在线欧美黄色| 激情综合在线观看| 亚洲最黄网站| 久久国产亚洲精品无码| 激情视频一区| 国产欧美精品aaaaaa片| 你懂的成人av| 400部精品国偷自产在线观看| 日韩精品午夜| 亚洲午夜精品久久久中文影院av| 国产成人精品三级高清久久91| 久久99久久精品国产| 精品国产乱子伦一区二区| 国产一区二区久久久| 久久365资源| 久久一区二区三区欧美亚洲| 亚州精品视频| 欧美日本亚洲| 国内精品久久久久久99蜜桃| 小说区图片区图片区另类灬| 欧美码中文字幕在线| 色综合视频二区偷拍在线| 成人精品影视| 黄色一级视频播放| 欧美日韩91| 国产欧美日韩小视频| 99视频在线精品国自产拍免费观看| 五十路熟女丰满大屁股| 亚洲裸体俱乐部裸体舞表演av| 缅甸午夜性猛交xxxx| 国产免费成人| 男女男精品视频站| 久久国产精品99精品国产| 亚洲色图欧美自拍| 成人动漫一区二区| 野外性满足hd| 中文字幕乱码亚洲精品一区| 亚洲区一区二区三| 亚洲激情中文1区| 国产午夜免费视频| 色综合视频在线观看| 在线观看色网站| 91精品国产综合久久小美女| 午夜精品久久久久久久第一页按摩| 欧美成人aa大片| 欧美日韩国产亚洲沙发| 色偷偷噜噜噜亚洲男人的天堂| 国产调教视频在线观看| 久久久女人电视剧免费播放下载| 超碰在线97国产| 日韩免费在线观看视频| 国产精品亚洲欧美一级在线| 国产一级精品aaaaa看| 国产亚洲欧美日韩在线观看一区二区| 亚洲精品国产精品久久| 欧美精品国产| 成人免费视频久久| 国产成人在线视频网站| 9.1成人看片免费版| 国产精品久久国产精麻豆99网站| 免费毛片在线播放免费| 色偷偷成人一区二区三区91| 国产免费无遮挡| 亚洲欧美www| 黄视频网站在线| 2018日韩中文字幕| 国产精品视频首页| 日本一区二区三区视频在线播放| 亚洲中无吗在线| 一本久道综合色婷婷五月| 国产福利视频一区二区三区| 免费黄色片网站| 亚洲一二三区不卡| 国产又粗又猛视频免费| 日韩电影在线观看中文字幕| 国产原创视频在线观看| 日本不卡高字幕在线2019| 亚洲综合影院| 亚洲成人精品电影在线观看| 亚洲高清资源| 亚洲综合av在线播放| 2023国产精品| 久久人人爽人人爽人人| 欧美日韩国产一区| 久久久久久青草| 久久久爽爽爽美女图片| 亚洲伦理网站| 日韩福利在线| 夜夜夜久久久| 稀缺呦国内精品呦| 亚洲免费在线视频| 一级aaaa毛片| 一本一道久久a久久精品逆3p | 性久久久久久久久久久| 亚洲免费观看高清| 91成品人影院| 夜夜嗨av色一区二区不卡| 在线观看爽视频| 国产日韩欧美一区二区| 欧美黄色aaaa| 182午夜视频| 《视频一区视频二区| 中文字幕视频二区| 一本色道久久88综合亚洲精品ⅰ| 一区二区乱码| 精品久久久久亚洲| 亚洲国产美女| 亚洲国产果冻传媒av在线观看| 亚洲综合久久久| 亚洲精品成av人片天堂无码| 超薄丝袜一区二区| 精品一区二区三区中文字幕 | 久久99精品久久久久久青青日本 | 亚洲蜜臀av乱码久久精品蜜桃| 亚洲一级黄色大片| 色妞在线综合亚洲欧美| 色噜噜成人av在线| 中文字幕综合在线观看| 精品一区二区综合| 中文字幕av免费在线观看| 91精品国产综合久久精品app| 黄色网页在线免费看| 91香蕉电影院| 欧美性久久久| 一级欧美一级日韩片| 欧美日韩亚洲激情| 国产日韩精品在线看| 国产精品视频中文字幕91| 国产二区精品| 古装做爰无遮挡三级聊斋艳谭| 一区二区三区日韩精品| 狠狠人妻久久久久久综合麻豆| 97婷婷涩涩精品一区| 国产91精品对白在线播放| 手机看片福利日韩| 亚洲国产高清不卡| 国产乱子伦精品无码码专区| 欧美激情小视频| 亚洲精品白浆高清| 在线观看岛国av| 亚洲午夜免费福利视频| 视频二区在线| 国产日韩中文字幕在线| 欧美日韩国产一区精品一区| 99久久人妻无码中文字幕系列| 在线观看亚洲专区| 超碰在线最新| 久久大香伊蕉在人线观看热2| 日韩精品一级二级| 中文字幕在线有码| 国产视频精品va久久久久久| 成人深夜福利| 国内少妇毛片视频| 久久久午夜电影| 国产精品综合在线| 97在线免费观看| 久久美女视频| 日本国产在线视频| 欧美无砖砖区免费| 超碰在线99| 亚洲欧美影院| 97国产精品videossex| 97精品人妻一区二区三区香蕉| 国内精品久久影院| 四虎国产精品免费观看| 国产精品无码一区二区三| 91麻豆精品国产无毒不卡在线观看| 爱看av在线入口| 亚洲一区二区三区免费看| av在线不卡免费看|