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

類的奇幻漂流-類加載機制探秘

開發 前端
我們寫的類,在編譯完成后,究竟是怎么加載進虛擬機的?虛擬機又做了什么神奇操作?本文可以帶著讀者初探類加載機制。上來先放類加載各個階段的主要任務,用于給讀者一個大概的印象體驗,現在記不住也沒有什么關系。

[[374001]]

 我們寫的類,在編譯完成后,究竟是怎么加載進虛擬機的?虛擬機又做了什么神奇操作?本文可以帶著讀者初探類加載機制。上來先放類加載各個階段的主要任務,用于給讀者一個大概的印象體驗,現在記不住也沒有什么關系。

現在只需要記住三個名詞,裝載——>連接——>初始化,記住了嗎,我們要開始奇幻漂流了!

類的奇幻漂流——類加載機制探秘

在文章的最后,我們使用幾個例子來加深對程序執行順序的理解。

1. 裝載

我覺得這里使用裝載更好一點,第一,可以避免與類加載過程中的“加載”混淆,第二,裝載體現的就是一個“裝”字,僅僅是把貨物從一個地方搬到另外一個地方而已,而這里的加載,卻包含搬運貨物、處理貨物等一系列流程。

裝載階段,將.class字節碼文件的二進制數據讀入內存中,然后將這些數據翻譯成類的元數據,元數據包括方法代碼,變量名,方法名,訪問權限與返回值,接著將元數據存入方法區。最后會在堆中創建一個Class對象,用來封裝類在方法區中的數據結構,因此我們可以通過訪問此Class對象,來間接訪問方法區中的元數據。

在Java7與Java8之后,方法區有不同的實現,這部分詳細內容可以參考我的另外一篇博客靈性一問——為什么用元空間替換永久代?

總結來講,裝載的子流程為:

.class文件讀入內存——>元數據放進方法區——>Class對象放進堆中

最后我們訪問此Class對象,即可獲取該類在方法區中的結構。

2. 連接

連接又包括驗證、準備、初始化

2.1 驗證

驗證被加載類的正確性與安全性,看class文件是否正確,是否對會對虛擬機造成安全問題等,主要去驗證文件格式、元數據、字節碼與符合引用。

2.1.1 驗證文件格式

2.1.1.1 驗證文件類型

每個文件都有特定的類型,類型標識字段存在于文件的開頭中,采用16進制表示,類型標識字段稱為魔數,class文件的魔數為0xCAFEBABY,關于此魔數的由來也很有意思,可以看這篇文章class文件魔數CAFEBABE的由來。

2.1.1.2 驗證主次版本號

檢查看主次版本號是否在當前jvm處理的范圍之內,主次版本號的存放位置緊隨在魔數之后。

2.1.1.3 驗證常量池

常量池是class文件中最為復雜的一部分,對常量池的驗證主要是驗證常量池中是否有不支持的類型。

例如,有以下簡答的代碼:

  1. public class Main { 
  2.     public static void main(String[] args) { 
  3.         int a=1; 
  4.         int b=2; 
  5.         int c=a+b; 
  6.     } 

 在該類的路徑下,使用javac Main.java編譯,然后使用javap -v Main可以輸出以下信息:

類的奇幻漂流——類加載機制探秘

以上標紅處,就是class文件中存儲常量池的地方。

2.1.2 驗證元數據

主要是對字節碼描述的信息進行語義分析,以保證其描述的信息符合java語言規范的要求,比如說驗證這個類是不是有父類,類中的字段方法是不是和父類沖突等等。

2.1.3 驗證字節碼

這是整個驗證過程最復雜的階段,主要是通過數據流和控制流分析,確定程序語義是合法的、符合邏輯的。

2.1.4 驗證符號引用

它是驗證的最后一個階段,發生在虛擬機將符號引用轉化為直接引用的時候。主要是對類自身以外的信息進行校驗。目的是確保解析動作能夠完成。

對整個類加載機制而言,驗證階段是一個很重要但是非必需的階段,如果我們的代碼能夠確保沒有問題,那么就沒有必要去驗證,畢竟驗證需要花費一定的的時間,可以使用-Xverfity:none來關閉大部分的驗證。

2.2 準備

在這個階段中,主要是為類變量(靜態變量)分配內存以及初始化默認值,因為靜態變量全局只有一份,是跟著類走的,因此分配內存其實是在方法區上分配。

這里有3個注意點:

(1)在準備階段,虛擬機只為靜態變量分配內存,實例變量要等到初始化階段才開始分配內存。這個時候還沒有實例化該類,連對象都沒有,因此這個時候還不存在實例變量。

(2)為靜態變量初始化默認值,注意,是初始化對應數據類型的默認值,不是自定義的值。

例如,代碼中是這樣寫的,自定義int類型的變量a的值為1

  1. private static int a=1; 

但是,在準備階段完成之后,a的值只會被初始化為0,而不是1。

(3)被final修飾的靜態變量,如果值比較小,則在編譯后直接內嵌到字節碼中。如果值比較大,也是在編譯后直接放入常量池中。因此,準備階段結束后,final類型的靜態變量已經有了用戶自定義的值,而不是默認值。

2.3 解析

解析階段,主要是將class文件中常量池中的符號引用轉化為直接引用。

符號引用的含義:

可以直接理解為是一個字符串,用這個字符串來表示一個目標。就像博主的名字是SunAlwaysOnline,這個SunAlwaysOnline字符串就是一個符號引用,代表博主,但是現在不能通過名字直接找到我本人。

直接引用的含義:

直接引用是一個指向目標的指針,能夠通過直接引用定位到目標。比如

  1. Student s=new Student(); 

我們可以通過引用變量s直接定位到新創建出的Student對象實例。

將符號引用轉化為直接引用,就能將平淡無奇的字符串轉化為指向對象的指針。

3. 初始化

執行初始化,就是虛擬機執行類構造器()方法的過程,()方法是由編譯器自動去搜集類中的所有類變量與靜態語句塊合并產生的。可能存在多個線程同時執行某個類的()方法,虛擬機此時會對該方法進行加鎖,保證只有一個線程能執行。

到了這個階段,類變量與類成員變量才會被賦予用戶自定義的值。

當然,一個類并不是被初始化多次,只有當對類的首次主動使用的時候才會導致類的初始化。主動使用包含以下幾種方式:

  • 使用new語句創建類的對象訪問類靜態變量,或者對該靜態變量賦值調用類的靜態方法通過反射方式獲取對象實例有public static void main(String[] args)方法的類會首先被初始化初始化一個類時,如果父類還沒有被初始化,則首先會初始化父類,再初始化該類。

被動使用會發生呢?

  • 當訪問一個靜態變量時時,只有真正聲明這個靜態變量的類才會被初始化。例如:通過子類引用父類的靜態變量,不會導致子類初始化。引用常量不會觸發此類的初始化(常量在編譯階段就內嵌進字節碼或存入調用類的常量池中)聲明并創建數組時,不會觸發類的初始化。例如Student array=new Student[2];

4. 類的初始化順序

現在有以下的代碼:

  1. class Father { 
  2.  
  3.     public static int fatherA = 1; 
  4.     public static final int fatherB = 2; 
  5.  
  6.     static { 
  7.         System.out.println("父類的靜態代碼塊"); 
  8.     } 
  9.  
  10.     { 
  11.         System.out.println("父類的非靜態代碼塊"); 
  12.     } 
  13.  
  14.     Father() { 
  15.         System.out.println("父類的構造方法"); 
  16.     } 
  17.  
  18. class Son extends Father { 
  19.     public static int sonA = 3; 
  20.     public static final int sonB = 4; 
  21.  
  22.     static { 
  23.         System.out.println("子類的靜態代碼塊"); 
  24.     } 
  25.  
  26.     { 
  27.         System.out.println("子類的非靜態代碼塊"); 
  28.     } 
  29.  
  30.     Son() { 
  31.         System.out.println("子類的構造方法"); 
  32.     } 

 (1)Main方法中實例化子類:

  1. public class Main { 
  2.     public static void main(String[] args) { 
  3.         Son son = new Son(); 
  4.     } 

 首先可以確定的是,這屬于主動使用,父類先于子類初始化,因此會得到以下的輸出:

類的奇幻漂流——類加載機制探秘

這里可以進行總結,程序執行的順序為:

父類的靜態域->子類的靜態域->父類的非靜態域->子類的非靜態域->父類的構造方法->子類的構造方法

這里的靜態域包括靜態變量與靜態代碼塊,靜態變量和靜態代碼塊的執行順序由編碼順序決定。

規律就是,靜態先于非靜態,父類先于子類,構造方法在最后。嗯給我背三遍

(2)Mian方法中輸出子類的sonA屬性

  1. public class Main { 
  2.     public static void main(String[] args) { 
  3.         System.out.println(Son.sonA); 
  4.     } 

 這里只要輸出子類的靜態屬性sonA,因此需要初始化子類,但父類還沒有被初始化,因此先初始化父類。一般而言,靜態代碼塊會對靜態變量進行賦值,因此調用靜態屬性,在此之前虛擬機會調用靜態代碼塊。所以,輸出如下:

類的奇幻漂流——類加載機制探秘

(3)Main方法輸出子類繼承而來的fatherA屬性

  1. public class Main { 
  2.     public static void main(String[] args) { 
  3.         System.out.println(Son.fatherA); 
  4.     } 

 子類從父類繼承而來的屬性,因此這里屬于被動使用。只會執行靜態屬性真正存在的那個類的初始化,即只會初始化父類。因此,輸出:

類的奇幻漂流——類加載機制探秘

(4)Main方法中聲明并創建一個子類類型的數組

  1. public class Main { 
  2.     public static void main(String[] args) { 
  3.        Son[] sons=new Son[10]; 
  4.     } 

 顯然,這屬于被動使用,不會初始化Son類。因此,沒有任何輸出。

(5)Main方法輸出子類被static final修飾的變量

  1. public class Main { 
  2.     public static void main(String[] args) { 
  3.         System.out.println(Son.sonB); 
  4.     } 

 顯然,被static final修改的變量,也就是一個常量,在編譯器就放入類的常量池中了,不需要初始化類。因此,這里只輸出sonB的值,即為4。

(6)在聲明前使用一個靜態變量

  1. public class Main { 
  2.     static { 
  3.         c = 1; 
  4.     } 
  5.  
  6.     public static int c; 

這樣的代碼,是可以運行的,小朋友,你是不是有大大的疑問?但容我自仔細分析來。

首先,在準備階段,為靜態變量c分配內存,然后賦予初始值0。等到初始化階段,執行類的靜態域,也就是執行此處的靜態代碼塊中c=1,c此時已經存在,也有了一個默認值0,此時可以修改c的值。

但是,如果我僅僅在c=1后使用c的話,如:

  1. public class Main { 
  2.     static { 
  3.         c = 1; 
  4.         System.out.println(c); 
  5.     } 
  6.  
  7.     public static int c; 

 此時編譯沒法通過,編輯器提示Illegal forward reference,即非法前向引用,似乎只能寫入c,不能讀取c。我們之前已經分析過了,此時在內存中是有這個c的,那為什么不能讀取c?

本來在正常的情況下,要想使用一個變量,變量首先需要聲明出來。當然,java做出了一種特許,允許在使用前不先聲明,但必須要滿足幾個條件,其中有一個條件是該變量只能出現在賦值表達式的左邊,即c=1可以,c=2可以,c+=1不可以(c+=1也就是c=c+1,違反了左值協定)。當然如果這里使用全限定名,也就是輸出Main.c時,則可以正常運行。

有的小伙伴可能還是有大大的疑問,不要緊,沒看懂的可以參考以下講解非法前向引用的文章

java報錯非法的前向引用問題

Java編譯時提示非法向前引用

Illegal forward Reference java issue

關于加載使用到的類加載器,雙親委派機制,如何自定義類加載器,可能需要另開篇幅。

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2021-01-06 09:51:19

類加載器雙親委派模型

2021-07-05 06:51:43

Java機制類加載器

2012-12-19 09:36:33

2024-09-06 09:37:45

WebApp類加載器Web 應用

2023-10-31 16:00:51

類加載機制Java

2024-03-12 07:44:53

JVM雙親委托機制類加載器

2025-07-01 07:41:37

Java類加載器雙親委派

2017-09-20 08:07:32

java加載機制

2017-03-08 10:30:43

JVMJava加載機制

2021-04-29 11:18:14

JVM加載機制

2024-09-04 09:47:21

2009-02-03 09:42:53

JAVA類JVM指令forName方法

2025-02-05 11:43:28

2024-12-02 09:01:23

Java虛擬機內存

2020-10-26 11:20:04

jvm類加載Java

2023-05-10 11:07:18

2023-10-17 09:26:44

Java工具

2025-06-26 03:33:00

2022-10-08 08:34:34

JVM加載機制代碼

2012-02-09 10:31:17

Java
點贊
收藏

51CTO技術棧公眾號

www.黄色一片| 欧美成人三级在线视频| 911美女片黄在线观看游戏| 婷婷亚洲图片| 亚洲成人999| 国产又大又硬又粗| 九义人在线观看完整免费版电视剧| 六月婷婷色综合| 久久久这里只有精品视频| 蜜桃传媒一区二区亚洲av | 中文字幕成人网| 91福利视频导航| 亚洲国产av一区二区三区| 91精品国产乱码久久久久久久| 精品久久五月天| 国产高清视频网站| 97天天综合网| 亚洲视频一区二区免费在线观看| 好吊色欧美一区二区三区 | 亚洲福利在线播放| 中文字幕 日韩 欧美| 中文字幕影音在线| 亚洲制服欧美中文字幕中文字幕| 日韩欧美三级电影| 深爱激情五月婷婷| 国产一区二区久久| 国产精品视频yy9099| 国产91精品一区| 欧美天天视频| 久久这里有精品| 谁有免费的黄色网址| 秋霞蜜臀av久久电影网免费 | 西西人体44www大胆无码| 国产主播一区二区| 国产精品视频自拍| www.久久视频| 久久久久久穴| 91国偷自产一区二区三区的观看方式 | 日韩一区二区三区精品视频第3页| 91官网在线免费观看| 久久综合九色综合88i| 国内老司机av在线| 一区二区三区精品视频| 韩国黄色一级大片| 免费av网站在线看| 国产精品国产三级国产aⅴ中文| 欧美中文娱乐网| 男人天堂资源在线| 久久久亚洲高清| 美女三级99| 欧美成人综合在线| 久久午夜色播影院免费高清 | 99久久影视| 精品国产一区二区在线 | 欧美女子与性| 久久综合av免费| 九9re精品视频在线观看re6 | 日韩有码在线播放| 久久丫精品国产亚洲av不卡| 图片婷婷一区| 伊人伊成久久人综合网小说| 国产欧美小视频| 日韩欧美电影| 蜜臀久久99精品久久久无需会员| 久久国产免费观看| 日韩视频精品在线观看| 91精品国产91久久久久| 无码人妻av免费一区二区三区| 日韩国产在线一| 成人日韩av在线| www.黄色av| 久久综合九色综合久久久精品综合| 免费日韩av电影| 搞黄视频在线观看| 亚洲欧洲国产专区| 男人添女人荫蒂免费视频| 625成人欧美午夜电影| 欧美在线观看你懂的| 91小视频在线播放| 国产精品22p| 在线播放国产精品| 五月天丁香激情| 国产欧美激情| 成人精品网站在线观看| 视频一区二区免费| 国产嫩草影院久久久久| 免费观看亚洲视频| 免费福利视频一区二区三区| 7777精品伊人久久久大香线蕉 | 欧洲黄色一级视频| 国产在线|日韩| 精品人在线二区三区| 午夜一区二区三区免费| 欧美国产偷国产精品三区| 久久人人爽人人| 中文字幕无线码一区| 国产精品99久| 视频一区视频二区视频| 密臀av在线| 欧美日韩精品一区二区三区| 日韩精品视频一区二区| 久久精品国产www456c0m| 久久久久一本一区二区青青蜜月| 国产乱码77777777| 国产成人免费视| 色婷婷精品国产一区二区三区| 手机在线免费观看av| 色狠狠色噜噜噜综合网| 国产精品果冻传媒| 99久久婷婷这里只有精品| 欧美最顶级丰满的aⅴ艳星| 99精品人妻无码专区在线视频区| 久久午夜国产精品| 欧美狂野激情性xxxx在线观| 福利精品在线| 亚洲欧美日韩精品| 日韩精品一区二区在线播放| 国产综合久久久久久久久久久久| 久久精品日产第一区二区三区| а√天堂官网中文在线| 欧美亚洲国产bt| 成人无码www在线看免费| 欧美国产高潮xxxx1819| 国产免费一区视频观看免费 | 国自在线精品视频| 国产视频手机在线| 国产精品欧美久久久久无广告| ww国产内射精品后入国产| 精品久久国产一区| 久久手机精品视频| 一级黄色录像大片| 国产欧美中文在线| 亚欧在线免费观看| 国产在视频线精品视频www666| 97在线视频免费观看| 亚洲成人第一区| 亚洲欧美偷拍卡通变态| 成年人三级黄色片| 日韩国产欧美| 成人久久久久爱| 日本福利在线| 欧美群妇大交群中文字幕| 调教驯服丰满美艳麻麻在线视频| 亚洲欧美日韩视频二区| 精品亚洲欧美日韩| 国产免费拔擦拔擦8x在线播放 | 久久久婷婷一区二区三区不卡| 国产福利电影在线播放| 日韩精品免费一线在线观看| 黄色一级片免费看| 91在线免费播放| 日日鲁鲁鲁夜夜爽爽狠狠视频97 | 国产成人在线影院| 91国在线高清视频| 99亚洲乱人伦aⅴ精品| 欧美国产日韩一区| 无码国产精品96久久久久| 精品久久久久久久久久国产 | 国产成人一区| 国产精品一久久香蕉国产线看观看| av在线电影免费观看| 欧美日韩一区视频| 99热精品免费| 99国产精品视频免费观看| 无码人妻h动漫| 色婷婷综合网| 97超级在线观看免费高清完整版电视剧| 国产高清一区二区三区视频 | 欧美成人片在线| 欧美日韩免费观看一区三区| 久久精品视频免费在线观看| www.久久久久久久久| 日韩免费高清在线| 亚洲成人tv| 久久久久久久久久久久久久久久av| 女人让男人操自己视频在线观看| 国产午夜精品美女视频明星a级| 中文字幕乱码一区二区| 亚洲激情五月婷婷| 精品黑人一区二区三区观看时间| 日本女人一区二区三区| 欧洲精品视频在线| 亚洲免费毛片| 成人精品网站在线观看| 9999精品成人免费毛片在线看 | 日本午夜精品一区二区三区| 国产精品亚洲欧美日韩一区在线| 久久久久久久影院| 国产女人在线视频| 欧美一级日韩一级| 久久精品国产成人av| 国产精品久久久久久妇女6080| 国产伦理在线观看| 青青草97国产精品免费观看无弹窗版| 国产女人18毛片| 精品国产不卡| 国产亚洲欧美一区二区| 中文幕av一区二区三区佐山爱| 91精品成人久久| 最新黄网在线观看| 欲色天天网综合久久| 懂色av蜜臀av粉嫩av分享吧| 欧美唯美清纯偷拍| 自拍偷拍欧美亚洲| 日韩美女久久久| 精品无码人妻一区二区免费蜜桃| 成人一二三区视频| 奇米影视四色在线| 亚洲自拍另类| 日本一区午夜艳熟免费| 日韩欧美一区二区三区免费看| 精品国产乱码久久久久软件 | 亚洲男人天堂2023| 亚洲第一视频在线播放| 欧美人与禽zozo性伦| 国产精品久久久久久久久久精爆| 亚洲最大成人综合| 免费成人深夜夜行网站| 国产亚洲欧美日韩日本| 91视频啊啊啊| 成人性生交大合| 91香蕉视频在线观看视频| 日韩电影在线观看一区| 18禁免费无码无遮挡不卡网站 | 成人一区二区三| 国产午夜精品一区二区三区欧美| 久久国产精品免费观看| 日韩片欧美片| 色综合影院在线观看| 亚洲欧美tv| 欧美日韩电影一区二区| 欧美变态挠脚心| 国产一区二区免费电影| 成人在线视频你懂的| 97久久天天综合色天天综合色hd | 亚洲视频电影| 欧美日韩色图| 亚洲国产日韩综合一区| av影片在线一区| 午夜老司机精品| 国模精品一区| 亚洲成色www久久网站| 精品日韩欧美一区| 香蕉久久夜色| 91欧美日韩| 久久av喷吹av高潮av| 小说区亚洲自拍另类图片专区| 美女黄色片网站| 亚洲一区二区三区| 乱熟女高潮一区二区在线| 欧美网站在线| 自慰无码一区二区三区| 久久久久在线| 一区二区三区国产免费| 乱一区二区av| 初高中福利视频网站| 国产成人综合亚洲网站| 精品国产乱码久久久久夜深人妻| 99国产精品久久| 91中文字幕永久在线| 国产精品网站在线播放| 久久国产波多野结衣| 一区二区三区精品视频在线| 日韩乱码人妻无码中文字幕| 日韩欧中文字幕| 在线免费a视频| 欧美一级欧美三级| 天堂成人在线观看| 亚洲人精品午夜在线观看| 北岛玲日韩精品一区二区三区| 视频直播国产精品| 毛片大全在线观看| 欧美亚洲另类在线| 成人黄色免费观看| 国产成人精品日本亚洲11| 少妇精品久久久| 美国av在线播放| 日韩视频免费| 亚洲视频第二页| 成人午夜大片免费观看| 欧洲女同同性吃奶| 亚洲欧美精品午睡沙发| 国产精品一区二区6| 欧美日韩精品三区| 蜜臀久久久久久999| 中日韩午夜理伦电影免费| 在线三级中文| 国产精品极品尤物在线观看| 亚洲一级大片| 日日噜噜噜噜夜夜爽亚洲精品| 午夜国产精品视频| 亚洲国产精品毛片av不卡在线| 国产一区二区精品在线观看| 久久国产精品影院| 亚洲精品老司机| 懂色av蜜臀av粉嫩av喷吹| 日韩精品在线网站| 97电影在线看视频| 午夜精品一区二区三区在线播放| 日韩成人在线电影| 蜜桃av久久久亚洲精品| 欧美国产高清| 三级av免费观看| 久久夜色精品一区| 永久免费看黄网站| 日本电影亚洲天堂一区| 蜜臀av中文字幕| 久久精品国产清自在天天线 | 欧美日精品一区视频| 亚洲色图 校园春色| 欧美精品在线观看91| av成人亚洲| 欧洲久久久久久| 影音先锋亚洲精品| 波多野结衣在线免费观看| 亚洲国产精品国自产拍av| 日本一区二区网站| 日韩一区二区精品在线观看| 99青草视频在线播放视| 欧美亚洲国产成人精品| 黑人久久a级毛片免费观看| 正在播放久久| 免费看日韩精品| xxxxx在线观看| 色综合久久久久综合体桃花网| 日本人妻熟妇久久久久久| 欧美国产欧美亚洲国产日韩mv天天看完整| 欧美系列精品| 一本一道久久a久久精品综合 | 亚洲图片88| 国产精品欧美日韩久久| 神马电影久久| 欧美精品成人网| 国产午夜亚洲精品午夜鲁丝片| 免费在线不卡视频| 日韩精品免费综合视频在线播放| 蜜臀av国内免费精品久久久夜夜| 91青青草免费在线看| 欧美一区在线看| 无码人妻丰满熟妇啪啪网站| 一区二区三区在线播| 国产激情久久久久久熟女老人av| 精品国偷自产在线| 欧美一区二区三区婷婷| 亚洲在线视频一区二区| 久久99国产精品成人| 波多野结衣欲乱| 欧美另类变人与禽xxxxx| 国精产品一区| 99理论电影网| 黄色一区二区三区四区| 无码人妻精品一区二区三区99不卡| 亚洲专区一二三| 亚洲av成人精品毛片| 国产va免费精品高清在线观看| 蜜臀91精品国产高清在线观看| 东京热加勒比无码少妇| 国产欧美日韩在线| 一级黄色片网站| 欧美日韩国产成人在线观看| 国产成人av毛片| 日本在线观看a| 国产精品美女久久久久久久 | 亚洲欧洲在线免费| 成人免费黄色| 中国黄色录像片| 99视频精品在线| 国产精品免费无遮挡无码永久视频| 日韩在线观看视频免费| 亚洲我射av| 青青青青草视频| 国产人成一区二区三区影院| 国产区精品在线| 51ⅴ精品国产91久久久久久| 青青一区二区三区| 成人免费播放视频| 色综合久久综合网欧美综合网 | 欧美整片在线观看| 欧美xxxx中国| 中文字幕视频观看| 日本久久电影网| 2020国产在线视频| 欧美精品欧美精品| 国产在线精品视频| 一级黄色免费网站| 久久精品视频网站| 亚洲人成网www| 两性午夜免费视频| 欧美午夜视频在线观看| a视频在线观看免费| 欧美一进一出视频| 国产精品一区二区果冻传媒| www.久久精品视频| 欧美国产日韩二区| 成人久久综合| 西西大胆午夜视频| 欧美一区二区三区不卡| **欧美日韩在线观看| av动漫在线免费观看| 中文字幕成人av|