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

Groovy創始人:Java面臨終結 Scala將取而代之

原創
開發 后端
Scala看起來像是一種純粹的面向對象編程語言,而又無縫地結合了命令式和函數式的編程風格。前日,Groovy創始人撰博文稱Scala將取代Java。他說,如果他在2003年看過《Programming Scala》的話,那可能就不會有Groovy了。

Groovy創始人James Strachan前日在其博客(地址在Blogspot,未架好梯子前請勿隨便點擊)上發表了一篇文章,題目為《Scala將取代Java /javac?》。以下是正文部分的翻譯:

【51CTO獨家譯文】不要誤解我的意思——我在過去的這十來年里寫了無數的Java代碼,并且堅信它相對C++和Smalltalk來說是一個巨大的進步(當然,很多其它語言也很有幫助,像JavaScript,Ruby,Groovy,Python等)。但是我還是一直期待著能有javac的替代者出現。我甚至還自創了一門語言(51CTO編者注:此處指Groovy)好讓我暫時滿足一下這種期望。 

Java是一種令人驚嘆的復雜語言(它的語法規范長達600頁,我懷疑到底有沒有人能真正理解它),它有自動裝箱(Autoboxing),空指針異常(NPE)往往就是這時拋出的。其中的基本類型(primitive type),字符串/文字/緩沖器/集合類(collections)以及數組缺乏多態性,以至于處理任何數據結構都需要冗長的語法;而且,由于Bean屬性和對閉包支持的缺失(甚至在JDK 7里也仍然還不支持),這會讓你的代碼里充滿了 try/catch/finally 這些語句(除非你使用框架和新的自定義API)。除了這些還有好多數不清的麻煩問題。Java倒是有類型推斷(type inference)功能但卻不用,使得我們要多輸/讀如此大量的代碼。

這個問題在沒有Java7后變得更加緊迫 (在Snorcle之后它變得更加重要:我不知道javac是不是要被jdkc 取而代之了?)。所以我猜javac可能已經走到了盡頭,它看起來根本就沒有什么進展或簡化了。 

那么,從長久來看,誰能取代javac 呢?當然,像Ruby,Groovy,Python,還有JavaScript這些動態語言在過去幾年里很受歡迎——很多人喜歡他們。 

我認為將來可能替代javac的就是Scala 。它實在太讓我印象深刻了。我甚至可以誠實地說,如果有人在2003年把Martin Odersky,Lex Spoon以及Bill Venners寫的那本《Programming in Scala》拿給我看了的話,那我根本就不會再去發明Groovy了。 

那么,為什么我會看好Scala呢?Scala是靜態類型的,它可以被編譯成與Java同樣快速的字節碼,所以它的速度與Java不分上下(有時快一點,有時慢一點)。你可以看看 Scala 在與 groovy 或jruby一起進行測試時表現有多好。注意:速度并不是我們追求的唯一目標——有時候我們可能寧肯讓代碼慢上十倍,也要寫得簡潔一點;但是如果要取代javac,速度當然還是很重要的。 

Scala已有類型推理(type inference)功能,因此它和Ruby/Groovy一樣簡潔,但是它完全是靜態類型的。這是很有好處的,它使得理解代碼、閱讀代碼以及編寫文檔都簡單多了。在任何片段(token)/方法/符號上點擊,你都可以跳轉到相應的代碼或文檔中去瀏覽。不需要打那些怪異的補丁,也不用操心誰什么時候新增了一個方法——這對于那些需要一個團隊一起長期開發的大項目是很有好處的。Scala似乎已經實現了動態語言(dynamic language)的那種簡潔,而實際上它是完全靜態類型的。所以,我根本不需要去記哪些魔術方法可用——或是在shell里運行腳本來查看這些對象——IDE/編譯器在你編輯代碼時就已經知道這些了。 

Scala已經提供了對高階函數和閉包的支持,另外還支持序列解析(sequence comprehensions) ,這樣你就可以很容易用Scala寫出漂亮簡潔的代碼。Scala還把函數式和面向對象的編程思想很好地統一到了一種語言里,它比Java要明顯簡單一些(雖然它的類型體系(type system)泛型(generics)需要花費差不同一個數量級的時間去理解,但是,它通常是框架開發者才需要考慮的問題,應用程序開發人員并不需要涉及)。它也使得從傳統的面向對象/Java編程模式向函數式編程的轉變變得更加容易——這對于編寫并行或異步程序的開發人員尤其意義重大(這是因為現在芯片的主頻已經達到了數個GHz,很難再有提升了;而芯片集成的核心數則在快速增長。51CTO之前曾發布過哪種語言將統治多核時代 再看函數式語言特性一文,對于函數式語言在多核時代的潛力做了相當深入的分析)。你可以在最開始用面向對象的方法編程,然后當你需要它的好處時,就可以遷移到用不變狀態(immutable state)函數式編程正變得越來越重要,因為我們總是希望能把問題變簡單,并且在一個更高的層次上解決它(如閉包,高階函數,模式匹配,單子(monad)等),同時我們還需要通過不變狀態(immutable state)實現并發和異步。 

Scala也有適當的混入(mixin)(特性(trait)) ,所以你不必去擺弄面向對象編程的缺陷來獲得模塊化的代碼。如果你確實需要一些鴨子類型(duck typing),Scala甚至能為你提供構造類型(structural type)。 

最讓我印象深刻的一點就是它的核心語法極其精練簡潔(它的語法手冊只有大概Java的四分之一),但是其方式卻更加強大和靈活,而且非常容易通過庫來擴展,添加新的語義和功能。可以看看這個例子:Scala Actors。因此它非常適合用于創建嵌入式DSL或外部DSL 。有了它以后就真沒必要再用Java,XPath ,XSLT,XQuery,JSP,JSTL,EL和SQL這些東西了——你可以在各種各樣的場合使用DSL。 

Scala確實需要花點時間去習慣——我承認第一次我看Scala時并不覺得順眼——用了Java之后你就會習慣用一堆冗長的代碼來做一點點事,剛開始時我們也都不會一看到幾個符號就覺得有多驚訝。(我花了好長一段時間才習慣Scala里用_作“通配符”,因為在Scala里是用作標識符/方法)。 

如果你一直在寫Java,那么最開始確實會覺得Scala很不一樣(如在聲明方法/變量/參數時在類型或標識符上加上階,雖然那樣做的原因是為了能更方便地略去一多余的類型信息)。

例如,在Java中的寫法:

  1. List< String> list = new ArrayList< String>() 

在Scala中的寫法:

  1. val list = new List[String] 

或者,如果你要指定確切的類型的話:

  1. val list : List[String] = new List[String] 

但是如果你堅持用上一段時間,Scala優美的一在很快就顯現出來。它對Java里的許多地方進行了簡化,讓你可以用非常簡潔的代碼就描述出意圖,而不用花上大段代碼去實現細節——同時還為你提供了一條遷移到函數式編程的不錯途徑,這對于編寫并發和分布式程序是非常有利的。

我強烈建議你學習一下Scala:以開放的心態看看(當你的思維轉過來后)你是否能發現它的美麗之處。

#p#

一些Scala資料的鏈接和在線演示文檔

51CTO編輯推薦:Scala編程語言專題

◆我強烈推薦由 Martin Odersky,Lex Spoon 和 Bill Venners編寫的《Programming in Scala》 一書。它非常好地介紹了Scala的特點以及設計時的選擇。這本書相當厚,但是你可以先跳著讀,必要時再深入細節。

◆《O'Reilly Scala book》這本書我只跳著讀了一點,但是看起來也非常不錯。

◆如果你想在短時間內就知道個大概語法,那么可以看看《Tour of Scala》。不過看了之后你也還得花上一些時間來真正理解為什么它跟Java會有這樣那樣的不同。

◆Martin Odersky 的JavaOne 2008上關于Scala的演說

◆Jonas Bonér在 Real-World Scala上作的報告

◆Gert's的 對他如何創建 Apache Camel DSL for Scala 的介紹

◆用于JDBC類型安全查詢的一個Scala版LINQ,順便再了解下DBC。

◆一份非常不錯的報告,介紹了把 Scala 和 OSGi 與DSL結合使用

◆如何使用 Scala和XML ( 語言里已經自帶了處理XML,XPath , XSLT, XQuery的簡潔語法)

Scala的例子

Scala快速參考表

◆這個例子顯示了如何 創建的bean風格的屬性 (或C #風格的getter函數)

◆創建一個 用Lift實現的聊天演示程序 或查看 Lift網站上的更詳細介紹

如果你還有一些空余時間的話,這些視頻資料也非常不錯

◆Bill Venners所發表的The Feel of Scala

◆Lex Spoon所作的Scala: 把未來的語言帶到JVM里來

好用的Scala框架和庫

liftweb :Scala的rails

語言規范ScalaTest for BDD 以及其它一些入門測試(literate testing)能讓你體會到類型安全的DSL對于編寫IDE友好 的簡潔代碼有多大幫助。

scalaz 是一個很有用的例程庫。

◆用HTTP /JSON服務進行調度

另外,順便說一下,對于那些像我一樣一喜歡JAXRS的,現在可以通過jersey-lift模塊使用lift模板和Jersey了。

作為這的實例,你可以看看RestMQ,這是一個我最近也參與了的開源項目,它旨在為面向消息的中間件提供REST風格的API和Web控制臺,它也是基于JAXRS(Jersey),Scala,Lift構建的。

至于開發工具方面,有Ant/Maven插件,它帶有一個交互式Scala控制臺(REPL)和一個用于IDEA的IDE插件,還有Eclipse,NetBeans,以及TextMate,Emacs這些通用編輯器,都可以供你選擇。在IDE插件的豐富程度上與Java還是有差距的,但是這些工具所提供的代碼導航和自動補全功能還是很有用的。

我試用過NetBeansEclipseIDEA這幾個IDE上的插件,它們都各有優劣。看起來,Scala的追隨者也因為這些工具分裂成了幾派。如果要代碼導航和自動補全,那我發現IDEA非常不錯。當你打開一個Maven pom.xml,它好像就能非常好地自動解析代碼,找出Scala源,那樣你就能很方便地在任意的類型/方法以及它們對應的文檔/源代碼中跳轉瀏覽。(通常你必須在運行/調試任務里手動添加Scala)。不過IDEA在錯誤代碼高亮上并不是最好的。在作上一些彌補后,它們都能變得與對應的Java工具一樣好用。試試這幾個工具吧,找出你最習慣的那個。

Scala Nit

任何一種語言都有你喜歡的一面,也有你不是那么熱衷的一面。Scala給你的最初印象可能確實是符號太多了點,但是你并不需要使用所有的這些符號——如果你喜歡的話,你可以繼續沿用很多Java里的東西。但我想到了那個時候最好還是用符號來實現“特殊任務”以避免標識符沖突。

我對嵌套的引入聲明不太感冒,使用_root_.java.util..List來把一個”全局“引入和相對引入區別開來。我還更愿意使用子引入。例如,如果你引入了com.acme.cheese.model.Foo,然后,為了引入model.impl.FooImpl,我就更喜歡用一個明確的相對前綴,就像:import _.impl.FooImpl。這對簡化任務有一些好處,對于保持和Scala的簡潔性就更有幫助了。

然而,和Java里大把的毛病相比,再考慮到Scala的優美,簡潔和強大,Scala的這一些負面因素和根本不算什么了。

結語:  

既然  MrJava(Adam Bien),MrJRuby(Charles Nutter) 和 MrGroovy(作者本人) 都認為Scala將會是javac的的替代者,那肯定是有些原因的。那你還在等什么呢?趕快去買《Programming in Scala》 或 《O'Reilly Scala book》一探究竟吧!

#p#

這篇博文發布后,立刻有很多Scala,Groovy和Java開發者進行了回復。Scala的創始人Martin Odersky也對這篇文章發表了自己的贊賞之詞。以下是Martin的留言:

James,感謝你的認可!這對我來說意義重大。我相信,如果我們一起努力向Java開發者們展示現在在JVM上更加美好的語言選擇,我們大家都會因此而得到好處。感謝你在這方面帶了個好頭。

根據我對Groovy的了解(很可惜的,我的了解沒有你了解Scala那樣多),它看起來并非是意圖填補同一塊領域的。Groovy的吸引力在于它是一個語法接近Java的動態腳本語言。Scala的吸引力在于它是一個強類型的,靜態的,結合函數式和面向對象的語言。

此外還有很多精彩的評論,51CTO譯者對這些評論進行了一些篩選,挑出部分翻譯如下:

Scala的體驗

去年,我在做一些調查項目時把Scala引進到了我的小Java車間里。

如今Scala成為了我們最主要的編程語言。

通過使用Scala,我們現在可以構建類型系統(type system),跟蹤總結以前所做項目的經驗教訓,并用它來替代我們過去以模型為導向(model-driven)的開發方式。然后,我們利用函數分發(pass around functions)的特性來改進組件的參數化。

總之,對于建立可重用的組件,Scala提供了一套比Java更好的機制。

C#和Java?

我覺得你可以去看看C#。它解決了你在Java中遇到的許多問題。如果你不喜歡微軟的話,就可以試試.NET的開源替代版本Mono。

有關Scala和F#

其實,在.NET平臺里與Scala對應的語言并不是C#,而是F#。不管什么時候,我都更傾向于使用Scala,而不是F#,原因如下:

1 )在F#文化里,面向對象看起來并不重要。在所有講F#的書里,都必定有一章介紹類,然后,剩余部分就是專門講解函數式。相比之下,Odersky在發明Scala時,并沒有照搬Java的這一套機制,而是通過對象類型、特性(trait)、增強的可見性規則(visibility rule)等概念擴展并超過了Java的這一套機制。Scala使得像我這樣有根深蒂固面向對象思想的開發人員覺得很舒適,它提供的函數式語法特性讓我可以用來把代碼變得非常簡潔。

2 )F#比Scala看起來更接近人類語言,初看起來這似乎是好事。不幸的是,由于開發者很少需要寫類型說明(type annotation),大部分代碼里也都沒寫,這就使得代碼變得更加難于理解。在Scala里,至少要聲明參數類型,而且最好也聲明一個方法的返回類型,除了那些一目了然的情況。

3 )F#一直力求盡量往OCAML的語法靠攏,所以它在語法也真是沒有什么創新之處。而Scala則是博取眾長,吸納了各種語言的優點。此外,它還讓人感覺有些機制并不是必須的,而是為了讓開發者更好地表達意圖而加入的。通過加入隱式轉換(implicit conversion),析取器(extractor)這些功能,Martin從我這里得到了很大的幫助。

4 )在我看來,Java程序員學會Scala比從C#到F#的過渡要容易得多。大體上來說,原因是Java程序員不需要花很大的代價入門,Scala可以直接被當作一門少了些模板(boilerplate)的Java使用。當程序員漸漸熟練后,他就可以開始發掘函數式編程的威力了。在其它任何的面向對象/函數式編程語言里我都找不出可以這樣過渡學習的。

Groovy蓋棺定論了?

James,我一直在留意你的博客,這篇文章寫得棒極了,堪稱高超。你發過一份聲明說不會再繼續把Groovy開發得更強大了(51CTO編者注:James Strachan在寫這篇博文之前很久已經離開了Groovy開發團隊),這份聲明影響力很大,而且幾乎可以說是給Groovy蓋棺定論了。

我們有一個面向最終用戶的數據處理軟件,然后我們選擇的是Groovy (而沒用Jython和JRuby )來作為實現各種功能擴展(從對變量編寫公式到編寫腳本)的途徑。你們在開發Groovy所寫的代碼很多都是粘合代碼(glue code)(對核心語言起補充作用)。我們充分利用Groovy所支持的這些特性與MS Office產品和Web服務進行整合。我真的希望,如果你們的開發團隊更中意Scala的話,也請盡量讓我們到時候在Scala里也能用上這些有用的庫。

James Strachan對上文的回復

我不認為任何一種主要的JVM語言會消失,肯定會一直有一大幫人繼續維護Groovy, Jruby, Cojure, Jython, Rhino等。

JVM中最大的一點好處就是這些語言很容易共存,重用另一種語言的代碼也非常容易。因此,只要相信大眾的選擇,就不用擔心會選錯開發語言。

而且我也并不認為Scala會是Ruby/Groovy/Fan這些動態語言的替代者;大多數情況下性能還是很重要的。對于一個快速、靜態類型的編譯器來說,過去Java顯然是第一選擇——但是現在,Scala才是首選——這是因為Java已經顯出老態了。(它可能永遠也不會支持閉包,永遠也不會考慮支持類型推斷等新特性)。

自從發現了類型推斷的威力之后,我實際上越來越覺得動態類型(就是很簡潔的代碼實現功能)的動機變得越來越難以琢磨了。比如說,你可以用Scala寫一些腳本,它就會像Ruby/Groovy一樣進入”讀取-執行-打印 循環“(Read-Evaluate-Print Loop, REPL)。

但是我發這篇文章的目的并不是要挑起Scala擁護者和Ruby/Grovy/Clojure/JavaScript這些動態語言支持者之間的戰爭——我只是想讓被Java一葉障目的開發者們意識到,這個世上已經有了比Java更好的靜態類型語言:這門語言有他們所想要的全部功能(還附帶有Java最需要增強的功能)。所有這一切,都能在這門語言里用簡潔、優美的代碼表示出來(盡管這門語言和Java確定有些不太一樣,并且需要你經歷一個學習曲線)。

附錄:有關Scala編程語言的其他言論

◆Java的不足可以比作大量的毛疣,那么同樣在Scala中,這些地方正是表現了Scala的美、簡化和強大。——James Strachan

◆在一個社區(java.net booth)舉辦的和James Gosling對話會議上,一個與會者問了一個非常有意思的問題:“除了Java,現在你會把哪種語言運行于JVM之上?”。答案是驚人地快速簡潔:Scala。——Java之父James Gosling

◆我必須說Scala看起來是是現在Java王座的繼承人。其他在JVM的語言看起來不可能有Scala那樣的能力來取代Java,Scala背后的推動力是無可置疑的。Scala還不是一個動態語言,但是它有許多流行動態語言的特性,例如它的靈活富類型系統,稀疏和簡潔的語法,函數式語言和面向對象范式的完美結合。Scala的缺點:“太復雜”或者“太豐富”,但這些可以通過編碼規范很好避免,從而構建更健壯的編輯器和工具,以及指導多語言開發者明白如何更好地使用Scala。Scala是JVM上靜態語言的重生,它也像JRuby那樣延伸平臺的性能,這些都是Java做不到的。——JRuby核心開發者Charles Nutter

【相關閱讀】

  1. Scala如何改變了我的編程風格:從命令式到函數式
  2. Scala的類型系統:取代復雜的通配符
  3. Scala的類型系統 比Java更靈活
  4. Java程序員,你為什么要關注Scala
  5. Scala編程語言
責任編輯:yangsai 來源: 51CTO.com
相關推薦

2009-05-20 09:41:10

2010-08-11 08:35:00

Scala 2.8Scala創始人Martin Oder

2009-04-27 08:48:04

MySQL創始人收購

2013-10-29 09:05:30

OpenStack亞馬遜API開源云

2009-06-10 14:43:19

Scala泛型Scala編程語言

2010-05-04 16:22:45

Unix系統

2009-06-19 16:44:56

SpringJava EE

2023-12-01 14:50:57

AI破產

2010-11-22 13:53:28

史蒂夫?沃茲尼亞克iPhoneAndroid

2022-12-06 07:18:56

DedeCMS創始人林學

2012-06-14 16:21:24

LinuxLinus Torva

2011-04-29 14:30:05

2010-08-20 09:27:40

Java創始人Android

2011-08-31 08:42:24

Java創始人高司令谷歌

2020-06-28 13:55:25

黑客信息泄露漏洞

2009-11-24 09:36:34

谷歌Chrome OSAndroid

2013-04-08 10:38:00

2009-07-10 15:37:08

ScalaFan函數式編程

2011-03-29 08:57:27

Gosling谷歌Android

2012-04-02 19:17:37

蘋果
點贊
收藏

51CTO技術棧公眾號

成人激情动漫在线观看| 在线看片欧美| 91精品国产综合久久久久久 | 国产成人影院| 欧美精品vⅰdeose4hd| 欧美极品少妇无套实战| 欧洲伦理片一区 二区 三区| 日韩高清在线电影| 欧美大奶子在线| 亚洲永久精品ww.7491进入| 亚洲人成777| 欧美日韩国产综合新一区| 亚洲综合视频一区| 亚州av在线播放| 久久精品国产在热久久| 欧美亚洲另类视频| 艳妇荡乳欲伦69影片| 亚洲人成网站77777在线观看| 欧美日韩精品一区二区天天拍小说| www.xxx麻豆| 淫片在线观看| 久久视频一区二区| 99在线视频播放| 亚洲综合五月天婷婷丁香| 一区二区三区高清视频在线观看| 精品国产一区二区三区在线观看| 人妻丰满熟妇aⅴ无码| 日韩成人精品| 欧美日韩一区二区欧美激情| 激情综合在线观看| 国产精品69xx| 亚洲综合精品久久| 免费观看中文字幕| 午夜伦理在线| 国产视频亚洲色图| 欧美第一黄网| 少妇精品视频一区二区| 国产乱理伦片在线观看夜一区| 国产不卡视频在线| 自拍偷拍欧美亚洲| 最新国产拍偷乱拍精品| 欧美精品久久久久| 免费中文字幕视频| 黑人一区二区| 久久久久中文字幕| 国产大片中文字幕| 在线看片日韩| 136fldh精品导航福利| 亚洲免费在线观看av| 一本久道综合久久精品| 欧美精品激情在线| 亚洲免费激情视频| 亚洲综合国产| 国产精品扒开腿做爽爽爽视频| 日本午夜视频在线观看| 久久久久.com| 国产精品久久久久久久久久久久久久| 亚洲国产av一区二区三区| 久久久夜精品| 国产成人精品日本亚洲| 国产精品国产精品国产| 蜜桃视频免费观看一区| 国产日韩欧美综合| 99精品在线视频观看| 国产精品资源在线| 国产精品福利视频| 色呦呦免费观看| 久久久久99精品国产片| 日韩影视精品| 二区三区在线观看| 一区二区在线电影| 成人免费在线网| 女厕盗摄一区二区三区| 色老汉av一区二区三区| 色91精品久久久久久久久| 日韩在线精品强乱中文字幕| 精品国产免费一区二区三区香蕉| 88av在线播放| 欧洲杯足球赛直播| 久久精品视频免费播放| 欧美日韩精品亚洲精品| 亚洲黄色天堂| 国产精品久久久久久久久久新婚| 夜夜骚av一区二区三区| 国产激情视频一区二区三区欧美| 精品久久久久久乱码天堂| 国产高清免费在线播放| 亚洲私人黄色宅男| 日韩av综合在线观看| 色猫猫成人app| 欧美mv和日韩mv的网站| 国产sm调教视频| 中文字幕一区二区三区欧美日韩 | 精品欧美久久久| 97人妻精品一区二区三区免| 91青青国产在线观看精品| 久久久久久久色| 中文字幕一二三四| 成人一区在线观看| 亚洲高清视频一区| 黑人玩欧美人三根一起进| 色婷婷av一区| 香蕉在线观看视频| 日本精品三区| 久久久久久久影院| 亚洲天堂中文网| 成人app下载| 在线观看欧美亚洲| 欧美大片1688| 亚洲国产精品人人爽夜夜爽| 老司机精品免费视频| 亚洲美女黄网| 亚洲影影院av| 成年人在线视频免费观看| 亚洲国产婷婷综合在线精品| 久久精品免费网站| 欧美交a欧美精品喷水| 久久久国产视频91| 亚洲精品一区二区二区| 99在线精品免费| 亚洲激情免费视频| 亚洲免费一区| 在线色欧美三级视频| 草久久免费视频| 成人av先锋影音| 国产对白在线播放| 国产第一精品| 亚洲三级免费看| 日韩 欧美 综合| 国产精品一区二区无线| 亚洲日本一区二区三区在线不卡| 美脚恋feet久草欧美| 亚洲成人网av| 国产污视频在线看| 国产成人av电影在线| 手机在线视频你懂的| 国产三级一区| 伊人成人开心激情综合网| 91精品国产综合久久久蜜臀九色| 成人av免费在线| 给我免费播放片在线观看| 久久在线观看| 欧美成人性生活| av无码精品一区二区三区宅噜噜| 国产精品美女一区二区| 欧美成年人视频在线观看| 精品国产一区二区三区久久久蜜臀| 欧美一级电影在线| 日中文字幕在线| 色婷婷av一区二区三区软件| 久久久久亚洲av成人无码电影 | 91激情视频在线| 国产伦精品一区二区三区千人斩| 欧美做爰性生交视频| 撸视在线观看免费视频| 日本韩国欧美三级| 久久久久久久久福利| 久久国产精品第一页| 黄频视频在线观看| 亚洲国产中文在线| 午夜精品久久久99热福利| 婷婷在线免费观看| 精品久久久久久久中文字幕 | 奇米狠狠一区二区三区| 欧美综合在线观看| 亚洲成人三级| 欧美成人精品1314www| 日本在线视频免费| 亚洲+变态+欧美+另类+精品| 精品在线观看免费| 一级日韩一区在线观看| 韩国三级成人在线| 欧美极品少妇xxxxⅹ喷水| 欧美性猛交 xxxx| 欧美性极品xxxx娇小| 中文字幕人妻一区二区| 毛片一区二区三区| 男人j进女人j| 欧美91在线| 国产区精品视频| 欧美卡一卡二| 亚洲日本欧美日韩高观看| 中文在线免费观看| 亚洲午夜成aⅴ人片| 亚洲一区二区三区综合| 美女在线视频一区| 欧美少妇在线观看| 亚州综合一区| 亚洲自拍av在线| 亚洲欧美小说色综合小说一区| 在线观看国产精品91| a在线观看免费| 狠狠做深爱婷婷久久综合一区 | 3344国产精品免费看| 国产二区视频在线观看| 欧美大片在线观看| 中国女人真人一级毛片| 亚洲成人综合在线| 999精品视频在线观看播放 | 激情五月激情综合| 97国产一区二区| 午夜av中文字幕| 亚洲综合另类| 日本一本中文字幕| 日韩精品首页| 麻豆精品传媒视频| 国产精品一站二站| 国产精品电影久久久久电影网| 污污视频在线看| 中文字幕欧美日韩在线| 午夜视频1000| 精品国产乱码久久久久久久| 中日精品一色哟哟| 91激情在线视频| 亚欧视频在线观看| 一区二区三区波多野结衣在线观看| 一区二区三区伦理片| av不卡免费在线观看| 色婷婷狠狠18禁久久| 美女在线一区二区| 无码少妇一区二区三区芒果| 亚洲激情国产| 欧美高清中文字幕| 女主播福利一区| 亚洲成人自拍视频| 深夜福利久久| 欧美日韩国产综合视频在线| www国产精品| 成人免费看片网址| 日韩一区网站| 亚洲美女在线一区| 91pony九色| 男人的j进女人的j一区| 国产aaa一级片| 99国产精品| 免费人成自慰网站| 欧美精品偷拍| 女人色极品影院| 欧美激情日韩| 中文字幕日韩精品无码内射| 欧美oldwomenvideos| 午夜一区二区三区| 国产精品欧美日韩一区| 欧美精品一区二区三区四区五区| 校花撩起jk露出白色内裤国产精品 | 亚洲成色www久久网站| 精品产国自在拍| 奇米精品在线| 国产探花在线精品| 欧美一进一出视频| 日韩欧美视频| 干日本少妇视频| 欧美日韩福利| 欧美午夜性视频| 亚洲欧美日韩综合国产aⅴ| 水蜜桃色314在线观看| 欧美中文字幕| 日日噜噜噜噜久久久精品毛片| 日日摸夜夜添夜夜添精品视频| 亚洲爆乳无码专区| 免费高清成人在线| 被黑人猛躁10次高潮视频| 国产1区2区3区精品美女| 亚洲无人区码一码二码三码| 99re这里只有精品视频首页| 黄色在线观看av| 欧美激情一区二区三区四区 | 羞羞答答成人影院www| 欧美一级黄色录像片| 国内精品久久久久久久97牛牛| 国产 日韩 亚洲 欧美| 久久久天天操| 中文字幕亚洲影院| 成人午夜私人影院| 欧美日韩高清丝袜| 中文字幕中文字幕一区| 久久无码精品丰满人妻| 欧美日韩亚洲视频| 一级片免费观看视频| 精品国产一区二区三区四区四| 日韩a在线观看| 久久精品电影一区二区| 国产网红在线观看| 国产精品福利在线观看网址| 日本成人精品| 免费在线一区二区| 中文字幕免费精品| 91视频最新入口| 精品一区二区免费| 国产乱了高清露脸对白| 亚洲欧洲一区二区三区| 日韩精品手机在线| 8x福利精品第一导航| 天天操天天干天天爽| 色婷婷av一区二区三区在线观看| 国产夫妻在线播放| 国产成人在线亚洲欧美| 天堂精品在线视频| 日韩欧美在线电影| 在线看片欧美| 五月天国产视频| 久久久精品欧美丰满| 久草视频中文在线| 欧美日韩夫妻久久| 免费一级在线观看播放网址| 欧美久久精品一级黑人c片| 欧美大胆性生话| 国产在线一区二区三区四区| 欧美激情偷拍自拍| 国产激情在线观看视频| 99精品在线免费| 青青草原免费观看| 精品视频在线免费看| 四虎成人免费在线| 欧美丰满老妇厨房牲生活| 国产69精品久久久久按摩| 久热国产精品视频一区二区三区| 在线看片不卡| 最新国产黄色网址| 国产亚洲va综合人人澡精品| 日韩免费一级片| 欧美成人激情免费网| 亚洲麻豆精品| 国产美女高潮久久白浆| 加勒比久久综合| 欧美韩国日本在线| www.欧美亚洲| 国产成人啪精品午夜在线观看| 欧美一级精品在线| 成人黄色网址| 91精品国产综合久久香蕉最新版| 欧美精品尤物在线观看| 红桃av在线播放| 久久蜜桃av一区二区天堂| 久久青青草视频| 亚洲欧美日韩天堂一区二区| 日韩理论视频| 免费av在线一区二区| 99精品免费视频| 日韩精品人妻中文字幕有码| 亚洲国产成人高清精品| 亚洲欧美另类一区| 色综合久久久888| 在线精品视频一区| 国产一二三区在线播放| 成人网男人的天堂| xxxxxx国产| 日韩精品在线播放| 欧洲一区精品| 日本不卡在线播放| 蜜桃av一区二区三区| 国产又黄又粗的视频| 欧美日韩五月天| 国内精品久久久久国产| 亚洲中国色老太| 在线日韩视频| 精品无码在线视频| 色菇凉天天综合网| 91大神xh98hx在线播放| 成人免费xxxxx在线观看| 欧美国产另类| 私密视频在线观看| 欧美亚洲国产一区二区三区va| 婷婷在线视频| 成人高清在线观看| 午夜一级久久| 欧美xxxx精品| 日韩丝袜情趣美女图片| 55av亚洲| 一区二区不卡在线视频 午夜欧美不卡' | 欧美亚洲在线视频| 日韩欧美一区二区三区在线视频 | 日韩区一区二| 欧美一区二区三区爽大粗免费| 国产日韩av一区二区| 一二三四区在线| 欧美激情一级欧美精品| 亚洲第一二三区| 亚洲天堂国产视频| 亚洲国产日韩一级| 国产www.大片在线| 3d动漫啪啪精品一区二区免费 | 亚洲一区av在线| 三级国产在线观看| 成人激情黄色网| 日韩亚洲在线| 成年人看的免费视频| 精品免费国产一区二区三区四区| 韩国成人动漫| 日韩在线视频在线| 国产婷婷精品av在线| 亚洲经典一区二区三区| 国产精品成久久久久三级 | 欧美激情综合色| 欧美女王vk| 亚洲欧美综合视频| 欧美日韩在线播放一区| 成人免费图片免费观看| 午夜啪啪福利视频| 欧美高清在线视频|