久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

詳解JAVA中static的作用

瀏覽:55日期:2022-08-31 14:23:23

1、深度總結(jié)

引用一位網(wǎng)友的話,說的非常好,如果別人問你static的作用;如果你說靜態(tài)修飾 類的屬性 和 類的方法 別人認(rèn)為你是合格的;如果是說 可以構(gòu)成 靜態(tài)代碼塊,那別人認(rèn)為你還可以; 如果你說可以構(gòu)成 靜態(tài)內(nèi)部類, 那別人認(rèn)為你不錯;如果你說了靜態(tài)導(dǎo)包,那別人認(rèn)為你很OK;

那我們就先在這幾方面一一對static進(jìn)行總結(jié);然后說一些模糊的地方,以及一些面試中容易問道的地方;

1)static方法

static方法一般稱作靜態(tài)方法,由于靜態(tài)方法不依賴于任何對象就可以進(jìn)行訪問,因此對于靜態(tài)方法來說,是沒有this的,因?yàn)樗灰栏接谌魏螌ο螅热欢紱]有對象,就談不上this了。并且由于這個(gè)特性,在靜態(tài)方法中不能訪問類的非靜態(tài)成員變量和非靜態(tài)成員方法,因?yàn)榉庆o態(tài)成員方法/變量都是必須依賴具體的對象才能夠被調(diào)用。

但是要注意的是,雖然在靜態(tài)方法中不能訪問非靜態(tài)成員方法和非靜態(tài)成員變量,但是在非靜態(tài)成員方法中是可以訪問靜態(tài)成員方法/變量的。舉個(gè)簡單的例子:

詳解JAVA中static的作用

在上面的代碼中,由于print2方法是獨(dú)立于對象存在的,可以直接用過類名調(diào)用。假如說可以在靜態(tài)方法中訪問非靜態(tài)方法/變量的話,那么如果在main方法中有下面一條語句:

MyObject.print2();

此時(shí)對象都沒有,str2根本就不存在,所以就會產(chǎn)生矛盾了。同樣對于方法也是一樣,由于你無法預(yù)知在print1方法中是否訪問了非靜態(tài)成員變量,所以也禁止在靜態(tài)成員方法中訪問非靜態(tài)成員方法。

而對于非靜態(tài)成員方法,它訪問靜態(tài)成員方法/變量顯然是毫無限制的。

因此,如果說想在不創(chuàng)建對象的情況下調(diào)用某個(gè)方法,就可以將這個(gè)方法設(shè)置為static。我們最常見的static方法就是main方法,至于為什么main方法必須是static的,現(xiàn)在就很清楚了。因?yàn)槌绦蛟趫?zhí)行main方法的時(shí)候沒有創(chuàng)建任何對象,因此只有通過類名來訪問。

2)static變量

static變量也稱作靜態(tài)變量,靜態(tài)變量和非靜態(tài)變量的區(qū)別是:靜態(tài)變量被所有的對象所共享,在內(nèi)存中只有一個(gè)副本【存放在方法區(qū)】,它當(dāng)且僅當(dāng)在類初次加載時(shí)會被初始化【加final和不加final的static變量初始化的位置不一樣】。而非靜態(tài)變量是對象所擁有的,在創(chuàng)建對象的時(shí)候被初始化,存在多個(gè)副本,各個(gè)對象擁有的副本互不影響。

static成員變量的初始化順序按照定義的順序進(jìn)行初始化。

3)static代碼塊

static關(guān)鍵字還有一個(gè)比較關(guān)鍵的作用就是 用來形成靜態(tài)代碼塊以優(yōu)化程序性能。static塊可以置于類中的任何地方,類中可以有多個(gè)static塊。在類初次被加載的時(shí)候,會按照static塊的順序來執(zhí)行每個(gè)static塊,并且只會執(zhí)行一次【根據(jù)class加載原理 每個(gè)類加載一次 使用雙親委托加載】。

初始化的順序 靜態(tài)代碼塊 > 構(gòu)造代碼塊 > 構(gòu)造函數(shù)

public class Client { {//構(gòu)造代碼塊 System.out.println('執(zhí)行構(gòu)造代碼塊'); }}

為什么說static塊可以用來優(yōu)化程序性能,是因?yàn)樗奶匦?只會在類加載的時(shí)候執(zhí)行一次。下面看個(gè)例子:

class Person{ private Date birthDate; public Person(Date birthDate) { this.birthDate = birthDate; } boolean isBornBoomer() { Date startDate = Date.valueOf('1946'); Date endDate = Date.valueOf('1964'); return birthDate.compareTo(startDate)>=0 && birthDate.compareTo(endDate) < 0; }}

isBornBoomer是用來這個(gè)人是否是1946-1964年出生的,而每次isBornBoomer被調(diào)用的時(shí)候,都會生成startDate和birthDate兩個(gè)對象,造成了空間浪費(fèi),如果改成這樣效率會更好,其實(shí)就是利用了靜態(tài)代碼塊在內(nèi)存中值加載一次的機(jī)制:

class Person{ private Date birthDate; private static Date startDate,endDate; static{ startDate = Date.valueOf('1946'); endDate = Date.valueOf('1964'); } public Person(Date birthDate) { this.birthDate = birthDate; } boolean isBornBoomer() { return birthDate.compareTo(startDate)>=0 && birthDate.compareTo(endDate) < 0; }}

因此,很多時(shí)候會將一些只需要進(jìn)行一次的初始化操作都放在static代碼塊中進(jìn)行。

4)靜態(tài)內(nèi)部類

這個(gè)地方不單獨(dú)寫靜態(tài)內(nèi)部類,通過和普通的內(nèi)部類對比來加深對靜態(tài)內(nèi)部類的理解:

為何要用內(nèi)部類?

1. 內(nèi)部類一般只為其外部類使用;【供外部類使用說的很好 舉例 hashmap集合中 有一個(gè)內(nèi)部類 Entry 就是 轉(zhuǎn)為為 hashmap 存儲來使用】

2. 內(nèi)部類提供了某種進(jìn)入外部類的窗戶,內(nèi)部類存在外部類的引用,所以內(nèi)部類可以直接訪問外部類的屬性;

3. 也是最吸引人的原因,每個(gè)內(nèi)部類都能獨(dú)立地繼承一個(gè)接口,而無論外部類是否已經(jīng)繼承了某個(gè)接口。因此,內(nèi)部類使多重繼承的解決方案變得更加完整。

定義在一個(gè)類內(nèi)部的類叫內(nèi)部類,包含內(nèi)部類的類稱為外部類。內(nèi)部類可以聲明public、protected、private等訪問限制,可以聲明 為abstract的供其他內(nèi)部類或外部類繼承與擴(kuò)展,或者聲明為static、final的,也可以實(shí)現(xiàn)特定的接口。

外部類按常規(guī)的類訪問方式(以對象的方式)使用內(nèi)部 類,唯一的差別是外部類可以訪問內(nèi)部類的所有方法與屬性,包括私有方法與屬性,外部類訪問內(nèi)部類,需要創(chuàng)建對象訪問;有一點(diǎn)需要注意,內(nèi)部類不能訪問外部類所在的局部變量,只能訪問final修飾的局部變量。

舉例: 在方法中 定義內(nèi)部類 然后內(nèi)部類 調(diào)用方法的的入?yún)?則 入?yún)⒈仨毷? final 修飾

在方法內(nèi)定義內(nèi)部類時(shí),如果內(nèi)部類調(diào)用了方法中的變量,那么該變量必須申明為final類型,百思不得其解,后來想到應(yīng)該是生命周期的原因,因?yàn)榉椒▋?nèi)定義的變量是局部變量,離開該方法,變量就失去了作用,也就會自動被消除,而內(nèi)部類卻不會離開它所在方法就失去作用,它有更廣的生命周期,下面通過一個(gè)實(shí)例加以說明:

詳解JAVA中static的作用

(1)創(chuàng)建實(shí)例

OutClass.InnerClass obj = outClassInstance.new InnerClass(); //注意是外部類實(shí)例.new,內(nèi)部類AAA.StaticInner in = new AAA.StaticInner();//注意是外部類本身,靜態(tài)內(nèi)部類

(2)內(nèi)部類中的this

內(nèi)部類中的this與其他類一樣是指的本身。創(chuàng)建內(nèi)部類對象時(shí),它會與創(chuàng)造它的外圍對象有了某種聯(lián)系,于是能訪問外圍類的所有成員,不需任何特殊條件,可理解為內(nèi)部類鏈接到外部類。 用外部類創(chuàng)建內(nèi)部類對象時(shí),此內(nèi)部類對象會秘密的捕獲一個(gè)指向外部類的引用,于是,可以通過這個(gè)引用來訪問外圍類的成員。

(3)外部類訪問內(nèi)部類

內(nèi)部類類似外部類的屬性,因此訪問內(nèi)部類對象時(shí)總是需要一個(gè)創(chuàng)建好的外部類對象。外部類對象通過‘外部類名.this.xxx’的形式訪問內(nèi)部類的屬性與方法。如:

System.out.println('Print in inner Outer.index=' + pouter.this.index);System.out.println('Print in inner Inner.index=' + this.index);

(4)內(nèi)部類向上轉(zhuǎn)型

內(nèi)部類也可以和普通類一樣擁有向上轉(zhuǎn)型的特性。將內(nèi)部類向上轉(zhuǎn)型為基類型,尤其是接口時(shí),內(nèi)部類就有了用武之地。如果內(nèi)部類是private的,只可以被它的外部類問,從而完全隱藏實(shí)現(xiàn)的細(xì)節(jié)。

(5)方法內(nèi)的類

方法內(nèi)創(chuàng)建的類(注意方法中也能定義類),不能加訪問修飾符。另外,方法內(nèi)部的類也不是在調(diào)用方法時(shí)才會創(chuàng)建的,它們一樣也被事先編譯了。

(6)靜態(tài)內(nèi)部類

定義靜態(tài)內(nèi)部類:在定義內(nèi)部類的時(shí)候,可以在其前面加上一個(gè)權(quán)限修飾符static。此時(shí)這個(gè)內(nèi)部類就變?yōu)榱遂o態(tài)內(nèi)部類。

通常稱為嵌套類,當(dāng)內(nèi)部類是static時(shí),意味著:

[1]要創(chuàng)建嵌套類的對象,并不需要其外圍類的對象;

[2]不能從嵌套類的對象中訪問非靜態(tài)的外圍類對象(不能夠從靜態(tài)內(nèi)部類的對象中訪問外部類的非靜態(tài)成員);

嵌 套類與普通的內(nèi)部類還有一個(gè)區(qū)別:普通內(nèi)部類的字段與方法,只能放在類的外部層次上,所以普通的內(nèi)部類不能有static數(shù)據(jù)和static字段, 也不能包含嵌套類。但是在嵌套類里可以包含所有這些東西。也就是說,在非靜態(tài)內(nèi)部類中不可以聲明靜態(tài)成員,只有將某個(gè)內(nèi)部類修飾為靜態(tài)類,然后才能夠在這 個(gè)類中定義靜態(tài)的成員變量與成員方法。

另外,在創(chuàng)建靜態(tài)內(nèi)部類時(shí)不需要將靜態(tài)內(nèi)部類的實(shí)例綁定在外部類的實(shí)例上。普通非靜態(tài)內(nèi)部類的 對象是依附在外部類對象之中的,要在一個(gè)外部類中定義一個(gè)靜態(tài)的內(nèi)部類,不需要利用關(guān)鍵字new來創(chuàng)建內(nèi)部類的實(shí)例。靜態(tài)類和方法只屬于類本身,并不屬于 該類的對象,更不屬于其他外部類的對象。

(7)內(nèi)部類標(biāo)識符

每個(gè)類會產(chǎn)生一個(gè).class文件,文件名即為類名。同樣,內(nèi)部類也會產(chǎn)生這么一個(gè).class文件,但是它的名稱卻不是內(nèi)部類的類名,而是有著嚴(yán)格的限制:外圍類的名字,加上$,再加上內(nèi)部類名字。

代碼具體:

public class OutClassTest { static int a; int b; public static void test() { System.out.println('outer class static function'); } public static void main(String[] args) { // new一個(gè)外部類 OutClassTest oc1 = new OutClassTest(); // 通過外部類的對象new一個(gè)非靜態(tài)的內(nèi)部類 OutClassTest.InnerClass no_static_inner = oc1.new InnerClass(); // 調(diào)用非靜態(tài)內(nèi)部類的方法 System.out.println(no_static_inner.getKey()); // 調(diào)用靜態(tài)內(nèi)部類的靜態(tài)變量 System.out.println(OutClassTest.InnerStaticClass.static_value); // 不依賴于外部類實(shí)例,直接實(shí)例化內(nèi)部靜態(tài)類 OutClassTest.InnerStaticClass inner = new OutClassTest.InnerStaticClass(); // 調(diào)用靜態(tài)內(nèi)部類的非靜態(tài)方法 System.out.println(inner.getValue()); // 調(diào)用內(nèi)部靜態(tài)類的靜態(tài)方法 System.out.println(OutClassTest.InnerStaticClass.getMessage()); } private class InnerClass { // 只有在靜態(tài)內(nèi)部類中才能夠聲明或定義靜態(tài)成員 // private static String tt = '0'; private int flag = 0; public InnerClass() { // 三.非靜態(tài)內(nèi)部類的非靜態(tài)成員可以訪問外部類的非靜態(tài)變量和靜態(tài)變量 System.out.println('InnerClass create a:' + a); System.out.println('InnerClass create b:' + b); System.out.println('InnerClass create flag:' + flag); // System.out.println('InnerClass call outer static function'); // 調(diào)用外部類的靜態(tài)方法 test(); } public String getKey() { return 'no-static-inner'; } } private static class InnerStaticClass { // 靜態(tài)內(nèi)部類可以有靜態(tài)成員,而非靜態(tài)內(nèi)部類則不能有靜態(tài)成員。 private static String static_value = '0'; private int flag = 0; public InnerStaticClass() { System.out.println('InnerClass create a:' + a); // 靜態(tài)內(nèi)部類不能夠訪問外部類的非靜態(tài)成員 // System.out.println('InnerClass create b:' + b); System.out.println('InnerStaticClass flag is ' + flag); System.out.println('InnerStaticClass tt is ' + static_value); } public int getValue() { // 靜態(tài)內(nèi)部類訪問外部類的靜態(tài)方法 test(); return 1; } public static String getMessage() { return 'static-inner'; } } public OutClassTest() { // new一個(gè)非靜態(tài)的內(nèi)部類 InnerClass ic = new InnerClass(); System.out.println('OuterClass create'); }}

4)靜態(tài)導(dǎo)包

靜態(tài)導(dǎo)包就是java包的靜態(tài)導(dǎo)入,用import static代替import靜態(tài)導(dǎo)入包是JDK1.5中的新特性。

一般我們導(dǎo)入一個(gè)類都用 import com…..ClassName;而靜態(tài)導(dǎo)入是這樣:import static com…..ClassName.*;這里的多了個(gè)static,還有就是類名ClassName后面多了個(gè).* ,意思是導(dǎo)入這個(gè)類里的靜態(tài)方法。當(dāng)然,也可以只導(dǎo)入某個(gè)靜態(tài)方法,只要把 .* 換成靜態(tài)方法名就行了。然后在這個(gè)類中,就可以直接用方法名調(diào)用靜態(tài)方法,而不必用ClassName.方法名 的方式來調(diào)用。

好處:這種方法的好處就是可以簡化一些操作,例如打印操作System.out.println(…);就可以將其寫入一個(gè)靜態(tài)方法print(…),在使用時(shí)直接print(…)就可以了。但是這種方法建議在有很多重復(fù)調(diào)用的時(shí)候使用,如果僅有一到兩次調(diào)用,不如直接寫來的方便

example:

在Java 5中,import語句得到了增強(qiáng),以便提供甚至更加強(qiáng)大的減少擊鍵次數(shù)功能,雖然一些人爭議說這是以可讀性為代價(jià)的。這種新的特性成為靜態(tài)導(dǎo)入。當(dāng)你想使用static成員時(shí),可以使用靜態(tài)導(dǎo)入(在API中的類和你自己的類上,都可以使用該特性)。下面是靜態(tài)導(dǎo)入前后的代碼實(shí)例:

在靜態(tài)導(dǎo)入之前:

public class TestStatic {public static void main(String[] args) {System.out.println(Integer.MAX_VALUE);System.out.println(Integer.toHexString(42));}}

在靜態(tài)導(dǎo)入之后:

import static java.lang.System.out;import static java.lang.Integer.*;public class TestStaticImport {public static void main(String[] args) {out.println(MAX_VALUE);out.println(toHexString(42));}}

讓我們看一下使用靜態(tài)導(dǎo)入特性的代碼中將發(fā)生什么:

1、雖然該特性通常稱為“靜態(tài)導(dǎo)入”,但語法必須是import static,后面跟你想導(dǎo)入的static成員的完全限定名稱,或者通配符。在本例中,我們在System類的out對象上進(jìn)行靜態(tài)導(dǎo)入。

2、在本例中,我們可能想使用java.lang.Integer類的幾個(gè)static成員。該靜態(tài)導(dǎo)入語句使用通配符來表達(dá)“我想在此類中的所有靜態(tài)成員上進(jìn)行靜態(tài)導(dǎo)入”。

3、現(xiàn)在我們終于看到靜態(tài)導(dǎo)入特性的好處!我們不必在System.out.println中鍵入System。太好了!另外,我們不必在Integer.MAX_VALUE中鍵入Integer。因此,在這行代碼中,我們能夠?qū)⒖旖莘绞接糜陟o態(tài)方法和一個(gè)常量。

4、最后,我們進(jìn)行更多的快捷操作,這次針對Integer類的方法。

關(guān)于該特性,我們已經(jīng)有點(diǎn)兒諷刺意味兒了,但不僅我們是這樣的。我們不認(rèn)為節(jié)省少量的擊鍵次數(shù)會讓代碼

難于閱讀一點(diǎn),但許多開發(fā)人員要求將它添加到語言中。

下面是使用靜態(tài)導(dǎo)入的幾條原則:

你必須說import static, 不能說static import。

提防含糊不清的命名static成員。例如,如果你對Integer類和Long類執(zhí)行了靜態(tài)導(dǎo)入,引用MAX_VALUE將導(dǎo)致一個(gè)編譯器錯誤,因?yàn)镮nteger和Long都有一個(gè)MAX_VALUE常量,并且Java不會知道你在引用哪個(gè)MAX_VALUE。

你可以在static對象引用、常量(記住,它們是static 或final)和static方法上進(jìn)行靜態(tài)導(dǎo)入。

二.static關(guān)鍵字的誤區(qū)

1.static關(guān)鍵字會改變類中成員的訪問權(quán)限嗎?

有些初學(xué)的朋友會將java中的static與C/C++中的static關(guān)鍵字的功能混淆了。在這里只需要記住一點(diǎn):與C/C++中的static不同,Java中的static關(guān)鍵字不會影響到變量或者方法的作用域。在Java中能夠影響到訪問權(quán)限的只有private、public、protected(包括包訪問權(quán)限)這幾個(gè)關(guān)鍵字。看下面的例子就明白了:

詳解JAVA中static的作用

2.能通過this訪問靜態(tài)成員變量嗎?

雖然對于靜態(tài)方法來說沒有this,那么在非靜態(tài)方法中能夠通過this訪問靜態(tài)成員變量嗎?先看下面的一個(gè)例子,這段代碼輸出的結(jié)果是什么?

public class Main { static int value = 33; public static void main(String[] args) throws Exception{ new Main().printValue(); } private void printValue(){ int value = 3; System.out.println(this.value); }

輸出

33

這里面主要考察隊(duì)this和static的理解。this代表什么?this代表當(dāng)前對象,那么通過new Main()來調(diào)用printValue的話,當(dāng)前對象就是通過new Main()生成的對象。而static變量是被對象所享有的,因此在printValue中的this.value的值毫無疑問是33。在printValue方法內(nèi)部的value是局部變量,根本不可能與this關(guān)聯(lián),所以輸出結(jié)果是33。在這里永遠(yuǎn)要記住一點(diǎn):靜態(tài)成員變量雖然獨(dú)立于對象,但是不代表不可以通過對象去訪問,所有的靜態(tài)方法和靜態(tài)變量都可以通過對象訪問(只要訪問權(quán)限足夠)。

3.static能作用于局部變量么?

在C/C++中static是可以作用域局部變量的,但是在Java中切記:static是不允許用來修飾局部變量。不要問為什么,這是Java語法的規(guī)定。

三.常見的筆試面試題

下面列舉一些面試筆試中經(jīng)常遇到的關(guān)于static關(guān)鍵字的題目,僅供參考,如有補(bǔ)充歡迎下方留言。

1.下面這段代碼的輸出結(jié)果是什么?

public class Test extends Base{ static{ System.out.println('test static'); } public Test(){ System.out.println('test constructor'); } public static void main(String[] args) { new Test(); }} class Base{ static{ System.out.println('base static'); } public Base(){ System.out.println('base constructor'); }}

base statictest staticbase constructortest constructor

至于為什么是這個(gè)結(jié)果,我們先不討論,先來想一下這段代碼具體的執(zhí)行過程,在執(zhí)行開始,先要尋找到main方法,因?yàn)閙ain方法是程序的入口,但是在執(zhí)行main方法之前,必須先加載Test類,而在加載Test類的時(shí)候發(fā)現(xiàn)Test類繼承自Base類,因此會轉(zhuǎn)去先加載Base類,在加載Base類的時(shí)候,發(fā)現(xiàn)有static塊,便執(zhí)行了static塊。在Base類加載完成之后,便繼續(xù)加載Test類,然后發(fā)現(xiàn)Test類中也有static塊,便執(zhí)行static塊。在加載完所需的類之后,便開始執(zhí)行main方法。在main方法中執(zhí)行new Test()的時(shí)候會先調(diào)用父類的構(gòu)造器,然后再調(diào)用自身的構(gòu)造器。因此,便出現(xiàn)了上面的輸出結(jié)果。

2.這段代碼的輸出結(jié)果是什么?

public class Test { Person person = new Person('Test'); static{ System.out.println('test static'); } public Test() { System.out.println('test constructor'); } public static void main(String[] args) { new MyClass(); }} class Person{ static{ System.out.println('person static'); } public Person(String str) { System.out.println('person '+str); }} class MyClass extends Test { Person person = new Person('MyClass'); static{ System.out.println('myclass static'); } public MyClass() { System.out.println('myclass constructor'); }}

test staticmyclass staticperson staticperson Testtest constructorperson MyClassmyclass constructor

類似地,我們還是來想一下這段代碼的具體執(zhí)行過程。首先加載Test類,因此會執(zhí)行Test類中的static塊。接著執(zhí)行new MyClass(),而MyClass類還沒有被加載,因此需要加載MyClass類。在加載MyClass類的時(shí)候,發(fā)現(xiàn)MyClass類繼承自Test類,但是由于Test類已經(jīng)被加載了,所以只需要加載MyClass類,那么就會執(zhí)行MyClass類的中的static塊。在加載完之后,就通過構(gòu)造器來生成對象。而在生成對象的時(shí)候,必須先初始化父類的成員變量,因此會執(zhí)行Test中的Person person = new Person(),而Person類還沒有被加載過,因此會先加載Person類并執(zhí)行Person類中的static塊,接著執(zhí)行父類的構(gòu)造器,完成了父類的初始化,然后就來初始化自身了,因此會接著執(zhí)行MyClass中的Person person = new Person(),最后執(zhí)行MyClass的構(gòu)造器。

3.這段代碼的輸出結(jié)果是什么?

public class Test { static{ System.out.println('test static 1'); } public static void main(String[] args) { } static{ System.out.println('test static 2'); }}

test static 1test static 2

以上就是詳解JAVA中static的作用的詳細(xì)內(nèi)容,更多關(guān)于JAVA STATIC作用的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 亚洲免费国产视频 | 久草高清| 日韩成人免费中文字幕 | 一区二区三区小视频 | 一区免费看 | 成人免费视频网 | 久久精品欧美 | 国产精品久久久久久 | 一级女性全黄久久生活片免费 | 亚洲精品一区久久久久久 | 欧美极品一区 | 欧美激情a∨在线视频播放 成人免费共享视频 | 久久综合久久综合久久综合 | 亚洲一区视频在线播放 | 国产伦精品一区二区三区四区视频_ | 天天操天天曰 | 精品欧美一区二区三区久久久 | 亚洲综合二区 | 国产在线观看91一区二区三区 | 最新av在线网址 | 一区二区av | av大片| 成人毛片久久 | www国产亚洲精品久久网站 | 欧洲成人午夜免费大片 | 在线观看欧美一区二区三区 | 久久精品国产亚洲一区二区三区 | 亚洲精品片 | 午夜操操 | 午夜久久 | 久久男人| 色婷婷一二三 | 欧美一区二区成人 | 日韩在线高清视频 | 91成人一区| 国产精品.xx视频.xxtv | 亚洲国产成人av | 久久国产精品一区 | 日韩一二三区 | 亚洲一区二区三区在线视频 | 91精品国产综合久久久久久蜜月 | 性一交一乱一透一a级 | 99精品国产高清在线观看 | 国产人成精品一区二区三 | 免费成人在线观看 | 欧美成人精品一区二区男人看 | 中文字幕精品一区久久久久 | 午夜视频在线 | 国产成人一区 | 久久综合久 | 一区二区三区影院 | 色视频网站在线观看 | 97av在线视频| 福利网址 | 999这里只有是极品 免费的一级黄色片 | 亚洲一区二区在线 | 国产精品不卡 | 久草视频在线播放 | 久久久久久久国产精品 | 黄色欧美视频 | 成人在线观看网 | 国产精品美女久久久久久免费 | 日本一区二区三区四区 | 君岛美绪一区二区三区 | 国产99一区二区 | 亚洲福利 | 天天av天天操 | 91精品国产99久久久 | 51ⅴ精品国产91久久久久久 | 性高湖久久久久久久久aaaaa | 欧美精品二区 | 羞羞的视频在线观看 | 久久精品小视频 | 狠狠亚洲| 免费一区二区 | 国产精品欧美久久久久一区二区 | 最新高清无码专区 | 久久蜜桃av | 亚洲国产成人在线视频 | 亚洲一区二区三区在线视频 | 精品国产31久久久久久 | 色婷婷综合久久久中文字幕 | 亚洲精品v | 精品国产伦一区二区三区观看说明 | 日韩a电影 | 91精品国产综合久久国产大片 | 永久91嫩草亚洲精品人人 | 一区二区三区四区精品 | 日韩一及片 | 欧洲另类交 | 一区二区久久久 | 久久免费看 | 国产xxxx成人精品免费视频频 | 欧美成人精品一区二区男人看 | 亚洲一区二区三区国产 | 黄色大片在线播放 | 精品久久久中文字幕 | 日韩欧美综合在线 | 人人射人人舔 | 天天干人人| 在线国产一区二区 | 日韩精品免费观看 | 中文字幕在线第一页 | 久久亚洲一区二区三区四区 | 影音先锋国产 | 日本免费三片免费观看 | 亚洲一区在线日韩在线深爱 | 亚洲乱码二区 | 亚洲精品一区在线观看 | 国产精品久久久久久久久软件 | 色悠悠久久 | 精品久久久久久久久久久 | 欧美久久免费观看 | 91超碰caoporm国产香蕉 | 国产日韩欧美亚洲 | 99视频在线播放 | 国产特级毛片aaaaaa毛片 | 日韩一二三区 | 欧美精品一区二区三区免费视频 | 色先锋av资源中文字幕 | 久久久精品久久久 | 一级一级一级毛片 | 国产成人综合在线观看 | www,99热| 6080yy午夜一二三区久久 | 欧美日韩一级二级三级 | 99久久精品免费看国产免费软件 | 国产一区二区视频在线 | 九九久久影视 | 久久精品欧美 | 亚洲精品久久 | 黄色片网站视频 | 三级黄色片在线观看 | 91精品国产综合久久福利软件 | 国产私拍视频 | 日韩成人在线看 | 天天看夜夜爽 | 国产激情| 国产视频二| av在线成人 | 中文二区| 精品久久久久久国产 | 欧美日韩综合精品 | 成人欧美 | 久久99精品国产麻豆婷婷洗澡 | 欧美精品一区二区三区视频 | 国产电影一区二区三区图片 | 日韩精品一区二区三区四区视频 | 狼人狠狠干 | 国产一级做a爰片在线看免费 | 欧美日韩国产欧美 | 蜜桃av在线播放 | 在线观看精品视频网站 | 偷拍呻吟高潮91 | 一级黄色毛片 | 亚洲二区在线视频 | 国产精品18hdxxxⅹ在线 | 在线观看国产wwwa级羞羞视频 | 国产超碰人人模人人爽人人添 | 国产欧美在线视频 | 欧美一区在线视频 | 色综久久| 91免费版在线观看 | 99久精品 | 成人高清视频在线观看 | 亚洲精品福利 | 日本a v在线播放 | 天天天干天天射天天天操 | 青青草一区二区 | 成人激情免费视频 | 国产精品久久久久久久久久 | 1级毛片| 久久伊人一区 | 国产午夜精品一区二区三区 | 成人精品久久 | 国产一区二区三区精品久久久 | 亚洲激情综合 | 国产精品福利在线观看 | 国产精品久久久久久久 | 久久国产一区二区三区 | 国产中文字幕一区二区三区 | 欧美一区二区三区在线观看 | 色一情一乱一伦一区二区三区 | 国产美女福利在线 | 欧美日韩午夜精品 | 在线观看视频一区二区 | 日本一区高清 | 日韩一区二区中文字幕 | 极品毛片 | 黄色大片在线播放 | 国产三级自拍 | 日韩中文字幕欧美 | 先锋资源在线观看 | 日本一区二区视频 | 亚洲欧美视频在线 | 亚洲第一av网站 | 激情欧美一区二区 | 久久99精品久久久久久琪琪 | 毛片免费看 | 色黄视频在线观看 | 日韩精品专区在线影院重磅 | 日韩毛片在线观看 | 97精品久久 | 国产精品日本一区二区不卡视频 | 天天色av| 一区二区三区四区在线 | 91精品国产乱码久久久久久久久 | 国产一区 | 在线视频不卡一区 | 国产精品久久久久国产a级 国产精品欧美一区二区三区不卡 | 男女做爰高清无遮挡免费视频 | 91黄在线观看 | 一级毛片免费看 | 一色桃子av一区二区免费 | 欧美日韩免费在线 | 久久亚洲一区二区三区四区 | 欧美色综合一区二区三区 | 在线精品亚洲欧美日韩国产 | 九九精品免费视频 | 精品视频二区 | 精品国产一区二区在线 | 国产精品久久久久久吹潮 | 国产欧美精品在线 | 国产美女在线观看 | 在线国产一区二区 | 人人精久| 午夜精品久久久久久久白皮肤 | 日韩视频在线观看不卡 | 中文字幕在线电影 | 天天草天天干天天 | 欧美性猛交一区二区三区精品 | 成人二区| 日韩中文字幕国产 | 国产精品视频免费 | 亚洲不卡视频在线 | xvideos.蜜桃一区二区 | 亚洲高清电影 | 国产精品一区二区三区在线看 | 美女一区 | 精品国产天堂 | 日韩在线成人 | 狠狠操综合网 | 性一交一乱一透一a级 | 国产精品九九九 | 日韩国产精品一区二区 | 国产一区二区久久 | 久久久精彩视频 | 夜夜爽99久久国产综合精品女不卡 | 亚洲国产精品va在线看黑人 | 中文字幕视频在线免费 | 日韩精品视频在线观看免费 | 色视频www在线播放国产人成 | 亚洲欧美日韩在线 | 一区二区不卡 | 国产一区二区三区在线看 | 欧美xxxx做受欧美 | 精品九九九 | 爱爱视频在线观看 | av大片 | 欧美第一视频 | 二区三区在线观看 | 欧洲美女7788成人免费视频 | 久久精品美女 | 亚洲一区二区 | 国产精久久一区二区三区 | 国产精品高潮呻吟 | 色综久久 | 亚洲伦理在线 | 午夜国产影院 | 国产日韩一区二区 | 羞羞视频在线观免费观看 | 亚洲欧美国产精品专区久久 | 最近免费中文字幕大全免费版视频 | 国产资源视频在线观看 | 老司机深夜福利在线观看 | 国产成人一区 | 成人网在线观看 | 久久久久亚洲一区二区三区 | 台湾av在线 | 成人免费在线观看视频 | www.久久久| 国产精品久久久久久久久免费高清 | 国产精品不卡视频 | 欧美成人在线影院 | 成人免费crm一区二区 | 国产高清自拍 | 婷婷丁香综合 | 国产成人小视频 | 三区视频 | 国产91一区 | 日韩有码一区 | 一区二区三区国产精品 | 91黄色在线观看 | 国产日韩欧美在线 | 久久精品在线 | 最新日韩免费 | 91精品国产91久久久久久吃药 | 久草福利资源 | 7777奇米影视 | 中文字幕亚洲欧美日韩在线不卡 | 成人av综合 | 欧美日韩视频网站 | 亚洲精品综合在线 | 四虎影院最新网站 | 日韩欧美一区二区三区免费观看 | 色吧一区 | 国内精品亚洲 | 久久久精品国产 | 国产拍拍视频 | 性视频一区二区 | 国产精品无码久久久久 | 国产欧美日韩综合精品一区二区 | www.久久| 亚洲一区二区三区日韩 | 色综合久久久久综合99 | 久久另类ts人妖一区二区 | 久章操| 看片国产| 青青久久久 | 日本激情在线 | avmans最新导航地址 | 91亚洲国产精品 | 国产精品国产精品国产专区不片 | 视频在线一区二区 | 国产成人精品免费视频 | 欧美大成色www永久网站婷 | 亚洲精品www久久久久久广东 | 热久久这里只有精品 | 欧美人成在线观看 | 狠狠干干| 欧美日韩国产精品久久久久 | 欧美日韩视频 | av中文字幕在线 | www.亚洲一区 | 亚洲中出| 蜜桃视频网站在线观看 | 中文字幕1区 | www.国产精品| 91久久精品一区 | 国产乱码精品一区二区三区手机版 | 成人免费视频网站在线观看 | 国产精品永久久久久久久久久 | 久久国产精品视频一区 | 国产一区二区免费 | 在线观看一级片 | 久久久久久91 | 欧美99热 | 另类免费视频 | 国产激情网 | 不卡欧美 | 亚洲欧美国产精品专区久久 | 一级毛片免费播放 | 先锋av资源在线 | 精品免费视频 | 国产精品成人3p一区二区三区 | 日日躁夜夜操 | 一区视频 | 欧美日韩在线免费 | 精品国产一区二区三区性色av | 国产色片在线 | 欧美国产91 | 在线播放一区二区三区 | 精品久久久久一区二区三区 | 国产目拍亚洲精品99久久精品 | 日本三级在线网站 | 亚洲高清在线观看 | 久久久精品一区二区 | 亚洲精品免费在线观看 | 久久精品亚洲 | 国产成人av在线播放 | 日韩精品999 | 一区毛片 | 国产精品久久久一区二区 | 91精品国产91久久综合桃花 | 北条麻妃99精品青青久久主播 | 精品国产乱码久久久久久久软件 | 污视频免费网站观看 | 国产精品久久久久久吹潮 | 99九九久久 | 亚洲国产精品自拍 | 99久久久免费视频 | 亚洲一区二区三区四区的 | 九九热热九九 | 日本 欧美 三级 高清 视频 | 这里有精品视频 | 欧美激情综合色综合啪啪五月 | 亚洲精品久久久久久一区二区 | 天天干天天操天天舔 | 蜜桃av一区二区三区 | 日日爱视频 | 黄色成人在线观看视频 | 国产成人精品一区一区一区 | 国产精品久久久久久久久久99 | 精品视频免费观看 | 免费黄看片 | 亚洲国产精品一区二区久久 | 午夜精品福利一区二区三区蜜桃 | 欧美日韩一区二区三区在线观看 | 岛国av免费 | 日日骚av | 国产激情视频 | 亚洲综合在线视频 | 国产精品毛片无码 | 久久久天堂 | 一级毛片黄 | 国产色网站 | 美女福利视频 | 成人免费视频观看视频 | 91资源在线观看 | 亚洲精品视频在线观看免费 | 日韩欧美国产一区二区三区 | 一二三四在线视频观看社区 | 欧美视频在线一区 | 成人免费一区二区三区视频网站 | 一区二区三区在线看 | 欧美日韩一区二区三区在线观看 | 一级毛片视频播放 | 中文字幕av网 | 精品99在线 | 日韩中文一区 | 91色在线观看 | 成人免费视频网站在线看 | 成人免费精品 | 精品一区二区久久久久久久网站 | 欧美日韩一级视频 | 91免费国产 | 欧美黄视频在线观看 | 97国产在线视频 | 北条麻妃一区二区三区在线 | 欧美日韩精品一区二区在线播放 | 久久国产成人午夜av影院宅 | 成人av影视在线观看 | 91精品国产高清一区二区三区 | 国产欧美日韩综合精品一区二区 | 日韩一区二区三区四区五区 | 91在线观看视频 | 蜜桃视频麻豆女神沈芯语免费观看 | 中文字幕久久精品 | 日韩一区二区精品视频 | 欧美一区二区免费 | 综合婷婷| 欧美在线观看一区 | 欧美自拍三区 | 大香伊在人线免97 | 欧美日韩国产在线 | 精品国产精品国产偷麻豆 | 久久国产精品久久久久久 | 九色在线| 精品无码久久久久久国产 | 天堂综合网久久 | 国产视频网 | 亚洲四区 | 国产在线二区 | 亚洲精品电影在线观看 | 谁有毛片 | 亚洲一区欧美一区 | 久久精品免费一区二区三区 | 91在线看片 | 国产精品一区在线 | 青青草视频在线免费观看 | 久久少妇免费看 | 免费视频一区二区 | 影音先锋亚洲资源 | 成人欧美一区二区三区黑人孕妇 | 99视频在线免费观看 | 久久一区二区三 | 四虎永久在线 | 久久久久久久久久久网站 | 蜜桃视频一区二区 | 久久99热精品免费观看牛牛 | 精品一区二区三区蜜桃 | 深夜成人小视频 | 久久久成 | 欧美日韩精品一区二区三区 | 韩国av片在线观看 | 亚洲一区二区三区高清 | 久久久久国 | 亚洲成人日韩 | 日本色站 | 国产成人精品免费 | 天堂中文字幕 | 一区二区三区在线播放 | 精品九九 | 成人国产精品久久 | 国产视频久久 | 91精品电影 | 一区二区三区四区在线播放 | 精品国产乱码久久久久久88av | 99re6热只有精品免费观看 | 狠狠艹| 国产一级淫片a级aaa | 欧美盗摄 | 国产高清在线不卡 | 综合网视频 | 久久久久久久久99精品 | 精品国产青草久久久久福利 | 亚洲一区二区视频在线播放 | 免费视频一区 | 欧美亚洲成人一区 | 麻豆专区一区二区三区四区五区 | 色综合久久久 | 免费观看一区二区三区毛片软件 | 麻豆国产一区二区三区四区 | 国产一区在线不卡 | 中文字幕日韩一区二区不卡 | 蜜桃精品久久久久久久免费影院 | 中文亚洲 | 成人av在线网 | 国产视频福利一区 | 人人射人人插 | 欧美不卡一区二区三区 | 欧美高清成人 | 一区二区在线免费观看 | 日韩三级电影在线免费观看 | 黄色精品一区二区 | 麻豆av在线播放 | 在线观看国精产品二区1819 | 黄色影片免费在线观看 | 国产精品成人一区二区三区夜夜夜 | 精品久久久久久久久久久久 | av片网站| av不卡在线播放 | 一级片日韩 | 久久亚洲天堂 | 久久精品性| 精品视频在线免费 | 级毛片| 亚洲毛片网站 | 日韩中出 | 国产精品久久久久久久久久东京 | 插插插干干干 | 免费在线成人 | 久草免费福利 | 亚洲国产精品一区 | 国产超碰人人模人人爽人人添 | 国产精品成人在线观看 | 一级做a爰片毛片 | 91在线播放视频 | 亚洲欧美日韩在线 | 一区在线视频观看 | 亚洲在线免费观看 | 成人欧美一区二区三区在线观看 | 国产亚洲网站 | 精品国产一区二区三区久久 | 激情国产 | 一级黄色短片 | 色婷婷久久久久swag精品 | 成人av视| 玖玖操 | 日韩欧美精品一区二区三区 | 亚洲777 | 日韩爱爱免费视频 | 国产日韩精品一区二区 | 成人在线一区二区 | 色婷婷国产精品久久包臀 | 亚洲精品午夜aaa久久久 | 久久免费视频3 | 亚洲精品国产一区 | 精品一区二区三区四区视频 | 一区二区手机在线 | 国产一区二区三区色淫影院 | 日本视频网 | 国产资源视频在线观看 | 欧美精品1区2区3区 欧美视频在线一区 | 国产精品美女久久久久aⅴ国产馆 | 亚洲精品一二三区 | 国产亚洲综合一区二区 | 欧美激情在线播放 | 成人在线免费观看视频 | 国产成人精品一区二区三区视频 | 欧美精品被 | 日韩欧美一区二区三区 | 一级日韩电影 | 亚洲欧洲一区二区三区 | av一区在线观看 | 日本成人三级 | 亚洲精品国偷拍自产在线观看 | 欧美一二三区在线 | 欧美日韩一区二区三区在线观看 | 91免费在线播放 | 中文字幕精品一区二区三区精品 | 午夜老湿影院 | 少妇黄色一级片 | 亚洲国产精品视频 | 日本午夜在线 | 国产成人精品免高潮在线观看 | 国产丝袜一区 | 色啪网站 | www.五月天婷婷 | 国产一级片 | 日日噜 | 成人免费视频网站在线观看 | 亚洲精品三级 | 国产精品一码二码三码在线 | 亚洲一区中文字幕 | 精品人伦一区二区三区蜜桃视频 | 成人影院一区二区三区 | 国产91精品在线 | 亚洲国产高清在线 | 欧美成人激情 | 婷婷丁香激情 | av手机在线播放 | 日韩专区视频 | 99re | 中文一二区 | 亚洲午夜精品视频 | 亚洲欧美第一页 | 日本不卡视频 | 成人免费视频网站在线观看 | 伊人电影综合网 | 日韩精品一区二区三区视频播放 | 伊人久久一区二区三区 | 成人h视频在线观看 | 日韩免费一区 | 国产成人久久 |