日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

谈谈Java开发中的对象拷贝

發(fā)布時間:2023/12/10 java 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 谈谈Java开发中的对象拷贝 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在Java開發(fā)工作中,有很多時候我們需要將不同的兩個對象實例進行屬性復(fù)制,從而基于源對象的屬性信息進行后續(xù)操作,而不改變源對象的屬性信息。這兩個對象實例有可能是同一個類的兩個實例,也可能是不同類的兩個實例,但是他們的屬相名稱相同。例如DO、DTO、VO、DAO等,這些實體的意義請查看DDD中分層架構(gòu)。本文主要介紹幾種對象拷貝的方法

1. 對象拷貝

對象拷貝分為深拷貝和淺拷貝。根據(jù)使用場景進行不同選擇。在Java中,數(shù)據(jù)類型分為值類型(基本數(shù)據(jù)類型)和引用類型,值類型包括int、double、byte、boolean、char等簡單數(shù)據(jù)類型,引用類型包括類、接口、數(shù)組等復(fù)雜類型。

深度拷貝和淺度拷貝的主要區(qū)別在于是否支持引用類型的屬性拷貝,本文將探討目前使用較多的幾種對象拷貝的方案,以及其是否支持深拷貝和性能對比。

2. BeanUtils

2.1?apache的BeanUtils方案

使用org.apache.commons.beanutils.BeanUtils進行對象深入復(fù)制時候,主要通過向BeanUtils框架注入新的類型轉(zhuǎn)換器,因為默認情況下,BeanUtils對復(fù)雜對象的復(fù)制是引用,例如:

public static void beanUtilsTest() throws Exception {// 注冊轉(zhuǎn)化器BeanUtilsBean.getInstance().getConvertUtils().register(new ArbitrationConvert(), ArbitrationDO.class);Wrapper wrapper = new Wrapper();wrapper.setName("copy");wrapper.setNameDesc("copy complex object!");wrapper.setArbitration(newArbitrationDO());Wrapper dest = new Wrapper();// 對象復(fù)制BeanUtils.copyProperties(dest, wrapper);// 屬性驗證wrapper.getArbitration().setBizId("1");System.out.println(wrapper.getArbitration() == dest.getArbitration());System.out.println(wrapper.getArbitration().getBizId().equals(dest.getArbitration().getBizId())); }public class ArbitrationConvert implements Converter {@Overridepublic <T> T convert(Class<T> type, Object value) {if (ArbitrationDO.class.equals(type)) {try {return type.cast(BeanUtils.cloneBean(value));} catch (Exception e) {e.printStackTrace();}}return null;} }

可以發(fā)現(xiàn),使用org.apache.commons.beanutils.BeanUtils復(fù)制引用時,主和源的引用為同一個,即改變了主的引用屬性會影響到源的引用,所以這是一種淺拷貝。

需要注意的是,apache的BeanUtils中,以下類型如果為空,會報錯(org.apache.commons.beanutils.ConversionException: No value specified for ?*)

/*** Register the converters for other types.* </p>* This method registers the following converters:* <ul>* <li>Class.class - {@link ClassConverter}* <li>java.util.Date.class - {@link DateConverter}* <li>java.util.Calendar.class - {@link CalendarConverter}* <li>File.class - {@link FileConverter}* <li>java.sql.Date.class - {@link SqlDateConverter}* <li>java.sql.Time.class - {@link SqlTimeConverter}* <li>java.sql.Timestamp.class - {@link SqlTimestampConverter}* <li>URL.class - {@link URLConverter}* </ul>* @param throwException <code>true if the converters should* throw an exception when a conversion error occurs, otherwise <code>* <code>false if a default value should be used.*/private void registerOther(boolean throwException) {register(Class.class, throwException ? new ClassConverter() : new ClassConverter(null));register(java.util.Date.class, throwException ? new DateConverter() : new DateConverter(null));register(Calendar.class, throwException ? new CalendarConverter() : new CalendarConverter(null));register(File.class, throwException ? new FileConverter() : new FileConverter(null));register(java.sql.Date.class, throwException ? new SqlDateConverter() : new SqlDateConverter(null));register(java.sql.Time.class, throwException ? new SqlTimeConverter() : new SqlTimeConverter(null));register(Timestamp.class, throwException ? new SqlTimestampConverter() : new SqlTimestampConverter(null));register(URL.class, throwException ? new URLConverter() : new URLConverter(null));}
當(dāng)遇到這種問題是,可以手動將類型轉(zhuǎn)換器注冊進去,比如data類型:

public class BeanUtilEx extends BeanUtils { private static Map cache = new HashMap(); private static Log logger = LogFactory.getFactory().getInstance(BeanUtilEx.class); private BeanUtilEx() { } static { // 注冊sql.date的轉(zhuǎn)換器,即允許BeanUtils.copyProperties時的源目標的sql類型的值允許為空 ConvertUtils.register(new org.apache.commons.beanutils.converters.SqlDateConverter(null), java.sql.Date.class); ConvertUtils.register(new org.apache.commons.beanutils.converters.SqlDateConverter(null), java.util.Date.class); ConvertUtils.register(new org.apache.commons.beanutils.converters.SqlTimestampConverter(null), java.sql.Timestamp.class); // 注冊util.date的轉(zhuǎn)換器,即允許BeanUtils.copyProperties時的源目標的util類型的值允許為空 } public static void copyProperties(Object target, Object source) throws InvocationTargetException, IllegalAccessException { // 支持對日期copy org.apache.commons.beanutils.BeanUtils.copyProperties(target, source); }

2.2 apache的PropertyUtils方案

PropertyUtils的copyProperties()方法幾乎與BeanUtils.copyProperties()相同,主要的區(qū)別在于后者提供類型轉(zhuǎn)換功能,即發(fā)現(xiàn)兩個JavaBean的同名屬性為不同類型時,在支持的數(shù)據(jù)類型范圍內(nèi)進行轉(zhuǎn)換,PropertyUtils不支持這個功能,所以說BeanUtils使用更普遍一點,犯錯的風(fēng)險更低一點。而且它仍然屬于淺拷貝。

Apache提供了 SerializationUtils.clone(T),T對象需要實現(xiàn) Serializable 接口,他屬于深克隆。

2.3 spring的BeanUtils方案

Spring中的BeanUtils,其中實現(xiàn)的方式很簡單,就是對兩個對象中相同名字的屬性進行簡單get/set,僅檢查屬性的可訪問性。

public static void copyProperties(Object source, Object target) throws BeansException {copyProperties(source, target, (Class)null, (String[])null);}public static void copyProperties(Object source, Object target, Class<?> editable) throws BeansException {copyProperties(source, target, editable, (String[])null);}public static void copyProperties(Object source, Object target, String... ignoreProperties) throws BeansException {copyProperties(source, target, (Class)null, ignoreProperties);}private static void copyProperties(Object source, Object target, Class<?> editable, String... ignoreProperties) throws BeansException {Assert.notNull(source, "Source must not be null");Assert.notNull(target, "Target must not be null");Class actualEditable = target.getClass();if(editable != null) {if(!editable.isInstance(target)) {throw new IllegalArgumentException("Target class [" + target.getClass().getName() + "] not assignable to Editable class [" + editable.getName() + "]");}actualEditable = editable;}PropertyDescriptor[] targetPds = getPropertyDescriptors(actualEditable);List ignoreList = ignoreProperties != null?Arrays.asList(ignoreProperties):null;PropertyDescriptor[] var7 = targetPds;int var8 = targetPds.length;for(int var9 = 0; var9 < var8; ++var9) {PropertyDescriptor targetPd = var7[var9];Method writeMethod = targetPd.getWriteMethod();if(writeMethod != null && (ignoreList == null || !ignoreList.contains(targetPd.getName()))) {PropertyDescriptor sourcePd = getPropertyDescriptor(source.getClass(), targetPd.getName());if(sourcePd != null) {Method readMethod = sourcePd.getReadMethod();if(readMethod != null && ClassUtils.isAssignable(writeMethod.getParameterTypes()[0], readMethod.getReturnType())) {try {if(!Modifier.isPublic(readMethod.getDeclaringClass().getModifiers())) {readMethod.setAccessible(true);}Object ex = readMethod.invoke(source, new Object[0]);if(!Modifier.isPublic(writeMethod.getDeclaringClass().getModifiers())) {writeMethod.setAccessible(true);}writeMethod.invoke(target, new Object[]{ex});} catch (Throwable var15) {throw new FatalBeanException("Could not copy property \'" + targetPd.getName() + "\' from source to target", var15);}}}}}}

可以看到, 成員變量賦值是基于目標對象的成員列表, 并且會跳過ignore的以及在源對象中不存在的, 所以這個方法是安全的, 不會因為兩個對象之間的結(jié)構(gòu)差異導(dǎo)致錯誤, 但是必須保證同名的兩個成員變量類型相同.

3. dozer

Dozer(http://dozer.sourceforge.net/)能夠?qū)崿F(xiàn)深拷貝。Dozer是基于反射來實現(xiàn)對象拷貝,反射調(diào)用set/get 或者是直接對成員變量賦值?。 該方式通過invoke執(zhí)行賦值,實現(xiàn)時一般會采用beanutil, Javassist等開源庫。

簡單引用網(wǎng)上的例子,大多都是基于xml的配置,具體請查看其它Blog:

package com.maven.demo;import java.util.HashMap; import java.util.Map;import org.dozer.DozerBeanMapper; import org.junit.Test;import static org.junit.Assert.assertEquals;public class Demo{/*** map->bean*/@Testpublic void testDozer1() {Map<String,Object> map = new HashMap();map.put("id", 10000L);map.put("name", "小兵");map.put("description", "帥氣逼人");DozerBeanMapper mapper = new DozerBeanMapper();ProductVO product = mapper.map(map, ProductVO.class);assertEquals("小兵",product.getName());assertEquals("帥氣逼人",product.getDescription());assertEquals(Long.valueOf("10000"), product.getId());}/*** VO --> Entity (不同的實體之間,不同的屬性字段進行復(fù)制)*/@Testpublic void testDozer2(){ProductVO product = new ProductVO();product.setId(10001L);product.setName("xiaobing");product.setDescription("酷斃了");DozerBeanMapper mapper = new DozerBeanMapper();ProductEntity productEntity = mapper.map(product, ProductEntity.class);assertEquals("xiaobing",productEntity.getProductName());}}

4. ?MapStrcut

MapStrcut屬于編譯期的對象復(fù)制方案,它能夠動態(tài)生成set/get代碼的class文件?,在運行時直接調(diào)用該class文件。該方式實際上扔會存在set/get代碼,只是不需要自己寫了。

@Mapper(componentModel = "spring") public interface MonitorAppGroupIdcDTOMapper {MonitorAppGroupIdcDTOMapper MAPPER = Mappers.getMapper(MonitorAppGroupIdcDTOMapper.class);void mapping(MonitorAppGroupIdcDTO source, @MappingTarget MonitorAppGroupIdcDTO dest); }

5. 自定義Pojoconvert

public J copyPojo( P src, J des) throws NoSuchMethodException,SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {if(src == null || des==null){return null;}String name = null ;String sufix = null;Class<?> cls = des.getClass() ;Method[] methods = cls.getMethods();for(Method m: methods){name = m.getName();if(name!=null && name.startsWith("set") && m.getParameterTypes().length==1){sufix = name.substring(3);m.getParameterTypes() ;Method getM = cls.getMethod("get"+sufix);m.invoke(des, getM.invoke(src));}}return des ; }

沒有那么多驗證,不是很安全但是性能不錯。

6.?BeanCopier

@Testpublic void test_convert_entity_to_model_performance_use_beancopier(){List<ShopCouponEntity> entityList = ...long start = System.currentTimeMillis();BeanCopier b = BeanCopier.create(ShopCouponEntity.class, ShopCouponModel.class, false);List<ShopCouponModel> modelList = new ArrayList<>();for (ShopCouponEntity src : entityList) {ShopCouponModel dest = new ShopCouponModel();b.copy(src, dest, null);modelList.add(dest);}System.out.printf("BeanCopier took time: %d(ms)%n",System.currentTimeMillis() - start);} 可以通過緩存BeanCopier的實例來提高性能。

BeanCopier b = getFromCache(sourceClass,targetClass); //從緩存中取long start = System.currentTimeMillis();List<ShopCouponModel> modelList = new ArrayList<>();for (ShopCouponEntity src : entityList) {ShopCouponModel dest = new ShopCouponModel();b.copy(src, dest, null);modelList.add(dest);}

7.?fastjson和GSON

使用fastjson和GSON主要是通過對象json序列化和反序列化來完成對象復(fù)制,這里只是提供一種不一樣的對象拷貝的思路,例子略。

8. 性能

對兩種BeanUtils、Gson以及自定義Pojoconvert測試了性能

NewNovelMode des = null ; NewNovelMode ori = buildModel(); Gson gson = new Gson(); int count = 100000; //org.springframework.beans.BeanUtils.copyProperties long s = System.currentTimeMillis(); for(int i=0;i<count;i++){des = new NewNovelMode();org.springframework.beans.BeanUtils.copyProperties(ori, des); } System.out.println("springframework BeanUtils cost:"+(System.currentTimeMillis() - s)); // System.out.println(new Gson().toJson(des));//org.apache.commons.beanutils.BeanUtils s = System.currentTimeMillis(); for(int i=0;i<count;i++){des = new NewNovelMode();org.apache.commons.beanutils.BeanUtils.copyProperties(des, ori); } System.out.println("apache BeanUtils cost:"+(System.currentTimeMillis() - s)); // System.out.println(new Gson().toJson(des));//gson轉(zhuǎn)換 s = System.currentTimeMillis(); for(int i=0;i<count;i++){des = gson.fromJson(gson.toJson(ori), NewNovelMode.class); } System.out.println("gson cost:"+(System.currentTimeMillis() - s)); // System.out.println(new Gson().toJson(des));//Pojo轉(zhuǎn)換類 s = System.currentTimeMillis(); PojoUtils<NewNovelMode, NewNovelMode> pojoUtils = new PojoUtils<NewNovelMode, NewNovelMode>(); for(int i=0;i<count;i++){des = new NewNovelMode();pojoUtils.copyPojo(ori,des); } System.out.println("Pojoconvert cost:"+(System.currentTimeMillis() - s)); // System.out.println(new Gson().toJson(des));

結(jié)果就不貼出來了,在這里總結(jié)一下

Spring的BeanUtils比較穩(wěn)定,不會因為量大了,耗時明顯增加,但其實基準耗時比較長;apache的BeanUtils穩(wěn)定性與效率都不行,不可取;Gson,因為做兩個gson轉(zhuǎn)換,所以正常項目中,可能耗時會更少一些;PojoUtils穩(wěn)定不如spring,但是總耗時優(yōu)勢明顯,原因是它只是根據(jù)項目的需求,實現(xiàn)的簡單的轉(zhuǎn)換模板,這個代碼在其它的幾個工具類均有。

而在網(wǎng)上的其他Blog中(參見Reference),對Apache的BeanUtils、PropertyUtils和CGLIB的BeanCopier作了性能測試。

測試結(jié)果:

性能對比: BeanCopier > BeanUtils. 其中BeanCopier的性能高出另外兩個100數(shù)量級。

綜上推薦使用:

1.?BeanUtils(簡單,易用)

2.?BeanCopier(加入緩存后和手工set的性能接近)

3. Dozer(深拷貝)

4. fastjson(特定場景下使用)


轉(zhuǎn)自:https://my.oschina.net/hosee/blog/1483965


總結(jié)

以上是生活随笔為你收集整理的谈谈Java开发中的对象拷贝的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

中文字幕精品久久 | 日韩三级视频在线看 | 精品视频www | 手机av网站| 国产第一页在线观看 | 亚洲视频精品 | 91精品老司机久久一区啪 | 波多野结衣在线观看一区二区三区 | 久久久精品国产免费观看一区二区 | 国产成人三级一区二区在线观看一 | 黄色av播放 | 久久精品视频网站 | 狠狠狠色丁香婷婷综合激情 | 国产精品一区二区三区久久久 | 久久成人精品电影 | 在线99热| 日韩av网站在线播放 | 国产 字幕 制服 中文 在线 | 国产视频精品免费 | 久久久久夜色 | 欧美一二三区在线观看 | 日本99精品| 国产视频一区二区在线 | 网站在线观看你们懂的 | 97狠狠操| 欧美激情另类文学 | av资源在线看 | 天天躁天天躁天天躁婷 | 国产精品精品久久久 | 一区二区三区影院 | 日韩精品一区二区三区丰满 | 日本激情中文字幕 | 狠狠干天天 | 日日夜夜精品视频 | 成人av电影在线播放 | 波多野结衣在线播放一区 | 亚洲精品视频大全 | 97超碰人人模人人人爽人人爱 | 免费日韩在线 | 久久9精品 | 亚洲精品国产精品国自产在线 | 青草视频免费观看 | 超碰免费观看 | 五月婷婷亚洲 | 色婷婷导航 | 日韩av影视在线 | 亚洲精品视频免费在线观看 | 天天干天天射天天操 | 99精品在线观看 | 一区二区三区四区免费视频 | 国产精品久久久区三区天天噜 | 正在播放久久 | 天天操天天色综合 | 午夜色场 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 干 操 插| 亚洲国产精品va在线看黑人动漫 | 亚洲精品美女在线观看播放 | 国产婷婷 | 91人人人 | 精品国模一区二区 | a在线播放 | 精品一区二区影视 | 毛片网站在线看 | 天天操天天怕 | 97精品在线视频 | 在线观看aa | 韩国精品一区二区三区六区色诱 | 久久久久久久久艹 | 欧美欧美 | 免费精品在线视频 | www日韩在线观看 | 成人片在线播放 | 国产高清av| 狠狠干.com | 天天插天天爱 | 91免费视频黄 | 男女日麻批| 国产视频在线免费 | 天天射综合网站 | 欧美狠狠操| 亚洲四虎 | 999在线精品 | 亚洲一区天堂 | 久久96| 国产美女精品视频免费观看 | 欧美日韩久久一区 | 免费黄色在线网站 | 色干干 | 国产精品四虎 | 又色又爽又激情的59视频 | 久久久久久久久久伊人 | 碰天天操天天 | 久久久久久美女 | 日韩在线小视频 | 免费观看国产精品视频 | 欧美日本在线观看视频 | 欧美91精品| 综合久久婷婷 | 久久激情久久 | 成人国产精品免费 | 99精品欧美一区二区三区 | 在线播放一区 | 亚洲第一区在线播放 | 成人免费网站视频 | 97超碰资源站 | 欧美日韩色婷婷 | 91九色网址 | 免费黄色激情视频 | 激情五月网站 | 99国内精品久久久久久久 | 国产精品一区在线观看你懂的 | 色婷婷www | 91久久爱热色涩涩 | 天海冀一区二区三区 | 97在线看片 | 在线视频18在线视频4k | 中文字幕视频播放 | 激情视频一区二区 | 99久久精品免费看国产一区二区三区 | 久在线观看| 中文字幕日韩无 | 91入口在线观看 | 国产在线一区观看 | 亚洲1区在线 | 亚洲精品视频播放 | 国产视频综合在线 | 久草在线免费资源站 | 91精品视频免费在线观看 | 91完整视频 | 激情视频免费在线 | 女人18精品一区二区三区 | 西西444www高清大胆 | 精品视频在线播放 | 亚洲最大av | 亚洲成人蜜桃 | 成人欧美一区二区三区黑人麻豆 | 2019中文最近的2019中文在线 | 狠狠插狠狠干 | 国产伦理剧 | 久久激情影院 | 久久精品中文视频 | 国产精品尤物视频 | 在线观看精品视频 | 亚洲乱亚洲乱亚洲 | 亚洲天天综合 | 亚洲一区二区麻豆 | sm免费xx网站 | av免费线看| 成年人av在线播放 | 免费在线观看国产黄 | 成人h视频在线播放 | 中文不卡视频在线 | a级国产乱理伦片在线观看 亚洲3级 | 四虎www| 亚洲精品女 | 亚洲激情婷婷 | 中文字幕综合在线 | 久久男女视频 | 免费成人在线电影 | 欧美激情另类文学 | 久久免费视频精品 | 久久高视频 | 九九久| 国产精品久久久久久久久久久久久 | 国产午夜av| 久久精品成人热国产成 | 婷婷激情五月 | 久草www| 激情五月婷婷激情 | 99riav1国产精品视频 | 综合网在线视频 | 天天天操天天天干 | 天天操夜夜操 | 亚洲精品午夜aaa久久久 | 国产在线第三页 | 国产精品成人av在线 | 亚洲精品成人在线 | 亚洲视频中文 | 日本精品在线视频 | 伊人黄色网| 激情开心站 | 91麻豆精品| 国产免费美女 | 国产美女网 | 成人黄色在线播放 | 永久黄网站色视频免费观看w | 免费成人黄色 | 免费观看av | 91视频在线| 日韩激情在线视频 | 久久人人爽人人爽人人片av软件 | 欧美爽爽爽 | 日韩精品视频第一页 | 亚洲欧洲av在线 | 91精品视频免费在线观看 | 久久视频免费观看 | 成人小视频在线免费观看 | 日本午夜免费福利视频 | 婷婷国产一区二区三区 | 国产精品3区 | 成人永久视频 | 欧美精品在线观看一区 | 欧美精品一区二区免费 | 91视视频在线直接观看在线看网页在线看 | 久久9999久久 | 国产一级二级视频 | 国产精品久久久久久久久久久免费看 | 国产日韩在线观看一区 | 久久免费视频在线观看 | 亚州性色| 国产又粗又猛又爽又黄的视频免费 | 狠色狠色综合久久 | 精品一区二区综合 | 色视频成人在线观看免 | 国产精品 欧美 日韩 | 97国产情侣爱久久免费观看 | 伊人开心激情 | 久日精品| 国产高潮久久 | 五月天网页 | 亚洲黄色片 | 亚洲视频1区2区 | 国产人在线成免费视频 | 亚洲第一区精品 | 欧美精品成人在线 | 在线观看亚洲成人 | 国产极品尤物在线 | 亚洲精品永久免费视频 | 欧美一级久久久久 | 日日操网站 | 亚洲手机天堂 | 久草热视频 | 女人高潮一级片 | 中文字幕在线观看91 | 黄色av成人在线 | 天天干天天做天天爱 | 人人射| 国内久久精品视频 | 久久久久国产精品厨房 | 亚洲在线免费视频 | 欧洲一区二区在线观看 | 私人av | 国产欧美三级 | 色综合久久久久久久久五月 | 五月婷丁香网 | 999成人国产 | 97人人精品 | 久碰视频在线观看 | 国产日韩高清在线 | 69xxxx欧美| 亚洲精品综合一二三区在线观看 | 国产99久久久精品 | 国产一级片播放 | 丁香婷婷社区 | 久久久国产精品一区二区三区 | www.夜夜操 | 日本中文字幕影院 | 色是在线视频 | 麻豆影视在线播放 | 国产片网站 | 欧美日韩一区二区三区在线免费观看 | 97国产大学生情侣酒店的特点 | 91毛片在线 | 人人超碰人人 | 在线中文字幕电影 | 视频在线一区二区三区 | 精品福利国产 | 99中文字幕 | 国产一区二区三区午夜 | 91桃色在线免费观看 | 婷婷六月综合亚洲 | 日韩精品免费一区 | 精品视频123区在线观看 | 永久免费的啪啪网站免费观看浪潮 | 国产69精品久久99的直播节目 | 91精品视频观看 | 国内精品久久久久久中文字幕 | 97国产精品久久 | 久久免费精彩视频 | 97人人模人人爽人人喊中文字 | 九九涩涩av台湾日本热热 | 色综合五月天 | 日韩videos高潮hd | 97超碰在线免费观看 | 国产一级二级三级在线观看 | 视频一区二区精品 | 日韩精品一区电影 | 精品国产一区二区三区久久久蜜月 | av成年人电影 | 夜夜嗨av色一区二区不卡 | 韩国一区二区三区在线观看 | 久久一区国产 | 狠狠干五月天 | 一区二区三区电影在线播 | 伊人成人久久 | 日韩欧美在线高清 | 日本黄网站 | 97超碰色| 嫩草av在线 | 在线精品国产 | 久一在线| 国产成人一级电影 | 天天操天天谢 | 久久久久久久久影院 | 美女福利视频 | 天天操夜| 美女网站一区 | 久久97超碰 | 96视频免费在线观看 | 狠狠干免费 | 国产亚洲精品久久久久久久久久 | 亚洲一本视频 | 亚洲九九九在线观看 | 日韩精品免费在线视频 | 中文av在线播放 | 日韩一级电影在线 | 久99久中文字幕在线 | 久久精品国产亚洲 | 久久国产精品区 | 激情文学综合丁香 | 综合av在线 | 国产无套视频 | a色视频 | 日韩免费视频一区二区 | 日韩欧美在线综合网 | 精品一区二区在线看 | 四虎5151久久欧美毛片 | 天天爽天天射 | 中文字幕乱码在线播放 | 日韩在线视频一区二区三区 | 久久久国产精品人人片99精片欧美一 | 免费视频91| 国产久草在线 | 国产3p视频 | 最近最新中文字幕视频 | 色综合小说 | 久久精品第一页 | 日韩在线视频播放 | 精品国产电影一区二区 | 日韩免费三区 | 激情五月在线 | 精品视频免费看 | 九九有精品 | 久久婷婷久久 | 日韩a免费 | 91在线免费播放 | 国产一级片一区二区三区 | 亚洲在线观看av | 欧美大片mv免费 | 久久不见久久见免费影院 | 热久久免费国产视频 | 国产小视频福利在线 | 精品欧美乱码久久久久久 | 日本黄色免费播放 | 成人免费在线播放视频 | 91成人在线网站 | av中文字幕亚洲 | 亚洲视屏一区 | 91成人免费视频 | 国产精品精品久久久久久 | 丁香婷婷久久 | 免费看色的网站 | 成人久久影院 | 色999在线 | 国产麻豆精品久久 | 久久久久久久久福利 | 午夜精品区 | 久久专区 | 日本黄色大片免费看 | 中文字幕日韩国产 | 国产特级毛片aaaaaa毛片 | 欧亚日韩精品一区二区在线 | 欧美大片aaa| 国产精品视频最多的网站 | 国产精品高清免费在线观看 | 国产精品一区免费看8c0m | 久久99中文字幕 | 天天操天天射天天操 | 亚洲精品字幕在线观看 | 成人性生爱a∨ | 91大神视频网站 | 麻豆传媒一区二区 | 999国内精品永久免费视频 | 精品在线免费观看 | 精品一二| 色婷婷久久一区二区 | 综合激情网... | 中文字幕在线看视频 | 久久成人精品电影 | 久久国产精品色av免费看 | av在线电影免费观看 | 欧美日韩免费一区二区三区 | 中文在线免费一区三区 | 日韩欧美第二页 | 国产精品一区二区62 | av中文字幕在线观看网站 | 久草视频在线观 | 美女网站在线观看 | 国产成人综合图片 | 九色在线| 草免费视频 | 亚洲精品欧美精品 | 国语久久 | 国产无遮挡猛进猛出免费软件 | av在线a| 欧美极度另类性三渗透 | 97自拍超碰| 午夜精品视频免费在线观看 | 亚洲女人av | 精品国产黄色片 | 中文高清av | 久久国产精品一二三区 | 亚洲一区二区三区精品在线观看 | 中文字幕精品一区久久久久 | 天天操天天操天天操天天 | 日韩精品久久久久久久电影99爱 | 午夜影院三级 | 亚洲精品国产精品国自产观看 | 久久久片| 亚洲电影久久 | 日韩免费在线 | 婷婷激情在线 | 一本到视频在线观看 | 激情综合啪 | 成人国产精品免费 | 日韩欧美高清一区二区三区 | 精品国产伦一区二区三区 | 国产视频精品网 | 日韩首页 | 99热这里 | 日韩在观看线 | 国产成人精品亚洲日本在线观看 | 一区二区三区免费在线播放 | 日韩av中文字幕在线 | 国产99一区视频免费 | 日本久久免费电影 | 白丝av在线| 国产乱对白刺激视频在线观看女王 | 四虎最新入口 | 人人天天夜夜 | www色com| 91久久精品一区二区三区 | 麻豆免费视频 | 久久人人添人人爽添人人88v | 97在线视频免费看 | 五月天综合网站 | 99欧美精品 | 亚洲九九九在线观看 | 不卡中文字幕在线 | 精品国产成人av在线免 | 国内精品在线一区 | 久久久香蕉视频 | 99欧美 | 久久久精品国产免费观看同学 | 国产亚洲精品成人 | 久久在线免费观看视频 | 精品视频免费播放 | 91成人精品一区在线播放69 | 久久久久免费精品国产小说色大师 | 五月综合色 | 成人aaa毛片 | 日本爱爱免费 | 一个色综合网站 | 97视频久久久 | 99在线热播精品免费 | 狠狠干电影 | 亚洲乱码久久久 | 91传媒免费观看 | 欧美一区二区三区在线视频观看 | 久久国产精品99久久人人澡 | 国产福利精品视频 | 免费网站在线观看成人 | av免费电影在线观看 | 波多野结衣在线观看一区 | 涩涩资源网 | 国产精品成人免费精品自在线观看 | 久久久天天操 | 成人在线观看网址 | 精品伊人久久久 | 五月天伊人网 | 天天干天天插 | 国产精品粉嫩 | 日韩中文在线播放 | 久久亚洲电影 | 久久综合狠狠综合久久激情 | 国产精品一区二区你懂的 | 狠狠狠色丁香婷婷综合久久五月 | 精品在线你懂的 | 久久久久久免费毛片精品 | 99中文字幕在线观看 | 最新国产在线视频 | 国产精品永久久久久久久www | 日本中文字幕在线电影 | 亚洲国产久 | 日韩在线无 | www.狠狠操.com | 免费国产视频 | 婷久久| 国产精品久久久久aaaa | 成年人免费在线观看网站 | 国产精品精品久久久久久 | 天堂网av 在线 | 中文字幕有码在线观看 | 天天艹天天干天天 | 18国产精品福利片久久婷 | 欧美a级一区二区 | 中文字幕在线观看一区二区三区 | 久久综合影音 | 日韩免费二区 | 91免费在线播放 | 在线中文字幕一区二区 | 日日色综合| 狠狠网亚洲精品 | 最新精品视频在线 | 91在线免费观看网站 | 亚洲人成免费网站 | 99久久精品国 | 中文字幕在线免费看 | 日韩毛片精品 | 激情五月在线视频 | 肉色欧美久久久久久久免费看 | 天天插天天操天天干 | 日韩综合一区二区 | 中文一区在线 | 久久精品2 | 成人电影毛片 | 日韩一区二区三区免费视频 | 免费人成网ww44kk44 | 五月婷婷国产 | 精品欧美乱码久久久久久 | 青青视频一区 | 久久国产一二区 | 久久狠狠亚洲综合 | 中文字幕资源网 | 99视频在线精品国自产拍免费观看 | 久久国产精品99久久久久 | 婷婷5月色 | 国内揄拍国内精品 | 亚洲国产mv| 91手机视频| 69久久夜色精品国产69 | 日本久久高清视频 | 波多野结衣在线视频免费观看 | 欧美久久成人 | 日本久久久久久久久久久 | 99久久999久久久精玫瑰 | 国产成人av网站 | 欧美视频日韩视频 | 高清视频一区 | 婷婷av网| 三级黄色大片在线观看 | 综合色中色 | 欧美在线观看视频免费 | 91av看片| 中文字幕欧美日韩va免费视频 | 中文字幕免费一区二区 | 日韩一级网站 | 在线观看免费观看在线91 | 欧美激情精品久久久久久免费 | av高清在线观看 | 色激情五月 | 色七七亚洲影院 | 在线v| 亚洲伊人婷婷 | 亚洲精品视频免费在线 | 韩国在线一区 | 亚洲色综合 | 日韩精品欧美精品 | 国产99久久久国产精品免费二区 | 久草网视频在线观看 | 九九av | 中文日韩在线视频 | 久久综合久久综合这里只有精品 | 欧美日韩中字 | 高清美女视频 | 精品一区二区在线观看 | 一区二区 不卡 | 成人国产精品久久久春色 | 丰满少妇在线观看 | 久久国产精品久久精品国产演员表 | 三上悠亚一区二区在线观看 | 精品久久久免费 | 免费视频成人 | 国产a级免费 | 国产免费作爱视频 | 狠狠夜夜| 国产福利久久 | 精品久久久久久久久久久院品网 | 日本中文字幕在线视频 | 91一区二区三区在线观看 | 久色 网 | 国产精品一区欧美 | 99久热在线精品视频成人一区 | 2023天天干| 久久99电影| 国产手机视频在线观看 | 日韩av电影网站在线观看 | 超碰公开97| 婷婷视频导航 | 国产午夜在线观看 | 国产精品高清免费在线观看 | 一本色道久久综合亚洲二区三区 | 成人国产精品一区 | 成人av一区二区在线观看 | 久久久久久久久久久黄色 | 日本韩国中文字幕 | 国产精品va在线观看入 | 中文字幕在线影院 | 久久综合福利 | 精品1区2区3区 | 黄色av电影在线 | 国产精品美女免费看 | 久操中文字幕在线观看 | 高清视频一区二区三区 | 免费在线国产黄色 | 一区二区三区在线观看免费 | 天天色.com | 福利在线看片 | 国产特黄色片 | 欧美va日韩va | 亚洲精品动漫久久久久 | 日韩黄色大片在线观看 | 久久中文字幕导航 | 天天干天天干天天干天天干天天干天天干 | 亚洲国产无 | 中文永久免费观看 | 国产一区二区三区 在线 | 亚洲国产精品一区二区久久,亚洲午夜 | 日韩中文字幕视频在线 | 日韩av电影国产 | 99精品国产高清在线观看 | 亚洲精品乱码久久久久久 | 欧美一区在线看 | 日韩免费视频线观看 | 91精品国产一区二区三区 | 国产麻豆精品一区二区 | 色综合天天色综合 | 亚洲国产精品免费 | 欧美性生活免费 | 日日夜夜网 | 69人人| 97热久久免费频精品99 | 成人亚洲综合 | 免费在线观看av的网站 | 亚洲欧洲国产精品 | 国产激情小视频在线观看 | 超碰日韩在线 | av中文在线| 亚洲精品黄 | 九九久久影院 | 99c视频高清免费观看 | 91网站免费观看 | 狠狠干天天操 | 国产麻豆电影在线观看 | 狠狠狠狠狠狠狠狠 | 国产日韩av在线 | 免费视频97 | 日本久久久久久久久久久 | 日韩精品一区二区在线观看视频 | 九九综合久久 | 亚洲高清av在线 | 国精产品满18岁在线 | 最新日韩中文字幕 | 国产精品免费一区二区三区 | 超碰免费观看 | 国产精品福利无圣光在线一区 | 国产日本高清 | 天天射天天射 | 91av视屏| 亚洲aⅴ久久精品 | 91高清不卡 | 日韩电影在线观看一区二区三区 | 91精彩视频在线观看 | 天天曰天天爽 | 伊人天天| 一级黄色免费 | 日本中文字幕观看 | 麻豆传媒一区二区 | 亚洲视频电影在线 | 91精品国产自产在线观看 | 亚洲精品乱码久久久久久蜜桃91 | 黄色网址国产 | 特级大胆西西4444www | 久久亚洲免费视频 | 亚洲一级黄色av | 国产一区二区观看 | 日本少妇视频 | 精品国产色 | 日韩啪视频| 永久免费毛片在线观看 | 成人午夜在线电影 | 国产无区一区二区三麻豆 | 四虎亚洲精品 | 国产精品久久一区二区三区不卡 | 少妇视频在线播放 | 色综合久久综合 | 久久久久亚洲国产 | 亚洲欧美视频一区二区三区 | aaa毛片视频 | 精品视频在线观看 | 中文字幕在线免费观看视频 | 91九色porny在线 | 99精品欧美一区二区三区黑人哦 | av千婊在线免费观看 | 久久精品视| 亚洲精品在线网站 | 亚洲视频1 | 国产精品视频一二三 | 日韩大片在线免费观看 | 99精品视频一区 | 麻豆系列在线观看 | 久草在线视频中文 | 丁香五月缴情综合网 | 国产色在线观看 | 国产麻豆精品在线观看 | 少妇搡bbbb搡bbb搡aa | 久久99国产精品免费 | 最近中文字幕 | 最近久乱中文字幕 | 国内久久久| 色婷婷激情| 西西4444www大胆无视频 | 在线免费中文字幕 | av免费看电影 | 亚洲精品在线观看不卡 | 国产精品一区二区三区久久久 | 精品久久久久久亚洲综合网站 | 免费在线观看中文字幕 | 国内精品久久久久久久久久 | 欧美黄色免费 | 久精品视频免费观看2 | 国产中文字幕网 | 丁香五月缴情综合网 | 精品国产乱码久久久久久1区2匹 | 中文字幕在线日亚洲9 | 在线电影日韩 | 最近中文字幕免费 | 黄色免费观看 | 婷婷新五月| www.人人草| 三级黄色在线观看 | 在线国产一区二区三区 | 久久伊人精品天天 | 欧美日韩综合在线观看 | 久久av网 | 天天干夜夜夜操天 | 欧美另类美少妇69xxxx | 在线观看免费视频你懂的 | 91精品国产一区 | 国产高清在线永久 | 免费看三级黄色片 | 777视频在线观看 | 久久这里有精品 | 9999亚洲 | 亚洲高清视频一区二区三区 | 蜜臀av免费一区二区三区 | 日韩免费精品 | 狠狠色噜噜狠狠狠合久 | 91九色视频网站 | 久久久久成人免费 | 亚洲欧美视频在线 | 九九精品无码 | 国产a级免费 | 亚洲午夜精品久久久久久久久 | 国产九色视频在线观看 | 精品日韩中文字幕 | 亚洲综合视频网 | 日本护士三级少妇三级999 | 日韩视频三区 | 国产一级视频在线 | 国产精品综合在线 | 在线黄色观看 | 91精品亚洲影视在线观看 | 久久免费播放 | 国产精品免费不 | 国产精品乱看 | 亚洲三区在线 | 超碰官网 | 国色天香第二季 | 国产精品成人国产乱 | av一区二区三区在线 | 五月婷婷六月丁香激情 | 欧美精品二区 | 人人添人人澡人人澡人人人爽 | 久久艹欧美 | 天天草天天操 | 亚洲 欧美变态 另类 综合 | 精品国产一区二区三区av性色 | 国产精品一区二区av日韩在线 | 日韩在线观看的 | 国产精品成人一区二区三区吃奶 | 99精品视频播放 | 园产精品久久久久久久7电影 | 操操日日 | 伊人久久av | 欧美成人h版在线观看 | 久久久久久久久久国产精品 | 久久精品—区二区三区 | 精品国精品自拍自在线 | 国语精品免费视频 | 四虎成人精品 | 国产精品99久久99久久久二8 | 亚洲精品美女在线 | 人人干人人超 | 欧美综合在线观看 | 波多野结衣在线观看一区二区三区 | 久久夜色精品国产欧美一区麻豆 | 人人爱爱人人 | 国产中文字幕在线视频 | 久久综合久久综合这里只有精品 | 国产码电影 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 91视频在线观看免费 | 欧美国产不卡 | 婷婷久草| 色干综合 | 久久视频在线观看中文字幕 | 中文字幕在线观 | 午夜av在线免费 | 国产99在线免费 | 六月丁香婷婷在线 | 日日夜夜网 | 天天干天天干天天干 | 日韩色一区二区三区 | 天天插天天射 | 玖玖色在线观看 | 中文字幕视频一区二区 | av亚洲产国偷v产偷v自拍小说 | 91久久精品一区二区三区 | 欧产日产国产69 | 色a网 | 丝袜美腿在线播放 | 97日日碰人人模人人澡分享吧 | 看v片| 亚洲国产视频a | 高清免费av在线 | 欧美一级片在线观看视频 | 日韩免费观看视频 | 久久av影院| 亚洲国产成人精品电影在线观看 | 久久国产网 | 日本h视频在线观看 | 成人午夜电影网 | 久久免费视频精品 | 国产精品国产三级国产aⅴ无密码 | 激情综合网五月激情 | 天天操,夜夜操 | 亚洲成av人片在线观看www | 麻豆 videos | 西西444www大胆高清图片 | 亚洲年轻女教师毛茸茸 | 日本特黄一级片 | 在线成人av | 亚洲黑丝少妇 | 亚洲网站在线看 | 中文字幕在线网址 | 成年人免费看片网站 | 欧美一级片免费在线观看 | 国产精品theporn| 天天插日日操 | 在线免费性生活片 | 久久国产精品精品国产色婷婷 | 麻豆视频观看 | 色婷婷综合久久久 | 欧美最猛性xxx| 日韩欧美国产视频 | 在线播放 一区 | 美女精品在线 | 99国产在线 | 涩涩爱夜夜爱 | 国产在线精品一区二区 | 国产精品视频99 | 天天舔天天射天天操 | 激情综合色综合久久综合 | 黄色片免费看 | 99精品视频精品精品视频 | 久久99精品久久久久久清纯直播 | 超碰在线94 | 久久玖| 精品国产成人在线影院 | 超碰在线人 | 亚洲国产成人在线播放 | 免费成人在线视频网站 | 亚洲天堂激情 | 日韩精品免费在线视频 | 天天操天天操天天操天天 | 日韩精品2区 | 超碰在线观看av.com | 久久久影院一区二区三区 | 一 级 黄 色 片免费看的 | 91九色视频国产 | 欧美最猛性xxxxx免费 | 麻花豆传媒一二三产区 | 久久综合中文色婷婷 | 91视频91色 | 国产精品久久久久久久久久久不卡 | 国产在线91在线电影 | 久久久久国产成人免费精品免费 | 色爱成人网 | 日韩有码专区 | 欧美日本不卡 | 国产成人精品一区二区三区福利 | 日本69hd | 精品久久久免费 | 久久精品视频18 | 天堂av在线网 | 国产一级黄 | 干天天 | 波多野结衣在线观看一区二区三区 | 久久国内精品99久久6app | 欧美激情精品久久久久久免费 | 日韩电影在线观看一区二区三区 | 午夜精品导航 | 久久免费在线观看 | 国产91精品久久久久久 | 日韩免费福利 | 欧美精品一区二区性色 | 在线不卡a | 日韩一区二区三区免费电影 | 国产色拍 | 午夜在线观看 | 国产福利一区二区三区视频 | 91在线色 | 三级在线播放视频 | 国产日韩欧美在线观看 | 91社区国产高清 | 免费性网站 | 亚洲欧美乱综合图片区小说区 | 国产精品九九久久久久久久 | 精品一区欧美 | 99精品在线免费在线观看 | 成年人视频在线免费 | 国产性xxxx | 国产1区在线观看 | 亚洲va天堂va欧美ⅴa在线 | 91在线免费观看网站 | 六月色播| 超碰com| 色天天天| 天天骚夜夜操 | 国产精品久久久久久久久久了 | 日韩草比 | 国产一区二区视频在线播放 | 国产精品成人一区二区三区吃奶 | 干综合网| 日韩中文在线视频 | 色全色在线资源网 | 天天摸天天弄 | 久久精品电影 | 青青久草在线视频 | 久久成人黄色 | 午夜精品福利一区二区三区蜜桃 | 涩涩网站在线观看 | 久久综合99 | 亚洲免费高清视频 | 99视频精品| www日韩精品| av免费观看高清 | 亚洲天堂色婷婷 | 91豆麻精品91久久久久久 | 98久久| 日韩电影精品 | 亚洲精品乱码久久久久久高潮 | 欧美日韩在线免费观看 | av综合av| 欧美激情在线网站 | 激情久久五月 | 国产精品免费观看视频 | 这里只有精品视频在线 | 欧美一二三视频 | 在线成人免费电影 | japanesefreesexvideo高潮 | 欧美在线观看视频一区二区三区 | 亚欧日韩av | 81精品国产乱码久久久久久 | 狠狠色噜噜狠狠狠狠2022 | 玖玖在线精品 | 久久久久成人精品亚洲国产 | 精品久久久免费视频 | 国产视频亚洲 | 亚洲精品国产自产拍在线观看 | 韩国精品视频在线观看 | 午夜在线观看一区 | 成人黄色在线视频 | 亚洲精品免费在线观看 | 日韩美女一级片 | 中文字幕在线观看一区二区三区 | 又黄又网站 | 欧美日韩一级在线 | 97超级碰碰碰碰久久久久 | 国产精品18毛片一区二区 | 毛片视频网址 | 亚洲精品综合在线 | 天天射天天干天天爽 | 日本精品一区二区三区在线播放视频 | 狠狠激情中文字幕 | 婷婷av资源 |