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

漫談編程語言的數據親和力

開發 前端
語言的數據親和力(Data Affinity)指的是語言與某種數據格式之間的相容程度,它主要取決于語言的數據模型,類型系統,以及庫的支持等。語言對某種數據格式親和力越強,則操作某類數據越容易。

目前,程序設計語言似乎進入了一個蓬勃發展的時期,JavaScript、Perl、Python、Ruby、Groovy等一批較新的語言正越來越多地被熟悉和使用,而C++、C#、Java等主流語言也在不斷地融入函數式和動態性特征。程序員的百寶箱中可供選擇的寶貝是越來多了,而社區中關于語言間的比較和爭論也更為熱烈,我們常常見到關于“面向過程和面向對象的比較”、“動態語言和靜態語言的比較”、“命令式和函數式范式的比較”等比較。我注意到這類討論的關注點多集中于設計相關話題,如“動態語言的Duck typing多態和靜態語言的繼承多態的比較”,“Prototype based和Class based的比較”等。但我認為還有一個十分重要的方面值得關注,這就是數據處理。

數據處理之所以重要是因為不論是本地信息存儲還是系統間信息交換都需要建立在一定的數據格式基礎上。另外,不管語言屬于那種范式,設計上采用什么模式,在微觀層次上程序很大一部分工作都是在做數據處理。所以,從數據處理角度比較和理解語言間的差異有重要的現實意義。雖然數據通常是平臺和語言無關的,但不同的語言在處理某種格式的數據時會表現出不同的難度,甚至某些數據格式只能采用特定的語言才能實現,這就是數據親和力的不同。

語言的數據親和力(Data Affinity)指的是語言與某種數據格式之間的相容程度,它主要取決于語言的數據模型,類型系統,以及庫的支持等。語言對某種數據格式親和力越強,則操作某類數據越容易。

二進制字節塊格式

在偏底層的操作系統、嵌入式和通信系統中,二進制的字節塊是最常見的一種數據格式。二進制數據布局緊湊和接近機器的特點使得它常常作為系統間通信或系統文件的數據格式。但一般高級語言不方便直接和0101打交道,而是基于記錄、結構體和類等結構化表示操作數據,這就存在著在底層的二進制字節塊和高層的結構化數據之間的轉換問題。

C語言作為最主要的系統語言具有很高的字節塊數據親和力。這不僅因為C語言具有指針可以直接訪問內存以外,還因為C的結構體(struct)可以和字節塊建立起直接的映射關系。例如,在基于Socket連接的分布式系統中服務器端和客戶端通過二進制的字節數據進行通信,通信雙方只要事先定義共用的結構體,發送方先創建相應的結構體變量并填充字段,然后把變量對應的內存塊copy到Socket,接收方從Socket讀取字節塊,然后把字節塊強制類型轉換為相應的結構體指針即可讀取個字段信息。整個過程中通信的雙方都沒有復雜的信息編碼和解碼的過程。示例代碼如下:

  1. struct t_data {  
  2.     int version;  
  3.     char type[10];  
  4.     float value;  
  5. }; 
  1. //發送方  
  2. struct t_data data;  
  3. data.version = 1;  
  4. strcpy(data.type, “degree”);  
  5. data.value = 189.0;  
  6. send(socket,  (char*)&data, sizeof(data)); 
  1. //接收方  
  2. struct t_data data;  
  3. read(socket,  (char*)&data, sizeof(data));  
  4. printf(“%d, %s, %f”, data.version, data.type, data.value); 

上面的方法在實際應用中還需要注意內存對齊問題和大小端問題。內存對齊問題可以通過編譯器預處理命令來進行控制,保證內存中struct結構與傳輸的字節塊具有相同的對齊方式;大小端問題需要通信的雙方采用同樣的大小端方式,否則就需要進行轉換。

C++可以完全兼容C的結構體,但C++的類(包括class和struct)中如果定義了虛函數,則會喪失結構的字節塊數據親和力,這是C++編程時需要權衡的一個因素。而除了C/C++,其他語言中則難以見到字節塊數據親和力,其原因在于C/C++允許控制結構體/對象的內存布局,并允許對指針進行非類型安全的強制類型轉換,這都是在Java,C#等語言中不允許的。所以,在Java、C#中進行字節塊的編碼解碼就只能按照協議一個字段一個字段地按偏移量和長度進行解析。C/C++的指針以及結構體和內存的直接映射帶來了對字節塊數據的親和力,但同時也留下了內存訪問和類型安全的隱患;而Java、C#在擁有引用安全和類型安全的同時也失去了對字節塊數據的親和力。

文本格式

文本格式是另一種十分常見的數據格式。《Unix編程藝術》是這樣評價文本格式的:"Text streams are a valuable universal format because they're easy for human beings to read, write, and edit without specialized tools ”。基于文本流的管道處理是一種備受贊譽的Unix風格。Shell可以通過管道把各種功能單一的命令串聯起來,讓文本流在管道上流動,因而Shell語言具有很好的文本數據親和力。許多文本數據處理任務Bash都可以一行搞定,這就是Hacker們酷愛的One Liner風格。

下面我們來看兩個用Bash進行文本處理的例子:

1. 統計當前目錄下的gz文件數目:

ls –l *.gz | wc –l

2. 在Web服務器日志service.log中統計2011年6月26和27兩天中每天各頁面的PV

cat service.log | grep ^2011-06-2[6-7] | cut –d ‘ ‘ –f 1, 3 | sort | uniq –c

service.log:

2011-06-25 13:00:55 /music/c.htm Safari

2011-06-26 08:01:23 /main.htm IE

2011-06-26 08:03:01 /sports/b.htm Chrome

2011-06-27 11:41:06 /main.htm IE

2011-06-27 11:52:41 /news/a.htm Firefox

輸出:

210 2011-06-26 /main.htm

231 2011-06-26 /news/a.htm

155 2011-06-26 /sports/b.htm

288 2011-06-27 /main.htm

292 2011-06-27 /news/a.htm

161 2011-06-27 /sports/b.htm

上面的兩個簡單文本數據處理任務如果是在C或C++下實現則要麻煩得多,代碼量至少是十幾行或者數十行,加上編譯調試,整個開發效率可能比Shell低一個數量級。除了Shell外,Perl也是以強大的文本數據處理而聞名的。我們來看一個Perl正則表達式的例子:

  1. while (<STDIN>) {  
  2.     if (/hello\s(\w+)/i) {  
  3.         print “say hello to $1“  
  4.     }  
  5.     else if (/goodbye\s(\w+)/i) {  
  6.         print “say goodbye to $1”  
  7.     }  

輸入:

HeLLo world

Goodbye bug

輸出:

say hello to world

say goodbye to bug

上面的例子中我們看到Perl直接進行字符串匹配并進行數據提取的強大威力。Perl基于正則表達式的字符串處理不僅比C/C++等系統語言更強大,甚至比Python這樣的動態語言也更強大和更方便,這是因為正則表達式是Perl語言的“一等公民”,這就使得Perl比其他以庫的方式支持正則表達式功能的語言具有更好的文本數據親和力。后來的Ruby也學習Perl直接在語言上支持正則表達式。

結構化文本格式

XML是最近十幾年來流行起來的一種通用(半)結構化的文本數據交換格式。XML除具有一般文本格式的優點外,還具有能層次結構表達力和可擴展性的優勢,所以它至誕生以來就被大量用于配置文件和各種Web Service中。現代程序設計基本都少不了和XML打交道,不過在C++、Java和C#幾種靜態類型語言中處理XML卻并不是一件十分輕松的事情。我們先來看一個Java解析和構建下面這個XML的例子:

  1. <langs type="current">  
  2.   <language>Java</language>  
  3.   <language>Groovy</language>  
  4.   <language>JavaScript</language>  
  5. </langs> 

  1. //Java解析XML  
  2. DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();  
  3. try {  
  4.     DocumentBuilder db = dbf.newDocumentBuilder();  
  5.     Document doc = db.parse("src/languages.xml");  
  6.     Element langs = doc.getDocumentElement();  
  7.     System.out.println("type = " + langs.getAttribute("type"));  
  8.     NodeList list = langs.getElementsByTagName("language");  
  9.     for(int i = 0 ; i < list.getLength();i++) {  
  10.         Element language = (Element) list.item(i);  
  11.         System.out.println(language.getTextContent());  
  12.     }  
  13. }catch(Exception e) {  
  14.     e.printStackTrace();  
  15. }  
  1. //Java創建XML  
  2. DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();  
  3. try {  
  4.     DocumentBuilder db = dbf.newDocumentBuilder();  
  5.     Document doc = db.newDocument();  
  6.     Element langs = doc.createElement("langs");  
  7.     langs.setAttribute("type""current");  
  8.     doc.appendChild(langs);  
  9.  
  10.     Element language1 = doc.createElement("language");  
  11.     Text text1 = doc.createTextNode("Java");  
  12.     language1.appendChild(text1);  
  13.     langs.appendChild(language1);  
  14.  
  15.     Element language2 = doc.createElement("language");  
  16.     Text text2 = doc.createTextNode("Groovy");  
  17.     language2.appendChild(text2);  
  18.     langs.appendChild(language2);  
  19.     Element language3 = doc.createElement("language");  
  20.     Text text3 = doc.createTextNode("JavaScript");  
  21.     language3.appendChild(text3);  
  22.     langs.appendChild(language3);  
  23. catch (Exception e) {  
  24.     e.printStackTrace();  

為了解析和創建小小的一段XML代碼需要編寫如此冗長的Java代碼,而實現同樣的功能動態語言Groovy則十分簡潔:

  1. //Groovy解析XML             
  2. def langs = new XmlParser().parse("languages.xml")  
  3. println "type = ${langs.attribute("type")}" 
  4. langs.language.each{  
  5.   println it.text()  
  1. //Groovy創建XML  
  2. def xml = new groovy.xml.MarkupBuilder()  
  3. xml.langs(type:"current"){  
  4.   language("Java")  
  5.   language("Groovy")  
  6.   language("JavaScript")  

上面Groovy操作XML的代碼簡潔而富有表達力,代碼與XML幾乎是一一對應的,如同直接在XML上進行操作的DSL一樣,而相應的Java代碼則看不到XML的影子。這說明Groovy具有很高的XML數據的親和力。為什么Java和Groovy在XML親和力方面有這樣的差異呢?原因在于Java要求所有的方法和屬性都必須先定義再調用,嚴格的靜態類型檢查使得Java只能把XML元素作為“二等公民”來表達;而Groovy則沒有靜態類型檢查的限制,可以自由地使用方法和屬性來表達XML結構。上面用Groovy創建XML的例子中,groovy.xml.MarkupBuilder類中實際上并沒有langs, language這些方法,但會在調用的時候自動創建相應的XML結構。

除了XML外,JSON是另一種通用的半結構化的純文本數據交換格式,它常被視為輕量級的XML。JSON的本意是Javascript的對象表示(Javascript Object Notation),它屬于Javascript的語法子集,Javascript對JSON有原生的支持。下面就是一個在Javascript中創建JSON對象的例子:

  1. var json = { “langs” : {  
  2.         "type” : "current”,  
  3.         "language” : ["Java”, "Groovy”, "Javascript”]  
  4.     }  

許多Javascript程序都會通過AJAX都從服務器獲取JSON字符串,然后把字符串解析為JSON對象。由于Javascript對JSON的原生支持,所以,在Javascript中解析JSON字符串可以采用通用的eval方式,如:

  1. var json = eval(“(" + jsonStr + “)");  
  2. alert(json.langs.type); 

甚至可以:

  1. eval(“var json = ” + jsonStr);  
  2. alert(json.langs.type); 

不過eval的通用性帶來了一定的安全隱患,所以一般只建議對受信任的數據源采用eval方式解析JSON,對于不受信任的數據源可以采用專門的JSON解析庫。無論如何Javascript對JSON的原生支持都使得Javascript具有很高的JSON數據親和力。另外,Groovy 1.8也加入了對JSON的原生支持,操作JSON與Javascript一樣方便。

總結

到這里為止本文篇幅已經很長了,只能列舉二進制字節塊格式、文本格式和結構化文本格式3種典型的數據格式。實際上,數據親和力的話題還有很多值得探討的,比如C#的Linq。本文的探討算是拋磚引玉,目的在于引起大家注意在比較語言的時候不要忽略了數據親和力這樣一個重要方面。

原文鏈接:http://www.cnblogs.com/weidagang2046/archive/2011/06/27/2091765.html

【編輯推薦】

  1. 如果你的編程語言是汽車……
  2. 你的編程語言做不到的事情
  3. 在企業中越來越流行的8種編程語言
  4. 13種最為荒謬但很獨特的編程語言
  5. 2011年需要關注的9大編程語言
責任編輯:陳貽新 來源: Todd Wei的博客
相關推薦

2015-12-17 18:57:06

京東大數據

2015-12-22 15:47:32

ZD至頂網軟件頻道

2013-07-19 09:31:09

2022-05-01 17:18:59

區塊鏈去中心化金融

2016-10-09 20:31:19

2024-01-03 16:19:04

2012-06-12 09:15:50

開發語言

2010-01-11 10:28:51

C++編程

2010-04-16 09:47:36

Oracle

2009-08-27 17:12:04

Clojure編程語言Java

2025-11-03 09:10:27

2010-09-14 11:19:23

DIV+CSS技術

2010-08-16 13:39:18

DIV+CSS

2012-07-02 14:58:16

HTML5

2011-07-22 13:58:48

java接口

2022-12-05 11:29:14

2019-01-13 16:25:05

PythonJavaC語言

2018-11-11 15:29:13

大數據語言Java

2010-01-12 10:50:59

學習C++

2010-09-01 10:42:11

DIV+CSS
點贊
收藏

51CTO技術棧公眾號

www.国产精品一区| 免费一级在线观看播放网址| 欧美.日韩.国产.一区.二区| 日韩美女在线视频| 成人毛片视频网站| 91在线观看| 国产成人免费视频精品含羞草妖精 | 青青久久av| 欧美最猛性xxxxx直播| 国产精品区一区| 国产日韩久久久| 欧美成人一区二免费视频软件| 亚洲激情成人网| 亚洲xxx在线观看| av成人 com a| 国产精品免费人成网站| 精品伦理一区二区三区| 国产男男gay网站| 久久久亚洲人| 欧美另类高清videos| 91资源在线播放| 欧美freesex8一10精品| 91精品国产福利在线观看 | 三级全黄做爰视频| 中文字幕中文字幕精品| 日韩精品在线一区| 久久黄色片网站| 欧美成人精品三级网站| 樱花草国产18久久久久| 最新欧美日韩亚洲| 国产免费av高清在线| 97超碰欧美中文字幕| 97av影视网在线观看| 一级黄色片视频| 日日摸夜夜添夜夜添亚洲女人| 午夜精品久久久久久99热软件 | 91精品国产自产在线观看永久∴| 亚洲精选一区二区| 久久久久亚洲AV成人无码国产| 精品一区二区三区中文字幕视频| 欧美日韩一区在线观看| 成人在线观看a| 亚洲最大成人| 欧美日韩国产一区二区| 美女av免费观看| 二区三区在线观看| 亚洲免费观看高清完整| 小说区视频区图片区| 在线日本视频| 国产精品网站导航| 五月天婷亚洲天综合网鲁鲁鲁| 全色精品综合影院| 久久婷婷成人综合色| 蜜桃传媒一区二区| 免费在线一级视频| 国产亚洲欧美一区在线观看| 奇米精品在线| 视频一区二区三区在线看免费看| 成人免费高清在线| 国产日韩欧美一区二区三区四区| 亚洲精品18p| 成人高清伦理免费影院在线观看| 国产亚洲第一区| 色香蕉在线视频| 2020国产精品自拍| 欧美亚洲免费在线| 一级毛片视频在线观看| 亚洲天堂网中文字| 久久精品人成| 国产福利小视频在线| 国产精品丝袜久久久久久app| 少妇精品久久久久久久久久| 日本中文在线观看| 亚洲黄网站在线观看| 欧美国产综合在线| 日本成人网址| 亚洲午夜精品在线| 黄色片视频在线免费观看| 视频在线日韩| 欧美精品乱码久久久久久按摩 | 波多野结衣视频网址| 蜜桃视频在线一区| 91香蕉视频在线下载| 色视频免费在线观看| 国产欧美一区二区精品性色超碰| 在线一区高清| f2c人成在线观看免费视频| 日韩欧美一区二区三区久久| 亚洲欧美久久久久| 一区二区免费| 亚洲一区二区黄| www.av视频| 国产亚洲永久域名| 成人xvideos免费视频| 风流少妇一区二区三区91| 97久久久精品综合88久久| 日韩亚洲视频| 2021中文字幕在线| 欧美日韩小视频| 动漫av在线免费观看| 国产影视一区| 久久久噜噜噜久久久| 中国老头性行为xxxx| 国产69精品久久久久777| 色天天综合狠狠色| 18禁裸乳无遮挡啪啪无码免费| 色婷婷一区二区三区| 欧美精品久久久久久久久久| 老熟妇一区二区三区啪啪| 丁香婷婷久久| 亚洲在线成人| 国产精品视频永久免费播放| 久久久久无码国产精品不卡| 午夜精品亚洲| 国产成人精品综合久久久| 精品人妻一区二区三区潮喷在线 | 日韩欧美视频免费观看| 亚洲福利免费| 91免费欧美精品| 精品国产av一区二区| 欧美国产精品中文字幕| 高清无码一区二区在线观看吞精| 91精品国产66| 欧美视频中文字幕| 人妻无码中文久久久久专区| 99re久久最新地址获取| 欧美一级大胆视频| 国内外成人激情免费视频| 人妻无码一区二区三区久久99| 国产精品久久777777| 欧洲av无码放荡人妇网站| 成人一区视频| 欧美一区二区三区色| 国产精品成人无码免费| 国产亚洲精品久久久久婷婷瑜伽| 欧美亚洲激情在线| 天天干,夜夜操| 一级特黄大欧美久久久| 中文字幕一二三区| 久久精品色播| 久久久999国产| 日本韩国欧美中文字幕| 国产一区91精品张津瑜| 欧美一区1区三区3区公司 | 国产精品久久久久久久久男| 性猛交富婆╳xxx乱大交天津| 亚洲女与黑人做爰| 在线免费观看av网| 伊人久久大香线| 天堂综合网久久| 播播国产欧美激情| 人妻 日韩精品 中文字幕| 国产一区亚洲| 91久久精品在线| 超碰在线观看免费| 无码av免费一区二区三区试看 | 中文字幕 久热精品 视频在线| 日韩精品一区二区免费| 国产成人av毛片| 97超碰蝌蚪网人人做人人爽| 男人天堂网在线| 在线看国产日韩| 国产探花视频在线| 精品一区二区三区av| 手机成人av在线| 136国产福利精品导航网址应用| 欧美黑人巨大xxx极品| 免费一级特黄特色大片| 成人精品一区二区三区中文字幕| 国产亚洲欧美一区二区| 原纱央莉成人av片| 中文字幕亚洲国产| 国产高潮流白浆喷水视频| 亚洲一区在线视频| 国产精品亚洲无码| 麻豆国产欧美日韩综合精品二区| 日韩 欧美 自拍| 美国成人xxx| 国产精品久久久久久搜索| 老司机午夜在线| 亚洲福利影片在线| 波多野结衣在线电影| 亚洲色图.com| 在线免费播放av| 理论片日本一区| 日本十八禁视频无遮挡| 欧美偷拍自拍| 成人自拍爱视频| 国产另类xxxxhd高清| 不卡av日日日| 欧洲亚洲在线| 日韩一级高清毛片| 国产一级18片视频| 亚洲欧美日韩一区二区三区在线观看| 中文字幕人妻熟女在线| 日日夜夜免费精品| 男人天堂新网址| 少妇精品久久久一区二区| 91精品视频专区| 九色porny自拍视频在线观看| 中文字幕亚洲欧美| 无码h黄肉3d动漫在线观看| 欧美日韩一区在线| 国产精品一区二区三区四| 亚洲激情六月丁香| 天堂av网手机版| 97久久精品人人澡人人爽| 天天干天天色天天干| 国产精品视频| japanese在线播放| 日韩欧美视频专区| 美国av一区二区三区| 日韩精品中文字幕一区二区| 国产精品黄页免费高清在线观看| √8天堂资源地址中文在线| 日韩亚洲欧美中文在线| 男男电影完整版在线观看| 精品欧美一区二区久久| 91麻豆国产在线| 色哟哟日韩精品| 日韩欧美一区二区一幕| 亚洲免费高清视频在线| 中文字幕无码日韩专区免费 | 日本蜜桃在线观看视频| 久热精品视频在线观看| av影片在线看| 一本色道久久88综合亚洲精品ⅰ| 天堂а√在线8种子蜜桃视频| 日韩三级免费观看| 国产女同91疯狂高潮互磨| 欧美日韩国产美| 中文字幕第31页| 在线观看视频一区| 天天干天天干天天干天天| 亚洲va欧美va人人爽午夜 | 色婷婷综合久久| 久久久久久久国产精品毛片| 亚洲欧洲三级电影| 国产成人精品视频免费| 久久久久久久久久久久久久久99 | 亚洲男女一区二区三区| 天天色天天综合| 国产精品初高中害羞小美女文| 性欧美一区二区| 国产精品午夜在线观看| 国产人与禽zoz0性伦| 中文字幕亚洲区| 91传媒免费观看| 亚洲日本青草视频在线怡红院 | 国产精品熟妇一区二区三区四区 | 成人午夜影院在线观看| 深夜激情久久| 91最新国产视频| 亚洲免费一区三区| 国产精品区二区三区日本| 牛牛精品成人免费视频| 亚洲一区二区三区在线视频| 美女久久精品| 国产原创精品| 伊人久久大香线蕉| 亚洲高清精品中出| 2023国产精品久久久精品双| 97超碰免费观看| 亚洲网站在线| 男人操女人免费软件| 石原莉奈在线亚洲三区| 国产精品久久a| 国产真实乱子伦精品视频| 天堂va欧美va亚洲va老司机| 9久草视频在线视频精品| 在线不卡av电影| 久久先锋影音av鲁色资源网| 日韩不卡av在线| 亚洲久草在线视频| 在线观看国产亚洲| 欧洲另类一二三四区| 97在线视频人妻无码| 欧美乱妇一区二区三区不卡视频| 亚洲国产精彩视频| 亚洲精品在线看| 黄色成年人视频在线观看| 久久人91精品久久久久久不卡| 婷婷综合六月| 91黄色精品| 国产精品免费不| 国产午夜精品视频一区二区三区| 国产精品女主播一区二区三区| 久草综合在线观看| 国产精品影音先锋| 成人影视免费观看| 亚洲人成精品久久久久久| 日韩欧美国产亚洲| 欧美日韩国产大片| 污污视频在线观看网站| 日韩亚洲欧美成人| 中文在线资源| av色综合网| 清纯唯美日韩| 国产中文字幕在线免费观看| 久久成人久久鬼色| 少妇特黄一区二区三区| 一区二区三区在线视频免费| 天天操天天干天天摸| 欧美成人一区二区三区在线观看| 国产在线观看免费网站| 欧美第一黄网免费网站| 成人精品国产| 久久久亚洲综合网站| 欧美aⅴ99久久黑人专区| 成年人小视频网站| 99综合电影在线视频| 久久久久亚洲av无码专区体验| 色就色 综合激情| 天堂在线视频观看| 欧美大码xxxx| 精品福利在线| 日本高清视频一区二区三区| 欧美特黄一区| 伊人五月天婷婷| 中文天堂在线一区| 日韩手机在线视频| 日韩成人av网| а√天堂8资源在线| 亚洲综合最新在线| 国产一区二区三区网| 久在线观看视频| 岛国精品在线播放| 黑鬼狂亚洲人videos| 欧美手机在线视频| www.成人.com| 国产精品久久久久久影视| 日韩啪啪网站| 一二三四视频社区在线| 国产不卡视频在线观看| 久草网站在线观看| 日韩一区二区三区三四区视频在线观看| aaa在线免费观看| 国产精品久久久久久av福利| 国产一区二区精品福利地址| 女人和拘做爰正片视频| 91在线一区二区三区| 欧美日韩精品区| 亚洲激情久久久| 久久精品欧美一区二区| 日韩二区在线观看| 中文字幕5566| 欧美性猛交xxxx免费看漫画| 三级理论午夜在线观看| 51色欧美片视频在线观看| 日韩美女精品| 男人天堂av片| 91香蕉视频mp4| 销魂美女一区二区| 最新69国产成人精品视频免费| 久草综合在线| 中文字幕黄色大片| 国产福利一区二区三区视频| 九九热精品在线观看| 亚洲成人久久久久| 欧美一级鲁丝片| 日韩精品久久一区| 精品一区二区在线视频| 18岁成人毛片| 亚洲成人网在线观看| 夜鲁夜鲁夜鲁视频在线播放| 日韩国产欧美一区| 久久99国产精品免费网站| 丝袜美腿小色网| 久久久不卡网国产精品一区| 国产精品第5页| 中文字幕在线成人| 国产精品一站二站| 成人黄色av片| 国产精品区一区二区三区| 99久久精品国产一区色| 97热在线精品视频在线观看| 精品国产乱码久久久久久果冻传媒| 欧美成人黄色网址| 亚洲精品视频一区| 飘雪影院手机免费高清版在线观看| 国产精品免费网站在线观看| 青娱乐免费在线视频| 亚洲第一综合天堂另类专| 欧美美女日韩| 日韩精品第1页| 久久欧美中文字幕| 国产视频一区二区三区四区五区| 欧美激情视频给我| 狠狠做深爱婷婷综合一区| 欧美在线激情| 极品少妇xxxx偷拍精品少妇| 99久久精品久久亚洲精品| 日韩欧美aaaaaa| 电影k8一区二区三区久久| 少妇精品久久久久久久久久| 粉嫩高潮美女一区二区三区 | 精品视频1区2区| 日本无删减在线| 九色综合婷婷综合| 久久精品国产在热久久|