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

大辯論:Java不是C++ 閉包讓Java更簡(jiǎn)單

原創(chuàng)
開發(fā) 后端
Java真的需要閉包嗎?或者說,Java真的不需要閉包嗎?Java閉包的三個(gè)提案中,F(xiàn)CM提案最終得到了通過。這增加的一個(gè)語(yǔ)言特性,真的會(huì)令Java變得異常復(fù)雜么?本文作者認(rèn)為,人們不應(yīng)太擔(dān)心這個(gè),而是應(yīng)該為了閉包使Java更簡(jiǎn)單而感到高興。

【51CTO精選譯文】編者按:在上個(gè)月舉行的Devoxx大會(huì)上,Sun宣布Java 7中將包含簡(jiǎn)單的閉包特性。這與之前一年Sun的宣布完全相反——當(dāng)時(shí)他們說Java將不會(huì)考慮閉包,因?yàn)镴ava不需要。Java社區(qū)對(duì)此是有人欣喜有人怒,不過,到底有什么好爭(zhēng)論的呢?一位對(duì)C++和Java十分了解,一直關(guān)注編程語(yǔ)言的資深開發(fā)者M(jìn)arek Krj在最近的一篇博文中詳細(xì)的分析了Java需要閉包的理由,并引申C++和C#的一些情況做為自己的論據(jù)。以下是Marek的討論:

#t#多年前,Sun這樣描述微軟對(duì)Java的擴(kuò)展提案:

Visual J++的許多優(yōu)點(diǎn)——類型安全、面向?qū)ο蟆⑶乙子诮M件互聯(lián)(component interconnection)——只是對(duì)Java對(duì)象模型的安全性和靈活性的繼承………

方法綁定(Bound)引用根本沒有必要,它們并不屬于Java編程語(yǔ)言的一個(gè)部分,因此它們也不能被標(biāo)準(zhǔn)的編譯器接受。此外,這些做法會(huì)讓Java語(yǔ)言損失掉簡(jiǎn)便性和統(tǒng)一性(unity)。
   
如此等等,這都是些營(yíng)銷時(shí)所說的胡言亂語(yǔ)。我不知道還有什么比這更惱人的:1.自詡面向?qū)ο蟮恼y(tǒng)地位;2.自滿:“我們更理解Java”。但無(wú)論如何,James Gosling(Java之父本人)也很可能會(huì)常說他希望閉包(closure)包含在Java中,而不是匿名內(nèi)部類(anonymous inner classes);3. 對(duì)于如何將函數(shù)作為Java語(yǔ)言的頭等公民(first class citiciens)那樣包含進(jìn)去,沒有一個(gè)完整的提案!這就是他們所謂的“根本沒有必要”的論據(jù)……

圍繞著閉包的思想存在著相當(dāng)大的爭(zhēng)議,這有點(diǎn)像我們最近討論過的關(guān)于C++ concepts特性的爭(zhēng)論:人們認(rèn)為它不必要,而且太復(fù)雜了(51CTO編者注:作者此處意為今年7月下旬,C++標(biāo)準(zhǔn)委員會(huì)確定將concepts特性從C++0x中移除一事。C++編程語(yǔ)言的作者Bjarne Stroustrup為此聲稱C++0x已死,將希望放在新一代C++標(biāo)準(zhǔn)上。)。由于在C++0x中,我們可以使用lambda函數(shù),這沒引起多少爭(zhēng)議,因此Java社區(qū)對(duì)于閉包的這一爭(zhēng)論激起了我的興趣。來啊,為什么不引入閉包呢?甚至C#都包含了一些閉包!

那么,什么是閉包(Closure)呢?在這篇博文中,我們把它認(rèn)為是類似于C++(或Python和Groovy)中l(wèi)ambda那樣的函數(shù),即一個(gè)匿名的、獨(dú)立式的函數(shù),比如下面這種:

  1. auto print = [] (int x) { cout << x; } 

現(xiàn)在,讓我們用Java語(yǔ)言來表示這一概念。

1.提案

那么,讓我們來看一看這三個(gè)提案。

a) BGGA(源自Bracha、Gafter、Gosling 和 Ahe的首字母)

這是最雄心勃勃的一個(gè)提案。它引入了一個(gè)新的語(yǔ)言類型:函數(shù)類型,以及它的一個(gè)全新的標(biāo)記方法(notation),這讓我想起了的Haskell或lambda函數(shù)的演算類型(calculus types):

{T => U} 表示一個(gè)從T到U的函數(shù){T => U => V} (或者這種形式{T,U => V}?) 表示一個(gè)從 T和U到V的函數(shù)

我認(rèn)為,這種標(biāo)記方法是許多Java從業(yè)者不太喜歡此提案的原因之一。另一個(gè)原因顯然歸因于非局部(nonlocal)環(huán)境語(yǔ)句(return ,break等)。新問題再次出現(xiàn),非局部是指那個(gè)局部?嗯,舉個(gè)例子來說吧,這意味著返回語(yǔ)句將不會(huì)從閉包返回,而是從調(diào)用該閉包的區(qū)域內(nèi)返回。它們不是綁定在閉包上,而是綁定在一個(gè)環(huán)境中。為什么這會(huì)是一件好事呢?親愛的讀者,下一節(jié)將為您詳細(xì)說明。

一個(gè)使用的例子:

  1. {Integer => void} print = { Integer x => System.out.println(x); } 

b) CICE (簡(jiǎn)明實(shí)例創(chuàng)建方式,Concise Instance Creation Expressions)

這是三個(gè)提案中最簡(jiǎn)單的一個(gè)。基本上,它只起到在語(yǔ)法上不斷定義匿名類的作用而已,沒有其他的用處。沒有第一類函數(shù)(first class functions)!沒有晦澀難懂的函數(shù)編程理論!

以下是一個(gè)例子:

  1. public interface IPrint { public void invoke(Integer x);} // exacltly 1 method!  
  2. Print print = IPrint(Integer x) { System.out.println(x); } 

雖然CICE是最簡(jiǎn)單的提案,但我認(rèn)為它也是最煩人的一個(gè)提案:你必須經(jīng)常返回去查詢一些接口的定義,真是太差勁了!

c) FCM(第一類方法,F(xiàn)irst Class Methods)

這是上面兩個(gè)方案的折衷:它引入了第一類函數(shù),但其閉包返回語(yǔ)句中并沒有包含非局部綁定,而且去掉了讓人討厭的lambda形式符號(hào)。(51CTO編者注:FCM是此次Sun宣布通過的提案,詳見Devoxx大會(huì)的相關(guān)報(bào)道。不過,作者這篇文章寫于Devoxx之前,當(dāng)時(shí)對(duì)此還并不知曉。)

以下是一個(gè)例子:

  1. #(void(Integer)) print = #(Integer x) { System.out.println(x); } 

從以上三類的語(yǔ)法構(gòu)成上來說,我最喜歡的BGGA提案,因?yàn)槟隳軌蛴檬煜さ拇a塊(code-block)方式來編程,而不必使用FCM的hash和CICE的接口標(biāo)簽。

  1. #(void(Integer)) print = #(Integer x) { System.out.println(x); } 

2.爭(zhēng)論

說得客氣一點(diǎn),我有時(shí)覺得這場(chǎng)辯論有點(diǎn)幼稚。下面是典型的辯點(diǎn):

◆正方觀點(diǎn):如果沒有閉包,我將永遠(yuǎn)不會(huì)用Java寫哪怕一行代碼,我會(huì)轉(zhuǎn)而使用Scala進(jìn)行編程。

◆反方觀點(diǎn):如果引入閉包,我將會(huì)崩潰掉……雖然我不會(huì)轉(zhuǎn)向其它語(yǔ)言,但我會(huì)因此而怨恨你!

得了吧,各位!只不過是一個(gè)語(yǔ)言的特性而已。如果你不喜歡的話,你不使用它不就得了嗎?而且,選擇什么語(yǔ)言進(jìn)行開發(fā),是由項(xiàng)目經(jīng)理決定,而不是由開發(fā)人員說了算!如果經(jīng)理們認(rèn)為一個(gè)語(yǔ)言能夠帶來某種好處,那么該語(yǔ)言就有可能被采用。但這與你是否喜歡Scala或其他所謂更好的語(yǔ)言沒有半點(diǎn)的關(guān)系。

那么,閉包是否會(huì)使Java變得異常復(fù)雜?閉包是否真的如下面所說的那樣:

 “……使編程語(yǔ)言變得復(fù)雜,超過了正常的可用范圍:主流程序員將放棄Java,人們還會(huì)繼續(xù)爭(zhēng)論下去,然后會(huì)轉(zhuǎn)向使用其它更為簡(jiǎn)單的編程語(yǔ)言……

Java會(huì)變成一個(gè)只有小范圍內(nèi)的專家才會(huì)使用的稀有語(yǔ)言”?

那請(qǐng)你告訴我,對(duì)JVM而言什么語(yǔ)言是最簡(jiǎn)單的!我找不出最簡(jiǎn)單的語(yǔ)言(非腳本語(yǔ)言)。專家語(yǔ)言(Guru language)?你在開玩笑嗎?閉包的目的是讓Java變得更簡(jiǎn)單,因此每個(gè)人都應(yīng)該開心才對(duì)。為什么要害怕呢?

一個(gè)可能的答案(非PC)是:認(rèn)為“太復(fù)雜”的一方對(duì)Java的現(xiàn)狀很滿意,他們不關(guān)注語(yǔ)言優(yōu)雅性的是否缺失,而且不想學(xué)習(xí)新的機(jī)制。或許這是因?yàn)樵谀撤N程度上,Java已經(jīng)存在著太多的機(jī)制(或范型(paradigms))了?而對(duì)我來說,作為一個(gè)使用C++的開發(fā)人員,我已習(xí)慣了“多范型設(shè)計(jì)”,因?yàn)镃++在這方面確實(shí)包羅萬(wàn)象。我不會(huì)去考慮那些我目前使用不到的機(jī)制。

也許,這對(duì)Java領(lǐng)域來說并不簡(jiǎn)單,因?yàn)槎嗄暌詠鞪ava程序員一直被灌輸一種常識(shí),即世界上只有面向?qū)ο筮@一種范型。這可以解釋人們?yōu)槭裁凑J(rèn)為泛型(generics)的加入會(huì)使語(yǔ)言的復(fù)雜性大大增加(另一個(gè)解釋是設(shè)計(jì)選擇上(特別對(duì)于通配符)需要考慮向后兼容性)。

因此,事情似乎是這樣:要么是由于人們對(duì)泛型機(jī)制的憤怒,要么是由于BGGA提案中包含非局部變量返回這一不常用的做法,激起了人們的強(qiáng)烈反對(duì)。你難道不這樣認(rèn)為嗎?

3.討論

讓我們的描述得更加技術(shù)一點(diǎn):為什么我們?cè)贘ava里面需要閉包呢?答案很可能是:因?yàn)镽uby語(yǔ)言里面有這個(gè)東西。Java 社區(qū)似乎還集體性的停留在一個(gè)過去Ruby所帶來的創(chuàng)傷,而仿效Ruby的特性在其本身看來理由十分充分。正如過去人們?cè)阼F幕時(shí)期常常說的那樣:學(xué)習(xí)Ruby就是學(xué)習(xí)如何取勝!所以現(xiàn)在,就像在Ruby(或者Groovy和C#)里一樣,我們能夠用Java這樣編程:

  1. Utils.forEach(names, { Integer x => System.out.println(x); }); // BGGA 

而這是我們?cè)趲в蠸TL和lambda庫(kù)的C++里面常常使用的東西。

不過,以上的敘述也不是爭(zhēng)論的全部。上述三個(gè)提案中每個(gè)都有第二部分,能夠允許包含某些細(xì)致的資源管理,可以認(rèn)為這是一種“現(xiàn)代的析構(gòu)函數(shù)”。我只能說“最終這樣做了”,因?yàn)镴ava后期的資源管理非常麻煩。

BGGA試圖通過上面提到的非本地控制語(yǔ)句來達(dá)到這個(gè)目標(biāo),然后可以允許執(zhí)行“execute around”模式,即所謂的“控制抽象化”,但是有些不是很直觀。在BGGA提案里,關(guān)鍵詞是根據(jù)詞匯綁定的,而且會(huì)自動(dòng)指向定義了閉包的嵌套類型(enclosing type)實(shí)例。對(duì)我來說,Groovy一定程度上比較清楚的解決了非本地綁定的問題——引進(jìn)了兩個(gè)閉包成員:owner(關(guān)于嵌套對(duì)象)和delegate(定義詞匯綁定)。通過這種方式,總是能夠清楚的說明我們需要什么類型的詞匯綁定,delegate的默認(rèn)值是owner。

其他的提案也試圖解決同樣的問題:CICE包含了ARM(自動(dòng)資源管理模塊 —— 一個(gè)特殊的模塊類型,當(dāng)不使用它的時(shí)候會(huì)自動(dòng)應(yīng)用處理方法),而FCM 包含了JCA(Java控制抽象化 —— 這個(gè)很像上面提到的“execute around“那種類型,而且和BGGA一樣需要非本地的詞匯綁定)。

在這一點(diǎn)上,讓我們?cè)囍贸龅囊恍┙Y(jié)論是:

第一:C#的3.0版本里面有l(wèi)ambda,C++0x里面同時(shí)包含有l(wèi)ambda和auto specifier,如果Java 7里再不包含閉包的話,就會(huì)顯得十分陳舊了。

但也不要絕望,目前有一個(gè)庫(kù)解決方案(http://code.google.com/p/lambdaj/)。在這種情況下,一個(gè)庫(kù)解決方案是否足夠呢?我不知道,因?yàn)樗恼Z(yǔ)法看起來不是很直觀,但是它可能已經(jīng)是你能夠得到的最佳方案了。

第二:我發(fā)現(xiàn)此處最有教育意義的內(nèi)容是:我們能夠看到析構(gòu)函數(shù)的老概念其實(shí)一點(diǎn)也不過時(shí)!既然C#有它的使用聲明,那么Java也理應(yīng)(而且需要)包含一些類似于析構(gòu)函數(shù)的機(jī)制。Java這一(前)“現(xiàn)代語(yǔ)言”也需要如此。

原文:Java's Closures Debate for C++ Eyes  作者:Marek Krj

責(zé)任編輯:yangsai 來源: 51CTO.com
相關(guān)推薦

2015-10-15 11:27:02

cookie安全總結(jié)

2015-05-26 15:17:44

OpenStack

2013-06-09 16:49:56

布線系統(tǒng)TIA40Gb

2011-09-27 09:16:36

JavaScript

2022-05-06 16:18:00

Block和 C++OC 類lambda

2012-04-17 09:17:35

HTML 5App應(yīng)用

2011-07-27 16:55:12

Objective-c 閉包

2015-05-20 12:50:42

C#開發(fā)抽象增刪改

2011-05-16 17:02:44

云計(jì)算

2021-03-15 10:29:50

人工智能

2012-06-20 13:36:42

Surface平板

2009-06-15 09:43:11

Java閉包

2019-07-10 10:20:36

前端用戶體驗(yàn)javascript

2019-04-04 14:05:20

consolejs前端

2015-10-21 16:47:47

Testin云測(cè)

2009-08-19 09:57:01

C++ RAII

2024-01-22 09:51:32

Swift閉包表達(dá)式尾隨閉包

2009-08-19 10:09:21

C#和C++

2011-08-05 09:33:30

Func局部變量作用域

2021-07-24 13:16:31

Android 代碼操作系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产在线欧美| 99精品在线免费观看| 99re成人在线| 国产精品视频免费在线观看| 青青青视频在线播放| 免费观看性欧美大片无片| 午夜视频久久久久久| 日韩高清dvd| 国产av精国产传媒| 国产精品日韩| 久久天堂av综合合色| 污污免费在线观看| 免费视频观看成人| 婷婷丁香久久五月婷婷| 亚洲图色在线| 色呦呦视频在线| 久久se精品一区精品二区| 久久久爽爽爽美女图片| 三级黄色片在线观看| 欧美理伦片在线播放| 538prom精品视频线放| 国产精品沙发午睡系列| 成人在线免费看片| 91美女福利视频| 亚洲最大福利网站| 久久久成人免费视频| 亚洲激情中文| 在线观看欧美成人| 在线免费观看成年人视频| 亚洲我射av| 色菇凉天天综合网| 免费观看国产精品视频| 超碰超碰在线| 中文字幕国产一区二区| 久久99欧美| 亚洲av永久纯肉无码精品动漫| 日韩成人午夜电影| 日本精品久久久久久久| 久久婷婷综合国产| 一区二区中文字| 综合国产在线视频| 成人小视频免费看| 精品久久久久久久久久久aⅴ| 精品福利在线导航| 女女调教被c哭捆绑喷水百合| yy6080久久伦理一区二区| 欧美性xxxx极品hd满灌| 日韩国产一级片| 欧洲成人综合网| 亚洲品质自拍视频| 一级黄色录像免费看| 无遮挡动作视频在线观看免费入口| 26uuu久久综合| 久久久一本精品99久久精品66 | 亚洲天天影视| 国产性色一区二区| 欧美日韩电影一区二区| 亚洲欧美色视频| 91网站在线播放| 精品视频一区二区| 少妇性bbb搡bbb爽爽爽欧美| 99久久久久久| 久久久久综合一区二区三区| 亚欧在线观看视频| 久久无码av三级| 欧美日韩在线高清| 第一福利在线| 国产精品美女久久久久久2018| 先锋影音一区二区三区| 天天影视久久综合| 最新中文字幕一区二区三区| 国产奶头好大揉着好爽视频| www免费视频观看在线| 亚洲免费观看高清完整版在线观看| 四虎免费在线观看视频| 国产最新在线| 亚洲大尺度视频在线观看| 黄色国产一级视频| 在线一区av| 欧美日韩国产大片| 久久久久无码国产精品一区李宗瑞| 999国产精品一区| 亚洲欧洲日产国产网站| 亚洲精品成人av久久| 亚洲国产精品日韩专区av有中文 | 国产高潮在线| 在线观看91视频| 国产不卡的av| 天堂日韩电影| 久久亚洲国产成人| 成人毛片18女人毛片| 奇米一区二区三区| 国产三级精品在线不卡| 国产精品毛片一区二区三区四区| 中文字幕亚洲视频| 黄色一级片在线看| 成人看片毛片免费播放器| 日韩欧美国产一二三区| 国产成人av一区二区三区不卡| 99久久.com| 91精品国产高清久久久久久久久 | 三上悠亚国产精品一区二区三区| 欧美日韩亚洲丝袜制服| 黄页网站在线看| 久久99久久久精品欧美| 欧美成人艳星乳罩| 精品无码在线视频| 99精品视频精品精品视频| 久久91亚洲精品中文字幕| 久久精品女人毛片国产| 国产亚洲精品自拍| 国产精品久久久久久久久久久久久久| 国产精品久久久久久久久毛片| 国产高清精品久久久久| 乱一区二区三区在线播放| 成人p站proumb入口| 亚洲靠逼com| 欧美成人精品免费| 日本在线视频一区二区| 日韩丝袜美女视频| 亚洲国产无码精品| 亚洲综合五月| 国产成人精品午夜| 性欧美8khd高清极品| 亚洲国产精品精华液2区45| 国产激情片在线观看| 二吊插入一穴一区二区| 欧美一级电影网站| 欧美福利第一页| 合欧美一区二区三区| 国产精品美乳在线观看| 色视频在线看| 亚洲精品菠萝久久久久久久| 韩国日本在线视频| 亚洲图色一区二区三区| 在线精品高清中文字幕| 日韩精品一区二区三区国语自制| 理论片日本一区| 神马影院我不卡午夜| 丁香花高清在线观看完整版| 欧美日本一区二区三区四区| 老鸭窝一区二区| 激情欧美日韩一区| 成人性生交大片免费看视频直播 | 日韩午夜av电影| 少妇大叫太粗太大爽一区二区| 欧美激情成人在线| 国产精品一区二区在线| 四虎精品在永久在线观看| 一区二区三区成人在线视频| 在线观看av网页| 自拍亚洲一区| 97在线视频一区| 亚洲 小说区 图片区 都市| 亚洲精选视频在线| 天堂中文av在线| 日韩黄色大片| 国产精品久久久久免费a∨大胸| 天天av综合网| 亚洲国产精品久久一线不卡| 无码成人精品区在线观看| 自由日本语亚洲人高潮| 国产在线高清精品| 一级日本在线| 欧美日韩精品是欧美日韩精品| 熟女少妇一区二区三区| 亚洲久久视频| 欧美大陆一区二区| 日韩在线伦理| 国产视频一区在线| 色屁屁影院www国产高清麻豆| 91日韩一区二区三区| 国产视频九色蝌蚪| 国产色噜噜噜91在线精品| 国模精品系列视频| 手机看片1024国产| 午夜精品免费在线| av网页在线观看| 免费精品视频| 麻豆亚洲一区| 成人动漫视频在线观看| 精品国偷自产在线视频| 国产露脸国语对白在线| 亚洲美女淫视频| 亚洲色偷偷色噜噜狠狠99网| 国产欧美成人| 在线视频91| 清纯唯美激情亚洲| 国语自产精品视频在线看抢先版图片| 黑人乱码一区二区三区av| 午夜精品福利在线| 粉嫩av蜜桃av蜜臀av| 日韩精品乱码av一区二区| 亚洲不卡中文字幕| 日本精品久久| 久久久久久久久久久免费精品| 国产综合在线播放| 色丁香久综合在线久综合在线观看| 成熟人妻av无码专区| 国内国产精品久久| 高清无码视频直接看| 亚洲都市激情| 91老司机精品视频| 精品众筹模特私拍视频| 这里只有精品在线播放| av片免费播放| 色诱亚洲精品久久久久久| 天堂av免费在线| 成人国产电影网| 91视频免费版污| 综合激情婷婷| 麻豆久久久9性大片| 日韩一区二区三区精品视频第3页| 性色av一区二区三区免费| 国产在线自天天| 日韩精品一区二区三区四区视频| 丰满少妇乱子伦精品看片| 国产精品久久久久久亚洲伦| 污视频在线观看免费网站| 日韩综合小视频| 日产精品久久久久久久蜜臀| 亚洲a级精品| 91精品国自产在线观看| 成人av观看| 久久久久久久久久久免费 | 91成人理论电影| 性欧美18xxxhd| 欧美精品在线播放| 国产精品99999| 亚洲第一福利网站| 中文字幕免费观看视频| 欧美日韩在线另类| 久久久久无码精品国产| 国产精品视频你懂的| 天天插天天射天天干| 国产在线看一区| 欧美成年人视频在线观看| 欧美一级一区| 老太脱裤子让老头玩xxxxx| 亚洲一区在线| 在线成人av电影| 亚洲女娇小黑人粗硬| 国产日韩欧美亚洲一区| 久久av网站| 成人黄色免费在线观看| 二吊插入一穴一区二区| 97人洗澡人人免费公开视频碰碰碰| 免费超碰在线| 亚洲欧美综合v| 黄色免费在线播放| 日韩激情av在线播放| 亚洲精品字幕在线| 日韩精品一区国产麻豆| 91精品中文字幕| 6080亚洲精品一区二区| 中文字幕一区二区人妻痴汉电车| 日韩欧美在线免费观看| av资源免费观看| 欧美日韩国产一中文字不卡| 久久久午夜影院| 疯狂做受xxxx欧美肥白少妇| 日本五十路女优| 午夜影院久久久| 日本熟伦人妇xxxx| 色天使久久综合网天天| 国产日产精品一区二区三区| 一区二区三区免费看视频| 欧美精品久久久久性色| 亚洲一区二区三区在线看| 三级黄色录像视频| 亚洲最新在线观看| 国产真实乱偷精品视频| 午夜国产不卡在线观看视频| 国产精久久久久久| 无码av免费一区二区三区试看 | 一区二区久久久久久| 麻豆精品一区二区三区视频| 亚洲免费色视频| 国产成人在线观看网站| 欧美午夜宅男影院在线观看| 色屁屁影院www国产高清麻豆| 一本久久综合亚洲鲁鲁五月天| 天天干天天色综合| 制服丝袜在线91| 精品人妻一区二区三区三区四区| 精品剧情v国产在线观看在线| 日韩中文字幕观看| 亚洲男女性事视频| 久久电影中文字幕| 日日摸夜夜添一区| 成人看av片| 久久久久久中文| 深夜av在线| 成人激情视频在线| 999久久久久久久久6666| 久久综合毛片| 日韩一区电影| 国产91沈先生在线播放| 日日噜噜夜夜狠狠视频欧美人| 视频免费1区二区三区| 成人性生交大片免费| 亚洲成人网在线播放| 国产精品人妖ts系列视频| 日韩精品视频免费播放| 欧美综合在线视频| 99热在线只有精品| 精品亚洲一区二区三区在线播放| 日韩av高清在线| 久久成人精品电影| 在线视频cao| 国产欧美在线看| 久久a爱视频| 亚洲一区二区三区在线观看视频| 欧美日韩国产亚洲一区| 国产av无码专区亚洲精品| 国产在线不卡视频| 熟女俱乐部一区二区视频在线| 一区二区三区不卡视频 | 亚洲视频观看| 中文字幕在线导航| 成人性生交大合| 久久99久久99精品免费看小说| 一区二区三区高清在线| 亚洲天堂777| 亚洲欧美色婷婷| 欧美14一18处毛片| 国产精品揄拍一区二区| 中国av一区| 精品无码国模私拍视频| 精品一区二区三区视频| 不卡一区二区在线观看| 一个色在线综合| 在线免费看毛片| 日韩av在线看| 久久大胆人体| 91色在线视频| 手机在线电影一区| 精品视频无码一区二区三区| 成人一二三区视频| 2018天天弄| 欧美精选午夜久久久乱码6080| 狠狠人妻久久久久久综合麻豆| 久久成人18免费网站| 欧美jizz18| 亚洲mv在线看| 日本不卡高清视频| 日本人亚洲人jjzzjjz| 精品国产31久久久久久| 国产综合在线播放| 色综合久综合久久综合久鬼88| av在线不卡精品| 欧美亚洲免费高清在线观看| 亚洲人成高清| 午夜影院免费版| 国产精品久久久久一区二区三区共| 波多野结衣av无码| 亚洲视频在线播放| 国产综合色区在线观看| 国产精品免费视频一区二区| 欧美福利影院| 亚洲精品鲁一鲁一区二区三区| 亚洲柠檬福利资源导航| 国产伦一区二区| 久久亚洲影音av资源网| 久久亚洲人体| 正在播放亚洲| 蜜臀av一区二区在线免费观看| 免费一级suv好看的国产网站| 欧美日韩在线播放三区四区| 成黄免费在线| 国产精品高清网站| 影视一区二区| 午夜诱惑痒痒网| 一区二区在线观看不卡| 精品国自产在线观看| 国模极品一区二区三区| 免费看久久久| 岳毛多又紧做起爽| 久久久美女毛片| 中文文字幕一区二区三三| 色yeye香蕉凹凸一区二区av| 亚洲伦理网站| 高清无码视频直接看| 99精品视频一区| 人人妻人人爽人人澡人人精品| 一区二区三区四区在线观看视频| 国产一区二区高清在线| 日韩一区二区高清视频| 99久久精品国产观看| 无码免费一区二区三区| 久久人人爽亚洲精品天堂| 日韩视频一区二区三区四区| 欧美精品久久久久久久久久久| 成人一区二区三区| 亚洲天堂avav| 久久久久久久国产精品视频| 香蕉视频一区二区三区| 成人性生生活性生交12| 亚洲一卡二卡三卡四卡无卡久久| 亚洲三区在线播放|