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

探秘Java 7:JVM動態語言支持詳解

原創
開發 后端
Java 7中最引人注目的新功能之一就是對動態語言的支持。JVM的動態語言支持基于JSR 292,這一支持的關鍵在于增加了新的 Java 字節碼,invokedynamic。本文詳細介紹了動態語言支持的情況。

51CTO推薦專題:Java 7,下一代Java開發平臺詳解

【51CTO精選譯文】JDK 7 增加了對 JSR 292 的支持,在 JVM 中動態類型語言的運行速度將變得更快。這一支持的關鍵在于增加了新的 Java 字節碼,invokedynamic,它用于方法調用,還有新的連接機制,其中包含了一個新的構造:方法句柄(method handle)。此次JDK 7在動態語言支持上的更新是Java平臺發展的重要趨勢之一,在今年6月的JavaOne大會上,這些基于Java平臺的動態語言也十分的活躍。詳情可參考51CTO之前對JavaOne 2009的報導。

動態類型語言和 JVM

JVM 可以執行 Java 程序,將其編譯機器獨立的字節碼。事實上,任何可以使用有效 class 文件表述的功能性語言,都可以運行在 JVM 上。

多年來,運作在 JVM 上語言一直在增加,從 Armed Bear for Common Lisp 到Yoix。動態語言的 JVM 實現也越來越多,比如 JRuby 和 Jython,以及 Groovy 腳本語言。

動態語言的靈活性,尤其是腳本語言,對于實驗性、原型應用程序以及需頻繁更新的程序,都具有獨特的吸引力。這種靈活性源自動態類型。動態類型語言中運行時(runtime)驗證程序中的值是否與預期類型一致,相對的,靜態類型語言,如 Java,是在編譯期間檢查變量類型,而不是值類型。值得一提的是,Java 平臺上另一個前景很被看好的靜態語言就是Scala:包括Java之父和Groovy創始人在內的很多開發者都很看好Scala這個強類型的、可擴展性良好的靜態語言。

通常,動態類型比靜態類型更具靈活性,因為前者允許程序根據運行時的數據生成類型。不過靜態類型語言的執行更為高效,因為它能夠在編譯期間排除錯誤。

動態類型固有的靈活性與 JVM 的執行效率,合二為一。很明顯,這就是它能夠吸引動態編程語言創建者以及使用這些語言構建應用程序的開發者的原因。

JSR 223  動態語言支持的***步

JSR 223: Scripting for the Java Platform 是將動態語言引入 JVM 的***步,它是一個規范,定義了從動態腳本語言代碼訪問 Java 代碼的 API 接口。它還指定了一個 framework 框架,用戶在 Java 應用程序中運行腳本引擎。該規范及其實現使得包含 Java 和腳本代碼的應用程序的創建更為容易。

動態類型語言的問題

為運行在 JVM 上的動態類型語言開發引擎,必須滿足 JVM 所執行的 Java 字節碼的要求,而字節碼專為靜態類型語言設計。對于引擎開發者,當生成字節碼用于方法調用,這種設計一直都是棘手的難點。

方法調用的字節碼要求

靜態類型語言中編譯時進行類型檢查,意味著方法調用,以及它生成的字節碼,需要知道該方法返回的值類型,以及調用中指定的參數類型。

下面為一段 Java 代碼:

  1. String s = "Hello World";   
  2. System.out.println(s); 

這里參數類型是已知的。System.out.println()并不返回值,如果方法返回值,需要指定返回值的類型。

以上代碼相應的字節碼如下:

  1. ldc #2   
  2. astore_1   
  3. getstatic #3   
  4. aload_1 invokevirtual #4 // Method java/io/PrintStream.println:(I)V 

JVM 中字節碼的執行通常包含對操作對象棧(operand stack)中值的操作。操作棧是一個相當于硬件寄存器的虛擬機。通常,字節碼會指示 JVM 局部值壓入操作對象棧,將值從棧中取出放進局部變量中,復制或交換棧中的值,或者執行生成或使用值的操作。

請看 invokevirtual 一行,它調用了一個方法,而不是對操作對象棧進行操作。從該行注釋,我們可以看到,它指出了以下信息:

◆提供方法的接收器(receiver)類:java.io.PrintStream
◆方法名稱:println
◆方法參數類型:(I) 表示 Integer
◆方法返回值: V 表示 void

這些信息相當于方法的簽名。JVM 查找具有該簽名的方法,在這里,就是 java.io.PrintStream 類中的 println:(I)V。如果該方法不在那個類中,JVM 將在類的子類中繼續查找。

滿足要求所進行的拙劣嘗試

為了讓動態類型語言滿足字節碼對方法調用的要求,已經有了多種嘗試,但沒有一種是理想的。

以下面的代碼為例:

  1. function max (x,y) {  
  2.   if x.lessThan(y) then y else x   
  3.  } 

接收器和參數都沒有指定類型,而對于動態類型語言,直到運行時才提供類型信息,因此,以上代碼未能滿足方法調用需提前獲悉類型的要求,也就不能在 Java 平臺上成功地編譯為字節碼。

問題的解決方法之一是為返回值和方法參數創建虛假的(synthetic)Java 類型。在這里,虛假表示非真實存在。例如,動態類型語言在實現是可能將代碼更改為:

  1. Interface50 function max (Interface 51 x,Interface52 y) {  
  2.  if x.lessThan(y) then y else x   
  3.  } 

類型 Interface 51 和 Interface52 并不存在,只是為了滿足相應的要求而指定。

另一種方法成為映射調用(relfected invocation),使用 java.lang.reflect.Method 對象調用方法,而避開直接調用方法。這樣也就繞開了指定類型的要求。

第三種方法是為動態語言的實現創建一個獨特的方法調用解釋器(interpreter),以運行在 JVM 上。

虛假類型滿足了 Java 字節碼的要求。但這種方法不但繁復而且會帶來問題。如果動態語言引擎需要更改,相應的實現器(implementer)必須重新創建虛假 Java 類型,這種操作常會出錯。

運行調用也有其自身的局限。例如,java.lang.reflect.Method 對象提供了動態語言所需的方法訪問,但對象必須是運行時可用的特定 Java 類型。雖然,動態語言可以在運行期間提供類型信息,但不是都可以通過用戶映射的規范 Java 類型。

JSR 292 —— 動態語言支持的下一步

JSR 292 為 JVM 引入了一個新的 Java 字節碼指令,invokedynamic,以及一個新的方法連接機制。

方法調用的字節碼指令

Java 虛擬機規范指定了 4 個字節碼,用于方法調用:

◆invokevirtual
◆invokeinterface
◆invokestatic
◆invokespecial

新的 invokedynamic 指令

新的 invokedynamic 字節碼指令的語法與 invokeinterface 指令類似:

  1. invokedynamic < method-specification> < n> 

但,它的 < method-specification> 只需指定方法名稱,對描述符的***要求是它應引用非空對象。

invokeinterface 字節碼指令差不多是這樣的:

  1. invokedynamic #10
  2. //DynamicMethod java/lang/Object.lessThan:(Ljava/lang/Object;) 

重要的是,invokedynamic 字節碼指令運行動態語言的實現器(implementer)將方法調用編譯為字節碼,而不必指定目標的類型,該目標包含了方法、調用的返回類型或方法參數類型。這些類型對于執行指令的 JVM 不必是已知的。但如果未提供接收器的類型,JVM 如何找到該方法?畢竟,JVM 需要連接并調用真實類型上的真實方法。答案在于,JSR 292 還包含了一個新的動態類型語言的連接機制。JVM 使用新的連接機制獲取所需的方法。

新的動態連接機制:方法句柄(method handle)

JDK 7 包含了新包,java.dyn,其中包含了與在 Java 平臺中動態語言支持相關的類。其中一個類為 MethodHandle。方法句柄是類型 java.dyn.MethodHandle 的一個簡單對象,該對象包含一個 JVM 方法的匿名引用。

新連接機制還包含一個引導方法(bootstrap 方法),它是一個方法句柄,決定了調用現場(call site)調用的目標方法。調用現場是調用指令的實例,在本節中,它就是 invokedynamic 字節碼指令的實例。包含 invokedynamic 指令的每個類都必須指定引導方法。

JVM ***次遇到具有接收器和參數的 invokedynamic 字節碼時,它調用引導方法。調用語言支持的方法,可以使用術語 up-call 來描述。

引導方法反過來選擇相應的目標方法句柄。然后 JVM 將該方法句柄引用的方法與 invokedynamic 字節碼關聯起來。JVM 下次遇到具有相同接收器和參數的 invokedynamic 字節碼時,它將立即調用之前所選的方法。

方法句柄相當簡單,僅包含一個描述特定類型的類型令牌(type toke)。此外,方法句柄隱式地包含一個與其關聯的 invoke 方法。要調用方法句柄,你需要調用它的 invoke 方法,與調用對象方法類似,即 MethodHandle.invoke(...)。由于每個方法句柄都具有其自身的類型,因此,它只接受那個類型的 invoke 調用。如果調用的類型與方法句柄的類型不匹配,方法句柄將返回異常。

方法句柄 

總之,方法句柄提供了一種連接機制,它能夠讓 JVM 根據 invokedynamic 字節碼指令調用正確的方法。但 JVM 遇到 invokedynamic 字節碼時,它將使用方法句柄獲得所需的方法。請注意,相對于映射調用,方法句柄提供了一種更好的方式,來滿足方法調用的字節碼要求。相較而言,方法句柄提供了一種命名和連接方法的方式,而無需考慮方法類型或位置,而且這種方式具有完善的類型安全和本地的執行速度。

通過接口注入(interface injection)在運行時修改類

接口注入能夠在運行時修改類,這樣類就可以構建新的接口。對于動態類型語言,尤其是基本語言,這是一個常見的功能。但它不屬于 JVM 標準的一部分。該功能還處于調研階段,以便加入 JSR 292 中。

在 JVM 中支持接口注入,運行時語言將可以推薦新的功能,以模塊化的方式供其自身使用。例如,假設 JVM 在運行的語言的類或類集合需要串行化的類型,而它尚未在該語言實現。運行時該語言可以定義一個串行定義為可注入的接口。它還可以定義一個注入方法。該方法定義該語言將為哪個類指定新的串行能力。對相關對象調用該注入方法,就可以完成注入。利用接口注入,可以使 JVM 中的動態類型語言很方便地與 JVM 中其他語言進行整合。

總結

多年來,在 JVM 上運行的語言越來越多。在 JVM 中支持動態類型語言,對于使用動態語言的開發者非常具有吸引力。因為,動態類型讓開發者更具靈活性,而且 JVM 具有更好的執行效率。但是,對于動態類型語言,滿足方法調用的字節碼的要求非常困難。為了應對這一難題,JSR 292 提供了新的字節碼 invokedynamic 以及新的基于方法句柄的連接機制。此外,目前還在進行調研在 JSR 292 中引入接口注入,它能夠在運行修改類,從而可以實現新的接口。

原文:New JDK 7 Feature: Support for Dynamically Typed Languages in the Java Virtual Machine

作者:Ed Ort

【編輯推薦】

  1. JavaOne揭示Java領域的幾大趨勢 向多語言發展
  2. Java語言將淡出 JVM寶座爭奪戰預熱
  3. 7月編程語言排行榜:Java,正在老去的王者
  4. JVM的動態語言支持:為新一代流行語言鋪平道路
  5. 基于JVM的語言正在開始流行
責任編輯:yangsai 來源: 51CTO.com
相關推薦

2009-06-15 16:21:05

Java虛擬機動態語言支持

2010-06-22 11:07:42

JDK 7Java開發Java

2009-06-10 16:09:56

netbeans ru動態語言

2024-07-26 10:23:52

2009-03-04 10:11:58

StringsjavaSun

2010-07-30 09:09:07

JVM動態語言Groovy

2009-08-24 08:37:52

Windows 7防火墻

2009-12-23 09:23:17

Groovy 1.7

2021-02-22 21:49:33

Vue動態組件

2009-12-24 09:19:48

JVMJRubyEngineYard

2010-03-01 18:26:25

Python

2011-07-29 09:31:32

JDK 7

2020-05-08 16:55:48

Java虛擬機JVM

2010-02-03 18:06:42

Python語言

2010-02-22 18:25:07

2009-06-14 21:54:37

動態語言Java腳本API

2009-03-08 19:10:57

Windows 7多語言

2009-07-24 09:41:45

Java 7 G1垃圾回收器

2011-05-20 09:35:22

JDK7

2010-12-01 15:28:19

ProbeVueJava
點贊
收藏

51CTO技術棧公眾號

日韩av网站大全| 亚洲午夜影视影院在线观看| 国产精品丝袜一区二区三区| 性生交大片免费全黄| 国产一区二区高清在线| 午夜精品123| 日本在线播放一区| 精品国产亚洲AV| 先锋影音久久久| 日韩在线视频线视频免费网站| 一级黄色免费毛片| 中文在线最新版地址| 中文字幕中文在线不卡住| 国产精品一区二区不卡视频| 最新中文字幕免费| 亚洲二区精品| 日韩视频免费在线| 日本一区二区三区网站| 欧美一级做a| 五月天久久比比资源色| 亚洲自拍偷拍二区| 午夜在线视频观看| 国产精品99久久久久久久vr | 亚洲精品一二三区区别| 亚洲国产精品电影| 国产精品igao网网址不卡| 刘亦菲一区二区三区免费看| 亚洲最大的成人av| 亚洲日本精品| 黄色av网站在线看| 成人高清在线视频| 96精品久久久久中文字幕| 一级成人黄色片| 欧美精品偷拍| 日韩中文有码在线视频| 九色porny自拍视频| 日韩成人精品| 欧美乱妇一区二区三区不卡视频 | 玖玖玖国产精品| 欧美精品国产精品日韩精品| 国产人与禽zoz0性伦| 精品国产中文字幕第一页| 亚洲成在人线av| 337p日本欧洲亚洲大胆张筱雨 | 国产精品99免费看| 久久色免费在线视频| 日本成人午夜影院| 激情五月色综合国产精品| 亚洲国产精品va在线看黑人动漫| 香蕉视频免费网站| 日日夜夜精品视频| 精品日韩成人av| 免费在线观看日韩av| 成人自拍视频| 日韩一区二区三区在线| 不卡中文字幕在线观看| 深夜日韩欧美| 欧美高清视频不卡网| 亚洲精品午夜在线观看| 久久久久毛片| 欧美日韩高清在线播放| 天天干天天爽天天射| 8av国产精品爽爽ⅴa在线观看| 日本久久一区二区| 亚洲性生活网站| 欧美美女被草| 欧美高清性hdvideosex| 91亚洲一区二区| 视频欧美一区| 亚洲国产精品va在线看黑人动漫 | 欧美国产第二页| 男女免费视频网站| 在线综合亚洲| 国产精品黄色影片导航在线观看| 中文字幕av第一页| 精品伊人久久久久7777人| 91夜夜揉人人捏人人添红杏| 午夜精品久久久久久久91蜜桃| 成人免费黄色大片| 欧美日韩国产精品一卡| av网站在线播放| 亚洲精品欧美在线| 缅甸午夜性猛交xxxx| 成人美女大片| 欧美日韩国产综合一区二区| 91网址在线观看精品| youjizz欧美| 亚洲男人天堂九九视频| 国产wwwwxxxx| 国产一区日韩一区| 国产suv精品一区二区三区88区| 国产精品无码粉嫩小泬| 国产一区二区看久久| 国产亚洲精品自在久久| 成人动漫在线播放| 一区二区欧美精品| aaaaaa亚洲| 国色天香久久精品国产一区| 日韩成人中文字幕在线观看| 日本污视频网站| 国产精品草草| 国产精品露脸自拍| 欧美少妇bbw| 亚洲国产成人自拍| 男人添女荫道口图片| 影音成人av| 精品国产一区二区国模嫣然| 无码少妇精品一区二区免费动态| 欧美日韩午夜| 国产精品偷伦一区二区| 色综合免费视频| 中文字幕在线免费不卡| 97成人在线观看视频| 国产精品久一| 国产一区二区三区毛片| 日本一区二区欧美| 精品无人区卡一卡二卡三乱码免费卡 | 香蕉成人影院| 亚洲国产精品久久久久秋霞蜜臀 | 无码精品一区二区三区在线播放| 色135综合网| 欧美怡红院视频一区二区三区| 国产免费高清视频| 国产色爱av资源综合区| 日韩少妇内射免费播放| 日韩高清一区| 美女精品久久久| 中文字幕码精品视频网站| 91日韩在线专区| 亚洲 自拍 另类小说综合图区| **精品中文字幕一区二区三区| 亚洲欧美日本另类| 国产综合精品视频| 99久久精品国产导航| 日本香蕉视频在线观看| 久久综合给合| 不卡av日日日| 国产人妖一区二区| 国产精品天干天干在观线| 小泽玛利亚av在线| 久久天堂av| 亚洲人成在线观看网站高清| 久久香蕉精品视频| 国产专区欧美精品| 亚洲.欧美.日本.国产综合在线| 偷拍精品精品一区二区三区| 日韩精品999| 国产在线一区视频| 国产高清无密码一区二区三区| 神马影院一区二区| 菠萝蜜视频在线观看www入口| 日韩一区二区在线看片| 五月综合色婷婷| 蜜臀精品一区二区三区在线观看| 国产一区自拍视频| 免费在线观看的电影网站| 欧美精品日韩一本| 杨钰莹一级淫片aaaaaa播放| 麻豆成人91精品二区三区| 日韩精品一线二线三线| 国产精品久久久久av电视剧| 日韩精品小视频| 国产欧美日韩另类| 99re成人在线| 大陆极品少妇内射aaaaa| 欧美交a欧美精品喷水| 欧美激情精品久久久久久| 91国产精品一区| 一区二区免费在线| 污污免费在线观看| 亚洲国产专区| 精品亚洲欧美日韩| 性欧美xxx69hd高清| 一区三区二区视频| 做爰视频毛片视频| 国产精品福利一区二区三区| 欧美激情第3页| 五月婷婷六月综合| 国产美女精品在线观看| 91av久久| 亚洲欧美日韩在线一区| 无码久久精品国产亚洲av影片| 中文字幕 久热精品 视频在线| 小泽玛利亚视频在线观看| 亚洲成人日韩| 99热国产免费| 涩涩网在线视频| 亚洲无av在线中文字幕| 精品国产999久久久免费| 亚洲午夜精品一区二区三区他趣| 欧美夫妇交换xxx| 久久青草久久| 永久域名在线精品| 成人av激情人伦小说| 日本精品一区二区三区在线| av午夜在线| 日韩免费高清视频| 在线观看黄网站| 国产精品久久久久久久裸模| www.桃色.com| 亚洲毛片网站| 色播亚洲婷婷| 日韩一二三区| 欧美专区在线观看| 在线观看免费视频你懂的| 亚洲精品日韩欧美| 中文字幕 人妻熟女| 亚洲精品网站在线观看| 日本69式三人交| 国产专区欧美精品| 久久国产精品网| 精品国精品国产自在久国产应用| 亚洲www永久成人夜色| 日韩欧美一起| 日韩综合视频在线观看| 少妇高潮一区二区三区69| 欧美性大战久久久久久久 | 欧美少妇另类| 欧美一区二区性放荡片| 日日噜噜噜噜人人爽亚洲精品| 国产精品高潮呻吟| 精品国产av色一区二区深夜久久| 久久精品国产一区二区三区免费看| 免费极品av一视觉盛宴| 精品一级毛片| 成人h在线播放| 嫩呦国产一区二区三区av| 国产精品1234| 国产美女高潮在线| 久久亚洲综合国产精品99麻豆精品福利 | 国产成人精品av在线| 黄色在线论坛| 久久九九国产精品怡红院| 精品久久久久一区二区三区| 精品国内片67194| 国产又粗又黄又爽| 欧美日韩国产免费一区二区| 亚洲天堂一区在线| 亚洲成人自拍一区| 精品一区在线观看视频| 国产午夜精品一区二区三区嫩草| 久久久久亚洲av成人网人人软件| 久久国产人妖系列| 爱情岛论坛成人| 久久久久久夜| 麻豆传传媒久久久爱| 免费日韩一区二区| 国内精品视频一区二区三区| 欧美日韩精品| 成人国产在线看| 国内揄拍国内精品久久| 免费在线精品视频| 99久久婷婷这里只有精品| 日韩高清av| 日韩影院二区| 一本色道久久综合亚洲精品婷婷| 欧美日韩国产一区二区三区不卡| 日本不卡一二三区| 精品视频97| 亚洲一区三区视频在线观看| 精品视频亚洲| 亚洲精品美女久久7777777| 久久99性xxx老妇胖精品| 视频三区二区一区| 久久社区一区| 中文字幕一区二区三区四区五区人 | 欧美日韩精品三区| 中文字幕乱码在线观看| 欧美三级电影在线看| 中文字幕网址在线| 欧美日韩一区三区四区| 99久久精品国产一区二区成人| 91精品国产综合久久福利软件| 91麻豆成人精品国产| 在线播放一区二区三区| 六月婷婷中文字幕| 日韩精品视频免费专区在线播放| 神马久久高清| 中文国产亚洲喷潮| 在线观看av的网站| 欧美精品videofree1080p| 国产资源在线观看入口av| 欧美激情视频播放| 三级在线观看视频| 国产一区二区在线播放| 久久久久毛片免费观看| 高清视频在线观看一区| 欧美交a欧美精品喷水| 中文字幕一区二区三区在线乱码| 国产精品久久久久久久| 国产免费一区二区视频| 久久精品日产第一区二区| 另类小说第一页| 国产精品18久久久久久久网站| 无码国产精品一区二区免费式直播| 91亚洲精华国产精华精华液| 无码少妇精品一区二区免费动态| 亚洲自拍偷拍九九九| 日本熟女毛茸茸| 欧美精品xxxxbbbb| 无码国产色欲xxxx视频| 欧美人在线视频| 澳门成人av网| 亚洲free性xxxx护士白浆| 欧美午夜网站| 亚洲国产一区二区精品视频| 亚洲不卡av不卡一区二区| 日本丰满少妇xxxx| 美女脱光内衣内裤视频久久影院| 精品影片一区二区入口| 国产精品狼人久久影院观看方式| 日本一区二区网站| 欧美日韩免费一区二区三区| 免费国产在线观看| 久久99久久久久久久噜噜| 亚洲高清黄色| av在线亚洲男人的天堂| 我不卡影院28| 青青在线视频免费| 成人深夜视频在线观看| 国产成人在线网址| 欧美色中文字幕| 免费a视频在线观看| 久久韩剧网电视剧| 欲香欲色天天天综合和网| 国产麻豆一区二区三区在线观看| 色小子综合网| 国产二区视频在线播放| 成人丝袜视频网| h色网站在线观看| 在线观看视频一区二区欧美日韩| 国产综合视频在线| 欧美激情视频播放| 国产亚洲久久| 亚洲国产一区二区三区在线播| 国产欧美一区二区色老头| xxxx黄色片| 亚洲最大色网站| 国产jzjzjz丝袜老师水多| 精品国产一区二区在线| 日韩成人动漫| 久久精品99久久| 在线视频观看日韩| 999精品免费视频| 一级女性全黄久久生活片免费| 一级黄色片免费看| 亚洲欧美另类中文字幕| 美女色狠狠久久| 欧美日韩精品久久久免费观看| 一区二区黄色| 波多野结衣影院| 午夜精品福利一区二区三区av| a级片在线免费看| 久久久国产精品视频| 久久久久九九精品影院| 日本丰满大乳奶| 精东粉嫩av免费一区二区三区| 97超碰在线资源| 欧美色爱综合网| 69久久久久| 国产原创欧美精品| 欧美日韩国内| 日韩大尺度视频| 亚洲一区二区三区自拍| av加勒比在线| 97在线看福利| 亚洲精品aaaaa| 天天影视综合色| 亚洲欧洲综合另类在线| 国产成a人亚洲精v品无码| 操日韩av在线电影| 久久99成人| 91午夜在线观看| 91一区二区三区在线播放| 免费看污视频的网站| 精品国产视频在线| 国产精品一级在线观看| 久久久久久久久久久综合| 91麻豆精品在线观看| 国产一区二区视频免费| 日韩视频―中文字幕| 国产成人免费精品| av日韩在线看| 2019国产精品| 性高潮视频在线观看| 欧美大片在线看免费观看| 黄色欧美在线| 91看片就是不一样| 亚洲精品一卡二卡| 天堂av资源网| 国产99久久精品一区二区| 欧美色就是色| 国产精品九九视频| 日本韩国精品在线| 精产国品自在线www| 久久国产手机看片| 国内精品国产三级国产a久久| 免费无码毛片一区二区app| 亚洲欧美激情视频| 精品国产乱码一区二区三区 |