久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

深度解析JVM

發布時間:2024/2/28 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度解析JVM 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

每個Java開發者都知道Java字節碼是執行在JRE(Java?Runtime?Environment?Java運行時環境)上的。JRE中最重要的部分是Java虛擬機JVM),JVM負責分析和執行Java字節碼。Java開發人員并不需要去關心JVM是如何運行的。在沒有深入理解JVM的情況下,許多開發者已經開發出了非常多的優秀的應用以及Java類庫。不過,如果你了解JVM的話,你會更加了解Java的,并且你會輕松解決那些看似簡單但是無從下手的問題。

  因此,在這篇文件里,我會闡述JVM是如何運行的,包括它的結構,它如何去執行字節碼,以及按照怎樣的順序去執行,同時我還會給出一些常見錯誤的示例以及對應的解決辦法。最后,我還會講解Java?7中的一些新特性。

?

虛擬機(Virtual?Machine)

?

  JRE是由Java?APIJVM組成的。JVM的主要作用是通過Class?Loader來加載Java程序,并且按照Java?API來執行加載的程序。

  虛擬機是通過軟件的方式來模擬實現的機器(比如說計算機),它可以像物理機一樣運行程序。設計虛擬機的初衷是讓Java能夠通過它來實現WORA(Write?Once?Run?Anywhere?一次編譯,到處運行),盡管這個目標現在已經被大多數人忽略了。因此,JVM可以在不修改Java代碼的情況下,在所有的硬件環境上運行Java字節碼。

  Java虛擬機的特點如下:

·?基于棧的虛擬機:Intel?x86ARM這兩種最常見的計算機體系的機構都是基于寄存器的。不同的是,JVM是基于棧的。

·?符號引用:除了基本類型以外的數據(類和接口)都是通過符號來引用,而不是通過顯式地使用內存地址來引用。

·?垃圾回收機制:類的實例都是通過用戶代碼進行創建,并且自動被垃圾回收機制進行回收。

·?通過對基本類型的清晰定義來保證平臺獨立性:傳統的編程語言,例如C/C++int類型的大小取決于不同的平臺。JVM通過對基本類型的清晰定義來保證它的兼容性以及平臺獨立性。

·?網絡字節碼順序:Java?class文件用網絡字節碼順序來進行存儲:為了保證和小端的Intel?x86架構以及大端的RISC系列的架構保持無關性,JVM使用用于網絡傳輸的網絡字節順序,也就是大端。

  雖然是Sun公司開發了Java,但是所有的開發商都可以開發并且提供遵循Java虛擬機規范的JVM。正是由于這個原因,使得Oracle?HotSpotIBM?JVM等不同的JVM能夠并存。GoogleAndroid系統里的Dalvik?VM也是一種JVM,雖然它并不遵循Java虛擬機規范。和基于棧的Java虛擬機不同,Dalvik?VM是基于寄存器的架構,因此它的Java字節碼也被轉化成基于寄存器的指令集。

?

Java字節碼(Java?bytecode)

?

  為了保證WORAJVM使用Java字節碼這種介于Java和機器語言之間的中間語言。字節碼是部署Java代碼的最小單位。

  在解釋Java字節碼之前,我們先通過實例來簡單了解它。這個案例是一個在開發環境出現的真實案例的總結。

?現象

  一個一直運行正常的應用突然無法運行了。在類庫被更新之后,返回下面的錯誤。

[java]?view?plaincopy

?

1?Exception?in?thread?"main"?java.lang.NoSuchMethodError:?com.nhn.user.UserAdmin.addUser(Ljava/lang/String;)V??

2?????at?com.nhn.service.UserService.add(UserService.java:14)??

3?????at?com.nhn.service.UserService.main(UserService.java:19)??

  應用的代碼如下,而且它沒有被改動過。

[java]?view?plaincopy

?

4?//?UserService.java??

5?…??

6?public?void?add(String?userName)?{??

7?????admin.addUser(userName);??

8?}??

  更新后的類庫的源代碼和原始的代碼如下。

[java]?view?plaincopy

?

9?//?UserAdmin.java?-?Updated?library?source?code??

10?…??

11?public?User?addUser(String?userName)?{??

12?????User?user?=?new?User(userName);??

13?????User?prevUser?=?userMap.put(userName,?user);??

14?????return?prevUser;??

15?}??

16?//?UserAdmin.java?-?Original?library?source?code??

17?…??

18?public?void?addUser(String?userName)?{??

19?????User?user?=?new?User(userName);??

20?????userMap.put(userName,?user);??

21?}??

  簡而言之,之前沒有返回值的addUser()被改修改成返回一個User類的實例的方法。不過,應用的代碼沒有做任何修改,因為它沒有使用addUser()的返回值。咋一看,com.nhn.user.UserAdmin.addUser()方法似乎仍然存在,如果存在的話,那么怎么還會出現NoSuchMethodError的錯誤呢?

?原因

  上面問題的原因是在于應用的代碼沒有用新的類庫來進行編譯。換句話來說,應用代碼似乎是調了正確的方法,只是沒有使用它的返回值而已。不管怎樣,編譯后的class文件表明了這個方法是有返回值的。你可以從下面的錯誤信息里看到答案。

[java]?view?plaincopy

?

22?java.lang.NoSuchMethodError:?com.nhn.user.UserAdmin.addUser(Ljava/lang/String;)V??

  NoSuchMethodError出現的原因是“com.nhn.user.UserAdmin.addUser(Ljava/lang/String;)V”方法找不到。注意一下”Ljava/lang/String;”和最后面的“V”。Java字節碼的表達式里,”L<classname>;”表示的是類的實例。這里表示addUser()方法有一個java/lang/String的對象作為參數。在這個類庫里,參數沒有被改變,所以它是正常的。最后面的“V”表示這個方法的返回值。在Java字節碼的表達式里,”V”表示沒有返回值(Void)。綜上所述,上面的錯誤信息是表示有一個java.lang.String類型的參數,并且沒有返回值的com.nhn.user.UserAdmin.addUser方法沒有找到。

  因為應用是用之前的類庫編譯的,所以返回值為空的方法被調用了。但是在修改后的類庫里,返回值為空的方法不存在,并且添加了一個返回值為“Lcom/nhn/user/User”的方法。因此,就出現了NoSuchMethodError。

注:

這個錯誤出現的原因是因為開發者沒有用新的類庫來重新編譯應用。不過,出現這種問題的大部分責任在于類庫的提供者。這個public的方法本來沒有返回值的,但是后來卻被修改成返回User類的實例。很明顯,方法的簽名被修改了,這也表明了這個類庫的后向兼容性被破壞了。因此,這個類庫的提供者應該告知使用者這個方法已經被改變了。

?  我們再回到Java字節碼上來。Java字節碼JVM很重要的部分。JVM是模擬執行Java字節碼的一個模擬器。Java編譯器不會直接把高級語言(例如C/C++)編寫的代碼直接轉換成機器語言(CPU指令);它會把開發者可以理解的Java語言轉換成JVM能夠理解的Java字節碼。因為Java字節碼本身是平臺無關的,所以它可以在任何安裝了JVM(確切地說,是相匹配的JRE)的硬件上執行,即使是在CPUOS都不相同的平臺上(在Windows?PC上開發和編譯的字節碼可以不做任何修改就直接運行在Linux機器上)。編譯后的代碼的大小和源代碼大小基本一致,這樣就可以很容易地通過網絡來傳輸和執行編譯后的代碼。

  Java?class文件是一種人很難去理解的二進文件。為了便于理解它,JVM提供者提供了javap,反匯編器。使用javap產生的結果是Java匯編語言。在上面的例子中,下面的Java匯編代碼是通過javap?-cUserServiceadd()方法進行反匯編得到的。

[java]?view?plaincopy

?

23?public?void?add(java.lang.String);??

24???Code:??

25????0:???aload_0??

26????1:???getfield????????#15;?//Field?admin:Lcom/nhn/user/UserAdmin;??

27????4:???aload_1??

28????5:???invokevirtual???#23;?//Method?com/nhn/user/UserAdmin.addUser:(Ljava/lang/String;)V??

29????8:???return??

  在這段Java匯編代碼中,addUser()方法是在第四行的“5:invokevitual#23″進行調用的。這表示對應索引為23的方法會被調用。索引為23的方法的名稱已經被javap給注解在旁邊了。invokevirtual是Java字節碼里調用方法的最基本的操作碼。Java字節碼里,有四種操作碼可以用來調用一個方法,分別是:invokeinterfaceinvokespecialinvokestatic以及invokevirtual操作碼的作用分別如下:

·?invokeinterface:?調用一個接口方法

·?invokespecial:?調用一個初始化方法,私有方法或者父類的方法

·?invokestatic:調用靜態方法

·?invokevirtual:調用實例方法

  Java字節碼的指令集由操作碼和操作數組成。類似invokevirtual這樣的操作數需要2個字節的操作數。

  用更新過的類庫來編譯上面的應用代碼,然后反編譯它,將會得到下面的結果。

[java]?view?plaincopy

?

30?public?void?add(java.lang.String);??

31???Code:??

32????0:???aload_0??

33????1:???getfield????????#15;?//Field?admin:Lcom/nhn/user/UserAdmin;??

34????4:???aload_1??

35????5:???invokevirtual???#23;?//Method?com/nhn/user/UserAdmin.addUser:(Ljava/lang/String;)Lcom/nhn/user/User;??

36????8:???pop??

37????9:???return??

  你會發現,對應索引為23的方法被替換成了一個返回值為”Lcom/nhn/user/User”的方法。

  在上面的反匯編代碼里,代碼前面的數字代碼什么呢?

  它表示的是字節偏移。大概這就是為什么運行在JVM上面的代碼成為Java“字節”碼的原因。簡而言之,Java字節碼指令的操作碼,例如aload_0getfieldinvokevirtual等,都是用一個字節的數字來表示的(aload_0=0x2a,getfield=0xb4,invokevirtual=0xb6)。由此可知Java字節碼指令的操作碼最多有256個。

  aload_0aload_1這樣的指令不需要任何操作數。因此,aload_0指令的下一個字節是下一個指令的操作碼。不過,getfieldinvokevirtual指令需要2字節的操作數。因此,getfiled的下一條指令是跳過兩個字節,寫在第四個字節的位置上的。十六進制編譯器里查看字節碼的結果如下所示。

[plain]?view?plaincopy

?

38?2a?b4?00?0f?2b?b6?00?17?57?b1??

  在Java字節碼里,類的實例用字母“L;”表示,void?用字母“V”表示。通過這種方式,其他的類型也有對應的表達式。下面的表格對此作了總結。

表一:Java字節碼中的類型表達式

Java?Bytecode

Type

Description

B

byte

signed?byte

C

char

Unicode?character

D

double

double-precision?floating-point?value

F

float

single-precision?floating-point?value

I

int

integer

J

long

long?integer

L<classname>

reference

an?instance?of?class?<classname>

S

short

signed?short

Z

boolean

true?or?false

[

reference

one?array?dimension

  下面的表格給出了字節碼表達式的幾個實例。

表二:Java字節碼表達式范例

Java?Code

Java?Bytecode?Expression

double?d[?][?][?];

[[[D

Object?mymethod(int?I,?double?d,?Thread?t)

(IDLjava/lang/Thread;)Ljava/lang/Object;

  想了解更多細節的話,參考《The?java?Virtual?Machine?Specification,第二版》中的“4.3?Descriptors"。想了解更多的Java字節碼的指令的話,參考《The?Java?Virtual?Machined?Instruction?Set》的“6.The?Java?Virtual?Machine?Instruction?Set"

?

Class文件格式

?

  在講解Java?class文件格式之前,我們先看看一個在Java?Web應用中經常出現的問題。

現象

  當我們編寫完jsp代碼,并且在Tomcat運行時,Jsp代碼沒有正常運行,而是出現了下面的錯誤。

[java]?view?plaincopy

?

39?Servlet.service()?for?servlet?jsp?threw?exception?org.apache.jasper.JasperException:?Unable?to?compile?class?for?JSP?Generated?servlet?error:??

40?The?code?of?method?_jspService(HttpServletRequest,?HttpServletResponse)?is?exceeding?the?65535?bytes?limit"??

原因

  在不同的Web服務器上,上面的錯誤信息可能會有點不同,不過有有一點肯定是相同的,它出現的原因是65535字節的限制。這個65535字節的限制是JVM規范里的限制,它規定了一個方法的大小不能超過65535字節。

  下面我會更加詳細地講解這個65535字節限制的意義以及它出現的原因。

  Java字節碼里的分支和跳轉指令分別是”goto""jsr"

[java]?view?plaincopy

?

41?goto?[branchbyte1]?[branchbyte2]??

42?jsr?[branchbyte1]?[branchbyte2]??

  這兩個指令都接收一個2字節的有符號的分支跳轉偏移量做為操作數,因此偏移量最大只能達到65535。不過,為了支持更多的跳轉,Java字節碼提供了"goto_w""jsr_w"這兩個可以接收4字節分支偏移的指令。

[java]?view?plaincopy

?

43?goto_w?[branchbyte1]?[branchbyte2]?[branchbyte3]?[branchbyte4]??

44?jsr_w?[branchbyte1]?[branchbyte2]?[branchbyte3]?[branchbyte4]??

  有了這兩個指令,索引超過65535的分支也是可用的。因此,Java方法的65535字節的限制就可以解除了。不過,由于Java?class文件的更多的其他的限制,使得Java方法還是不能超過65535字節。

  為了展示其他的限制,我會簡單講解一下class?文件的格式。

  Java?class文件的大致結構如下:

[java]?view?plaincopy

?

45?ClassFile?{??

46?????u4?magic;??

47?????u2?minor_version;??

48?????u2?major_version;??

49?????u2?constant_pool_count;??

50?????cp_info?constant_pool[constant_pool_count-1];??

51?????u2?access_flags;??

52?????u2?this_class;??

53?????u2?super_class;??

54?????u2?interfaces_count;??

55?????u2?interfaces[interfaces_count];??

56?????u2?fields_count;??

57?????field_info?fields[fields_count];??

58?????u2?methods_count;??

59?????method_info?methods[methods_count];??

60?????u2?attributes_count;??

61?????attribute_info?attributes[attributes_count];}??

  上面的內容是來自《The?Java?Virtual?Machine?Specification,Second?Edition》的4.1節“The?ClassFile?Structure"。

  之前反匯編的UserService.class文件反匯編的結果的前16個字節在十六進制編輯器中如下所示:

  ca?fe?ba?be?00?00?00?32?00?28?07?00?02?01?00?1b

  通過這些數值,我們可以來看看class文件的格式。

·??magicclass文件最開始的四個字節是魔數。它的值是用來標識Java?class文件的。從上面的內容里可以看出,魔數的值是0xCAFEBABE。簡而言之,只有一個文件的起始4字節是0xCAFEBABE的時候,它才會被當作Java?class文件來處理。

·??minor_version,major_version接下來的四個字節表示的是class文件的版本。UserService.class文件里的是0x00000032,所以這個class文件的版本是50.0。JDK?1.6編譯的class文件的版本是50.0JDK?1.5編譯出來的class文件的版本是49.0JVM必須對低版本的class文件保持后向兼容性,也就是低版本的class文件可以運行在高版本的JVM上。不過,反過來就不行了,當一個高版本的class文件運行在低版本的JVM上時,會出現java.lang.UnsupportedClassVersionError的錯誤。

·?constant_pool_count,constant_pool[]在版本號之后,存放的是類的常量池。這里保存的信息將會放入運行時常量池(Runtime?Constant?Pool)中去,這個后面會講解的。在加載一個class文件的時候,JVM會把常量池里的信息存放在方法區的運行時常量區里。UserService.class文件里的constant_pool_count的值是0x0028,這表示常量池里有39(40-1)個常量。

·??access_flags這是表示一個類的描述符的標志;換句話說,它表示一個類是public,final還是abstract以及是不是接口的標志。

·??this_class,?super_class:?The?index?in?the?constant_pool?for?the?class?corresponding?to?this?and?super,?respectively.

·??interfaces_count,?interfaces[]:?The?index?in?the?the?constant_pool?for?the?number?of?interfaces?implemented?by?the?class?and?each?interface.

·??fields_count,fields[]當前類的成員變量的數量以及成員變量的信息。成員變量的信息包含變量名,類型,修飾符以及變量在constant_pool里的索引。

·??methods_count,methods[]:當前類的方法數量以及方法的信息。方法的信息包含方法名,參數的數量和類型,返回值的類型,修飾符,以及方法在constant_pool里的索引,方法的可執行代碼以及異常信息。

·??attributes_count,attributes[]attribution_info結構包含不同種類的屬性。field_infomethod_info里都包含了attribute_info結構。

  javap簡要地給出了class文件的一個可讀形式。當你用"java?-verbose"命令來分析UserService.class時,會輸出如下的內容:

[java]?view?plaincopy

?

62?Compiled?from?"UserService.java"??

63????

64?public?class?com.nhn.service.UserService?extends?java.lang.Object??

65???SourceFile:?"UserService.java"??

66???minor?version:?0??

67???major?version:?50??

68???Constant?pool:const?#1?=?class????????#2;?????//??com/nhn/service/UserService??

69?const?#2?=?Asciz????????com/nhn/service/UserService;??

70?const?#3?=?class????????#4;?????//??java/lang/Object??

71?const?#4?=?Asciz????????java/lang/Object;??

72?const?#5?=?Asciz????????admin;??

73?const?#6?=?Asciz????????Lcom/nhn/user/UserAdmin;;//?…?omitted?-?constant?pool?continued???

74????

75?{??

76?//?…?omitted?-?method?information???

77????

78?public?void?add(java.lang.String);??

79???Code:??

80????Stack=2,?Locals=2,?Args_size=2??

81????0:???aload_0??

82????1:???getfield????????#15;?//Field?admin:Lcom/nhn/user/UserAdmin;??

83????4:???aload_1??

84????5:???invokevirtual???#23;?//Method?com/nhn/user/UserAdmin.addUser:(Ljava/lang/String;)Lcom/nhn/user/User;??

85????8:???pop??

86????9:???return??LineNumberTable:??

87????line?14:?0??

88????line?15:?9??LocalVariableTable:??

89????Start??Length??Slot??Name???Signature??

90????0??????10??????0????this???????Lcom/nhn/service/UserService;??

91????0??????10??????1????userName???????Ljava/lang/String;?//?…?Omitted?-?Other?method?information???

92?}??

  javap輸出的內容太長,我這里只是提出了整個輸出的一部分。整個的輸出展示了constant_pool里的不同信息,以及方法的內容。

  關于方法的65565字節大小的限制是和method_info?struct相關的。method_info結構包含Code,LineNumberTable,以及LocalViriable?attribute幾個屬性,這個在“javap?-verbose"的輸出里可以看到。Code屬性里的LineNumberTableLocalVariableTable以及exception_table的長度都是用一個固定的2字節來表示的。因此,方法的大小是不能超過LineNumberTableLocalVariableTable以及exception_table的長度的,它們都是65535字節。

  許多人都在抱怨方法的大小限制,而且在JVM規范里還說名了”這個長度以后有可能會是可擴展的“。不過,到現在為止,還沒有為這個限制做出任何動作。從JVM規范里的把class文件里的內容直接拷貝到方法區這個特點來看,要想在保持后向兼容性的同時來擴展方法區的大小是非常困難的。
  如果因為Java編譯器的錯誤而導致class文件的錯誤,會怎么樣呢?或者,因為網絡傳輸的錯誤導致拷貝的class文件的損壞呢?

  為了預防這種場景,Java的類裝載器通過一個嚴格而且慎密的過程來校驗class文件。在JVM規范里詳細地講解了這方面的內容。

注意

我們怎樣能夠判斷JVM正確地執行了class文件校驗的所有過程呢?我們怎么來判斷不同提供商的不同JVM實現是符合JVM規范的呢?為了能夠驗證以上兩點,Oracle提供了一個測試工具TCK(Technology?Compatibility?Kit)這個TCK工具通過執行成千上萬的測試用例來驗證一個JVM是否符合規范,這些測試里面包含了各種非法的class文件。只有通過了TCK的測試的JVM才能稱作JVM。

TCK相似,有一個組織JCP(Java?Community?Process;http://jcp.org)負責Java規范以及新的Java技術規范。對于JCP而言,如果要完成一項Java規范請求(Java?Specification?Request,?JSR)的話,需要具備規范文檔,可參考的實現以及通過TCK測試。任何人如果想使用一項申請JSR的新技術的話,他要么使用RI提供許可的實現,要么自己實現一個并且保證通過TCK的測試。

?

JVM結構

?

  ?Java編寫的代碼會按照下圖的流程來執行:


圖?1:?Java代碼執行流程

  類裝載器裝載負責裝載編譯后的字節碼,并加載到運行時數據區(Runtime?Data?Area),然后執行引擎執行會執行這些字節碼。

?

類加載器(Class?Loader

?

  Java提供了動態的裝載特性;它會在運行時的第一次引用到一個class的時候對它進行裝載和鏈接,而不是在編譯期進行。JVM的類裝載器負責動態裝載。Java類裝載器有如下幾個特點:

·??層級結構:Java里的類裝載器被組織成了有父子關系的層級結構。Bootstrap類裝載器是所有裝載器的父親。

·?代理模式:基于層級結構,類的裝載可以在裝載器之間進行代理。當裝載器裝載一個類時,首先會檢查它是否在父裝載器中進行裝載了。如果上層的裝載器已經裝載了這個類,這個類會被直接使用。反之,類裝載器會請求裝載這個類。

·?可見性限制:一個子裝載器可以查找父裝載器中的類,但是一個父裝載器不能查找子裝載器里的類。

·?不允許卸載:類裝載器可以裝載一個類但是不可以卸載它,不過可以刪除當前的類裝載器,然后創建一個新的類裝載器。

  每個類裝載器都有一個自己的命名空間用來保存已裝載的類。當一個類裝載器裝載一個類時,它會通過保存在命名空間里的類全局限定名(Fully?Qualified?Class?Name)進行搜索來檢測這個類是否已經被加載了。如果兩個類的全局限定名是一樣的,但是如果命名空間不一樣的話,那么它們還是不同的類。不同的命名空間表示class被不同的類裝載器裝載。

  下圖展示了類裝載器的代理模型。


圖?2:?類加載器代理模型

  當一個類裝載器(class?loader)被請求裝載類時,它首先按照順序在上層裝載器、父裝載器以及自身的裝載器的緩存里檢查這個類是否已經存在。簡單來說,就是在緩存里查看這個類是否已經被自己裝載過了,如果沒有的話,繼續查找父類的緩存,直到在bootstrap類裝載器里也沒有找到的話,它就會自己在文件系統里去查找并且加載這個類。

·?啟動類加載器(Bootstrap?class?loader):這個類裝載器是在JVM啟動的時候創建的。它負責裝載Java?API,包含Object對象。和其他的類裝載器不同的地方在于這個裝載器是通過native?code來實現的,而不是用Java代碼。

·?擴展類加載器(Extension?class?loader:它裝載除了基本的Java?API以外的擴展類。它也負責裝載其他的安全擴展功能。

·?系統類加載器(System?class?loader):如果說bootstrap?class?loaderextension?class?loader負責加載的是JVM的組件,那么system?class?loader負責加載的是應用程序類。它負責加載用戶在$CLASSPATH里指定的類。

·?用戶自定義類加載器(User-defined?class?loader:這是應用程序開發者用直接用代碼實現的類裝載器。

?  類似于web應用服務(WAS)之類的框架會用這種結構來對Web應用和企業級應用進行分離。換句話來說,類裝載器的代理模型可以用來保證不同應用之間的相互獨立。WAS類裝載器使用這種層級結構,不同的WAS供應商的裝載器結構有稍許區別。

  如果類裝載器查找到一個沒有裝載的類,它會按照下圖的流程來裝載和鏈接這個類:


圖?3:?類加載的各個階段

  每個階段的描述如下:

·??Loading類的信息從文件中獲取并且載入到JVM的內存里。

·??Verifying檢查讀入的結構是否符合Java語言規范以及JVM規范的描述。這是類裝載中最復雜的過程,并且花費的時間也是最長的。并且JVM?TCK工具的大部分場景的用例也用來測試在裝載錯誤的類的時候是否會出現錯誤。

·?Preparing分配一個結構用來存儲類信息,這個結構中包含了類中定義的成員變量,方法和接口的信息。

·?Resolving把這個類的常量池中的所有的符號引用改變成直接引用。

·?Initializing把類中的變量初始化成合適的值。執行靜態初始化程序,把靜態變量初始化成指定的值。

  JVM規范定義了上面的幾個任務,不過它允許具體執行的時候能夠有些靈活的變動。

?

運行時數據區(Runtime?Data?Areas)

?

圖?4:?運行時數據區

  運行時數據區是在JVM運行的時候操作系統所分配的內存區。運行時內存區可以劃分為6個區域。在這6個區域中,一個PC?Register,JVM?stack?以及Native?Method?Statck都是按照線程創建的,Heap,Method?Area以及Runtime?Constant?Pool都是被所有線程公用的。

·??PC寄存器(PC?register):每個線程啟動的時候,都會創建一個PCProgram?Counter,程序計數器)寄存器。PC寄存器里保存有當前正在執行的JVM指令的地址。

·?JVM?堆棧(JVM?stack):每個線程啟動的時候,都會創建一個JVM堆棧。它是用來保存棧幀的。JVM只會在JVM堆棧上對棧幀進行pushpop的操作。如果出現了異常,堆棧跟蹤信息的每一行都代表一個棧幀立的信息,這些信息是通過類似于printStackTrace()這樣的方法來展示的。

圖?5:?JVM堆棧

  ---?棧幀(stack?frame):每當一個方法在JVM上執行的時候,都會創建一個棧幀,并且會添加到當前線程的JVM堆棧上。當這個方法執行結束的時候,這個棧幀就會被移除。每個棧幀里都包含有當前正在執行的方法所屬類的本地變量數組,操作數棧,以及運行時常量池的引用。本地變量數組的和操作數棧的大小都是在編譯時確定的。因此,一個方法的棧幀的大小也是固定不變的。

  ---?局部變量數組(Local?variable?array):這個數組的索引從0開始。索引為0的變量表示這個方法所屬的類的實例。從1開始,首先存放的是傳給該方法的參數,在參數后面保存的是方法的局部變量。

  ---?操作數棧(Operand?stack):方法實際運行的工作空間。每個方法都在操作數棧和局部變量數組之間交換數據,并且壓入或者彈出其他方法返回的結果。操作數棧所需的最大空間是在編譯期確定的。因此,操作數棧的大小也可以在編譯期間確定。

·??本地方法棧(Native?method?stack):供用非Java語言實現的本地方法的堆棧。換句話說,它是用來調用通過JNI(Java?Native?Interface?Java本地接口)調用的C/C++代碼。根據具體的語言,一個C堆?;蛘?/span>C++堆棧會被創建。

·??方法區(Method?area):方法區是所有線程共享的,它是在JVM啟動的時候創建的。它保存所有被JVM加載的類和接口的運行時常量池,成員變量以及方法的信息,靜態變量以及方法的字節碼。JVM的提供者可以通過不同的方式來實現方法區。在Oracle?HotSpot?JVM里,方法區被稱為永久區或者永久代(PermGen)。是否對方法區進行垃圾回收對JVM的實現是可選的。

·???運行時常量池(Runtime?constant?pool):這個區域和class文件里的constant_pool是相對應的。這個區域是包含在方法區里的,不過,對于JVM的操作而言,它是一個核心的角色。因此在JVM規范里特別提到了它的重要性。除了包含每個類和接口的常量,它也包含了所有方法和變量的引用。簡而言之,當一個方法或者變量被引用時,JVM通過運行時常量區來查找方法或者變量在內存里的實際地址。

·?堆(Heap):用來保存實例或者對象的空間,而且它是垃圾回收的主要目標。當討論類似于JVM性能之類的問題時,它經常會被提及。JVM提供者可以決定怎么來配置堆空間,以及不對它進行垃圾回收。

  現在我們再回過頭來看看之前反匯編的字節碼。

[java]?view?plaincopy

?

93?public?void?add(java.lang.String);??

94???Code:??

95????0:???aload_0??

96????1:???getfield????????#15;?//Field?admin:Lcom/nhn/user/UserAdmin;??

97????4:???aload_1??

98????5:???invokevirtual???#23;?//Method?com/nhn/user/UserAdmin.addUser:(Ljava/lang/String;)Lcom/nhn/user/User;??

99????8:???pop??

100????9:???return??

  把上面的反匯編代碼和我們平時所見的x86架構的匯編代碼相比較,我們會發現這兩者的結構有點相似,都使用了操作碼;不過,有一點不同的地方是Java字節碼并不會在操作數里寫入寄存器的名稱、內存地址或者偏移量。之前已經說過,JVM用的是棧,它不會使用寄存器。和使用寄存器的x86架構不同,它自己負責內存的管理。它用索引例如1523來代替實際的內存地址。1523都是當前類(這里是UserService類)的常量池里的索引。簡而言之,JVM為每個類創建了一個常量池,并且這個常量池里保存了實際目標的引用。

  每行反匯編代碼的解釋如下:

·??aload_0:?把局部變量數組中索引為#0的變量添加到操作數棧上。索引#0所表示的變量是this,即是當前實例的引用。

·?getfield?#15:?把當前類的常量池里的索引為#15的變量添加到操作數棧。這里添加的是UserAdminadmin成員變量。因為admin變量是個類的實例,因此添加的是一個引用。

·?aload_1:?把局部變量數組里的索引為#1的變量添加到操作數棧。來自局部變量數組里的索引為1的變量是方法的一個參數。因此,在調用add()方法的時候,會把userName指向的String的引用添加到操作數棧上。

·?invokevirtual?#23:?調用當前類的常量池里的索引為#23的方法。這個時候,通過getfileaload_1添加到操作數棧上的引用都被作為方法的參數。當方法運行完成并且返回時,它的返回值會被添加到操作數棧上。

·??pop:?把通過invokevirtual調用的方法的返回值從操作數棧里彈出來。你可以看到,在前面的例子里,用老的類庫編譯的那段代碼是沒有返回值的。簡而言之,正因為之前的代碼沒有返回值,所以沒必要吧把返回值從操作數棧上給彈出來。

·??return:結束當前方法調用。

  下圖可以幫助你更好地理解上面的內容。


6:?裝載到運行時數據區的Java字節碼示例

  順便提一下,在這個方法里,局部變量數組沒有被修改。所以上圖只顯示了操作數棧的變化。不過,大部分的情況下,局部變量數組也是會改變的。局部變量數組和操作數棧之間的數據傳輸是使用通過大量的load指令(aload,iload)store指令(astore,istore)來實現的。

  在這個圖里,我們簡單驗證了運行時常量池和JVM棧的描述。當JVM運行的時候,每個類的實例都會在堆上進行分配,UserUserAdminUserService以及String等類的信息都會保存在方法區。

?

執行引擎(Execution?Engine

?

  通過類裝載器裝載的,被分配到JVM的運行時數據區的字節碼會被執行引擎執行。執行引擎以指令為單位讀取Java字節碼。它就像一個CPU一樣,一條一條地執行機器指令。每個字節碼指令都由一個1字節的操作碼和附加的操作數組成。執行引擎取得一個操作碼,然后根據操作數來執行任務,完成后就繼續執行下一條操作碼。

  不過Java字節碼是用一種人類可以讀懂的語言編寫的,而不是用機器可以直接執行的語言。因此,執行引擎必須把字節碼轉換成可以直接被JVM執行的語言。字節碼可以通過以下兩種方式轉換成合適的語言。

·?解釋器:一條一條地讀取,解釋并且執行字節碼指令。因為它一條一條地解釋和執行指令,所以它可以很快地解釋字節碼,但是執行起來會比較慢。這是解釋執行的語言的一個缺點。字節碼這種“語言”基本來說是解釋執行的。

·?即時(Just-In-Time)編譯器:即時編譯器被引入用來彌補解釋器的缺點。執行引擎首先按照解釋執行的方式來執行,然后在合適的時候,即時編譯器把整段字節碼編譯成本地代碼。然后,執行引擎就沒有必要再去解釋執行方法了,它可以直接通過本地代碼去執行它。執行本地代碼比一條一條進行解釋執行的速度快很多。編譯后的代碼可以執行的很快,因為本地代碼是保存在緩存里的。

  不過,用JIT編譯器來編譯代碼所花的時間要比用解釋器去一條條解釋執行花的時間要多。因此,如果代碼只被執行一次的話,那么最好還是解釋執行而不是編譯后再執行。因此,內置了JIT編譯器的JVM都會檢查方法的執行頻率,如果一個方法的執行頻率超過一個特定的值的話,那么這個方法就會被編譯成本地代碼。


圖?7:Java編譯器和JIT編譯器

  JVM規范沒有定義執行引擎該如何去執行。因此,JVM的提供者通過使用不同的技術以及不同類型的JIT編譯器來提高執行引擎的效率。

  大部分的JIT編譯器都是按照下圖的方式來執行的:


圖?8:?JIT編譯器

  JIT編譯器把字節碼轉換成一個中間層表達式,一種中間層的表示方式,來進行優化,然后再把這種表示轉換成本地代碼。

  Oracle?Hotspot?VM使用一種叫做熱點編譯器的JIT編譯器。它之所以被稱作”熱點“是因為熱點編譯器通過分析找到最需要編譯的“熱點”代碼,然后把熱點代碼編譯成本地代碼。如果已經被編譯成本地代碼的字節碼不再被頻繁調用了,換句話說,這個方法不再是熱點了,那么Hotspot?VM會把編譯過的本地代碼從cache里移除,并且重新按照解釋的方式來執行它。Hotspot?VM分為Server?VMClient?VM兩種,這兩種VM使用不同的JIT編譯器。


Figure?9:?Hotspot?Client?VM?and?Server?VM

?

  Client?VM?Server?VM使用完全相同的運行時,不過如上圖所示,它們所使用的JIT編譯器是不同的。Server?VM用的是更高級的動態優化編譯器,這個編譯器使用了更加復雜并且更多種類的性能優化技術。

  IBM?IBM?JDK?6里不僅引入了JIT編譯器,它同時還引入了AOT(Ahead-Of-Time)編譯器。它使得多個JVM可以通過共享緩存來共享編譯過的本地代碼。簡而言之,通過AOT編譯器編譯過的代碼可以直接被其他JVM使用。除此之外,IBM?JVM通過使用AOT編譯器來提前把代碼編譯器成JXEJava?EXecutable)文件格式來提供一種更加快速的執行方式。

  大部分Java程序的性能都是通過提升執行引擎的性能來達到的。正如JIT編譯器一樣,很多優化的技術都被引入進來使得JVM的性能一直能夠得到提升。最原始的JVM和最新的JVM最大的差別之處就是在于執行引擎。

  Hotspot編譯器在1.3版本的時候就被引入到Oracle?Hotspot?VM里了,JIT編譯技術在Anroid?2.2版本的時候被引入到Dalvik?VM里。

  注意:

  引入一種中間語言,例如字節碼,虛擬機執行字節碼,并且通過JIT編譯器來提升JVM的性能的這種技術以及廣泛應用在使用中間語言的編程語言上。例如微軟的.NetCLRCommon?Language?Runtime?公共語言運行時),也是一種VM,它執行一種被稱作CILCommon?Intermediate?Language)的字節碼。CLR提供了AOT編譯器和JIT編譯器。因此,用C#或者VB.NET編寫的源代碼被編譯后,編譯器會生成CIL并且CIL會執行在有JIT編譯器的CLR上。CLRJVM相似,它也有垃圾回收機制,并且也是基于堆棧運行。

?

Java虛擬機規范,Java?SE?7

?

  2011728日,Oracle發布了Java?SE的第7個版本,并且把JVM規也更新到了相應的版本。在1999年發布《The?Java?Virtual?Machine?Specification,Second?Edition》后,Oracle花了12年來發布這個更新的版本。這個更新的版本包含了這12年來累積的眾多變化以及修改,并且更加細致地對規范進行了描述。此外,它還反映了《The?Java?Language?Specificaion,Java?SE?7?Edition》里的內容。主要的變化總結如下:

·?來自Java?SE?5.0里的泛型,支持可變參數的方法

·?從Java?SE?6以來,字節碼校驗的處理技術所發生的改變

·?添加invokedynamic指令以及class文件對于該指令的支持

·?刪除了關于Java語言概念的內容,并且指引讀者去參考Java語言規范

·??刪除關于Java線程和鎖的描述,并且把它們移到Java語言規范里

  最大的改變是添加了invokedynamic指令。也就是說JVM的內部指令集做了修改,使得JVM開始支持動態類型的語言,這種語言的類型不是固定的,例如腳本語言以及來自Java?SE?7里的Java語言。之前沒有被用到的操作碼186被分配給新指令invokedynamic,而且class文件格式里也添加了新的內容來支持invokedynamic指令。

  Java?SE?7的編譯器生成的class文件的版本號是51.0Java?SE?6的是50.0。class文件的格式變動比較大,因此,51.0版本的class文件不能夠在Java?SE?6的虛擬機上執行。

  盡管有了這么多的變動,但是Java方法的65535字節的限制還是沒有被去掉。除非class文件的格式徹底改變,否者這個限制將來也是不可能去掉的。

  值得說明的是,Oracle?Java?SE?7?VM支持G1這種新的垃圾回收機制,不過,它被限制在Oracle?JVM上,因此,JVM本身對于垃圾回收的實現不做任何限制。也因此,在JVM規范里沒有對它進行描述。

?

switch語句里的String

?

  Java?SE?7里添加了很多新的語法和特性。不過,在Java?SE?7的版本里,相對于語言本身而言,JVM沒有多少的改變。那么,這些新的語言特性是怎么來實現的呢?我們通過反匯編的方式來看看switch語句里的String(把字符串作為switch()語句的比較對象)是怎么實現的?

  例如,下面的代碼:

[java]?view?plaincopy

?

101?//?SwitchTest??

102?public?class?SwitchTest?{??

103?????public?int?doSwitch(String?str)?{??

104?????????switch?(str)?{??

105?????????case?"abc":????????return?1;??

106?????????case?"123":????????return?2;??

107?????????default:?????????return?0;??

108?????????}??

109?????}??

110?}??

  因為這是Java?SE?7的一個新特性,所以它不能在Java?SE?6或者更低版本的編譯器上來編譯。用Java?SE?7javac來編譯。下面是通過javap?-c來反編譯后的結果。

[java]?view?plaincopy

?

111?C:Test>javap?-c?SwitchTest.classCompiled?from?"SwitchTest.java"??

112?public?class?SwitchTest?{??

113???public?SwitchTest();??

114?????Code:??

115????????0:?aload_0??

116????????1:?invokespecial?#1??????????????????//?Method?java/lang/Object."<init>":()V??

117????????4:?return??public?int?doSwitch(java.lang.String);??

118?????Code:??

119????????0:?aload_1??

120????????1:?astore_2??

121????????2:?iconst_m1??

122????????3:?istore_3??

123????????4:?aload_2??

124????????5:?invokevirtual?#2??????????????????//?Method?java/lang/String.hashCode:()I??

125????????8:?lookupswitch??{?//?2??

126??????????????????48690:?50??

127??????????????????96354:?36??

128????????????????default:?61??

129???????????}??

130???????36:?aload_2??

131???????37:?ldc???????????#3??????????????????//?String?abc??

132???????39:?invokevirtual?#4??????????????????//?Method?java/lang/String.equals:(Ljava/lang/Object;)Z??

133???????42:?ifeq??????????61??

134???????45:?iconst_0??

135???????46:?istore_3??

136???????47:?goto??????????61??

137???????50:?aload_2??

138???????51:?ldc???????????#5??????????????????//?String?123??

139???????53:?invokevirtual?#4??????????????????//?Method?java/lang/String.equals:(Ljava/lang/Object;)Z??

140???????56:?ifeq??????????61??

141???????59:?iconst_1??

142???????60:?istore_3??

143???????61:?iload_3??

144???????62:?lookupswitch??{?//?2??

145??????????????????????0:?88??

146??????????????????????1:?90??

147????????????????default:?92??

148???????????}??

149???????88:?iconst_1??

150???????89:?ireturn??

151???????90:?iconst_2??

152???????91:?ireturn??

153???????92:?iconst_0??

154???????93:?ireturn??

  在#5#8字節處,首先是調用了hashCode()方法,然后它作為參數調用了switch(int)。在lookupswitch的指令里,根據hashCode的結果進行不同的分支跳轉。字符串“abc"hashCode96354,它會跳轉到#36處。字符串”123“的hashCode48690,它會跳轉到#50處。生成的字節碼的長度比Java源碼長多了。首先,你可以看到字節碼里用lookupswitch指令來實現switch()語句。不過,這里使用了兩個lookupswitch指令,而不是一個。如果反編譯的是針對Intswitch()語句的話,字節碼里只會使用一個lookupswitch指令。也就是說,針對stringswitch語句被分成用兩個語句來實現。留心標號為#5#39#53的指令,來看看switch()語句是如何處理字符串的。

  在第#36#37#39,以及#42字節的地方,你可以看見str參數被equals()方法用來和字符串“abc”進行比較。如果比較的結果是相等的話,‘0’會被放入到局部變量數組的索引為#3的位置,然后跳抓轉到第#61字節。

  在第#50#51#53,以及#56字節的地方,你可以看見str參數被equals()方法用來和字符串“123”進行比較。如果比較的結果是相等的話,'1’會被放入到局部變量數組的索引為#3的位置,然后跳轉到第#61字節。

  在第#61#62字節的地方,局部變量數組里索引為#3的值,這里是'0',‘1’或者其他的值,被lookupswitch用來進行搜索并進行相應的分支跳轉。

  換句話來說,Java代碼里的用來作為switch()的參數的字符串str變量是通過hashCode()equals()方法來進行比較,然后根據比較的結果,來執行swtich()語句。

  在這個結果里,編譯后的字節碼和之前版本的JVM規范沒有不兼容的地方。Java?SE?7的這個用字符串作為switch參數的特性是通過Java編譯器來處理的,而不是通過JVM來支持的。通過這種方式還可以把其他的Java?SE?7的新特性也通過Java編譯器來實現。

?

總結

?

  我不認為為了使用好Java必須去了解Java底層的實現。許多沒有深入理解JVM的開發者也開發出了很多非常好的應用和類庫。不過,如果你更加理解JVM的話,你就會更加理解Java,這樣你會有助于你處理類似于我們前面的案例中的問題。

  除了這篇文章里提到的,JVM還是用了其他的很多特性和技術。JVM規范提供的是一種擴展性很強的規范,這樣就使得JVM的提供者可以選擇更多的技術來提高性能。值得特別說明的一點是,垃圾回收技術被大多數使用虛擬機的語言所使用。不過,由于這個已經在很多地方有更加專業的研究,我這篇文章就沒有對它進行深入講解了。

  對于熟悉韓語的朋友,如果你想要深入理解JVM的內部結構的話,我推薦你參考《Java?Performance?Fundamental》(Hando?Kim,Seoul,EXEM,2009)。這本書是用韓文寫的,更適合你去閱讀。我在寫這本書的時候,參考了JVM規范,同時也參考了這本書。對于熟悉英語的朋友,你可以找到大量的關于Java性能的書籍。

  By?Se?Hoon?Park,?Messaging?Platform?Development?Team,?NHN?Corporation

總結

以上是生活随笔為你收集整理的深度解析JVM的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产成人午夜福利在线播放 | 国产av一区二区精品久久凹凸 | 日韩亚洲欧美中文高清在线 | 麻豆精品国产精华精华液好用吗 | 影音先锋中文字幕无码 | 天堂а√在线地址中文在线 | 久久午夜无码鲁丝片午夜精品 | 成熟人妻av无码专区 | 精品久久综合1区2区3区激情 | 精品一区二区三区无码免费视频 | 亚洲日韩av片在线观看 | 377p欧洲日本亚洲大胆 | 人妻少妇精品无码专区动漫 | 国产免费久久久久久无码 | 波多野结衣av在线观看 | 亚洲男人av香蕉爽爽爽爽 | 人妻少妇精品久久 | 欧美大屁股xxxxhd黑色 | 2020久久超碰国产精品最新 | 国内老熟妇对白xxxxhd | 免费人成在线观看网站 | 亚洲自偷自偷在线制服 | 精品成人av一区二区三区 | 午夜精品久久久内射近拍高清 | 久久久久国色av免费观看性色 | 国产免费无码一区二区视频 | 国产又爽又猛又粗的视频a片 | 免费看少妇作爱视频 | 日韩精品无码一本二本三本色 | 荫蒂被男人添的好舒服爽免费视频 | 欧美xxxx黑人又粗又长 | 国产色视频一区二区三区 | 狠狠综合久久久久综合网 | 亚洲区欧美区综合区自拍区 | 亚洲精品国偷拍自产在线麻豆 | 双乳奶水饱满少妇呻吟 | 国产美女极度色诱视频www | 国产精品成人av在线观看 | 搡女人真爽免费视频大全 | 夜精品a片一区二区三区无码白浆 | 东京热男人av天堂 | 1000部啪啪未满十八勿入下载 | 300部国产真实乱 | 午夜丰满少妇性开放视频 | 国内揄拍国内精品人妻 | 无码av岛国片在线播放 | 一本大道伊人av久久综合 | 丝袜美腿亚洲一区二区 | 99在线 | 亚洲 | 久久精品国产一区二区三区肥胖 | 久久久无码中文字幕久... | 丰满少妇熟乱xxxxx视频 | 欧美性猛交xxxx富婆 | 精品 日韩 国产 欧美 视频 | 久久人人爽人人爽人人片ⅴ | 超碰97人人射妻 | 成 人影片 免费观看 | 狠狠综合久久久久综合网 | 日产国产精品亚洲系列 | 内射白嫩少妇超碰 | 国产精品对白交换视频 | 日韩欧美群交p片內射中文 | 欧美精品国产综合久久 | 亚洲成a人一区二区三区 | 一本久道久久综合婷婷五月 | 日韩精品成人一区二区三区 | 九月婷婷人人澡人人添人人爽 | 成人免费无码大片a毛片 | 久久久久av无码免费网 | 国产精品久久福利网站 | 水蜜桃色314在线观看 | 亚洲一区二区三区含羞草 | 午夜成人1000部免费视频 | 国产内射爽爽大片视频社区在线 | 欧美老人巨大xxxx做受 | 妺妺窝人体色www婷婷 | 红桃av一区二区三区在线无码av | 国产成人精品优优av | 日本精品人妻无码免费大全 | 少妇无码av无码专区在线观看 | 国产精品久久久av久久久 | 色妞www精品免费视频 | 又粗又大又硬毛片免费看 | 亚洲成a人片在线观看日本 | 成人欧美一区二区三区黑人 | 亚洲精品国产a久久久久久 | 亚洲中文字幕久久无码 | 蜜桃无码一区二区三区 | 国产两女互慰高潮视频在线观看 | 亚洲国产精品一区二区第一页 | 国产精品成人av在线观看 | www国产亚洲精品久久网站 | 呦交小u女精品视频 | 国产 精品 自在自线 | 在线欧美精品一区二区三区 | 性欧美牲交xxxxx视频 | 欧美人与禽猛交狂配 | 精品国产一区av天美传媒 | 成人精品视频一区二区三区尤物 | 久久久婷婷五月亚洲97号色 | 国产av一区二区精品久久凹凸 | 18禁黄网站男男禁片免费观看 | 免费人成在线视频无码 | 福利一区二区三区视频在线观看 | 国产午夜亚洲精品不卡下载 | 久久综合九色综合欧美狠狠 | 国产内射爽爽大片视频社区在线 | 久久人人爽人人爽人人片ⅴ | 欧美日韩一区二区综合 | 日本精品人妻无码免费大全 | 久久久久久久久888 | 超碰97人人做人人爱少妇 | www成人国产高清内射 | 中国女人内谢69xxxxxa片 | 精品一区二区三区波多野结衣 | 国产成人无码av一区二区 | 国产人妻精品一区二区三区不卡 | 色一情一乱一伦 | 国产精品毛多多水多 | 少妇人妻av毛片在线看 | 亚洲成熟女人毛毛耸耸多 | 国产精品香蕉在线观看 | 精品人人妻人人澡人人爽人人 | 日韩 欧美 动漫 国产 制服 | 国产热a欧美热a在线视频 | 激情亚洲一区国产精品 | 好男人社区资源 | 久久精品国产99精品亚洲 | 中文字幕乱码中文乱码51精品 | 亚洲成av人片在线观看无码不卡 | 亚洲无人区一区二区三区 | 玩弄中年熟妇正在播放 | 奇米影视7777久久精品人人爽 | 老子影院午夜伦不卡 | 综合人妻久久一区二区精品 | 亚洲日本一区二区三区在线 | 丰满少妇女裸体bbw | 成人无码精品1区2区3区免费看 | 永久免费观看美女裸体的网站 | 国产av人人夜夜澡人人爽麻豆 | 俺去俺来也在线www色官网 | 欧美精品国产综合久久 | 欧美人与牲动交xxxx | 精品国产av色一区二区深夜久久 | 丰腴饱满的极品熟妇 | 国产精品人妻一区二区三区四 | 少妇的肉体aa片免费 | 国产suv精品一区二区五 | 熟妇人妻无乱码中文字幕 | 国产艳妇av在线观看果冻传媒 | 亚洲中文字幕在线观看 | 天下第一社区视频www日本 | 久久久中文字幕日本无吗 | 国产xxx69麻豆国语对白 | 免费无码午夜福利片69 | 精品无码国产一区二区三区av | 亚洲色成人中文字幕网站 | 人人妻人人澡人人爽欧美一区九九 | 九九综合va免费看 | 亚洲一区二区观看播放 | 天天摸天天碰天天添 | 亚洲欧美日韩成人高清在线一区 | 国产成人一区二区三区别 | 免费无码午夜福利片69 | 久久亚洲a片com人成 | 麻豆av传媒蜜桃天美传媒 | 欧美丰满少妇xxxx性 | 亚洲区小说区激情区图片区 | 99久久婷婷国产综合精品青草免费 | 少妇久久久久久人妻无码 | 婷婷色婷婷开心五月四房播播 | 暴力强奷在线播放无码 | 性欧美熟妇videofreesex | 亚洲一区二区观看播放 | 少妇厨房愉情理9仑片视频 | 国产97人人超碰caoprom | 中文字幕乱妇无码av在线 | 成在人线av无码免观看麻豆 | 亚洲国产精华液网站w | 国产欧美精品一区二区三区 | 亚洲日韩一区二区三区 | 丝袜美腿亚洲一区二区 | 久久精品无码一区二区三区 | 午夜精品久久久久久久久 | 纯爱无遮挡h肉动漫在线播放 | 亚洲小说春色综合另类 | 色婷婷欧美在线播放内射 | 国产成人综合色在线观看网站 | 黑人玩弄人妻中文在线 | 国产成人一区二区三区在线观看 | 无码国内精品人妻少妇 | 中文毛片无遮挡高清免费 | 国产精品99久久精品爆乳 | 在线视频网站www色 | 麻豆人妻少妇精品无码专区 | 亚洲色欲久久久综合网东京热 | 国产精品va在线播放 | 影音先锋中文字幕无码 | 日韩精品无码免费一区二区三区 | 人人爽人人爽人人片av亚洲 | 无码人妻精品一区二区三区下载 | 色欲久久久天天天综合网精品 | 人妻互换免费中文字幕 | 高清不卡一区二区三区 | 天堂无码人妻精品一区二区三区 | 中文字幕乱码亚洲无线三区 | 久久99精品久久久久久动态图 | 一本大道伊人av久久综合 | 国产精品久久久久久亚洲影视内衣 | 在线а√天堂中文官网 | 无码免费一区二区三区 | 亚洲码国产精品高潮在线 | 性啪啪chinese东北女人 | 四虎影视成人永久免费观看视频 | 97资源共享在线视频 | 亚洲成av人综合在线观看 | 在线观看国产午夜福利片 | 精品国精品国产自在久国产87 | 亚洲理论电影在线观看 | 久久精品女人天堂av免费观看 | 波多野结衣av在线观看 | 久久亚洲日韩精品一区二区三区 | 中文字幕日韩精品一区二区三区 | a国产一区二区免费入口 | 成人女人看片免费视频放人 | 永久免费观看美女裸体的网站 | 久久综合给合久久狠狠狠97色 | 国产亚洲精品久久久久久国模美 | 色一情一乱一伦一区二区三欧美 | 少妇性l交大片欧洲热妇乱xxx | 老司机亚洲精品影院无码 | 亚洲小说图区综合在线 | 国产激情精品一区二区三区 | 国产精品亚洲综合色区韩国 | 国产麻豆精品精东影业av网站 | 秋霞成人午夜鲁丝一区二区三区 | 久久精品国产精品国产精品污 | 一本久久伊人热热精品中文字幕 | 久久久精品欧美一区二区免费 | 午夜精品久久久内射近拍高清 | 大肉大捧一进一出视频出来呀 | 中文字幕日产无线码一区 | а√天堂www在线天堂小说 | 久久99热只有频精品8 | 国产无遮挡又黄又爽又色 | 51国偷自产一区二区三区 | 色婷婷综合中文久久一本 | 亚洲日韩一区二区 | 亚洲一区二区三区在线观看网站 | 丁香啪啪综合成人亚洲 | 成人无码精品1区2区3区免费看 | 日日碰狠狠丁香久燥 | 波多野结衣一区二区三区av免费 | 性啪啪chinese东北女人 | 精品日本一区二区三区在线观看 | 亚洲区小说区激情区图片区 | 一本久久a久久精品亚洲 | 无码国产色欲xxxxx视频 | 天天拍夜夜添久久精品大 | 国内精品久久毛片一区二区 | 日本www一道久久久免费榴莲 | 99国产精品白浆在线观看免费 | 成人毛片一区二区 | 在线播放无码字幕亚洲 | 无码av最新清无码专区吞精 | 成人精品一区二区三区中文字幕 | 我要看www免费看插插视频 | 欧美精品免费观看二区 | 日韩无套无码精品 | 偷窥村妇洗澡毛毛多 | 人妻无码久久精品人妻 | 精品国产青草久久久久福利 | 麻豆精产国品 | 国产精品亚洲专区无码不卡 | 精品国产一区二区三区av 性色 | 国产人成高清在线视频99最全资源 | 色综合久久久无码中文字幕 | 激情人妻另类人妻伦 | 国产人成高清在线视频99最全资源 | 国产亚洲人成a在线v网站 | 亚洲成在人网站无码天堂 | 久久久久亚洲精品男人的天堂 | 亚洲人成网站色7799 | 亚洲国产精品无码久久久久高潮 | 亚洲经典千人经典日产 | 精品午夜福利在线观看 | 欧美 日韩 人妻 高清 中文 | 亚洲一区二区三区无码久久 | 亚洲精品一区二区三区四区五区 | 欧美精品一区二区精品久久 | 国产情侣作爱视频免费观看 | 精品国精品国产自在久国产87 | 日本精品少妇一区二区三区 | 免费观看又污又黄的网站 | 色诱久久久久综合网ywww | 亚洲区小说区激情区图片区 | 内射欧美老妇wbb | 亚洲色欲久久久综合网东京热 | 人妻体内射精一区二区三四 | 妺妺窝人体色www婷婷 | 无码av岛国片在线播放 | 日本精品久久久久中文字幕 | 久久综合网欧美色妞网 | 狂野欧美性猛交免费视频 | a在线观看免费网站大全 | 初尝人妻少妇中文字幕 | 蜜桃av抽搐高潮一区二区 | 久久久久久久久蜜桃 | 亚洲大尺度无码无码专区 | 天海翼激烈高潮到腰振不止 | 欧美三级a做爰在线观看 | 色情久久久av熟女人妻网站 | 思思久久99热只有频精品66 | 久久午夜无码鲁丝片秋霞 | 国产特级毛片aaaaaa高潮流水 | www一区二区www免费 | 伊人久久婷婷五月综合97色 | 色诱久久久久综合网ywww | 永久免费观看美女裸体的网站 | 国产人妻人伦精品 | 免费乱码人妻系列无码专区 | 精品欧美一区二区三区久久久 | 97色伦图片97综合影院 | 亚洲精品欧美二区三区中文字幕 | 国产精品高潮呻吟av久久4虎 | 乱人伦人妻中文字幕无码 | 少妇久久久久久人妻无码 | 丰满护士巨好爽好大乳 | 四虎永久在线精品免费网址 | 又粗又大又硬毛片免费看 | 亚洲欧美日韩综合久久久 | 丰满少妇女裸体bbw | 久久精品国产精品国产精品污 | 国产成人精品三级麻豆 | 欧美变态另类xxxx | 精品人妻av区 | 国产成人精品优优av | 亚洲熟妇自偷自拍另类 | 六十路熟妇乱子伦 | 久久97精品久久久久久久不卡 | 日本精品少妇一区二区三区 | 樱花草在线播放免费中文 | 久久综合激激的五月天 | 国产精品久久久久久久影院 | 波多野结衣av一区二区全免费观看 | 狠狠噜狠狠狠狠丁香五月 | 丰满护士巨好爽好大乳 | 亚洲精品久久久久久一区二区 | 精品一区二区三区波多野结衣 | 午夜福利一区二区三区在线观看 | 国产色xx群视频射精 | 宝宝好涨水快流出来免费视频 | 少妇无套内谢久久久久 | 18无码粉嫩小泬无套在线观看 | 国产女主播喷水视频在线观看 | 国产精品美女久久久网av | 色欲久久久天天天综合网精品 | 熟妇激情内射com | 99国产欧美久久久精品 | 国产成人综合在线女婷五月99播放 | 亚洲欧美日韩成人高清在线一区 | 国产绳艺sm调教室论坛 | 5858s亚洲色大成网站www | 成人欧美一区二区三区 | 久久精品女人天堂av免费观看 | 亚洲中文字幕av在天堂 | 99久久99久久免费精品蜜桃 | 国产精品亚洲综合色区韩国 | 久久久久99精品国产片 | 美女毛片一区二区三区四区 | 精品无码av一区二区三区 | 女人被男人爽到呻吟的视频 | 欧美性生交xxxxx久久久 | 内射巨臀欧美在线视频 | 国产日产欧产精品精品app | 在线观看欧美一区二区三区 | 欧洲精品码一区二区三区免费看 | 精品乱子伦一区二区三区 | 国产97在线 | 亚洲 | www成人国产高清内射 | 成人精品一区二区三区中文字幕 | 久久久无码中文字幕久... | 在线播放免费人成毛片乱码 | 3d动漫精品啪啪一区二区中 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 国产精品人人妻人人爽 | 国产女主播喷水视频在线观看 | 欧美三级a做爰在线观看 | 性生交片免费无码看人 | 2019午夜福利不卡片在线 | 亚洲精品中文字幕久久久久 | 久久精品人人做人人综合试看 | 秋霞特色aa大片 | 夜精品a片一区二区三区无码白浆 | 麻豆国产97在线 | 欧洲 | 午夜精品一区二区三区的区别 | 欧美日韩久久久精品a片 | 无码人妻av免费一区二区三区 | 国产精品va在线观看无码 | 国产精品久久久久久无码 | 亚洲精品一区二区三区四区五区 | 国产sm调教视频在线观看 | 成人免费视频在线观看 | 日本又色又爽又黄的a片18禁 | 性生交片免费无码看人 | 中文字幕av无码一区二区三区电影 | 欧美黑人性暴力猛交喷水 | 免费乱码人妻系列无码专区 | av无码久久久久不卡免费网站 | 国产香蕉尹人视频在线 | 精品午夜福利在线观看 | 丰满肥臀大屁股熟妇激情视频 | 丰满护士巨好爽好大乳 | 无码任你躁久久久久久久 | 一本久道久久综合婷婷五月 | 亚洲熟妇色xxxxx欧美老妇y | 亚洲熟悉妇女xxx妇女av | 性欧美videos高清精品 | v一区无码内射国产 | 男人扒开女人内裤强吻桶进去 | 国产av无码专区亚洲awww | 亚洲国产成人a精品不卡在线 | 中文字幕人妻无码一夲道 | 国色天香社区在线视频 | 国产suv精品一区二区五 | 国产精品美女久久久 | 麻豆md0077饥渴少妇 | 久久国产自偷自偷免费一区调 | 中文字幕亚洲情99在线 | 人妻夜夜爽天天爽三区 | 国产成人精品久久亚洲高清不卡 | 国产亚洲精品久久久ai换 | 亚洲精品综合五月久久小说 | 欧美熟妇另类久久久久久多毛 | 黑人巨大精品欧美一区二区 | 午夜无码人妻av大片色欲 | 欧美xxxx黑人又粗又长 | 日日摸夜夜摸狠狠摸婷婷 | 377p欧洲日本亚洲大胆 | 亚洲乱码国产乱码精品精 | 国产又爽又猛又粗的视频a片 | 无码一区二区三区在线观看 | 亚洲中文字幕va福利 | 久久综合久久自在自线精品自 | 日本成熟视频免费视频 | 精品国精品国产自在久国产87 | 中文字幕 亚洲精品 第1页 | 国产黑色丝袜在线播放 | 中文字幕亚洲情99在线 | 亚洲国产精品一区二区第一页 | 影音先锋中文字幕无码 | 国产免费久久久久久无码 | 亚洲a无码综合a国产av中文 | 国产农村乱对白刺激视频 | 国产精品理论片在线观看 | 国产熟女一区二区三区四区五区 | 中文字幕人妻丝袜二区 | 国产精品毛多多水多 | 人妻天天爽夜夜爽一区二区 | 精品国产一区二区三区四区 | 午夜性刺激在线视频免费 | 装睡被陌生人摸出水好爽 | 国产精品第一区揄拍无码 | 在线观看国产一区二区三区 | 亚洲日本va午夜在线电影 | 人妻体内射精一区二区三四 | 伊人久久大香线蕉av一区二区 | 精品国产一区av天美传媒 | 国产成人精品视频ⅴa片软件竹菊 | 欧美人与牲动交xxxx | 欧美日韩精品 | 又大又黄又粗又爽的免费视频 | 久久精品人人做人人综合试看 | 欧美激情一区二区三区成人 | 丰满人妻翻云覆雨呻吟视频 | 国产在线精品一区二区高清不卡 | 网友自拍区视频精品 | 国产精品香蕉在线观看 | 5858s亚洲色大成网站www | 久久精品视频在线看15 | 久久人人爽人人爽人人片av高清 | 九九综合va免费看 | 97精品国产97久久久久久免费 | 一本久道久久综合婷婷五月 | 中文字幕无码人妻少妇免费 | 日日麻批免费40分钟无码 | 亚洲精品一区二区三区在线观看 | 欧美乱妇无乱码大黄a片 | 亚洲精品欧美二区三区中文字幕 | 欧美freesex黑人又粗又大 | av小次郎收藏 | 黑人巨大精品欧美一区二区 | 久久综合狠狠综合久久综合88 | 中文字幕无码免费久久9一区9 | 真人与拘做受免费视频 | 久久久久免费看成人影片 | 99精品久久毛片a片 | 国产精品.xx视频.xxtv | 99久久婷婷国产综合精品青草免费 | 免费播放一区二区三区 | 国产乱子伦视频在线播放 | 成人精品一区二区三区中文字幕 | 国内精品久久久久久中文字幕 | 在线亚洲高清揄拍自拍一品区 | 亚洲精品久久久久中文第一幕 | 国产无av码在线观看 | 亚洲国产欧美在线成人 | 亚洲国产综合无码一区 | 亚洲欧洲中文日韩av乱码 | 波多野结衣aⅴ在线 | 国产在线精品一区二区三区直播 | 久久久久人妻一区精品色欧美 | 亚洲精品中文字幕 | 99riav国产精品视频 | √天堂资源地址中文在线 | 国产精品二区一区二区aⅴ污介绍 | 亚洲人成人无码网www国产 | 人人妻人人澡人人爽欧美一区九九 | 午夜精品久久久久久久久 | 久久国产精品精品国产色婷婷 | 欧美国产日韩久久mv | 丰满人妻被黑人猛烈进入 | 高潮毛片无遮挡高清免费 | 东京热男人av天堂 | 国产无遮挡又黄又爽又色 | 国产色视频一区二区三区 | 四十如虎的丰满熟妇啪啪 | 色一情一乱一伦一区二区三欧美 | 亚洲日韩av一区二区三区四区 | 人妻中文无码久热丝袜 | 天天综合网天天综合色 | 久久精品成人欧美大片 | 久久午夜夜伦鲁鲁片无码免费 | 综合激情五月综合激情五月激情1 | 一本久久伊人热热精品中文字幕 | 狠狠色噜噜狠狠狠7777奇米 | 精品无码国产自产拍在线观看蜜 | 亚洲熟妇色xxxxx亚洲 | 亚洲人成网站在线播放942 | 四虎影视成人永久免费观看视频 | 国产亚洲日韩欧美另类第八页 | 欧洲熟妇色 欧美 | 国产成人无码a区在线观看视频app | 综合激情五月综合激情五月激情1 | 亚洲精品一区二区三区大桥未久 | 亚洲国产精品成人久久蜜臀 | 国产女主播喷水视频在线观看 | 少女韩国电视剧在线观看完整 | 亚洲精品成人福利网站 | 秋霞特色aa大片 | 国产精品视频免费播放 | 国产精品亚洲五月天高清 | 动漫av一区二区在线观看 | 日本精品久久久久中文字幕 | 亚洲精品国产第一综合99久久 | 大色综合色综合网站 | 国产亚洲日韩欧美另类第八页 | 国产suv精品一区二区五 | 成人女人看片免费视频放人 | 99久久精品午夜一区二区 | 亚洲日韩精品欧美一区二区 | 一区二区三区乱码在线 | 欧洲 | 无码人妻少妇伦在线电影 | 人人妻人人藻人人爽欧美一区 | 熟妇人妻无乱码中文字幕 | 日日碰狠狠丁香久燥 | 久久99久久99精品中文字幕 | 亚洲中文字幕无码中文字在线 | av无码不卡在线观看免费 | 少妇性l交大片 | 国产97人人超碰caoprom | 少妇激情av一区二区 | 国产精品亚洲专区无码不卡 | 亚洲精品成人av在线 | 国产亚洲精品久久久久久 | 亚洲日韩乱码中文无码蜜桃臀网站 | 亚洲日韩av片在线观看 | 亚洲乱亚洲乱妇50p | 精品aⅴ一区二区三区 | 亚洲一区二区三区国产精华液 | 红桃av一区二区三区在线无码av | 国产亚洲精品久久久久久国模美 | 婷婷丁香六月激情综合啪 | 亚洲国产精品久久久久久 | 蜜臀av在线播放 久久综合激激的五月天 | 久在线观看福利视频 | 成在人线av无码免观看麻豆 | 国产麻豆精品一区二区三区v视界 | 综合激情五月综合激情五月激情1 | 国产suv精品一区二区五 | 国产精品-区区久久久狼 | 欧美兽交xxxx×视频 | 大地资源中文第3页 | 蜜臀aⅴ国产精品久久久国产老师 | 最近免费中文字幕中文高清百度 | 日韩精品成人一区二区三区 | 国产一区二区三区影院 | 丁香啪啪综合成人亚洲 | 又大又紧又粉嫩18p少妇 | 成人一区二区免费视频 | 丰满少妇人妻久久久久久 | 国产亚洲精品久久久久久久 | 国产av人人夜夜澡人人爽麻豆 | 久久99精品久久久久久 | 国内精品人妻无码久久久影院蜜桃 | 色诱久久久久综合网ywww | 久久无码专区国产精品s | 成人免费视频一区二区 | 一个人看的视频www在线 | 免费男性肉肉影院 | 亚洲精品www久久久 | 亚洲国产精品一区二区美利坚 | 欧美人与牲动交xxxx | 99国产欧美久久久精品 | 成人动漫在线观看 | 88国产精品欧美一区二区三区 | 香港三级日本三级妇三级 | 国产人妻久久精品二区三区老狼 | 无套内射视频囯产 | 国产在线一区二区三区四区五区 | 国精品人妻无码一区二区三区蜜柚 | 精品久久久久久人妻无码中文字幕 | 美女黄网站人色视频免费国产 | 久久久久久九九精品久 | 牲欲强的熟妇农村老妇女 | 国产成人综合在线女婷五月99播放 | 亚洲成av人片在线观看无码不卡 | 无码人妻丰满熟妇区五十路百度 | 在线播放免费人成毛片乱码 | 国产乱人无码伦av在线a | 久久久久免费精品国产 | 7777奇米四色成人眼影 | 色综合久久久久综合一本到桃花网 | 久久国产精品二国产精品 | 日本熟妇大屁股人妻 | 亚洲国产av美女网站 | 人人妻在人人 | 国产激情一区二区三区 | 国产99久久精品一区二区 | 国产午夜福利100集发布 | 乌克兰少妇xxxx做受 | 2020久久超碰国产精品最新 | 人人爽人人澡人人高潮 | 欧美性黑人极品hd | 乌克兰少妇性做爰 | 色欲综合久久中文字幕网 | 久久久中文字幕日本无吗 | 欧美熟妇另类久久久久久不卡 | 亚洲成av人在线观看网址 | 无码国产激情在线观看 | 国产av无码专区亚洲awww | 无码吃奶揉捏奶头高潮视频 | 波多野结衣乳巨码无在线观看 | 在线亚洲高清揄拍自拍一品区 | 日本丰满熟妇videos | 99er热精品视频 | 亚洲成a人片在线观看日本 | 亚洲一区二区三区国产精华液 | 狂野欧美性猛xxxx乱大交 | 亚洲色www成人永久网址 | 国精产品一区二区三区 | 国产97人人超碰caoprom | 亚洲aⅴ无码成人网站国产app | 性欧美牲交在线视频 | 国产午夜精品一区二区三区嫩草 | 亚洲一区二区三区含羞草 | 麻豆人妻少妇精品无码专区 | 麻豆成人精品国产免费 | 人人妻人人藻人人爽欧美一区 | 日日碰狠狠丁香久燥 | 最新版天堂资源中文官网 | 欧美 丝袜 自拍 制服 另类 | 国产 浪潮av性色四虎 | 亚洲精品国产精品乱码不卡 | 熟妇人妻中文av无码 | 国产又粗又硬又大爽黄老大爷视 | 免费国产黄网站在线观看 | 久久国产36精品色熟妇 | 亚洲色欲色欲欲www在线 | 中国女人内谢69xxxx | 鲁大师影院在线观看 | 午夜精品一区二区三区的区别 | 99er热精品视频 | 国内丰满熟女出轨videos | 99久久人妻精品免费一区 | 成人性做爰aaa片免费看 | 亚洲日韩一区二区三区 | 女人和拘做爰正片视频 | 国内少妇偷人精品视频 | 少妇性l交大片欧洲热妇乱xxx | 漂亮人妻洗澡被公强 日日躁 | 丰满人妻翻云覆雨呻吟视频 | 沈阳熟女露脸对白视频 | 国产成人精品无码播放 | 亚洲乱码中文字幕在线 | 天天摸天天碰天天添 | 精品欧美一区二区三区久久久 | 天天综合网天天综合色 | 蜜桃视频插满18在线观看 | 国产亚洲精品久久久久久久久动漫 | 免费国产成人高清在线观看网站 | 国产亚洲欧美在线专区 | 成人亚洲精品久久久久 | 狠狠综合久久久久综合网 | 精品厕所偷拍各类美女tp嘘嘘 | 天天躁日日躁狠狠躁免费麻豆 | 中文字幕无码av激情不卡 | 亚洲精品无码国产 | 精品国产一区二区三区av 性色 | 久久久久99精品国产片 | 麻豆果冻传媒2021精品传媒一区下载 | 综合人妻久久一区二区精品 | 色窝窝无码一区二区三区色欲 | 成年女人永久免费看片 | 性色av无码免费一区二区三区 | 丝袜足控一区二区三区 | 国产精品久久久av久久久 | 日本大香伊一区二区三区 | 国产精品无码一区二区桃花视频 | 久久久国产精品无码免费专区 | 久久精品女人的天堂av | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 亚洲成a人片在线观看无码 | 四虎国产精品一区二区 | 水蜜桃色314在线观看 | 久青草影院在线观看国产 | 亚洲欧洲日本综合aⅴ在线 | 久久人妻内射无码一区三区 | 国产高清av在线播放 | 国产舌乚八伦偷品w中 | 欧美丰满熟妇xxxx性ppx人交 | 日本精品久久久久中文字幕 | 国产亚洲视频中文字幕97精品 | 亚洲第一无码av无码专区 | 国产成人精品一区二区在线小狼 | 国产99久久精品一区二区 | 激情内射亚州一区二区三区爱妻 | 精品欧美一区二区三区久久久 | 国产香蕉97碰碰久久人人 | 亚洲一区二区三区国产精华液 | 婷婷六月久久综合丁香 | 麻豆md0077饥渴少妇 | 国产精品va在线观看无码 | 亚洲日本一区二区三区在线 | 国产欧美亚洲精品a | 久久久婷婷五月亚洲97号色 | ass日本丰满熟妇pics | 国产色在线 | 国产 | 性色欲网站人妻丰满中文久久不卡 | 欧美日韩在线亚洲综合国产人 | 亚洲色欲久久久综合网东京热 | 丝袜 中出 制服 人妻 美腿 | 精品夜夜澡人妻无码av蜜桃 | 天下第一社区视频www日本 | 麻豆国产丝袜白领秘书在线观看 | 免费无码午夜福利片69 | 一本无码人妻在中文字幕免费 | 国产亲子乱弄免费视频 | 97夜夜澡人人双人人人喊 | 无码人妻丰满熟妇区五十路百度 | 国内精品久久久久久中文字幕 | 国产精品高潮呻吟av久久 | 一本色道婷婷久久欧美 | 亚洲日韩乱码中文无码蜜桃臀网站 | 无码av岛国片在线播放 | 亚洲人成人无码网www国产 | 久久天天躁夜夜躁狠狠 | 国产精品亚洲专区无码不卡 | 久久久久免费看成人影片 | 色 综合 欧美 亚洲 国产 | 国产在线一区二区三区四区五区 | 免费视频欧美无人区码 | 老熟女重囗味hdxx69 | 午夜福利不卡在线视频 | 久久久www成人免费毛片 | 色一情一乱一伦一视频免费看 | 国产一区二区不卡老阿姨 | 日本一卡2卡3卡四卡精品网站 | 亚洲欧美色中文字幕在线 | 桃花色综合影院 | 国产午夜手机精彩视频 | 国语精品一区二区三区 | 在线观看国产午夜福利片 | 我要看www免费看插插视频 | 露脸叫床粗话东北少妇 | 四虎国产精品一区二区 | 色综合久久久无码中文字幕 | 亚洲自偷自拍另类第1页 | 熟妇人妻中文av无码 | 久久天天躁狠狠躁夜夜免费观看 | 成人性做爰aaa片免费看 | 日本熟妇人妻xxxxx人hd | 噜噜噜亚洲色成人网站 | 台湾无码一区二区 | 欧美性色19p | 久9re热视频这里只有精品 | 久久五月精品中文字幕 | 久久午夜无码鲁丝片午夜精品 | 无码人妻少妇伦在线电影 | 曰韩少妇内射免费播放 | 久久久精品欧美一区二区免费 | 亚洲中文字幕va福利 | 精品一区二区三区无码免费视频 | 色欲人妻aaaaaaa无码 | 欧美freesex黑人又粗又大 | 特级做a爰片毛片免费69 | 国产精品无码一区二区三区不卡 | 日日碰狠狠丁香久燥 | 秋霞特色aa大片 | 成人女人看片免费视频放人 | 久久久成人毛片无码 | 久久久久免费精品国产 | 性生交大片免费看女人按摩摩 | 国内少妇偷人精品视频免费 | 小鲜肉自慰网站xnxx | 精品国产av色一区二区深夜久久 | 国产xxx69麻豆国语对白 | a国产一区二区免费入口 | 一本久久伊人热热精品中文字幕 | 黑人粗大猛烈进出高潮视频 | 午夜精品久久久久久久 | 中文字幕乱码中文乱码51精品 | 久久精品国产日本波多野结衣 | 久久久久国色av免费观看性色 | 国产精品欧美成人 | 国产免费久久精品国产传媒 | 大色综合色综合网站 | 真人与拘做受免费视频一 | 亚洲色无码一区二区三区 | 香蕉久久久久久av成人 | 高清国产亚洲精品自在久久 | 欧美激情综合亚洲一二区 | 日本精品少妇一区二区三区 | 天干天干啦夜天干天2017 | 丰满人妻精品国产99aⅴ | 日韩少妇白浆无码系列 | 成人亚洲精品久久久久软件 | 狂野欧美性猛xxxx乱大交 | а√资源新版在线天堂 | 欧洲熟妇色 欧美 | 欧美自拍另类欧美综合图片区 | 在线观看国产午夜福利片 | 亚洲精品成人av在线 | 国产av人人夜夜澡人人爽麻豆 | 亚洲经典千人经典日产 | 国产亚洲精品久久久久久国模美 | 国产精品丝袜黑色高跟鞋 | 荫蒂被男人添的好舒服爽免费视频 | 性生交片免费无码看人 | 国精品人妻无码一区二区三区蜜柚 | 国产精品丝袜黑色高跟鞋 | 久久午夜无码鲁丝片 | 四虎国产精品一区二区 | 欧美国产日韩久久mv | 999久久久国产精品消防器材 | 天天做天天爱天天爽综合网 | 日本爽爽爽爽爽爽在线观看免 | 狠狠色噜噜狠狠狠狠7777米奇 | 免费观看激色视频网站 | 丰满诱人的人妻3 | 国产精品免费大片 | 乱人伦中文视频在线观看 | 成熟女人特级毛片www免费 | 亚洲自偷精品视频自拍 | 国产农村妇女高潮大叫 | 色综合久久久久综合一本到桃花网 | 日韩精品成人一区二区三区 | 帮老师解开蕾丝奶罩吸乳网站 | 丰满岳乱妇在线观看中字无码 | 人人爽人人澡人人人妻 | 少妇无码一区二区二三区 | 国产无套粉嫩白浆在线 | 在线播放免费人成毛片乱码 | 伊人久久大香线蕉av一区二区 | 国产后入清纯学生妹 | 日日摸天天摸爽爽狠狠97 | 成熟人妻av无码专区 | 免费无码的av片在线观看 | 中文字幕无码视频专区 | 99久久婷婷国产综合精品青草免费 | 扒开双腿吃奶呻吟做受视频 | 亚洲 a v无 码免 费 成 人 a v | 亚洲国产精华液网站w | 午夜精品一区二区三区的区别 | 国产精品人人爽人人做我的可爱 | 国精品人妻无码一区二区三区蜜柚 | 成人性做爰aaa片免费看 | 玩弄少妇高潮ⅹxxxyw | 国产做国产爱免费视频 | 男女下面进入的视频免费午夜 | 成人一区二区免费视频 | 亚洲aⅴ无码成人网站国产app | 亚洲成在人网站无码天堂 | 中文字幕人妻无码一夲道 | 人人妻人人藻人人爽欧美一区 | 日本护士毛茸茸高潮 | 人妻无码αv中文字幕久久琪琪布 | 一本久道高清无码视频 | 久久综合九色综合欧美狠狠 | 无码人妻丰满熟妇区毛片18 | 在线а√天堂中文官网 | 久久久无码中文字幕久... | 成人精品天堂一区二区三区 | 色婷婷综合中文久久一本 | 人妻插b视频一区二区三区 | 丰满少妇高潮惨叫视频 | 丰满人妻精品国产99aⅴ | 日本免费一区二区三区最新 | 亚洲爆乳无码专区 | 任你躁国产自任一区二区三区 | 精品国产精品久久一区免费式 | 精品人妻中文字幕有码在线 | 亚洲色偷偷偷综合网 | 国产亚洲tv在线观看 | 人妻aⅴ无码一区二区三区 | 亚洲国产一区二区三区在线观看 | 亚洲爆乳大丰满无码专区 | 麻豆国产人妻欲求不满谁演的 | 亚洲色欲久久久综合网东京热 | 婷婷综合久久中文字幕蜜桃三电影 | 曰韩无码二三区中文字幕 | 丰腴饱满的极品熟妇 | 国产国产精品人在线视 | 77777熟女视频在线观看 а天堂中文在线官网 | 丰满岳乱妇在线观看中字无码 | 熟女俱乐部五十路六十路av | 国产乱人无码伦av在线a | 欧美成人午夜精品久久久 | 精品久久久久久亚洲精品 | 丰满岳乱妇在线观看中字无码 | 国产在热线精品视频 | 女人被男人爽到呻吟的视频 | 亚洲精品午夜国产va久久成人 | 中文字幕色婷婷在线视频 | 国产高潮视频在线观看 | 亚洲啪av永久无码精品放毛片 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国产人妻人伦精品 | 国产日产欧产精品精品app | 人人超人人超碰超国产 | 欧美国产日产一区二区 | 免费网站看v片在线18禁无码 | 国产精品香蕉在线观看 | 国产亚洲精品久久久久久久 | 亚洲熟熟妇xxxx | 亚洲人成网站在线播放942 | 亚洲国产精品无码久久久久高潮 | 中文字幕无码免费久久99 | 国产婷婷色一区二区三区在线 | 亚洲欧美国产精品专区久久 | 中文字幕精品av一区二区五区 | 无码国产乱人伦偷精品视频 | 亚洲综合无码一区二区三区 | 2019午夜福利不卡片在线 | 精品久久久无码中文字幕 | 精品日本一区二区三区在线观看 | 成人性做爰aaa片免费看 | 亚洲色在线无码国产精品不卡 | 久久午夜无码鲁丝片午夜精品 | 国内老熟妇对白xxxxhd | 撕开奶罩揉吮奶头视频 | 国产精品美女久久久久av爽李琼 | 色婷婷综合中文久久一本 | 色五月丁香五月综合五月 | 欧美日本精品一区二区三区 | 熟妇人妻中文av无码 | 国产 精品 自在自线 | 国产精品va在线观看无码 | 日韩在线不卡免费视频一区 | 极品嫩模高潮叫床 | 欧美一区二区三区视频在线观看 | 日本护士毛茸茸高潮 | 日韩成人一区二区三区在线观看 | 爆乳一区二区三区无码 | 国产精品多人p群无码 | 亚洲国产日韩a在线播放 | 大地资源网第二页免费观看 | 日韩欧美群交p片內射中文 | 又湿又紧又大又爽a视频国产 | 久久人人爽人人人人片 | 亚拍精品一区二区三区探花 | 国产精品亚洲五月天高清 | 亚洲一区二区三区无码久久 | 波多野结衣高清一区二区三区 | 97se亚洲精品一区 | 一本大道久久东京热无码av | 国产香蕉尹人视频在线 | 精品无码一区二区三区的天堂 | 精品成在人线av无码免费看 | 欧美日韩一区二区三区自拍 | 亚洲成a人片在线观看无码 | 亚洲小说图区综合在线 | 国内精品一区二区三区不卡 | 成人无码影片精品久久久 | 网友自拍区视频精品 | 人妻夜夜爽天天爽三区 | 国产午夜亚洲精品不卡 | 麻豆av传媒蜜桃天美传媒 | 1000部啪啪未满十八勿入下载 | 人妻熟女一区 | 亚洲综合色区中文字幕 | 国产精品国产三级国产专播 | 日本免费一区二区三区最新 | 巨爆乳无码视频在线观看 | 乱中年女人伦av三区 | 久久久久免费精品国产 | 天堂а√在线中文在线 | 人妻无码久久精品人妻 | 中文字幕色婷婷在线视频 | 久激情内射婷内射蜜桃人妖 | 99精品国产综合久久久久五月天 | 2020久久香蕉国产线看观看 | 又大又硬又黄的免费视频 | 中文字幕乱码亚洲无线三区 | 亚洲日本在线电影 | 国产无套内射久久久国产 | 国产午夜无码视频在线观看 | 亚洲中文字幕va福利 | 久久精品一区二区三区四区 | 理论片87福利理论电影 | 欧美日韩视频无码一区二区三 | 欧美一区二区三区 | 亚洲乱码国产乱码精品精 | 88国产精品欧美一区二区三区 | aⅴ亚洲 日韩 色 图网站 播放 | 国产黄在线观看免费观看不卡 | 日本高清一区免费中文视频 | 久精品国产欧美亚洲色aⅴ大片 | 国产精品成人av在线观看 | 牛和人交xxxx欧美 | 精品无码国产自产拍在线观看蜜 | 少妇被粗大的猛进出69影院 | 男女爱爱好爽视频免费看 | 成人亚洲精品久久久久 | 亚洲国产精品美女久久久久 | 宝宝好涨水快流出来免费视频 | 又紧又大又爽精品一区二区 | 国产精品a成v人在线播放 | 午夜精品一区二区三区的区别 | 一区二区传媒有限公司 | 日本xxxx色视频在线观看免费 | 欧美日韩人成综合在线播放 | 色五月丁香五月综合五月 | 人人妻人人澡人人爽人人精品 | 丰满妇女强制高潮18xxxx | 色老头在线一区二区三区 | 亚洲国产精品久久人人爱 | 婷婷综合久久中文字幕蜜桃三电影 | 一区二区三区乱码在线 | 欧洲 | 日韩精品乱码av一区二区 | 天天拍夜夜添久久精品大 | 亚洲人交乣女bbw | 国产疯狂伦交大片 | 亚洲 日韩 欧美 成人 在线观看 | 亚洲七七久久桃花影院 | 精品国产麻豆免费人成网站 | 动漫av网站免费观看 | 大乳丰满人妻中文字幕日本 | 日韩视频 中文字幕 视频一区 | 久久精品99久久香蕉国产色戒 | 在线成人www免费观看视频 | 日韩av无码一区二区三区不卡 | a国产一区二区免费入口 | 麻豆国产人妻欲求不满 | 国内精品九九久久久精品 | 樱花草在线播放免费中文 | 国产激情艳情在线看视频 | 夜夜夜高潮夜夜爽夜夜爰爰 | 国产乡下妇女做爰 | 久久人人爽人人人人片 | 亚洲欧美日韩成人高清在线一区 | 久久精品国产一区二区三区 | 国产色精品久久人妻 | 狂野欧美性猛xxxx乱大交 | 人人妻人人藻人人爽欧美一区 | 牲欲强的熟妇农村老妇女 | 特级做a爰片毛片免费69 | 日日躁夜夜躁狠狠躁 | 国产人妻人伦精品 | 国产美女极度色诱视频www | 东京热男人av天堂 | 国产精品va在线播放 | 亚洲精品国产品国语在线观看 | 国产精品香蕉在线观看 | 无码国产乱人伦偷精品视频 | 日韩av无码中文无码电影 | 亚洲va中文字幕无码久久不卡 | 无码国产激情在线观看 | 亚洲男人av天堂午夜在 | 久久综合九色综合欧美狠狠 | 国产va免费精品观看 | 精品国精品国产自在久国产87 | 婷婷丁香五月天综合东京热 | 国产高清不卡无码视频 | 国产成人无码av一区二区 | а√天堂www在线天堂小说 | 玩弄人妻少妇500系列视频 | 日韩av无码中文无码电影 | 亚洲日韩乱码中文无码蜜桃臀网站 | 中文字幕日产无线码一区 | 欧美 日韩 人妻 高清 中文 | 国产成人精品久久亚洲高清不卡 | 暴力强奷在线播放无码 | 色噜噜亚洲男人的天堂 | 免费乱码人妻系列无码专区 | 国内揄拍国内精品少妇国语 | 国产在线一区二区三区四区五区 | 亚洲国产精品久久久久久 | 国产女主播喷水视频在线观看 | 国产精品二区一区二区aⅴ污介绍 | 国产av无码专区亚洲awww | 欧美精品无码一区二区三区 | 中文字幕久久久久人妻 | 性色av无码免费一区二区三区 | 国产精品久久久久久久9999 | 国产精品国产自线拍免费软件 | 日本爽爽爽爽爽爽在线观看免 | 乱码av麻豆丝袜熟女系列 | 久久午夜夜伦鲁鲁片无码免费 | 亚洲精品成人福利网站 | 久久久久成人片免费观看蜜芽 | 久久国语露脸国产精品电影 | 蜜臀aⅴ国产精品久久久国产老师 | 精品久久久中文字幕人妻 | 国产又粗又硬又大爽黄老大爷视 | 天堂无码人妻精品一区二区三区 | 性啪啪chinese东北女人 | 蜜桃视频韩日免费播放 | 日韩精品成人一区二区三区 | 亚洲精品国产品国语在线观看 | 在线精品亚洲一区二区 | 国产精品无码一区二区三区不卡 | 成人无码视频在线观看网站 | 成人一在线视频日韩国产 | 国产亚洲欧美日韩亚洲中文色 | 波多野结衣 黑人 | 国产亚洲精品久久久闺蜜 | 正在播放东北夫妻内射 | 少妇高潮喷潮久久久影院 | 成熟妇人a片免费看网站 | 亚洲 欧美 激情 小说 另类 | 国内老熟妇对白xxxxhd | 国产精品久久国产三级国 | 日产精品高潮呻吟av久久 | 欧美真人作爱免费视频 | 亚洲精品国产精品乱码视色 | 国产精品视频免费播放 | 久久国产劲爆∧v内射 | 天堂一区人妻无码 | 精品久久久无码中文字幕 | 成 人 网 站国产免费观看 | 2019nv天堂香蕉在线观看 | 蜜桃无码一区二区三区 | 成熟女人特级毛片www免费 | 久久aⅴ免费观看 | 国产精品国产自线拍免费软件 | 国产97在线 | 亚洲 | 欧美日韩一区二区三区自拍 | 亚洲精品美女久久久久久久 | 无码人妻精品一区二区三区下载 | 亚洲欧美精品aaaaaa片 | 国产真实乱对白精彩久久 | 俺去俺来也www色官网 | 人人超人人超碰超国产 | 亚洲日韩精品欧美一区二区 | 丰满妇女强制高潮18xxxx | 搡女人真爽免费视频大全 | 亚洲精品欧美二区三区中文字幕 | 人妻天天爽夜夜爽一区二区 | 欧美人与牲动交xxxx | 国产偷自视频区视频 | 亚洲乱码中文字幕在线 | 日韩精品久久久肉伦网站 | 国产精品资源一区二区 | 乱人伦中文视频在线观看 | 亚洲色欲久久久综合网东京热 | 久久人人爽人人爽人人片av高清 | 性色av无码免费一区二区三区 | 精品久久综合1区2区3区激情 | 一本一道久久综合久久 | 欧美野外疯狂做受xxxx高潮 | 精品国产麻豆免费人成网站 | 青青青手机频在线观看 | 久久国语露脸国产精品电影 | 无码帝国www无码专区色综合 | 丝袜足控一区二区三区 | 国产精品办公室沙发 | 国产精品无码一区二区三区不卡 | 免费乱码人妻系列无码专区 | 午夜时刻免费入口 | 又大又硬又爽免费视频 | 久久午夜夜伦鲁鲁片无码免费 | 一本色道婷婷久久欧美 | 女高中生第一次破苞av | 中文字幕 亚洲精品 第1页 | 色五月五月丁香亚洲综合网 | 鲁大师影院在线观看 | 日韩精品成人一区二区三区 | 久久国产36精品色熟妇 | 免费无码午夜福利片69 | 无码av免费一区二区三区试看 | 初尝人妻少妇中文字幕 | 日本一卡二卡不卡视频查询 | 欧美猛少妇色xxxxx | 3d动漫精品啪啪一区二区中 | 日韩人妻无码中文字幕视频 | 97人妻精品一区二区三区 | 无码av最新清无码专区吞精 | 国产午夜亚洲精品不卡下载 | 亚欧洲精品在线视频免费观看 | 国产成人综合美国十次 | 蜜臀aⅴ国产精品久久久国产老师 | 国产成人午夜福利在线播放 | 兔费看少妇性l交大片免费 | 成人无码影片精品久久久 | 中文字幕无码日韩欧毛 | 人妻天天爽夜夜爽一区二区 | 人妻少妇精品无码专区动漫 | 狠狠色噜噜狠狠狠狠7777米奇 | 日本乱偷人妻中文字幕 | 中文字幕久久久久人妻 | 欧美成人高清在线播放 | 蜜臀av在线播放 久久综合激激的五月天 | 国产成人精品三级麻豆 | aa片在线观看视频在线播放 | 亚欧洲精品在线视频免费观看 | 久久国产劲爆∧v内射 | 999久久久国产精品消防器材 | 精品国产一区二区三区四区在线看 | 在线播放无码字幕亚洲 | 久久久中文久久久无码 | 狂野欧美性猛xxxx乱大交 | 少妇性荡欲午夜性开放视频剧场 | 国产精品18久久久久久麻辣 | 捆绑白丝粉色jk震动捧喷白浆 | 国产凸凹视频一区二区 | 欧美日韩亚洲国产精品 | 亚洲国产精品成人久久蜜臀 | 久久视频在线观看精品 | 日日碰狠狠丁香久燥 | 日本饥渴人妻欲求不满 | 亚洲成a人片在线观看日本 | 偷窥日本少妇撒尿chinese | 国产免费观看黄av片 | 好爽又高潮了毛片免费下载 | 熟妇女人妻丰满少妇中文字幕 | 无码人妻丰满熟妇区五十路百度 | 成人精品视频一区二区 | 国产亚洲精品久久久闺蜜 | 无码人妻少妇伦在线电影 | 少妇一晚三次一区二区三区 | 真人与拘做受免费视频一 | 久久久精品欧美一区二区免费 | 强奷人妻日本中文字幕 | 蜜臀aⅴ国产精品久久久国产老师 | 99久久久无码国产精品免费 | 红桃av一区二区三区在线无码av | 麻豆md0077饥渴少妇 | 67194成是人免费无码 | 国产亚洲精品久久久久久久 | 牲交欧美兽交欧美 | 亚洲成av人片在线观看无码不卡 | 国产卡一卡二卡三 | 亚洲爆乳大丰满无码专区 | 在线精品亚洲一区二区 | 欧美 日韩 人妻 高清 中文 | 久久久无码中文字幕久... | 日本精品人妻无码免费大全 | 成人精品天堂一区二区三区 | 东京热男人av天堂 | a国产一区二区免费入口 | 久久精品女人天堂av免费观看 | 国产特级毛片aaaaaa高潮流水 | 亚洲熟女一区二区三区 | 日本精品少妇一区二区三区 | 色欲人妻aaaaaaa无码 | 99精品久久毛片a片 | 玩弄中年熟妇正在播放 | 18禁黄网站男男禁片免费观看 | 人人妻人人澡人人爽欧美精品 | 大地资源网第二页免费观看 | 无码人妻丰满熟妇区五十路百度 | 欧洲熟妇精品视频 | 免费看男女做好爽好硬视频 | 丰满人妻被黑人猛烈进入 | 久久久精品欧美一区二区免费 | 极品尤物被啪到呻吟喷水 | 99riav国产精品视频 | 日本丰满护士爆乳xxxx | 国产精品久久福利网站 | 精品日本一区二区三区在线观看 | 亚洲精品综合一区二区三区在线 | 99riav国产精品视频 | 日本一卡2卡3卡四卡精品网站 | 亚洲日韩av一区二区三区四区 | 高清不卡一区二区三区 | 国产偷国产偷精品高清尤物 | 亚洲经典千人经典日产 | 无码人妻丰满熟妇区毛片18 | 成人精品一区二区三区中文字幕 | 日韩人妻无码一区二区三区久久99 | 377p欧洲日本亚洲大胆 | 永久免费观看美女裸体的网站 | 中文无码精品a∨在线观看不卡 | 亚洲色欲色欲欲www在线 | 亚洲の无码国产の无码影院 | 欧美日韩在线亚洲综合国产人 | 亚洲一区二区三区无码久久 | 日韩无码专区 | 午夜熟女插插xx免费视频 | 国产亚洲tv在线观看 | 久久综合给合久久狠狠狠97色 | 亚洲综合久久一区二区 | 亚洲熟悉妇女xxx妇女av | 国产精品va在线播放 | 无套内射视频囯产 | 国产一区二区三区四区五区加勒比 | 国产suv精品一区二区五 | 亚洲国产av精品一区二区蜜芽 | 久久精品无码一区二区三区 | 亚洲中文字幕成人无码 | 九九久久精品国产免费看小说 | 性做久久久久久久久 | 国产精品亚洲专区无码不卡 | 久久天天躁夜夜躁狠狠 | 欧美激情综合亚洲一二区 | 亚洲精品一区二区三区婷婷月 | 永久免费精品精品永久-夜色 | 亚洲色欲色欲天天天www | 亚洲精品国产精品乱码不卡 | 国产在线aaa片一区二区99 | 国产亚洲精品久久久久久 | 国产成人精品优优av | 中文无码伦av中文字幕 | 亚洲s色大片在线观看 | 窝窝午夜理论片影院 | 久久这里只有精品视频9 | 老子影院午夜精品无码 | 免费看少妇作爱视频 | 人妻少妇精品无码专区二区 | 天天拍夜夜添久久精品大 | 老熟妇仑乱视频一区二区 | 国产成人综合在线女婷五月99播放 | 久久精品国产一区二区三区肥胖 | 蜜桃臀无码内射一区二区三区 | 九月婷婷人人澡人人添人人爽 | 成 人 网 站国产免费观看 | 成熟妇人a片免费看网站 | 蜜桃视频韩日免费播放 | 伊人久久婷婷五月综合97色 | 国产内射爽爽大片视频社区在线 | aⅴ亚洲 日韩 色 图网站 播放 | 激情爆乳一区二区三区 | 日韩精品一区二区av在线 | 免费人成在线观看网站 | 高潮毛片无遮挡高清免费 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 久久久www成人免费毛片 | 亚洲国产成人a精品不卡在线 | 亚洲精品欧美二区三区中文字幕 | 国产精品自产拍在线观看 | 中文字幕无码免费久久9一区9 | 免费国产成人高清在线观看网站 | 国内丰满熟女出轨videos | 国产高潮视频在线观看 | 中文字幕无码免费久久99 | 天堂久久天堂av色综合 | 欧美freesex黑人又粗又大 | 久久综合网欧美色妞网 | 俄罗斯老熟妇色xxxx | 久久久久久久久蜜桃 | 色婷婷欧美在线播放内射 | 四虎影视成人永久免费观看视频 | 国产亚洲视频中文字幕97精品 | 99久久精品日本一区二区免费 | 国产网红无码精品视频 | 精品国产一区二区三区av 性色 | 免费无码肉片在线观看 | 一区二区三区高清视频一 | 久久99久久99精品中文字幕 | 日日碰狠狠躁久久躁蜜桃 | 丰满人妻一区二区三区免费视频 | 内射巨臀欧美在线视频 | 丰满人妻一区二区三区免费视频 | 亚洲爆乳大丰满无码专区 | 成人性做爰aaa片免费看不忠 | 国产精品无码一区二区桃花视频 | 亚洲精品午夜国产va久久成人 | 久久久中文字幕日本无吗 | 欧美熟妇另类久久久久久多毛 | 婷婷六月久久综合丁香 | 亚洲一区二区三区 | 97夜夜澡人人爽人人喊中国片 | 色妞www精品免费视频 | 蜜臀aⅴ国产精品久久久国产老师 | 国产精品亚洲专区无码不卡 | 国产精品18久久久久久麻辣 | 欧美阿v高清资源不卡在线播放 | 久久天天躁狠狠躁夜夜免费观看 | 精品久久久久久人妻无码中文字幕 | 亚洲精品中文字幕久久久久 | 国产两女互慰高潮视频在线观看 | 免费播放一区二区三区 | 久久久国产精品无码免费专区 | 少妇人妻偷人精品无码视频 | 亚洲国产欧美日韩精品一区二区三区 | 成人精品视频一区二区 | 无码人妻出轨黑人中文字幕 | av无码电影一区二区三区 | 爆乳一区二区三区无码 | 成人免费视频在线观看 | 亚洲va欧美va天堂v国产综合 | 国产精品久久国产三级国 | 狠狠色欧美亚洲狠狠色www | 欧洲欧美人成视频在线 | 亚洲日韩一区二区 | 国产成人无码a区在线观看视频app | 精品国精品国产自在久国产87 | 欧美真人作爱免费视频 | 欧美乱妇无乱码大黄a片 | 午夜福利不卡在线视频 | 成 人 免费观看网站 | 日本熟妇浓毛 | 女人和拘做爰正片视频 | yw尤物av无码国产在线观看 | 男女作爱免费网站 | 色婷婷综合中文久久一本 | 欧美性猛交xxxx富婆 | 黄网在线观看免费网站 | 激情内射日本一区二区三区 | 国产精品视频免费播放 | 一本无码人妻在中文字幕免费 | 国产一区二区三区影院 | 免费无码一区二区三区蜜桃大 | 沈阳熟女露脸对白视频 | 无码中文字幕色专区 | 精品国产乱码久久久久乱码 | 四虎国产精品一区二区 | av小次郎收藏 | 女人被爽到呻吟gif动态图视看 | 亚洲欧美日韩成人高清在线一区 | 中文字幕+乱码+中文字幕一区 | 老头边吃奶边弄进去呻吟 | 无码av免费一区二区三区试看 | 国产人妻久久精品二区三区老狼 | 强奷人妻日本中文字幕 | 亚洲精品一区二区三区在线 | 无码乱肉视频免费大全合集 | 国产明星裸体无码xxxx视频 | 亚洲日韩一区二区 | 夜精品a片一区二区三区无码白浆 | 丝袜 中出 制服 人妻 美腿 | 人人爽人人澡人人人妻 | 岛国片人妻三上悠亚 | 国内少妇偷人精品视频 | 国内综合精品午夜久久资源 | 99视频精品全部免费免费观看 | 少妇激情av一区二区 | 国产精品.xx视频.xxtv | 久久久精品国产sm最大网站 | 在线观看国产一区二区三区 | 国产成人一区二区三区在线观看 | 亚洲午夜久久久影院 | 亚洲国产精品美女久久久久 | 狠狠亚洲超碰狼人久久 | 精品一区二区不卡无码av | 日韩欧美群交p片內射中文 | 亚洲日韩乱码中文无码蜜桃臀网站 | 无码av最新清无码专区吞精 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 国产午夜亚洲精品不卡下载 | 成人免费视频一区二区 | 玩弄中年熟妇正在播放 | 图片小说视频一区二区 | 亚洲熟熟妇xxxx | 久久国产劲爆∧v内射 | 日本精品少妇一区二区三区 | 国产无套内射久久久国产 | 亚洲综合另类小说色区 | 无码午夜成人1000部免费视频 | 欧美乱妇无乱码大黄a片 | 性生交大片免费看女人按摩摩 | 国产亚洲视频中文字幕97精品 | 亚洲伊人久久精品影院 | 人人妻人人澡人人爽人人精品 | 99久久人妻精品免费一区 | 综合激情五月综合激情五月激情1 | 久久精品国产一区二区三区肥胖 | 欧美三级不卡在线观看 | 国产精品无码mv在线观看 | 中文字幕无码日韩专区 | 国产农村妇女高潮大叫 | 久久综合香蕉国产蜜臀av | 九九热爱视频精品 | 国产精品福利视频导航 | 无码人妻出轨黑人中文字幕 | 三上悠亚人妻中文字幕在线 | 亚洲国产精品毛片av不卡在线 | 国产片av国语在线观看 | 欧美日韩亚洲国产精品 | 国产精品无码永久免费888 | 荫蒂添的好舒服视频囗交 | 免费看男女做好爽好硬视频 | 亚洲中文字幕av在天堂 | 婷婷丁香六月激情综合啪 | 亚洲精品久久久久久久久久久 | 国产成人精品必看 | 欧美日韩人成综合在线播放 | 国产精品无码成人午夜电影 | 欧美人与物videos另类 | 一本色道久久综合狠狠躁 | www一区二区www免费 | 最近的中文字幕在线看视频 | 国产真人无遮挡作爱免费视频 | 日本护士毛茸茸高潮 | 99久久99久久免费精品蜜桃 | 熟女体下毛毛黑森林 | 欧美日韩在线亚洲综合国产人 | 成熟妇人a片免费看网站 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 黑人巨大精品欧美一区二区 | 中文字幕无码av激情不卡 | 高清无码午夜福利视频 | 牲欲强的熟妇农村老妇女视频 | 性生交大片免费看女人按摩摩 | 日产国产精品亚洲系列 | 1000部夫妻午夜免费 | 曰本女人与公拘交酡免费视频 | 国内丰满熟女出轨videos | 色综合久久中文娱乐网 | 人妻体内射精一区二区三四 | 久久无码人妻影院 | 国产精品久久久久久久影院 | 美女极度色诱视频国产 | 日欧一片内射va在线影院 | 正在播放东北夫妻内射 | 国产性生交xxxxx无码 | 少妇人妻大乳在线视频 | 少妇无套内谢久久久久 | 亚洲欧美色中文字幕在线 | 欧美freesex黑人又粗又大 | 国产无遮挡又黄又爽又色 | 日本一区二区三区免费播放 | 波多野结衣av一区二区全免费观看 | 亚洲中文字幕乱码av波多ji | 少妇无码吹潮 | 久久综合九色综合97网 | 荫蒂添的好舒服视频囗交 | 国产精品.xx视频.xxtv | 无码国产乱人伦偷精品视频 | 日本一本二本三区免费 | 成人片黄网站色大片免费观看 | 18精品久久久无码午夜福利 | 久久久久99精品成人片 | 女人色极品影院 | 欧美精品免费观看二区 | 亚洲自偷自偷在线制服 | av人摸人人人澡人人超碰下载 | 波多野结衣av一区二区全免费观看 | 天堂无码人妻精品一区二区三区 | 国产香蕉97碰碰久久人人 | 国产精品手机免费 | 97夜夜澡人人爽人人喊中国片 | 精品一区二区三区波多野结衣 | 亚洲娇小与黑人巨大交 | 77777熟女视频在线观看 а天堂中文在线官网 | 动漫av一区二区在线观看 | 成年女人永久免费看片 | 蜜臀aⅴ国产精品久久久国产老师 | 欧美高清在线精品一区 | 午夜理论片yy44880影院 | 久久精品国产大片免费观看 | 大地资源中文第3页 | 老熟妇乱子伦牲交视频 | 国产人妻久久精品二区三区老狼 | 精品无码国产一区二区三区av | 国产激情精品一区二区三区 | 国产精品-区区久久久狼 | 亚洲精品一区三区三区在线观看 | 疯狂三人交性欧美 | 亚洲人成影院在线观看 | 在线观看免费人成视频 | 国产情侣作爱视频免费观看 | 国产成人精品视频ⅴa片软件竹菊 | 99久久人妻精品免费一区 | 无码国内精品人妻少妇 | 精品无人国产偷自产在线 | 51国偷自产一区二区三区 | 妺妺窝人体色www婷婷 | 未满小14洗澡无码视频网站 | 夜夜高潮次次欢爽av女 | 无码一区二区三区在线 | 国模大胆一区二区三区 | 天天av天天av天天透 | 亚洲高清偷拍一区二区三区 | ass日本丰满熟妇pics | 日韩人妻无码中文字幕视频 | 亚洲日本一区二区三区在线 | 在线 国产 欧美 亚洲 天堂 | 无码国内精品人妻少妇 | 国产成人人人97超碰超爽8 | 精品国产成人一区二区三区 | 亚洲爆乳大丰满无码专区 | 狠狠cao日日穞夜夜穞av | 国产无遮挡又黄又爽免费视频 | 欧美国产亚洲日韩在线二区 | 国色天香社区在线视频 | 亚洲乱亚洲乱妇50p | 亚洲人成网站在线播放942 | 中文无码精品a∨在线观看不卡 | 国产成人精品无码播放 | 国产成人无码av片在线观看不卡 | ass日本丰满熟妇pics | 麻豆精品国产精华精华液好用吗 | 国产av无码专区亚洲awww | 欧美熟妇另类久久久久久不卡 | 中文无码成人免费视频在线观看 | 成人欧美一区二区三区黑人 | 亚洲一区av无码专区在线观看 | 国产后入清纯学生妹 | 无码人妻出轨黑人中文字幕 | 领导边摸边吃奶边做爽在线观看 | 国产精品美女久久久网av | 中文字幕人成乱码熟女app | 久久天天躁狠狠躁夜夜免费观看 | 永久免费观看国产裸体美女 | 两性色午夜视频免费播放 | 奇米影视888欧美在线观看 | 中文无码伦av中文字幕 | 无码人妻少妇伦在线电影 | av无码久久久久不卡免费网站 | 一本色道婷婷久久欧美 | 日韩人妻少妇一区二区三区 | 99久久精品无码一区二区毛片 | 中国女人内谢69xxxx | 亚洲精品久久久久久一区二区 | 99er热精品视频 | 亚洲无人区午夜福利码高清完整版 | 装睡被陌生人摸出水好爽 | 无码人妻久久一区二区三区不卡 | 图片区 小说区 区 亚洲五月 | 久久人人97超碰a片精品 | 亚洲精品成人av在线 | 亚洲另类伦春色综合小说 | 国产精品无码成人午夜电影 | 在线天堂新版最新版在线8 | 国产色xx群视频射精 | 婷婷六月久久综合丁香 | 精品aⅴ一区二区三区 | 无码乱肉视频免费大全合集 | 国产sm调教视频在线观看 | 国产内射爽爽大片视频社区在线 | 日本va欧美va欧美va精品 | 久久国产劲爆∧v内射 | 欧美日韩久久久精品a片 | 熟妇人妻无码xxx视频 | 67194成是人免费无码 | 亚洲精品久久久久中文第一幕 | 国产性生大片免费观看性 | 国产精品毛多多水多 | 久久久精品456亚洲影院 | 国产午夜视频在线观看 | 免费国产黄网站在线观看 | 丁香花在线影院观看在线播放 | 色欲综合久久中文字幕网 | 日产精品高潮呻吟av久久 | aⅴ亚洲 日韩 色 图网站 播放 | 欧美 丝袜 自拍 制服 另类 | 国产特级毛片aaaaaa高潮流水 | 夜夜夜高潮夜夜爽夜夜爰爰 | 亚洲色大成网站www国产 | 暴力强奷在线播放无码 | 奇米影视7777久久精品人人爽 | 欧美日韩一区二区综合 | 亚洲欧美精品aaaaaa片 | 国产又爽又黄又刺激的视频 |