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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

java

Java序列化的几种方式以及序列化的作用(文章有所改变)

發(fā)布時(shí)間:2024/1/1 java 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java序列化的几种方式以及序列化的作用(文章有所改变) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文著重講解一下Java序列化的相關(guān)內(nèi)容。

如果對(duì)Java序列化感興趣的同學(xué)可以研究一下。

一.Java序列化的作用

???有的時(shí)候我們想要把一個(gè)Java對(duì)象變成字節(jié)流的形式傳出去,有的時(shí)候我們想要從一個(gè)字節(jié)流中恢復(fù)一個(gè)Java對(duì)象。例如,有的時(shí)候我們想要

把一個(gè)Java對(duì)象寫入到硬盤或者傳輸?shù)骄W(wǎng)路上面的其它計(jì)算機(jī),這時(shí)我們就需要自己去通過(guò)java把相應(yīng)的對(duì)象寫成轉(zhuǎn)換成字節(jié)流。對(duì)于這種通用

的操作,我們?yōu)槭裁床皇褂媒y(tǒng)一的格式呢?沒(méi)錯(cuò),這里就出現(xiàn)了java的序列化的概念。在Java的OutputStream類下面的子類ObjectOutput-

Stream類就有對(duì)應(yīng)的WriteObject(Object object) 其中要求對(duì)應(yīng)的object實(shí)現(xiàn)了java的序列化的接口。

? 為了更好的理解java序列化的應(yīng)用,我舉兩個(gè)自己在開(kāi)發(fā)項(xiàng)目中遇到的例子:

? 1)在使用tomcat開(kāi)發(fā)JavaEE相關(guān)項(xiàng)目的時(shí)候,我們關(guān)閉tomcat后,相應(yīng)的session中的對(duì)象就存儲(chǔ)在了硬盤上,如果我們想要在tomcat重啟的

時(shí)候能夠從tomcat上面讀取對(duì)應(yīng)session中的內(nèi)容,那么保存在session中的內(nèi)容就必須實(shí)現(xiàn)相關(guān)的序列化操作。

? 2)如果我們使用的java對(duì)象要在分布式中使用或者在rmi遠(yuǎn)程調(diào)用的網(wǎng)絡(luò)中使用的話,那么相關(guān)的對(duì)象必須實(shí)現(xiàn)java序列化接口。

? 親愛(ài)的小伙伴,大概你已經(jīng)了解了java序列化相關(guān)的作用,接下來(lái)們來(lái)看看如何實(shí)現(xiàn)java的序列化吧。~

??二.實(shí)現(xiàn)java對(duì)象的序列化和反序列化。

????????? ?Java對(duì)象的序列化有兩種方式。

???????????a.是相應(yīng)的對(duì)象實(shí)現(xiàn)了序列化接口Serializable,這個(gè)使用的比較多,對(duì)于序列化接口Serializable接口是一個(gè)空的接口,它的主要作用就是

???????????? 標(biāo)識(shí)這個(gè)對(duì)象時(shí)可序列化的,jre對(duì)象在傳輸對(duì)象的時(shí)候會(huì)進(jìn)行相關(guān)的封裝。這里就不做過(guò)多的介紹了。

???????????? 下面是一個(gè)實(shí)現(xiàn)序列化接口的Java序列化的例子:非常簡(jiǎn)單

????????????

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 package?com.shop.domain; import?java.util.Date; public?class?Article?implements?java.io.Serializable { ????private?static?final?long?serialVersionUID = 1L; ????private?Integer id;? ????private?String title;??//文章標(biāo)題 ????private?String content;??// 文章內(nèi)容 ????private?String faceIcon;//表情圖標(biāo) ????private?Date postTime;?//文章發(fā)表的時(shí)間 ????private?String ipAddr;??//用戶的ip ????? ????private?User author;??//回復(fù)的用戶 ????? ????public?Integer getId() { ????????return?id; ????} ????public?void?setId(Integer id) { ????????this.id = id; ????} ????public?String getTitle() { ????????return?title; ????} ????public?void?setTitle(String title) { ????????this.title = title; ????} ????public?String getContent() { ????????return?content; ????} ????public?void?setContent(String content) { ????????this.content = content; ????} ????public?String getFaceIcon() { ????????return?faceIcon; ????} ????public?void?setFaceIcon(String faceIcon) { ????????this.faceIcon = faceIcon; ????} ????public?Date getPostTime() { ????????return?postTime; ????} ????public?void?setPostTime(Date postTime) { ????????this.postTime = postTime; ????} ????public?User getAuthor() { ????????return?author; ????} ????public?void?setAuthor(User author) { ????????this.author = author; ????} ????public?String getIpAddr() { ????????return?ipAddr; ????} ????public?void?setIpAddr(String ipAddr) { ????????this.ipAddr = ipAddr; ????} ????? ????? }

?

  b.實(shí)現(xiàn)序列化的第二種方式為實(shí)現(xiàn)接口Externalizable,Externlizable的部分源代碼如下:

??????

1 2 3 4 5 6 7 8 *?@see?java.io.ObjectInput ?*?@see?java.io.Serializable ?*?@since???JDK1.1 ?*/ public?interface?Externalizable?extends?java.io.Serializable { ????/** ?????* The object?implements?the writeExternal method to save its contents ?????* by calling the methods of DataOutput?for?its primitive values or

????? 沒(méi)錯(cuò),Externlizable接口繼承了java的序列化接口,并增加了兩個(gè)方法:

?????void writeExternal(ObjectOutput out) throws IOException;

???? void readExternal(ObjectInput in) throws IOException, ClassNotFoundException;

???? 首先,我們?cè)谛蛄谢瘜?duì)象的時(shí)候,由于這個(gè)類實(shí)現(xiàn)了Externalizable 接口,在writeExternal()方法里定義了哪些屬性可以序列化,

哪些不可以序列化,所以,對(duì)象在經(jīng)過(guò)這里就把規(guī)定能被序列化的序列化保存文件,不能序列化的不處理,然后在反序列的時(shí)候自動(dòng)調(diào)

用readExternal()方法,根據(jù)序列順序挨個(gè)讀取進(jìn)行反序列,并自動(dòng)封裝成對(duì)象返回,然后在測(cè)試類接收,就完成了反序列。

???? 所以說(shuō)Exterinable的是Serializable的一個(gè)擴(kuò)展。

???? 為了更好的理解相關(guān)內(nèi)容,請(qǐng)看下面的例子:

???

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 package?com.xiaohao.test; import?java.io.Externalizable; import?java.io.FileInputStream; import?java.io.FileNotFoundException; import?java.io.FileOutputStream; import?java.io.IOException; import?java.io.ObjectInput; import?java.io.ObjectInputStream; import?java.io.ObjectOutput; import?java.io.ObjectOutputStream; import?java.text.SimpleDateFormat; import?java.util.Date; /** ?* 測(cè)試實(shí)體類 ?* @author 小浩 ?* @創(chuàng)建日期 2015-3-12 ?*/ class?Person?implements?Externalizable{ ????????private?static?final?long?serialVersionUID = 1L;<br>??? String userName; ????String password; ????String age; ????? ??? ????public?Person(String userName, String password, String age) { ????????super(); ????????this.userName = userName; ????????this.password = password; ????????this.age = age; ????} ????? ????? ????public?Person() { ????????super(); ????} ????public?String getAge() { ????????return?age; ????} ????public?void?setAge(String age) { ????????this.age = age; ????} ????public?String getUserName() { ????????return?userName; ????} ????public?void?setUserName(String userName) { ????????this.userName = userName; ????} ????public?String getPassword() { ????????return?password; ????} ????public?void?setPassword(String password) { ????????this.password = password; ????} ????? ????/** ?????* 序列化操作的擴(kuò)展類 ?????*/ ????@Override ????public?void?writeExternal(ObjectOutput out)?throws?IOException { ????????//增加一個(gè)新的對(duì)象 ????????Date date=new?Date(); ????????out.writeObject(userName); ????????out.writeObject(password); ????????out.writeObject(date); ????} ????? ????/** ?????* 反序列化的擴(kuò)展類 ?????*/ ????@Override ????public?void?readExternal(ObjectInput in)?throws?IOException, ????????????ClassNotFoundException { ????????//注意這里的接受順序是有限制的哦,否則的話會(huì)出錯(cuò)的 ????????// 例如上面先write的是A對(duì)象的話,那么下面先接受的也一定是A對(duì)象... ????????userName=(String) in.readObject(); ????????password=(String) in.readObject(); ????????SimpleDateFormat sdf=new?SimpleDateFormat("yyyy-MM-dd"); ????????Date date=(Date)in.readObject();??????? ????????System.out.println("反序列化后的日期為:"+sdf.format(date)); ????????? ????} ????@Override ????public?String toString() { ????????//注意這里的年齡是不會(huì)被序列化的,所以在反序列化的時(shí)候是讀取不到數(shù)據(jù)的 ????????return?"用戶名:"+userName+"密 碼:"+password+"年齡:"+age; ????} } /** ?* 序列化和反序列化的相關(guān)操作類 ?* @author 小浩 ?* @創(chuàng)建日期 2015-3-12 ?*/ class?Operate{ ????/** ?????* 序列化方法 ?????* @throws IOException ?????* @throws FileNotFoundException ?????*/ ????public?void?serializable(Person person)?throws?FileNotFoundException, IOException{ ????????ObjectOutputStream outputStream=new?ObjectOutputStream(new?FileOutputStream("a.txt")); ????????outputStream.writeObject(person);?????? ????} ????? ????/** ?????* 反序列化的方法 ?????* @throws IOException ?????* @throws FileNotFoundException ?????* @throws ClassNotFoundException ?????*/ ????public?Person deSerializable()?throws?FileNotFoundException, IOException, ClassNotFoundException{ ????????ObjectInputStream ois=new?ObjectInputStream(new?FileInputStream("a.txt")); ????????return?(Person) ois.readObject(); ????} ????? ????? } /** ?* 測(cè)試實(shí)體主類 ?* @author 小浩 ?* @創(chuàng)建日期 2015-3-12 ?*/ public?class?Test{ ????public?static?void?main(String[] args)?throws?FileNotFoundException, IOException, ClassNotFoundException { ???????Operate operate=new?Operate(); ???????Person person=new?Person("小浩","123456","20"); ???????System.out.println("為序列化之前的相關(guān)數(shù)據(jù)如下:\n"+person.toString()); ???????operate.serializable(person); ???????Person newPerson=operate.deSerializable(); ???????System.out.println("-------------------------------------------------------"); ???????System.out.println("序列化之后的相關(guān)數(shù)據(jù)如下:\n"+newPerson.toString()); ????} ????? ????? }

????????

? 首先,我們?cè)谛蛄谢疷serInfo對(duì)象的時(shí)候,由于這個(gè)類實(shí)現(xiàn)了Externalizable 接口,在writeExternal()方法里定義了哪些屬性可

以序列化,哪些不可以序列化,所以,對(duì)象在經(jīng)過(guò)這里就把規(guī)定能被序列化的序列化保存文件,不能序列化的不處理,然后在反序列

的時(shí)候自動(dòng)調(diào)用readExternal()方法,根據(jù)序列順序挨個(gè)讀取進(jìn)行反序列,并自動(dòng)封裝成對(duì)象返回,然后在測(cè)試類接收,就完成了反

序列。

??

???? ***對(duì)于實(shí)現(xiàn)Java的序列化接口需要注意一下幾點(diǎn):

?????????? 1.java中的序列化時(shí)transient變量(這個(gè)關(guān)鍵字的作用就是告知JAVA我不可以被序列化)和靜態(tài)變量不會(huì)被序列

????????????? 化(下面是一個(gè)測(cè)試的例子)

???????????

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 import?java.io.*; class?Student1?implements?Serializable { ????private?static?final?long?serialVersionUID = 1L; ????private?String name; ????private?transient?String password; ????private?static?int?count =?0; ????public?Student1(String name, String password) { ????????System.out.println("調(diào)用Student的帶參的構(gòu)造方法"); ????????this.name = name; ????????this.password = password; ????????count++; ????} ????public?String toString() { ????????return?"人數(shù): "?+ count +?" 姓名: "?+ name +?" 密碼: "?+ password; ????} } public?class?ObjectSerTest1 { ????public?static?void?main(String args[]) { ????????try?{ ????????????FileOutputStream fos =?new?FileOutputStream("test.obj"); ????????????ObjectOutputStream oos =?new?ObjectOutputStream(fos); ????????????Student1 s1 =?new?Student1("張三",?"12345"); ????????????Student1 s2 =?new?Student1("王五",?"54321"); ????????????oos.writeObject(s1); ????????????oos.writeObject(s2); ????????????oos.close(); ????????????FileInputStream fis =?new?FileInputStream("test.obj"); ????????????ObjectInputStream ois =?new?ObjectInputStream(fis); ????????????Student1 s3 = (Student1) ois.readObject(); ????????????Student1 s4 = (Student1) ois.readObject(); ????????????System.out.println(s3); ????????????System.out.println(s4); ????????????ois.close(); ????????}?catch?(IOException e) { ????????????e.printStackTrace(); ????????}?catch?(ClassNotFoundException e1) { ????????????e1.printStackTrace(); ????????} ????} }

?

  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 import?java.io.FileInputStream; import?java.io.FileOutputStream; import?java.io.IOException; import?java.io.ObjectInputStream; import?java.io.ObjectOutputStream; public?class?Test{ ????? ????public?static?void?main(String args[]){ ????????? ????????try?{ ????????????FileInputStream fis =?new?FileInputStream("test.obj"); ????????????ObjectInputStream ois =?new?ObjectInputStream(fis); ????????????Student1 s3 = (Student1) ois.readObject(); ????????????Student1 s4 = (Student1) ois.readObject(); ????????????System.out.println(s3); ????????????System.out.println(s4); ????????????ois.close(); ????????}?catch?(IOException e) { ????????????e.printStackTrace(); ????????}?catch?(ClassNotFoundException e1) { ????????????e1.printStackTrace(); ????????} ????} ????? ????? ????? }

  

??????????????? 2.也是最應(yīng)該注意的,如果你先序列化對(duì)象A后序列化B,那么在反序列化的時(shí)候一定記著JAVA規(guī)定先讀到的對(duì)象

?????????????????? 是先被序列化的對(duì)象,不要先接收對(duì)象B,那樣會(huì)報(bào)錯(cuò).尤其在使用上面的Externalizable的時(shí)候一定要注意讀取

?????????????????? 的先后順序。

????????????????3.實(shí)現(xiàn)序列化接口的對(duì)象并不強(qiáng)制聲明唯一的serialVersionUID,是否聲明serialVersionUID對(duì)于對(duì)象序列化的向

????????????????? 上向下的兼容性有很大的影響。我們來(lái)做個(gè)測(cè)試:

思路一

把User中的serialVersionUID去掉,序列化保存。反序列化的時(shí)候,增加或減少個(gè)字段,看是否成功。

Java代碼
1 2 3 4 5 6 7 8 9 10 11 public?class?User?implements?Serializable{ private?String name; ?private?int?age; private?long?phone; private?List<UserVo> friends; ...<br>}

  

保存到文件中:

1 2 3 4 5 6 7 8 9 10 11 Java代碼 ByteArrayOutputStream bos =?new?ByteArrayOutputStream(); ObjectOutputStream os =?new?ObjectOutputStream(bos); os.writeObject(src); os.flush(); os.close(); byte[] b = bos.toByteArray(); bos.close(); FileOutputStream fos =?new?FileOutputStream(dataFile); fos.write(b); fos.close();

 

增加或者減少字段后,從文件中讀出來(lái),反序列化:

1 2 3 4 5 6 7 8 9 10 11 Java代碼 ByteArrayOutputStream bos =?new?ByteArrayOutputStream(); ObjectOutputStream os =?new?ObjectOutputStream(bos); os.writeObject(src); os.flush(); os.close(); byte[] b = bos.toByteArray(); bos.close(); FileOutputStream fos =?new?FileOutputStream(dataFile); fos.write(b); fos.close();

  

結(jié)果:拋出異常信息

Java代碼

1 2 3 4 5 6 7 8 Exception in thread?"main"?java.io.InvalidClassException: serialize.obj.UserVo; local?class?incompatible: stream classdesc serialVersionUID =?3305402508581390189, local?class?serialVersionUID =?7174371419787432394?at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:560) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1582) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350) at serialize.obj.ObjectSerialize.read(ObjectSerialize.java:74) at serialize.obj.ObjectSerialize.main(ObjectSerialize.java:27)

  

思路二

eclipse指定生成一個(gè)serialVersionUID,序列化保存,修改字段后反序列化

略去代碼

結(jié)果:反序列化成功

結(jié)論

如果沒(méi)有明確指定serialVersionUID,序列化的時(shí)候會(huì)根據(jù)字段和特定的算法生成一個(gè)serialVersionUID,當(dāng)屬性有變化時(shí)這個(gè)id發(fā)生了變化,所以反序列化的時(shí)候

就會(huì)失敗。拋出“本地classd的唯一id和流中class的唯一id不匹配”。

jdk文檔關(guān)于serialVersionUID的描述:

寫道

如果可序列化類未顯式聲明 serialVersionUID,則序列化運(yùn)行時(shí)將基于該類的各個(gè)方面計(jì)算該類的默認(rèn) serialVersionUID 值,如“Java(TM) 對(duì)象序列化規(guī)范”中所述。不過(guò),強(qiáng)烈建議 所有可序列化類都顯式聲明 serialVersionUID 值,原因是計(jì)算默認(rèn)的 serialVersionUID 對(duì)類的詳細(xì)信息具有較高的敏感性,根據(jù)編譯器實(shí)現(xiàn)的不同可能千差萬(wàn)別,這樣在反序列化過(guò)程中可能會(huì)導(dǎo)致意外的 InvalidClassException。因此,為保證 serialVersionUID 值跨不同 java 編譯器實(shí)現(xiàn)的一致性,序列化類必須聲明一個(gè)明確的 serialVersionUID 值。還強(qiáng)烈建議使用 private 修飾符顯示聲明 serialVersionUID(如果可能),原因是這種聲明僅應(yīng)用于直接聲明類 -- serialVersionUID 字段作為繼承成員沒(méi)有用處。數(shù)組類不能聲明一個(gè)明確的 serialVersionUID,因此它們總是具有默認(rèn)的計(jì)算值,但是數(shù)組類沒(méi)有匹配 serialVersionUID 值的要求。

?

??三.實(shí)現(xiàn)序列化的其它方式??(這是一個(gè)擴(kuò)展內(nèi)容,感興趣的可以擴(kuò)展一下)????

???????1)是把對(duì)象包裝成JSON字符串傳輸。

?????????這里采用JSON格式同時(shí)使用采用Google的gson-2.2.2.jar 進(jìn)行轉(zhuǎn)義

????? 2)采用谷歌的ProtoBuf

??????? ?隨著Google工具protoBuf的開(kāi)源,protobuf也是個(gè)不錯(cuò)的選擇。對(duì)JSON,Object Serialize(Java的序列化和反序列化),

?????? ? ProtoBuf 做個(gè)對(duì)比。

??????? ?定義一個(gè)通用的待傳輸?shù)膶?duì)象UserVo:

?

?

1 2 3 4 5 6 7 8 9 public?class?User private?static?final?long?serialVersionUID = -5726374138698742258L; {?private?String name; ??private?int?age; ??private?long?phone; ??private?List<user> friends; ?...set和get方法 ?} </user>

 

??初始化User的實(shí)例src:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Java代碼 User user1 =?new?UserVo(); user1 .setName("user1 "); ?user1 .setAge(30); ?user1 .setPhone(13789126278L); ?UserVo f1 =?new?UserVo(); ?f1.setName("tmac"); ?f1.setAge(32); ?f1.setPhone(123L); ?User user2 =?new?User(); ?user2 .setName("user2 "); ?user2 .setAge(29); ?user2 .setPhone(123L); <br> List<User> friends =?new?ArrayList<User>(); ?friends.add(user1 ); ?friends.add(user2 ); ?user1 .setFriends(friends);

??1.首先使用JOSN來(lái)實(shí)現(xiàn)序列化。

1 2 Java代碼 Gson gson =?new?Gson();<br>String json = gson.toJson(src);

  

?? 得到的字符串:

1 2 3 Js代碼 {"name":"user1 ","age":30,"phone":123,"friends":[{"name":"user1 ","age":32,"phone":123},{"name":"user2 ","age":29,"phone":123}]}

?

字節(jié)數(shù)為153

Json的優(yōu)點(diǎn):明文結(jié)構(gòu)一目了然,可以跨語(yǔ)言,屬性的增加減少對(duì)解析端影響較小。缺點(diǎn):字節(jié)數(shù)過(guò)多,依賴于不同的第三方類庫(kù)。

?

Object Serialize(Java的序列化和反序列化)

UserVo實(shí)現(xiàn)Serializalbe接口,提供唯一的版本號(hào):

序列化方法:

Java代碼 ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream os = new ObjectOutputStream(bos); os.writeObject(src); os.flush(); os.close(); byte[] b = bos.toByteArray(); bos.close();

字節(jié)數(shù)是238

?

反序列化:

Java代碼 ObjectInputStream ois = new ObjectInputStream(fis); vo = (UserVo) ois.readObject(); ois.close(); fis.close();

Object Serializalbe 優(yōu)點(diǎn):java原生支持,不需要提供第三方的類庫(kù),使用比較簡(jiǎn)單。

缺點(diǎn):無(wú)法跨語(yǔ)言,字節(jié)數(shù)占用比較大,某些情況下對(duì)于對(duì)象屬性的變化比較敏感。

對(duì)象在進(jìn)行序列化和反序列化的時(shí)候,必須實(shí)現(xiàn)Serializable接口,但并不強(qiáng)制聲明唯一的serialVersionUID

是否聲明serialVersionUID對(duì)于對(duì)象序列化的向上向下的兼容性有很大的影響。

?

Google ProtoBuf

protocol buffers 是google內(nèi)部得一種傳輸協(xié)議,目前項(xiàng)目已經(jīng)開(kāi)源(http://code.google.com/p/protobuf/)。

它定義了一種緊湊得可擴(kuò)展得二進(jìn)制協(xié)議格式,適合網(wǎng)絡(luò)傳輸,并且針對(duì)多個(gè)語(yǔ)言有不同得版本可供選擇。

以protobuf-2.5.0rc1為例,準(zhǔn)備工作:

下載源碼,解壓,編譯,安裝

Shell代碼 tar zxvf protobuf-2.5.0rc1.tar.gz ./configure ./make ./make install

測(cè)試:

Shell代碼 MacBook-Air:~ ming$ protoc --version libprotoc 2.5.0

安裝成功!

進(jìn)入源碼得java目錄,用mvn工具編譯生成所需得jar包,protobuf-java-2.5.0rc1.jar

?

1、編寫.proto文件,命名UserVo.proto

1 2 3 4 5 6 7 8 9 10 11 12 Text代碼 package?serialize; option java_package =?"serialize"; option java_outer_classname="UserVoProtos"; message User{ optional string name =?1; optional int32 age =?2; optional int64 phone =?3; repeated serialize.UserVo friends =?4; }

  

2、在命令行利用protoc 工具生成builder類

Shell代碼 protoc -IPATH=.proto文件所在得目錄 --java_out=java文件的輸出路徑? .proto的名稱

得到UserProtos類

?

3、編寫序列化代碼

1 2 3 4 5 6 7 8 9 10 11 12 Java代碼 UserVoProtos.User.Builder builder = UserVoProtos.User.newBuilder(); builder.setName("Yaoming"); builder.setAge(30); builder.setPhone(13789878978L); UserVoProtos.UserVo.Builder builder1 = UserVoProtos.UserVo.newBuilder(); builder1.setName("tmac"); builder1.setAge(32); builder1.setPhone(138999898989L); UserVoProtos.UserVo.Builder builder2 = UserVoProtos.UserVo.newBuilder(); builder2.setName("liuwei"); builder2.setAge(29); builder2.setPhone(138999899989L); builder.addFriends(builder1); builder.addFriends(builder2); UserVoProtos.UserVo vo = builder.build();??byte[] v = vo.toByteArray();

  

字節(jié)數(shù)53

?反序列化

1 2 3 Java代碼 UserVoProtos.UserVo uvo = UserVoProtos.UserVo.parseFrom(dstb); System.out.println(uvo.getFriends(0).getName());

 

結(jié)果:tmac,反序列化成功

google protobuf 優(yōu)點(diǎn):字節(jié)數(shù)很小,適合網(wǎng)絡(luò)傳輸節(jié)省io,跨語(yǔ)言 。

缺點(diǎn):需要依賴于工具生成代碼。

?

工作機(jī)制

proto文件是對(duì)數(shù)據(jù)的一個(gè)描述,包括字段名稱,類型,字節(jié)中的位置。protoc工具讀取proto文件生成對(duì)應(yīng)builder代碼的類庫(kù)。protoc xxxxx? --java_out=xxxxxx 生成java類庫(kù)。builder類根據(jù)自己的算法把數(shù)據(jù)序列化成字節(jié)流,或者把字節(jié)流根據(jù)反射的原理反序列化成對(duì)象。官方的示例:https://developers.google.com/protocol-buffers/docs/javatutorial。

proto文件中的字段類型和java中的對(duì)應(yīng)關(guān)系:

詳見(jiàn):https://developers.google.com/protocol-buffers/docs/proto

.proto Type java Type c++ Type
double double double
float float float
int32 int int32
int64 long int64
uint32 int uint32
unint64 long uint64
sint32 int int32
sint64 long int64
fixed32 int uint32
fixed64 long uint64
sfixed32 int int32
sfixed64 long int64
bool boolean bool
string String string
bytes byte string
字段屬性的描述: 寫道 required: a well-formed message must have exactly one of this field. optional: a well-formed message can have zero or one of this field (but not more than one). repeated: this field can be repeated any number of times (including zero) in a well-formed message. The order of the repeated values will be preserved. protobuf 在序列化和反序列化的時(shí)候,是依賴于.proto文件生成的builder類完成,字段的變化如果不表現(xiàn)在.proto文件中就不會(huì)影響反序列化,比較適合字段變化的情況。 做個(gè)測(cè)試:把UserVo序列化到文件中:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 Java代碼 UserProtos.User vo = builder.build(); byte[] v = vo.toByteArray(); FileOutputStream fos =?new?FileOutputStream(dataFile); fos.write(vo.toByteArray()); fos.close(); ?? 為User增加字段,對(duì)應(yīng)的.proto文件: Text代碼 package?serialize; option java_package =?"serialize"; option java_outer_classname="UserVoProtos"; message User{ optional string name =?1; optional int32 age =?2; optional int64 phone =?3; repeated serialize.UserVo friends =?4; optional string address =?5; } ??? 從文件中反序列化回來(lái): Java代碼 FileInputStream fis =?new?FileInputStream(dataFile); byte[] dstb =?new?byte[fis.available()]; for(int?i=0;i<dstb.length;i++){ dstb[i] = (byte)fis.read(); } fis.close(); UserProtos.User uvo = UserProtos.User.parseFrom(dstb); System.out.println(uvo.getFriends(0).getName()); (完)






































































https://www.huxiu.com/member/1484873/m.html
https://www.huxiu.com/member/1484873/b.html
https://www.huxiu.com/member/1484873/a.html
https://www.huxiu.com/member/1484873/w.html


https://www.huxiu.com/member/1484879/n.html
https://www.huxiu.com/member/1484879/c.html
https://www.huxiu.com/member/1484879/d.html
https://www.huxiu.com/member/1484879/u.html
https://www.huxiu.com/member/1484879/o.html
https://www.huxiu.com/member/1484879/l.html
https://www.huxiu.com/member/1484879/m.html
https://www.huxiu.com/member/1484879/b.html
https://www.huxiu.com/member/1484879/a.html
https://www.huxiu.com/member/1484879/w.html
https://www.huxiu.com/member/1484888/n.html
https://www.huxiu.com/member/1484888/c.html
https://www.huxiu.com/member/1484888/d.html
https://www.huxiu.com/member/1484888/u.html
https://www.huxiu.com/member/1484888/o.html
https://www.huxiu.com/member/1484888/l.html
https://www.huxiu.com/member/1484888/m.html
https://www.huxiu.com/member/1484888/b.html
https://www.huxiu.com/member/1484888/a.html
https://www.huxiu.com/member/1484888/w.html
https://www.huxiu.com/member/1484897/n.html
https://www.huxiu.com/member/1484897/c.html
https://www.huxiu.com/member/1484897/d.html
https://www.huxiu.com/member/1484897/u.html
https://www.huxiu.com/member/1484897/o.html
https://www.huxiu.com/member/1484897/l.html
https://www.huxiu.com/member/1484897/m.html
https://www.huxiu.com/member/1484897/b.html
https://www.huxiu.com/member/1484897/a.html
https://www.huxiu.com/member/1484897/w.html
https://www.huxiu.com/member/1484906/n.html
https://www.huxiu.com/member/1484906/c.html
https://www.huxiu.com/member/1484906/d.html
https://www.huxiu.com/member/1484906/u.html
https://www.huxiu.com/member/1484906/o.html
https://www.huxiu.com/member/1484906/l.html
https://www.huxiu.com/member/1484906/m.html
https://www.huxiu.com/member/1484906/b.html
https://www.huxiu.com/member/1484906/a.html
https://www.huxiu.com/member/1484906/w.html
https://www.huxiu.com/member/1484907/n.html
https://www.huxiu.com/member/1484907/c.html
https://www.huxiu.com/member/1484907/d.html
https://www.huxiu.com/member/1484907/u.html
https://www.huxiu.com/member/1484907/o.html
https://www.huxiu.com/member/1484907/l.html
https://www.huxiu.com/member/1484907/m.html
https://www.huxiu.com/member/1484907/b.html
https://www.huxiu.com/member/1484907/a.html
https://www.huxiu.com/member/1484907/w.html
https://www.huxiu.com/member/1484918/n.html
https://www.huxiu.com/member/1484918/c.html
https://www.huxiu.com/member/1484918/d.html
https://www.huxiu.com/member/1484918/u.html
https://www.huxiu.com/member/1484918/o.html
https://www.huxiu.com/member/1484918/l.html
https://www.huxiu.com/member/1484918/m.html
https://www.huxiu.com/member/1484918/b.html
https://www.huxiu.com/member/1484918/a.html
https://www.huxiu.com/member/1484918/w.html
https://www.huxiu.com/member/1484917/n.html
https://www.huxiu.com/member/1484917/c.html
https://www.huxiu.com/member/1484917/d.html
https://www.huxiu.com/member/1484917/u.html
https://www.huxiu.com/member/1484917/o.html
https://www.huxiu.com/member/1484917/l.html
https://www.huxiu.com/member/1484917/m.html
https://www.huxiu.com/member/1484917/b.html
https://www.huxiu.com/member/1484917/a.html
https://www.huxiu.com/member/1484917/w.html
https://www.huxiu.com/member/1484941/n.html
https://www.huxiu.com/member/1484941/c.html
https://www.huxiu.com/member/1484941/d.html
https://www.huxiu.com/member/1484941/u.html
https://www.huxiu.com/member/1484941/o.html
https://www.huxiu.com/member/1484941/l.html
https://www.huxiu.com/member/1484941/m.html
https://www.huxiu.com/member/1484941/b.html
https://www.huxiu.com/member/1484941/a.html
https://www.huxiu.com/member/1484941/w.html
https://www.huxiu.com/member/1484945/n.html
https://www.huxiu.com/member/1484945/c.html
https://www.huxiu.com/member/1484945/d.html
https://www.huxiu.com/member/1484945/u.html
https://www.huxiu.com/member/1484945/o.html
https://www.huxiu.com/member/1484945/l.html
https://www.huxiu.com/member/1484945/m.html
https://www.huxiu.com/member/1484945/b.html
https://www.huxiu.com/member/1484945/a.html
https://www.huxiu.com/member/1484945/w.html
https://www.huxiu.com/member/1484949/n.html
https://www.huxiu.com/member/1484949/c.html
https://www.huxiu.com/member/1484949/d.html
https://www.huxiu.com/member/1484949/u.html
https://www.huxiu.com/member/1484949/o.html
https://www.huxiu.com/member/1484949/l.html
https://www.huxiu.com/member/1484949/m.html
https://www.huxiu.com/member/1484949/b.html
https://www.huxiu.com/member/1484949/a.html
https://www.huxiu.com/member/1484949/w.html
https://www.huxiu.com/member/1484952/n.html
https://www.huxiu.com/member/1484952/c.html
https://www.huxiu.com/member/1484952/d.html
https://www.huxiu.com/member/1484952/u.html
https://www.huxiu.com/member/1484952/o.html
https://www.huxiu.com/member/1484952/l.html
https://www.huxiu.com/member/1484952/m.html
https://www.huxiu.com/member/1484952/b.html
https://www.huxiu.com/member/1484952/a.html
https://www.huxiu.com/member/1484952/w.html
https://www.huxiu.com/member/1484957/n.html
https://www.huxiu.com/member/1484957/c.html
https://www.huxiu.com/member/1484957/d.html
https://www.huxiu.com/member/1484957/u.html
https://www.huxiu.com/member/1484957/o.html
https://www.huxiu.com/member/1484957/l.html
https://www.huxiu.com/member/1484957/m.html
https://www.huxiu.com/member/1484957/b.html
https://www.huxiu.com/member/1484957/a.html
https://www.huxiu.com/member/1484957/w.html
https://www.huxiu.com/member/1484963/n.html
https://www.huxiu.com/member/1484963/c.html
https://www.huxiu.com/member/1484963/d.html
https://www.huxiu.com/member/1484963/u.html
https://www.huxiu.com/member/1484963/o.html
https://www.huxiu.com/member/1484963/l.html
https://www.huxiu.com/member/1484963/m.html
https://www.huxiu.com/member/1484963/b.html
https://www.huxiu.com/member/1484963/a.html
https://www.huxiu.com/member/1484963/w.html
https://www.huxiu.com/member/1484970/n.html
https://www.huxiu.com/member/1484970/c.html
https://www.huxiu.com/member/1484970/d.html
https://www.huxiu.com/member/1484970/u.html
https://www.huxiu.com/member/1484970/o.html
https://www.huxiu.com/member/1484970/l.html
https://www.huxiu.com/member/1484970/m.html
https://www.huxiu.com/member/1484970/b.html
https://www.huxiu.com/member/1484970/a.html
https://www.huxiu.com/member/1484970/w.html
https://www.huxiu.com/member/1484966/n.html
https://www.huxiu.com/member/1484966/c.html
https://www.huxiu.com/member/1484966/d.html
https://www.huxiu.com/member/1484966/u.html
https://www.huxiu.com/member/1484966/o.html
https://www.huxiu.com/member/1484966/l.html
https://www.huxiu.com/member/1484966/m.html
https://www.huxiu.com/member/1484966/b.html
https://www.huxiu.com/member/1484966/a.html
https://www.huxiu.com/member/1484966/w.html
https://www.huxiu.com/member/1484974/n.html
https://www.huxiu.com/member/1484974/c.html
https://www.huxiu.com/member/1484974/d.html
https://www.huxiu.com/member/1484974/u.html
https://www.huxiu.com/member/1484974/o.html
https://www.huxiu.com/member/1484974/l.html
https://www.huxiu.com/member/1484974/m.html
https://www.huxiu.com/member/1484974/b.html
https://www.huxiu.com/member/1484974/a.html
https://www.huxiu.com/member/1484974/w.html
https://www.huxiu.com/member/1484979/n.html
https://www.huxiu.com/member/1484979/c.html
https://www.huxiu.com/member/1484979/d.html
https://www.huxiu.com/member/1484979/u.html
https://www.huxiu.com/member/1484979/o.html
https://www.huxiu.com/member/1484979/l.html


https://www.huxiu.com/member/1484979/m.html
https://www.huxiu.com/member/1484979/b.html
https://www.huxiu.com/member/1484979/a.html
https://www.huxiu.com/member/1484979/w.html
https://www.huxiu.com/member/1484983/n.html
https://www.huxiu.com/member/1484983/c.html
https://www.huxiu.com/member/1484983/d.html
https://www.huxiu.com/member/1484983/u.html
https://www.huxiu.com/member/1484983/o.html
https://www.huxiu.com/member/1484983/l.html
https://www.huxiu.com/member/1484983/m.html
https://www.huxiu.com/member/1484983/b.html
https://www.huxiu.com/member/1484983/a.html
https://www.huxiu.com/member/1484983/w.html
https://www.huxiu.com/member/1484986/n.html
https://www.huxiu.com/member/1484986/c.html
https://www.huxiu.com/member/1484986/d.html
https://www.huxiu.com/member/1484986/u.html
https://www.huxiu.com/member/1484986/o.html
https://www.huxiu.com/member/1484986/l.html
https://www.huxiu.com/member/1484986/m.html
https://www.huxiu.com/member/1484986/b.html
https://www.huxiu.com/member/1484986/a.html
https://www.huxiu.com/member/1484986/w.html
https://www.huxiu.com/member/1484994/n.html
https://www.huxiu.com/member/1484994/c.html
https://www.huxiu.com/member/1484994/d.html
https://www.huxiu.com/member/1484994/u.html
https://www.huxiu.com/member/1484994/o.html
https://www.huxiu.com/member/1484994/l.html
https://www.huxiu.com/member/1484994/m.html
https://www.huxiu.com/member/1484994/b.html
https://www.huxiu.com/member/1484994/a.html
https://www.huxiu.com/member/1484994/w.html
https://www.huxiu.com/member/1485000/n.html
https://www.huxiu.com/member/1485000/c.html
https://www.huxiu.com/member/1485000/d.html
https://www.huxiu.com/member/1485000/u.html
https://www.huxiu.com/member/1485000/o.html
https://www.huxiu.com/member/1485000/l.html
https://www.huxiu.com/member/1485000/m.html
https://www.huxiu.com/member/1485000/b.html
https://www.huxiu.com/member/1485000/a.html
https://www.huxiu.com/member/1485000/w.html
https://www.huxiu.com/member/1485006/n.html
https://www.huxiu.com/member/1485006/c.html
https://www.huxiu.com/member/1485006/d.html
https://www.huxiu.com/member/1485006/u.html
https://www.huxiu.com/member/1485006/o.html
https://www.huxiu.com/member/1485006/l.html
https://www.huxiu.com/member/1485006/m.html
https://www.huxiu.com/member/1485006/b.html
https://www.huxiu.com/member/1485006/a.html
https://www.huxiu.com/member/1485006/w.html
https://www.huxiu.com/member/1485012/n.html
https://www.huxiu.com/member/1485012/c.html
https://www.huxiu.com/member/1485012/d.html
https://www.huxiu.com/member/1485012/u.html
https://www.huxiu.com/member/1485012/o.html
https://www.huxiu.com/member/1485012/l.html
https://www.huxiu.com/member/1485012/m.html
https://www.huxiu.com/member/1485012/b.html
https://www.huxiu.com/member/1485012/a.html
https://www.huxiu.com/member/1485012/w.html
https://www.huxiu.com/member/1485032/n.html
https://www.huxiu.com/member/1485032/c.html
https://www.huxiu.com/member/1485032/d.html
https://www.huxiu.com/member/1485032/u.html
https://www.huxiu.com/member/1485032/o.html
https://www.huxiu.com/member/1485032/l.html
https://www.huxiu.com/member/1485032/m.html
https://www.huxiu.com/member/1485032/b.html
https://www.huxiu.com/member/1485032/a.html
https://www.huxiu.com/member/1485032/w.html
https://www.huxiu.com/member/1485039/n.html
https://www.huxiu.com/member/1485039/c.html
https://www.huxiu.com/member/1485039/d.html
https://www.huxiu.com/member/1485039/u.html
https://www.huxiu.com/member/1485039/o.html
https://www.huxiu.com/member/1485039/l.html
https://www.huxiu.com/member/1485039/m.html
https://www.huxiu.com/member/1485039/b.html
https://www.huxiu.com/member/1485039/a.html
https://www.huxiu.com/member/1485039/w.html


https://www.huxiu.com/member/1485046/n.html
https://www.huxiu.com/member/1485046/c.html
https://www.huxiu.com/member/1485046/d.html
https://www.huxiu.com/member/1485046/u.html
https://www.huxiu.com/member/1485046/o.html
https://www.huxiu.com/member/1485046/l.html
https://www.huxiu.com/member/1485046/m.html
https://www.huxiu.com/member/1485046/b.html
https://www.huxiu.com/member/1485046/a.html
https://www.huxiu.com/member/1485046/w.html
https://www.huxiu.com/member/1485051/n.html
https://www.huxiu.com/member/1485051/c.html
https://www.huxiu.com/member/1485051/d.html
https://www.huxiu.com/member/1485051/u.html
https://www.huxiu.com/member/1485051/o.html
https://www.huxiu.com/member/1485051/l.html
https://www.huxiu.com/member/1485051/m.html
https://www.huxiu.com/member/1485051/b.html
https://www.huxiu.com/member/1485051/a.html
https://www.huxiu.com/member/1485051/w.html
https://www.huxiu.com/member/1485059/n.html
https://www.huxiu.com/member/1485059/c.html
https://www.huxiu.com/member/1485059/d.html
https://www.huxiu.com/member/1485059/u.html
https://www.huxiu.com/member/1485059/o.html
https://www.huxiu.com/member/1485059/l.html
https://www.huxiu.com/member/1485059/m.html
https://www.huxiu.com/member/1485059/b.html
https://www.huxiu.com/member/1485059/a.html
https://www.huxiu.com/member/1485059/w.html
https://www.huxiu.com/member/1485069/n.html
https://www.huxiu.com/member/1485069/c.html
https://www.huxiu.com/member/1485069/d.html
https://www.huxiu.com/member/1485069/u.html
https://www.huxiu.com/member/1485069/o.html
https://www.huxiu.com/member/1485069/l.html
https://www.huxiu.com/member/1485069/m.html
https://www.huxiu.com/member/1485069/b.html
https://www.huxiu.com/member/1485069/a.html
https://www.huxiu.com/member/1485069/w.html
https://www.huxiu.com/member/1485077/n.html
https://www.huxiu.com/member/1485077/c.html
https://www.huxiu.com/member/1485077/d.html
https://www.huxiu.com/member/1485077/u.html
https://www.huxiu.com/member/1485077/o.html
https://www.huxiu.com/member/1485077/l.html
https://www.huxiu.com/member/1485077/m.html
https://www.huxiu.com/member/1485077/b.html
https://www.huxiu.com/member/1485077/a.html
https://www.huxiu.com/member/1485077/w.html
https://www.huxiu.com/member/1485087/n.html
https://www.huxiu.com/member/1485087/c.html
https://www.huxiu.com/member/1485087/d.html
https://www.huxiu.com/member/1485087/u.html
https://www.huxiu.com/member/1485087/o.html
https://www.huxiu.com/member/1485087/l.html
https://www.huxiu.com/member/1485087/m.html
https://www.huxiu.com/member/1485087/b.html
https://www.huxiu.com/member/1485087/a.html
https://www.huxiu.com/member/1485087/w.html
https://www.huxiu.com/member/1485082/n.html
https://www.huxiu.com/member/1485082/c.html
https://www.huxiu.com/member/1485082/d.html
https://www.huxiu.com/member/1485082/u.html
https://www.huxiu.com/member/1485082/o.html







































總結(jié)

以上是生活随笔為你收集整理的Java序列化的几种方式以及序列化的作用(文章有所改变)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

日韩精品欧美专区 | 欧美一区二区三区不卡 | 国产中文在线视频 | 色婷婷综合在线 | av大全在线 | 日韩精品免费一区二区三区 | 激情五月婷婷丁香 | 亚洲播播 | 日韩va欧美va亚洲va久久 | 国产视频中文字幕 | 久久综合狠狠 | 日本黄色一级电影 | 国产麻豆视频网站 | 色噜噜色噜噜 | 欧美黄在线 | 亚洲伊人天堂 | 久久久久久久精 | 911香蕉视频 | 5月丁香婷婷综合 | 久久夜色精品国产欧美乱 | 91精品国产高清自在线观看 | 丁香婷婷在线观看 | 中文字幕av影院 | 亚洲欧洲国产视频 | 国产精品成人一区 | 婷婷久操 | 高清av影院| 日日干日日色 | 国产午夜三级一区二区三 | 五月天婷婷视频 | 人人看人人爱 | 欧美日韩免费一区 | 国产在线视频导航 | 日韩一区精品 | 久久视频在线 | 久久9999久久免费精品国产 | 久久久在线免费观看 | 91欧美国产 | 天天爽天天碰狠狠添 | 夜夜躁狠狠躁 | 精品一区中文字幕 | av一级久久| 中文字幕亚洲精品在线观看 | 国产精品成人久久久久 | 女人久久久久 | 国产一区在线观看免费 | 国产色a在线观看 | 91欧美国产 | 国精产品永久999 | 国产男女无遮挡猛进猛出在线观看 | av片在线观看免费 | 国产日本三级 | 亚洲五月婷 | 国产黄色在线网站 | av在线小说 | 欧美激情片在线观看 | 亚洲免费在线播放视频 | 免费在线观看污 | 精品在线视频一区 | 精品一区二区免费视频 | 色婷婷狠狠18 | av不卡免费看 | 国产福利一区二区三区视频 | 少妇性xxx | 国产视频在线免费观看 | 探花视频免费在线观看 | 国产高清在线a视频大全 | 中文字幕在线观看一区 | 久久精品女人毛片国产 | 狠狠的日| 久久免费电影网 | 日b黄色片| 欧美精品二| 爱色av.com| 欧美日韩久久一区 | 色婷婷国产在线 | 日韩高清在线一区 | 国产视频资源 | 一本到在线 | 成 人 黄 色 视频 免费观看 | 国产精品大尺度 | 国产成人精品国内自产拍免费看 | 91亚洲精品在线观看 | 久久成人国产精品免费软件 | 国产精品麻豆91 | 97精品一区二区三区 | 99久热精品 | 亚洲精品欧美成人 | 色综合天天天天做夜夜夜夜做 | 最新av免费| 中文字幕 国产视频 | 亚洲精品美女在线 | 国内久久久久 | 最新av电影网站 | 九九九热精品免费视频观看网站 | 国产麻豆精品一区 | 欧美成人精品三级在线观看播放 | 五月天婷亚洲天综合网鲁鲁鲁 | 午夜av免费看| 欧美日韩国产一二三区 | 亚洲一区久久 | 911久久香蕉国产线看观看 | 亚州精品在线视频 | 中文字幕在线影院 | 天天搞夜夜骑 | 国产精品久久久影视 | 国产精品视频久久 | 国产精品一区久久久久 | 久久一区二区三区国产精品 | 日韩精品一区二区三区免费观看视频 | 国产视频一二三 | 日本中文字幕在线 | 天天色天天操天天爽 | 国产在线91精品 | 欧美国产在线看 | 人人爽人人干 | 中文字幕欧美日韩va免费视频 | 国产午夜精品福利视频 | 福利久久久 | 91福利小视频 | 亚洲狠狠 | 色噜噜色噜噜 | 九九九在线观看 | 在线免费观看成人 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 久久久久久久久福利 | 成人在线网站观看 | 97超视频 | av在线看网站 | 国产 一区二区三区 在线 | 中文字幕日韩国产 | 国产精品一区二区你懂的 | 国产一区福利在线 | 91一区二区在线 | 天天操夜夜操夜夜操 | 一区二区三区高清在线 | 在线观看一级视频 | 精品国产乱码久久久久久1区二区 | 日本成人黄色片 | 国产福利久久 | av在线看网站 | 国产手机视频在线观看 | 五月婷婷中文网 | 亚洲国产精久久久久久久 | 91最新视频在线观看 | 日韩精品久久久久 | 欧美一二在线 | 免费在线观看午夜视频 | 最近中文国产在线视频 | 国产高清永久免费 | 国产精品久久在线观看 | 91精品1区2区 | 国产精品久久久久久久久久久免费 | 五月av在线 | 日韩电影在线一区 | 中文字幕一区av | 国产小视频在线免费观看 | 99久久精品国产亚洲 | 狠狠躁夜夜av | 日韩高清在线观看 | 亚洲精品动漫在线 | 99精品国产免费久久久久久下载 | 久久久久久久久久久久亚洲 | 精品av在线播放 | 玖玖视频在线 | 在线观看中文字幕一区二区 | 久久网址| 欧美日韩一区二区三区不卡 | 国产一区二区三区四区在线 | 在线精品国产 | 国产精品成久久久久 | 欧美a影视 | 日本精品一区二区三区在线观看 | 五月天欧美精品 | 91精品久久久久久久99蜜桃 | 久久久免费观看视频 | 亚洲天堂网在线视频 | 91完整版观看 | 色狠狠狠 | 99视频在线观看一区三区 | 91香蕉视频好色先生 | 天天爱天天射天天干天天 | 一区二区三区电影在线播 | 国产一区二区在线视频观看 | 日本久久不卡视频 | 亚洲在线视频播放 | 国产成人精品一区二 | 久久麻豆视频 | 国产99久久久国产精品 | 色婷婷激情五月 | 首页中文字幕 | 天天操天天摸天天爽 | 天天av综合网 | 国产高清在线看 | 黄色小说在线免费观看 | 亚欧洲精品视频在线观看 | 亚洲va欧美va国产va黑人 | 久久er99热精品一区二区 | 香蕉免费在线 | 色综合久 | 日韩av线观看 | 九色视频网址 | 江苏妇搡bbbb搡bbbb | 在线免费色视频 | 成人久久久电影 | 成人在线电影观看 | 欧美性猛片, | 91欧美视频网站 | 久久线视频 | 亚洲乱码久久 | 国产精品久久久久久久av电影 | av大全免费在线观看 | 91看片淫黄大片一级在线观看 | 日韩videos高潮hd | 日韩黄色软件 | 免费高清男女打扑克视频 | 超碰免费av | 成人网页在线免费观看 | 欧美视频一区二 | 久久久精品免费看 | 天天久久综合 | 高清在线观看av | 色五婷婷| 成人免费大片黄在线播放 | 午夜av在线电影 | 免费成人结看片 | 国内精品久久久久久 | 最近中文字幕免费 | 超碰在线观看av | 五月综合 | 精品综合久久久 | 国产精品一区二区久久国产 | 欧美日韩在线观看一区二区 | 日本久久久亚洲精品 | 国产麻豆电影 | 国产黄色理论片 | 精品一区中文字幕 | 亚洲美女视频在线 | 日韩簧片在线观看 | 日韩极品在线 | 91男人影院| 成人久久免费视频 | av网址在线播放 | 精品一二三四视频 | 天天精品视频 | 日韩av播放在线 | 97视频免费播放 | 成人一级黄色片 | 国产精品一区二区三区久久 | 一色av| 最近更新中文字幕 | 亚洲精品一区二区三区在线观看 | 伊人色综合久久天天 | 日韩av中文字幕在线免费观看 | 人人草天天草 | 久久深爱网 | 久久久国产精华液 | 精品久久久久免费极品大片 | 国产福利精品在线观看 | 超碰最新网址 | 国产人成一区二区三区影院 | 国产精品综合久久 | www.大网伊人 | 狠狠色丁香 | 97人人添人澡人人爽超碰动图 | 精品国产一二区 | 国产午夜在线观看 | 亚洲精品久久久久久久蜜桃 | 99精品在线观看 | 果冻av在线 | 三级av在线播放 | 亚洲播播| 一级片黄色片网站 | a天堂最新版中文在线地址 久久99久久精品国产 | 91人人爽久久涩噜噜噜 | 国产一区久久 | 激情欧美xxxx | 色婷婷激情电影 | 成人av日韩 | 免费在线激情电影 | 精品国产伦一区二区三区 | 国产视频午夜 | 91精品1区2区 | 成人免费 在线播放 | 国产免费美女 | 国产麻豆精品免费视频 | 国产在线观看91 | 国产精品色视频 | 91久久黄色 | 日本激情视频中文字幕 | 免费在线精品视频 | 最新极品jizzhd欧美 | www久久久| 久久综合亚洲鲁鲁五月久久 | 欧美大荫蒂xxx | 欧美性视频网站 | 美女网站在线免费观看 | 日韩精品一区二区三区电影 | 国产打女人屁股调教97 | 日本成人中文字幕在线观看 | 久久99久国产精品黄毛片入口 | 天天操狠狠操 | 久久精品aaa | 91欧美精品 | 国产精品免费观看在线 | 亚洲国产小视频在线观看 | 在线观看中文字幕亚洲 | 国产色妞影院wwwxxx | 五月丁香 | 久久人人爽人人爽 | 欧洲精品亚洲精品 | 国产理伦在线 | 黄色一级大片在线免费看产 | www久| 热久久视久久精品18亚洲精品 | 久章草在线观看 | 一区二区三区在线免费观看 | 美女福利视频在线 | 69精品久久久 | 国产在线观看污片 | 国产丝袜美腿在线 | 深夜免费网站 | 欧美伦理一区二区 | 国产性xxxx | 欧美永久视频 | 国产高清日韩欧美 | 午夜精品一区二区三区在线 | 日韩一区二区三区在线观看 | 99精品小视频 | 日韩在线播放视频 | 69视频国产| 色偷偷男人的天堂av | 国产一区二区三区免费视频 | 国产视频每日更新 | 国产艹b视频 | 99在线观看免费视频精品观看 | 久久艹艹 | 欧美福利视频一区 | 久久久精品国产一区二区 | 国产日本在线观看 | 日韩久久午夜一级啪啪 | 五月婷婷av在线 | 手机av电影在线 | 国产免费又粗又猛又爽 | 国产午夜麻豆影院在线观看 | 狠狠色狠狠色 | 色无五月 | 免费看高清毛片 | 正在播放一区 | 中文字幕国产 | 91豆麻精品91久久久久久 | 五月丁香 | 99视频国产精品免费观看 | 国产精品99久久久久久久久 | 亚洲精品国产区 | 日本久久久久久久久久久 | 在线免费国产 | 久久丁香网 | 狠狠干天天射 | 91porny九色91啦中文 | 中文字幕视频一区二区 | 国模精品一区二区三区 | 国产黄色片免费观看 | 一区二区精品在线 | 韩国精品福利一区二区三区 | 91中文字幕在线观看 | 国产一区高清在线观看 | 国产精品黄 | 久久九九精品久久 | 91大神精品视频在线观看 | 国产精品久久久久国产精品日日 | 8x8x在线观看视频 | 深夜免费福利在线 | 亚洲欧美在线综合 | www.色婷婷.com | 高清不卡毛片 | 欧美性大战久久久久 | 99久久激情视频 | 日韩av一区二区三区在线观看 | 精品国产电影一区 | 国内精品久久久久国产 | 中文字幕在线观看av | 久久久久国产一区二区 | 精品视频一区在线观看 | 激情av在线资源 | 中文字幕精品一区二区三区电影 | 蜜臀av免费一区二区三区 | 极品国产91在线网站 | 婷婷在线免费视频 | 国产专区日韩专区 | 欧美日韩综合在线观看 | 亚洲伊人色| 国产精品综合久久久久 | 国产97视频 | 国产精品6999成人免费视频 | 免费福利片 | 欧美日韩精品区 | 日韩精品一区二区三区水蜜桃 | 天天爽网站 | 久久99精品久久久久久 | 一区二区三区免费在线观看 | 狠狠五月天 | 久久免费影院 | 日韩一级黄色av | 日韩a在线播放 | 国产69熟 | 91视视频在线直接观看在线看网页在线看 | 日本在线观看一区二区 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 国产精品自在线拍国产 | 欧美91片 | 日韩在线观看精品 | 91精品久久久久久粉嫩 | 99久久网站 | 国产在线一区二区三区播放 | 亚洲丁香久久久 | 免费黄色在线网址 | 久久精品人 | 91成人破解版 | 久久久久久久久久久久久久免费看 | 久久久久福利视频 | 麻豆影视在线免费观看 | 久久久www免费电影网 | 亚洲天堂网视频 | 日韩高清久久 | 色偷偷88888欧美精品久久久 | 天堂黄色片 | 国产一区二区三区高清播放 | 91综合视频在线观看 | 精品国产成人av | 久久伊人八月婷婷综合激情 | 国产一区高清在线观看 | 免费高清在线视频一区· | 亚洲国产精品女人久久久 | 中文字幕在线观看不卡 | av天天在线观看 | 日韩免费三级 | www.黄色 | 超碰国产在线播放 | 国产精品1000| 狠狠五月婷婷 | 久久婷婷精品 | 97视频免费观看 | 久久综合精品国产一区二区三区 | 国产老太婆免费交性大片 | 精品1区2区3区 | 玖操| 人人射人人澡 | wwwwww色| 狠狠操操| 三级视频日韩 | 在线视频欧美精品 | 国产精品123 | 久草在线免费资源站 | 在线观看视频免费大全 | 免费男女羞羞的视频网站中文字幕 | 国产高清在线a视频大全 | 亚洲国产一二三 | 成人精品99 | 亚洲做受高潮欧美裸体 | 欧美精品一二三 | 久久综合亚洲鲁鲁五月久久 | www.色爱 | 国产亚洲va综合人人澡精品 | 伊人六月| 最近中文字幕久久 | bayu135国产精品视频 | 在线国产不卡 | 色99中文字幕 | 亚洲综合在线发布 | 精品福利国产 | 热久精品 | 五月激情亚洲 | 亚洲国产欧美一区二区三区丁香婷 | 日日操天天射 | 国产一二区免费视频 | 日韩免费在线观看 | 丁香九月激情 | 在线观看亚洲视频 | 精品99久久久久久 | 久草视频在线看 | 欧美 国产 视频 | 麻豆一区在线观看 | 日韩三级一区 | 日本久久视频 | 99精品乱码国产在线观看 | 精品国产_亚洲人成在线 | 国产资源av | 玖玖在线播放 | 免费视频黄 | 日韩av影视 | 免费国产在线精品 | 国产高清99 | 免费一区在线 | 国产对白av | 天天操天天爱天天干 | 亚洲精品国产精品久久99热 | 黄色软件视频网站 | 中文字幕丝袜制服 | 亚洲人成人在线 | 亚洲国产成人精品在线 | 婷婷综合五月 | 国产精品久久久久久久久大全 | 2019精品手机国产品在线 | 天天操综合 | 日韩精品免费在线观看 | 美女网站免费福利视频 | 日韩激情视频在线 | 亚洲va综合va国产va中文 | 久草视频在线免费看 | 青青久草在线视频 | av在线网站大全 | 国产精品久久久久免费观看 | 天天天综合 | 欧美日韩在线看 | 一区三区视频在线观看 | 久久er99热精品一区二区三区 | www.久久久久 | av直接看 | 国产精品第三页 | 免费看片网站91 | 狠狠干五月天 | 99热 精品在线 | 蜜桃视频在线视频 | 999国内精品永久免费视频 | 一区二区三区在线观看免费 | 免费观看91视频 | 亚洲一级片 | 日韩电影中文字幕在线观看 | 外国av网 | 日韩欧美视频免费观看 | 亚洲国产精品电影 | 国产精品亚州 | 伊人影院在线观看 | 在线观看中文字幕 | 国产精品久久久久久超碰 | 国产成人精品综合久久久久99 | 国产精品久久久999 国产91九色视频 | 免费av 在线 | 久久久久北条麻妃免费看 | 久色伊人 | 久久久国产日韩 | 欧美激情综合色 | 国产一区二区在线免费观看 | 国产 成人 久久 | a视频在线播放 | 狠狠色丁香九九婷婷综合五月 | 国产视频一区在线 | 91精品国产一区二区在线观看 | 中文字幕国产 | 日日夜夜天天久久 | 天天艹天天爽 | 欧美 日韩 成人 | 国产糖心vlog在线观看 | 国产一二三四在线视频 | 69久久久久久久 | 亚洲人成在线电影 | 国产黄色网 | 亚洲天堂在线观看完整版 | 国内精品久久久精品电影院 | 国产三级国产精品国产专区50 | 欧美日韩不卡一区二区三区 | 亚洲一区二区视频在线播放 | 国产精品欧美久久久久三级 | 99精品在线看 | 97干com| 亚洲激情六月 | 成年人在线免费看片 | 成人国产精品 | 天堂在线免费视频 | 精品国产片 | 欧美aaa一级 | 成人网大片 | 久草在线这里只有精品 | 国产高清免费在线观看 | 国产999精品久久久久久绿帽 | 国产第一页福利影院 | 亚洲精品乱码久久久久久 | 夜夜骑首页 | 国产又粗又猛又黄 | 亚洲精品美女久久17c | 日韩网站中文字幕 | 中文字幕在线观看免费高清完整版 | 欧美aaa级片| 久久草精品 | 欧美天天干 | 亚洲成人资源在线观看 | 国产精品 欧美 日韩 | 欧美99久久 | 高清av免费观看 | 久久激情视频 久久 | 天天综合网久久 | 国产精品99爱 | 久久精品九色 | 99超碰在线播放 | 欧美一区二区三区免费看 | 成人午夜剧场在线观看 | 色综合久久久久久久久五月 | 成人av免费播放 | 国产裸体bbb视频 | 国产视频一 | 欧美性生交大片免网 | 麻豆国产在线视频 | 国产在线日韩 | 亚洲精品视频在线观看网站 | 精品国产亚洲日本 | 美女久久一区 | 五月婷婷导航 | 国产字幕在线观看 | 久久久婷 | 成人av片免费观看app下载 | 久久免费a | 国产精品乱码久久久久 | 黄网站色 | 久久伊人免费视频 | 亚洲视屏在线播放 | 亚洲一区精品人人爽人人躁 | 在线观看视频你懂的 | 国产盗摄精品一区二区 | 日韩欧美成 | 国产中文字幕第一页 | 亚洲激情视频在线 | 91在线色 | 日日爽夜夜爽 | 国产一级二级三级在线观看 | 成年人app网址 | 色先锋av资源中文字幕 | 欧美天天综合网 | 97在线视频网站 | 国产一区高清在线观看 | 美女免费黄网站 | 亚洲免费一级电影 | 99se视频在线观看 | 成人动态视频 | 久久视讯 | 香蕉免费在线 | 免费视频三区 | 91黄视频在线观看 | 三级黄色免费片 | 国产综合在线观看视频 | 日本99干网 | 青青河边草观看完整版高清 | 欧美精品小视频 | 夜夜视频资源 | 一级黄色片在线观看 | 九九久久电影 | 欧美性高跟鞋xxxxhd | www.99av| 中文永久免费观看 | 国产精品99久久久久久宅男 | 青青草视频精品 | 亚洲3级 | 亚洲视频国产 | 久草久热 | 精品视频久久 | 久久露脸国产精品 | 久久九九久久精品 | 精品一区二区免费 | 亚洲精品久久久久58 | 国产伦理一区 | 日韩影片在线观看 | 国产夫妻性生活自拍 | 97成人免费视频 | 色综合亚洲精品激情狠狠 | 日本h在线播放 | 天天玩天天干天天操 | 久久999久久| 亚洲精品成人av在线 | 久久全国免费视频 | 中文字幕在线观看视频免费 | 18国产精品白浆在线观看免费 | 一区二区三区在线观看 | 国语黄色片 | 成人91av| 成人在线免费视频观看 | 久久免费在线观看视频 | 在线观看激情av | 一区三区视频在线观看 | 成人免费在线看片 | 91看片淫黄大片一级在线观看 | 青青河边草观看完整版高清 | 天天操天天操天天爽 | 色鬼综合网 | 九九免费观看视频 | av免费网| 色综合网 | 久久伊人八月婷婷综合激情 | 亚洲视频免费在线观看 | 色91在线 | 激情五月婷婷综合 | 日韩在线免费播放 | 欧美不卡视频在线 | 91精品久久久久久综合五月天 | 精品国产123 | 精品久久久久久久久久国产 | 天天色天天操综合网 | 亚洲片在线观看 | 97精品国产一二三产区 | 最近2019中文免费高清视频观看www99 | 色妞久久福利网 | 国产一区免费在线观看 | 亚洲成人精品在线观看 | 国内久久久 | 97色在线观看 | 日韩精品一区二区三区免费观看视频 | 久久黄色片 | 精品毛片久久久久久 | 九九色在线观看 | 四虎影视欧美 | 国产黄色片一级三级 | 成人av高清在线 | 日本午夜免费福利视频 | 亚洲综合激情网 | 中文字幕一区av | 亚洲视频精选 | 国产精品第十页 | 精品中文字幕视频 | 91九色成人| 欧美日本三级 | 久久综合九色九九 | 在线观看黄 | 999久久久久久久久6666 | 国产精品成人自产拍在线观看 | av网址aaa| 午夜精品一区二区三区视频免费看 | www.天天干| 国产精品美女久久久久aⅴ 干干夜夜 | 亚洲精品自拍 | 久久久午夜影院 | 亚洲视频电影在线 | 久色网| 国内精品久久久久久久久久久 | 日韩高清片 | 亚洲国产资源 | 久久一级电影 | 在线三级av | 午夜精选视频 | 亚洲最大av | 在线观看香蕉视频 | 99精品久久久久久久 | 天堂黄色片 | 97色综合 | 久久91网| 中文av在线播放 | 精品在线观 | 毛片一区二区 | 91黄站| 欧美激情第十页 | 天天干天天怕 | 日本三级中文字幕在线观看 | 欧美一区二区三区免费观看 | 日本不卡一区二区 | 国产精品3 | 午夜精品久久久久久99热明星 | 免费成人黄色片 | 最新中文字幕在线观看视频 | av一本久道久久波多野结衣 | 午夜精品在线看 | 中文字幕国产一区二区 | 中国老女人日b | 国产小视频在线免费观看视频 | 日日夜夜免费精品视频 | 免费久久99精品国产婷婷六月 | 在线黄网站| 午夜精品久久久久久久久久久久久久 | 国产精品理论视频 | 大胆欧美gogo免费视频一二区 | 黄色一级大片在线免费看国产一 | 六月激情婷婷 | 日韩三级在线观看 | 91看片在线播放 | 伊人狠狠| 色综合久久久网 | 国产精品9999 | 九九综合久久 | 久久国产精品久久w女人spa | 久久久蜜桃一区二区 | 7777精品伊人久久久大香线蕉 | 国产无套视频 | 国产精品免费久久久久久久久久中文 | 欧美激情视频免费看 | 在线精品视频在线观看高清 | 九九热视频在线免费观看 | 国产成人在线免费观看 | 又爽又黄又刺激的视频 | 天天干,天天草 | 天天操偷偷干 | 国产精品久久久久久久久久久不卡 | 日韩专区一区二区 | 久久久在线免费观看 | 久久国产精品99久久人人澡 | 狠狠地日 | 日韩免费一级a毛片在线播放一级 | 日韩精品一区二区三区第95 | 91视频一8mav | 天天激情在线 | 在线免费性生活片 | 日韩午夜电影 | 97超碰在线久草超碰在线观看 | 97国产大学生情侣白嫩酒店 | 国产人免费人成免费视频 | av电影免费看 | www.亚洲精品 | 999久久| 久久99精品国产麻豆宅宅 | av福利网址导航大全 | 久久久天堂 | 福利网址在线观看 | 日韩久久一区二区 | 精品国产99国产精品 | 亚洲欧美一区二区三区孕妇写真 | 欧美美女视频在线观看 | 天天干天天爽 | 婷婷av电影 | 美女免费黄网站 | 婷婷六月丁香激情 | 免费在线观看黄 | 91丨九色丨高潮 | 国产精品v欧美精品 | 免费激情在线电影 | 欧美日韩国产精品一区二区 | 99视频国产在线 | 国产一二三四在线观看视频 | 国产偷v国产偷∨精品视频 在线草 | 国产一区二区久久久久 | 免费久草视频 | free,性欧美 九九交易行官网 | 日韩a在线| 99久久婷婷国产精品综合 | 伊人亚洲综合网 | 久久视频二区 | 天天婷婷 | 人人射 | 免费高清无人区完整版 | 欧美成人xxxx | 国产精品麻豆免费版 | 国产成人久久av977小说 | 97久久久免费福利网址 | 亚洲 中文 在线 精品 | 国产精品久久久久久久久久尿 | 国产一区二区观看 | 狠狠干激情 | 国产精品久久久久久久久久久久久久 | 中文理论片| 丁香婷婷色综合亚洲电影 | 日韩视频一区二区在线观看 | 国产色婷婷在线 | 亚洲综合成人在线 | 菠萝菠萝在线精品视频 | 久久久久亚洲精品中文字幕 | 在线免费高清视频 | 免费视频色 | 四虎成人精品 | 天天弄天天操 | 日韩国产在线观看 | 婷婷草 | 99久热在线精品视频成人一区 | 在线观看亚洲国产 | 欧美日韩亚洲在线观看 | 亚洲激情久久 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 91黄色在线视频 | 黄色成人av| 色在线观看网站 | 在线免费观看视频 | 国产中文字幕国产 | 草樱av| 欧美三级在线播放 | 91av视频免费在线观看 | 久久久999| 日韩com | 99色免费视频 | 久久久久久毛片 | 天天干com | 久久99亚洲精品久久 | 日日夜夜狠狠操 | 一区二三国产 | 激情偷乱人伦小说视频在线观看 | 国产女教师精品久久av | 香蕉看片| 美女视频黄免费 | 美女黄网站视频免费 | 97在线视频观看 | 伊人中文网 | 五月天激情综合 | 国产又粗又硬又长又爽的视频 | 日女人免费视频 | 最近2019年日本中文免费字幕 | www免费视频com━ | 免费视频黄| 嫩草av在线 | 国产成人av电影 | 亚洲黄色在线观看 | 天天草天天干天天射 | 中文字幕在线观看你懂的 | 中文字幕一区二区三 | 精品一区二区三区电影 | 黄色片软件网站 | 日韩在线视频精品 | 免费日韩电影 | 日韩网站在线免费观看 | 久久久久久久久久久久国产精品 | 五月天狠狠操 | 四虎视频 | 有码中文字幕在线观看 | 亚洲精品综合久久 | 91在线www| 99r在线精品 | 久久久久久久久精 | 视频三区| 狠狠干狠狠艹 | 成人app在线免费观看 | 黄色成年 | 亚洲日本精品视频 | 久久国产亚洲精品 | 精品美女在线观看 | 国产探花视频在线播放 | 国产精品久久婷婷六月丁香 | 日韩免费一级a毛片在线播放一级 | 超级碰视频 | 国产 色| 亚洲成av人影片在线观看 | 亚洲欧洲精品视频 | 一级黄视频 | 成人在线视频网 | 久久成人一区 | 叶爱av在线 | 日韩久久精品一区 | 有没有在线观看av | 91麻豆精品国产91久久久使用方法 | 国产精品久久一区二区无卡 | 国产一级免费视频 | 日韩av不卡在线 | www.夜色.com| 98超碰在线 | 色视频在线观看 | 国产精品久久久久久久妇 | 欧美精品久久久久久久久久久 | 国产高清视频 | 91精品免费在线观看 | 国产精品第二页 | 久久男人影院 | 中文字幕第一页在线视频 | 99久在线精品99re8热视频 | 亚洲精品在线免费观看视频 | 欧美视频不卡 | 狠狠色伊人亚洲综合网站野外 | 美女视频黄网站 | 一区中文字幕 | a级片韩国 | 免费av片在线| 91视频 - x99av| 欧美最新大片在线看 | 国产精彩在线视频 | 色视频在线看 | 日韩在线免费电影 | 主播av在线| 97视频在线观看网址 | www..com毛片| 在线观看播放av | 中文字幕在线影院 | 国产一区二三区好的 | 欧美精品在线观看一区 | 成人在线免费观看视视频 | 亚洲 欧洲 国产 日本 综合 | 91在线看片 | 亚洲欧美日韩在线一区二区 | 国产精品99久久久久的智能播放 | 一区二区不卡在线观看 | 日韩欧美国产免费播放 | 久久人人精 | 国产精品黄 | 天天曰天天爽 | 日韩欧美国产激情在线播放 | 久精品视频免费观看2 | 国产精品黑丝在线观看 | 国产精品免费久久久 | 亚洲国产视频网站 | 色婷婷国产精品一区在线观看 | 国产福利不卡视频 | 亚洲精品在线国产 | 国产精品igao视频网入口 | 江苏妇搡bbbb搡bbbb | 欧美91精品国产自产 | 中文区中文字幕免费看 | 日韩精品免费一区二区三区 | 蜜臀av网址 | 日日干日日 | 亚洲人人爱 | 中国一级片免费看 | 亚洲国产精品电影在线观看 | 玖玖在线看| 亚洲精品无 | 激情综合色综合久久综合 | 一区二区三区四区精品视频 | 去干成人网 | www欧美日韩| 四虎国产精品成人免费影视 |