日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

黑马程序员java学习笔记——正则表达式、反射

發(fā)布時(shí)間:2023/12/18 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 黑马程序员java学习笔记——正则表达式、反射 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
------- android培訓(xùn)、java培訓(xùn)、期待與您交流! ----------

? ? 正則表達(dá)式

? ? 正則表達(dá)式是一個(gè)用來描述或者匹配一系列符合某個(gè)句法規(guī)則的字符串的表達(dá)式,也就是符合一定規(guī)則的表達(dá)式,操作字符串有很多方法,但是這些方法操作起來太簡單,組合起來操作復(fù)雜數(shù)據(jù),代碼過多,而對字符串進(jìn)行操作既便捷又簡單的方式就是正則表達(dá)式。

? ? 作用:用于操作字符串。

? ? 特點(diǎn):用特定符號表示一些代碼操作,這樣可以簡化書寫。

? ? 好處:可以簡化對字符串的復(fù)雜操作。

? ? 弊端:正則越長,閱讀性越差。

? ? 正則表達(dá)式的構(gòu)造摘要

? ??字符類?

? ? [abc] ? ? ? ? a、b或c(簡單類)?
? ? [^abc] ? ? ? ?任何字符,除了a、b或c(否定)?
? ? [a-zA-Z] ? ? ?a 到z或A到Z,兩頭的字母包括在內(nèi)(范圍)?
? ? [a-d[m-p]] ? ?a到d或m到p:[a-dm-p](并集)?
? ? [a-z&&[def]] ?d、e或f(交集)?
? ? [a-z&&[^bc]] ?a到z,除了b和c:[ad-z](減去)?
? ? [a-z&&[^m-p]] a到z,而非m到p:[a-lq-z](減去)?
??
? ? 預(yù)定義字符類?
? ? . ? ? ? ?任何字符(與行結(jié)束符可能匹配也可能不匹配)?
? ? \d ? ? ? 數(shù)字:[0-9]?
? ? \D ? ? ? 非數(shù)字: [^0-9]?
? ? \s ? ? ? 空白字符:[ \t\n\x0B\f\r]?
? ? \S ? ? ? 非空白字符:[^\s]?
? ? \w ? ? ? 單詞字符:[a-zA-Z_0-9]?
? ? \W ? ? ? 非單詞字符:[^\w]?


? ? 邊界匹配器?
? ? ^ ? ? ? ?行的開頭?
? ? $ ? ? ? ?行的結(jié)尾?
? ? \b ? ? ? 單詞邊界?
? ? \B ? ? ? 非單詞邊界?
? ? \A ? ? ? 輸入的開頭?
? ? \G ? ? ? 上一個(gè)匹配的結(jié)尾?
? ? \Z ? ? ? 輸入的結(jié)尾,僅用于最后的結(jié)束符(如果有的話)?
? ? \z ? ? ? 輸入的結(jié)尾?
??
? ? Greedy 數(shù)量詞?
? ? X? ? ? ? X,一次或一次也沒有?
? ? X* ? ? ? X,零次或多次?
? ? X+ ? ? ? X,一次或多次?
? ? X{n} ? ? X,恰好n次?
? ? X{n,} ? ?X,至少n次?
? ? X{n,m} ? X,至少n次,但是不超過m次?

? ? 組:當(dāng)你想要對一個(gè)規(guī)則的結(jié)果進(jìn)行重用時(shí),可以將其封裝成組,這個(gè)組里的結(jié)果就可以被再次使用,用()來完成,組封裝完以后會有一個(gè)自動的編號,從1開始,想要使用已有的組可以通過\n(n就是組的編號)的形式來獲取,如"(.)//1",這就表示后一位的結(jié)果和前一位的結(jié)果一樣,如果這個(gè)位置的數(shù)出現(xiàn)多次,可表示為"(.)//1+",租和matches不同的是matches匹配到不符合規(guī)則的就不再匹配,而組會繼續(xù)往下判斷,像這樣((())())出現(xiàn)多個(gè)組時(shí),我們要判斷有幾個(gè)組,就要看有幾個(gè)左括號,有幾個(gè)就有幾個(gè)組,判斷到第幾個(gè)左括號,它就是第幾個(gè)組。

? ? 其實(shí)學(xué)習(xí)正則表達(dá)式就是學(xué)習(xí)一些特殊符號。

? ? 具體操作

? ? 匹配

? ? matches(regex):返回的是一個(gè)boolean型的值,用規(guī)則匹配整個(gè)字符串,只要有一處匹配不符合規(guī)則,就不再向下匹配。

? ? 要注意的是,在正則表達(dá)式中,反斜杠“\”都需要成對出現(xiàn)的“\\”,因?yàn)樵谧址小癨”是轉(zhuǎn)義字符。

? ? 練習(xí):對QQ號碼進(jìn)行校驗(yàn),5~15位,0不能開頭,只能是數(shù)字。

class RegexDemo {public static void main(String[] args) {String qq = "045364768";checkQQ(qq);}public static void checkQQ(String qq){String regex = "[1-9]\\d{4,14}";//定義匹配規(guī)則;boolean b = qq.matches(regex);if(b)System.out.println("qq格式正確");elseSystem.out.println("qq格式錯(cuò)誤");} }


? ? 運(yùn)行結(jié)果:

? ??

? ? 練習(xí):匹配手機(jī)號段只有:13xxx、15xxx、18xxxx。

class RegexDemo {public static void main(String[] args) {String num = "13253464768";checkQQ(num);}public static void checkQQ(String tel){String regex = "1[358]\\d{9}";boolean b = tel.matches(regex);if(b)System.out.println("號碼格式正確");elseSystem.out.println("號碼格式錯(cuò)誤");} }


? ? 運(yùn)行結(jié)果:

? ??

? ? 切割

? ? split(String regex):返回的是一個(gè)字符串?dāng)?shù)組。

/* 需求:按照疊詞對一個(gè)字符串進(jìn)行切割。 */ class RegexDemo {public static void main(String[] args) {String str = "adaawsfffafgwdfbbbbasdd";String regex = "(.)\\1+";splitDemo(str,regex);}public static void splitDemo(String str,String regex){String[] arr = str.split(regex);//對字符串按照指定規(guī)則進(jìn)行切割;for(String s : arr){System.out.println(s);}} }


? ? 運(yùn)行結(jié)果:

? ??

? ? 注意:在正則表達(dá)式中不能直接用“.”去對字符串進(jìn)行切割,以為“.”是正則表達(dá)式中的一個(gè)特殊符號,代表的是任意字符,應(yīng)該寫成“\\.”,同理獲取盤符應(yīng)使用“\\\\”;對于疊詞我們可以使用組,并對組進(jìn)行捕獲,用\n的形式表示。

? ? 替換

? ? replaceAll(String regex,String replacement):返回的是字符串。

? ? 特殊部分

? ? 如:將疊詞替換成“&”符號.

? ? 將重疊的字母替換成單個(gè)的該字母:在替換的時(shí)候我們可以用一個(gè)特殊符號來代表這個(gè)組“$1”,意思就是拿前一個(gè)規(guī)則的第一個(gè)組的那個(gè)字母("(.)\\1+","$1")。

/* 需求:按照疊詞對一個(gè)字符串進(jìn)行切割。 */ class RegexDemo {public static void main(String[] args) {String str = "adaa142424wsfffaf4243gwdfb234234234234bbba";String regex = "\\d{5,}";String newstr = "*";String str1 = "sdfggdfdfgdddfdffff";String regex1 = "(.)\\1+";removeAllDemo(str,regex,newstr);removeAllDemo(str1,regex1,"$1");}public static void removeAllDemo(String str,String regex,String newstr){String s = str.replaceAll(regex,newstr);System.out.println(s);} }

? ? 運(yùn)行結(jié)果:

? ??

? ? 獲取

? ? 獲取就是按照指定規(guī)則取出字符串子串。

? ? 匹配返回的是真假,替換返回的是替換后的字符串,切割是把規(guī)則以外的取出來,而獲取是要把符合規(guī)則的取出來。

? ? 步驟:1,將正則表達(dá)式封裝成對象。

? ? ? ? ? 2,讓正則對象和要操作的字符串相關(guān)聯(lián)。
? ? ? ? ? 3,關(guān)聯(lián)后,獲取正則匹配引擎。
? ? ? ? ? 4,通過引擎對符合規(guī)則的子串進(jìn)行操作,比如取出。

? ? Pattern類:正則表達(dá)式的編譯表示形式,它可以描述正則表達(dá)式,對正則表達(dá)式進(jìn)行封裝,它在java.util.regex包中。

? ? compile(regex):該方法是靜態(tài)的,返回一個(gè)Pattern對象,把正則表達(dá)式傳遞給這個(gè)方法,它就會把該正則表達(dá)式封裝成一個(gè)Pattern對象返回。

? ? matcher(CharSequence input?):讓正則對象和要操作的字符串相關(guān)聯(lián),返回的是Matcher匹配器。

? ? Matcher類

? ? matches():其實(shí)String類中的matches方法就是用的Pattern和Matcher這兩個(gè)類的對象來完成的,只不過被String的方法封裝后,用起來較為簡單,但是功能卻單一。

? ? find():查找與該模式匹配的輸入序列的下一個(gè)子序列,就是將規(guī)則作用到字符串上,并進(jìn)行符合規(guī)則的子串查找,返回的是一個(gè)boolean型的值

? ? group():返回由以前匹配操作所匹配的輸入子序列,就是用于獲取匹配后的結(jié)果。

? ? 這兩個(gè)方法要結(jié)合使用,功能類似迭代器的hasNext方法和next方法,判斷有沒有下一個(gè),有才取。?

? ? end():返回最后匹配字符之后的偏移量;

? ? start():返回以前匹配的初始索引;??

? ? 邊界匹配器:\b—單詞邊界。

? ? 演示:

import java.util.regex.*;; class RegexDemo {public static void main(String[] args) {getDemo();}public static void getDemo(){String str = "ming tian jiu yao fang jia le ,da jia。";System.out.println(str);String reg = "\\b[a-z]{4}\\b";//將規(guī)則封裝成對象。Pattern p = Pattern.compile(reg);//讓正則對象和要作用的字符串相關(guān)聯(lián)。獲取匹配器對象。Matcher m = p.matcher(str);while(m.find())//將規(guī)則作用到字符串上,并進(jìn)行符合規(guī)則的子串查找;{System.out.println(m.group());//用于獲取匹配后結(jié)果;System.out.println(m.start()+"...."+m.end());}} }
? ? 運(yùn)行結(jié)果:

? ??

? ? 在我們使用正則表達(dá)式時(shí)應(yīng)該怎么選擇呢?

? ? 思路方式:

? ? 1,如果只想知道該字符是否對是錯(cuò),使用匹配。

? ? 2,想要將已有的字符串變成另一個(gè)字符串,替換。

? ? 3,想要按照自定的方式將字符串變成多個(gè)字符串。切割。獲取規(guī)則以外的子串。

? ? 4,想要拿到符合需求的字符串子串,獲取。獲取符合規(guī)則的子串。? ?

? ? 練習(xí)1:將字符串轉(zhuǎn)換成"我要學(xué)編程"。

/* 需求: 將下列字符串轉(zhuǎn)成:我要學(xué)編程。 "我我...我我...我要..要要...要要...學(xué)學(xué)學(xué)....學(xué)學(xué)...編編編...編程..程.程程...程...程"; 思路:將已有字符串變成另一個(gè)字符串。使用替換功能。 1,可以先將 . 去掉。 2,在將多個(gè)重復(fù)的內(nèi)容變成單個(gè)內(nèi)容。 */ import java.util.regex.*;; class RegexDemo {public static void main(String[] args) {test();}public static void test(){String str = "我我...我我...我要..要要...要要...學(xué)學(xué)學(xué)....學(xué)學(xué)...編編編...編程..程.程程...程...程";str = str.replaceAll("\\.+","");//去掉".";str = str.replaceAll("(.)\\1+","$1");//將疊詞轉(zhuǎn)換成單詞;System.out.println(str);} }

? ? 運(yùn)行結(jié)果:

? ??

? ? 練習(xí)2:將ip地址進(jìn)行地址段順序的排序。

/* 需求: 192.68.1.254 102.49.23.013 10.10.10.10 2.2.2.2 8.109.90.30 將ip地址進(jìn)行地址段順序的排序。 思路:還按照字符串自然順序,只要讓它們每一段都是3位即可。 1,按照每一段需要的最多的0進(jìn)行補(bǔ)齊,那么每一段就會至少保證有3位。 2,將每一段只保留3位。這樣,所有的ip地址都是每一段3位。 */ import java.util.*; import java.util.regex.*;; class RegexDemo {public static void main(String[] args) {ipSort();}public static void ipSort(){String ip = "192.68.1.254 102.49.23.013 10.10.10.10 2.2.2.2 8.109.90.30";ip = ip.replaceAll("(\\d+)","00$1");//在每一段地址前補(bǔ)兩個(gè)0,保證每一段至少3位;ip = ip.replaceAll("0*(\\d{3})","$1");//每段只保留3位,將多余的0去掉;String[] arr = ip.split(" ");//用空格對地址串進(jìn)行切割;TreeSet<String> ts = new TreeSet<String>();for(String s : arr){ts.add(s);//將切割后的子串作為元素存到TreeSet集合中,進(jìn)行排序;}for(String s : ts){System.out.println(s.replaceAll("0*(\\d+)","$1"));//把每個(gè)地址段前的0去掉;}}}


? ? 運(yùn)行結(jié)果:

? ??

? ? 練習(xí)3:對郵件地址進(jìn)行校驗(yàn)

/* 需求: 對郵件地址進(jìn)行校驗(yàn)。 */ import java.util.regex.*;; class RegexDemo {public static void main(String[] args) {checkMail();}public static void checkMail(){String mail = "abc12@sina.com";String reg = "[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";//較為精確的匹配。boolean flag = mail.matches(reg);if(flag)System.out.println("地址輸入正確");elseSystem.out.println("地址輸入錯(cuò)誤,請重輸");} }


? ? 運(yùn)行結(jié)果:

? ??

? ? 網(wǎng)頁爬蟲

/* 網(wǎng)頁爬蟲(蜘蛛) */ import java.io.*; import java.util.regex.*; import java.net.*; import java.util.*; class RegexDemo {public static void main(String[] args) throws Exception{getMails_1();}/*獲取指定網(wǎng)頁中的郵件地址。使用獲取功能。Pattern Matcher*/public static void getMails_1()throws Exception{URL url = new URL("http://www.doyo.cn/game/luntan/viewthread/229522");//將地址封裝成對象;URLConnection conn = url.openConnection();//和服務(wù)器建立連接;BufferedReader bufIn = new BufferedReader(new InputStreamReader(conn.getInputStream()));//獲取網(wǎng)絡(luò)讀取流;String line = null;String mailreg = "\\w+@\\w+(\\.\\w+)+";//定義規(guī)則;Pattern p = Pattern.compile(mailreg);//將規(guī)則進(jìn)行封裝;while((line=bufIn.readLine())!=null){Matcher m = p.matcher(line);//和讀到的每一行字符串進(jìn)行關(guān)聯(lián);while(m.find())//查找匹配規(guī)則的郵箱;{System.out.println(m.group());//獲取匹配的郵箱;}}}/*獲取指定文檔中的郵件地址。使用獲取功能。Pattern Matcher*/public static void getMails_2()throws Exception{BufferedReader bufr = new BufferedReader(new FileReader("mail.txt"));//讀取文件String line = null;String mailreg = "\\w+@\\w+(\\.\\w+)+";//定義規(guī)則;Pattern p = Pattern.compile(mailreg);//將規(guī)則進(jìn)行封裝;while((line=bufr.readLine())!=null){Matcher m = p.matcher(line);//和讀到的每一行字符串進(jìn)行關(guān)聯(lián);while(m.find())//查找匹配規(guī)則的郵箱;{System.out.println(m.group());//獲取匹配的郵箱;}}} }


? ? 運(yùn)行結(jié)果:

? ? ??


? ? 反射技術(shù)

? ? 概述

? ? java類用于描述一類事物的共性,該類事物有什么屬性,沒有什么屬性,這個(gè)屬性值是什么,則是由這個(gè)類的實(shí)例對象來確定的,不同的實(shí)例有不同的值,java程序中各個(gè)java類,它們是否也屬于同一事物?是否可以用一個(gè)類來描述這類事物?答案是肯定的,這個(gè)類的名字就是:Class,我們可以通過這個(gè)類動態(tài)的獲取其他類中的信息,包括屬性和方法等,其實(shí),反射就是把java中的各種成分映射成相應(yīng)的java類,相當(dāng)于把一個(gè)類進(jìn)行拆解,然后將拆解后的每個(gè)部分拿出來,單獨(dú)封裝。

? ? 那么Class類中包含了哪些信息呢?

? ? Class類中包含類的名字,類的訪問屬性,類屬于哪一個(gè)包,字段名稱列表,方法名稱列表等,學(xué)習(xí)反射,首先就要明白Class這個(gè)類。

? ? Class這個(gè)類對應(yīng)的是字節(jié)碼文件對象,每一份字節(jié)碼都是一個(gè)Class實(shí)例對象,獲取字節(jié)碼文件對象的方式有三種。

? ? 1,類名.class,如:System.Class。

? ? 2,對象.getClass(),如:new Data().getClass();

? ? 3,Class.forName(),這是個(gè)靜態(tài)方法,如:Class.forName("java.lang.String"),這里要將完整的類名作為參數(shù)傳遞進(jìn)去。

? ? forName這個(gè)方法得到類的字節(jié)碼有兩種情況,一種是這個(gè)類的字節(jié)碼已經(jīng)加載到內(nèi)存中,這是就不需要在加載,直接獲取,另一種就是在獲取這份字節(jié)碼時(shí),還沒有加載到內(nèi)存中,這時(shí)需要把類加載進(jìn)來,然后把加載進(jìn)來字節(jié)碼在內(nèi)存中緩存起來,然后通過這個(gè)方法返回。

? ? 在java中基本數(shù)據(jù)類型也有對應(yīng)的Class對象,void也有,如果我們要表示基本數(shù)據(jù)類型的字節(jié)碼文件對象,可以用int.class也可以用Integer.TYPE。

? ? 總之,只要是在源程序中出現(xiàn)的類型,都有各自的Class實(shí)例對象。

? ? Class類為我們提供了很多方法來獲取相應(yīng)的類中變量,構(gòu)造方法,方法等,下面我們來看這些成分對應(yīng)的類在反射中是怎么使用的。

? ? Constructor--構(gòu)造方法的反射應(yīng)用

? ? getConstructors():這個(gè)方法返回的這個(gè)類中的所有構(gòu)造方法;

? ? getConstructor(Class<?>...?parameterTypes):返回某一個(gè)構(gòu)造方法。

? ? 如:Constructor constructor = Class.forName("java.lang.String").getConstructor(StringBuffer.class);

? ? Constructor對應(yīng)的是構(gòu)造方法這個(gè)類,而它的對象對應(yīng)的是某一個(gè)構(gòu)造方法,上面的constructor對應(yīng)的就是字符串的String(StringBuffer buffer)這個(gè)構(gòu)造函數(shù)。

? ? 現(xiàn)在我們得到了String類的構(gòu)造函數(shù),那么怎么通過反射的方式用這個(gè)構(gòu)造函數(shù)去創(chuàng)建實(shí)例對象呢?

? ? 通常方式:String str = new String(new StringBuffer("abc"));

? ? 在Constructor類中,有專門獲取實(shí)例的方法,這個(gè)方法就是newInstance

? ? 反射方式:String str = (String)constructor.newInstance(new StringBuffer("adc"));注意這里是需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換的,虛擬機(jī)只知道我們在使用newInstance獲取構(gòu)造方法,但是不知道是獲取那個(gè)對象的構(gòu)造方法,編譯時(shí),只對語法進(jìn)行檢查,并不去執(zhí)行語句,沒執(zhí)行就不知道,也就是說編譯器只看變量的定義,不看代碼的執(zhí)行。

? ? 注意:獲取方法時(shí),要用到類型,調(diào)用獲得的方法時(shí),要用到與之相同的類型的對象。

? ? 通過反射創(chuàng)建實(shí)例對象要經(jīng)過Class對象獲取constructor,再由constructor獲取實(shí)例對象,在Class類中有一個(gè)newInstance方法,這個(gè)方法先得到默認(rèn)的構(gòu)造方法,然后用該構(gòu)造方法創(chuàng)建實(shí)例對象。

? ? 演示:

import java.lang.reflect.*; class ReflectDemo {public static void main(String[] args)throws Exception{Class clazz = Class.forName("java.lang.String");//獲取String類的Class對象;Constructor constructor = clazz.getConstructor(String.class);//獲取String類的傳入String參數(shù)的構(gòu)造函數(shù);String str = (String)constructor.newInstance("asfsdfsa");//創(chuàng)建String類對象;System.out.println(str.indexOf('s'));} }


? ? Filed類--成員變量的反射

? ? 對于一個(gè)類中的成員變量,在反射中,我們用Filed類來描述。

? ? 方法

? ? getField():獲取變量所屬的類,返回的是一個(gè)Class對象,參數(shù)(String name)。
? ? 演示:

import java.lang.reflect.*; class Demo {private int x;public int y;Demo(int x,int y){this.x = x;this.y = y;} } class ReflectDemo {public static void main(String[] args)throws Exception{Demo d = new Demo(4,6);Field fieldY = d.getClass().getField("y");/*這得到的是Class對象,每個(gè)Demo對象身上都有一個(gè)fieldY,它在d上是6,在其它對象上可能就不是,fieldY不代表一個(gè)具體的值,只代表一個(gè)變量,不代表某個(gè)對象具體的值,fieldY它不是對象身上的變量,而是類上的,要用它去取某個(gè)對象的值,就要用到get(該類的一個(gè)對象)方法;*/System.out.println(fieldY.get(d));//這就是get方法,得到d這個(gè)對象y的值是6;Field fieldX = d.getClass().getDeclaredField("x");//get方法只能得到可見的變量,不可見的要用getDeclaredField這個(gè)方法;fieldX.setAccessible(true);//此個(gè)方法可以將這個(gè)變量設(shè)置為可見,這就是暴力反射;System.out.println(fieldX.get(d));} }


? ? 成員變量綜合案例:將任意一個(gè)對象中的所有String類型的成員變量所對應(yīng)的字符串內(nèi)容“b”變成“a”。

? ? getFields():獲取一個(gè)類中的所有成員變量,返回的是一個(gè)Field類型的數(shù)組。

? ? 在Field中的方法:

? ? get(Object obj):返回的是Object對象,返回這個(gè)成員變量的值;

? ? set(Object obj,Object value):設(shè)置某個(gè)成員變量的值;

? ? getType():獲取成員變量的類型對應(yīng)的字節(jié)碼文件對象,返回的是一個(gè)Class對象。

? ? 演示案例:

import java.lang.reflect.*; class Demo {public String str1 = "basketball";public String str2 = "black";public String str3 = "field"; } class ReflectDemo {public static void main(String[] args)throws Exception{Demo d = new Demo();Field[] fields = d.getClass().getFields();//獲取Demo類中所有的成員變量;for(Field field : fields){if(field.getType()==String.class)//比較字節(jié)碼用“==”,雖然也可以用equals,但語義不準(zhǔn)確,因?yàn)槭峭环葑止?jié)碼;{String oldValue = (String)field.get(d);//獲取變量的值;String newValue = oldValue.replace('b','d');//將這個(gè)變量中的b替換成d;field.set(d,newValue);//將對象中的原有的值替換成改變后的值;}}System.out.println(d.str1);System.out.println(d.str2);System.out.println(d.str3);} }


? ? Method類--成員方法的反射

? ? Method類:類里的方法,字節(jié)碼對象的方法,不是對象的方法。

? ? getMethod(方法名,這個(gè)方法中傳入的參數(shù)對應(yīng)的字節(jié)碼對象):返回一個(gè)Method對象,獲得字節(jié)碼中的某一個(gè)成員方法。

? ? 例如:Method charAt = Class.forName("java.lang.String").getMethod("charAt",int.class);

? ? 調(diào)用方法

? ? 普通方式:str.charAt(4);

? ? 反射方式:charAt.invoke(str,4);

? ? invoke(對象,傳入的參數(shù)):對帶有指定參數(shù)的指定對象調(diào)用由此 Method 對象表示的底層方法。

? ? 也就是說invoke這個(gè)方法是charAt這個(gè)方法對象身上的方法。

import java.lang.reflect.*; class ReflectDemo {public static void main(String[] args)throws Exception{String str1 = "afsdg";Method methodCharAt = str1.getClass().getMethod("charAt",int.class);//獲取方法對象;System.out.println(methodCharAt.invoke(str1,2));} }

? ? invoke(null,1)這個(gè)方法不需要對象,說明方法是靜態(tài)的,也就是說如果你想調(diào)用一個(gè)靜態(tài)方法,就在這里設(shè)置成空。

? ? 用反射執(zhí)行某個(gè)類中的main方法

import java.lang.reflect.*; class ReflectDemo {public static void main(String[] args)throws Exception{//Demo.main(new String[]{"111","222","333"});//普通方法//反射方法String startClassName = args[0];//動態(tài)的在這個(gè)main方法上指定要調(diào)用的main方法所屬的類;Method mainMethod = Class.forName(startClassName).getMethod("main",String[].class);//獲取要調(diào)用的main方法對象;mainMethod.invoke(null,new Object[]{new String[]{"aaa","bbb","ccc"}});//調(diào)用main方法。//或者mainMethod.invoke(null,(Object)new String[]{"111","222","333"});} } class Demo {public static void main(String[] args)throws Exception{for(String s : args){System.out.println(s);}} }


? ? 運(yùn)行結(jié)果:


? ? ? ??

? ? 為什么要用發(fā)射來執(zhí)行main方法?

? ? 在我們自己的主函數(shù)上是可以傳參數(shù)進(jìn)來的,如果你傳的第一個(gè)參數(shù)args[0]是一個(gè)類的名字,我們可以通過反射的方式獲得這個(gè)類中的main方法對象,然后調(diào)用這個(gè)main方法,這樣可以通過在我們的主函數(shù)的參數(shù)傳遞不同的類名,動態(tài)的獲取這些類的主函數(shù)。

? ? 在invoke方法上,因?yàn)閙ain方法是靜態(tài)的,所以對象設(shè)置為null,直接被類名調(diào)用,不需要對象,而把字符串轉(zhuǎn)成Object數(shù)組是因?yàn)樾掳姹疽嫒堇习姹?#xff0c;而老版本中中還沒有出現(xiàn)可變參數(shù),那時(shí)傳的還是數(shù)組,所以字符串?dāng)?shù)組會被拆開,變成了3個(gè)對象,這就造成參數(shù)傳遞的錯(cuò)誤,會在編譯時(shí)發(fā)生異常。

? ? 數(shù)組的反射類型

? ? 每一個(gè)數(shù)組都屬于同一個(gè)Class,但這些數(shù)組要保證具有相同的元素類型以及具有相同的維度。

? ? 如:int[] a1 = new int[3];

? ? ? ? int[] a2 = new int[4];

? ? ? ? int[][] a3 = new int[3][4];

? ? ? ? String[] a4 = new String[3];

? ? 其中a1和a2屬于同一個(gè)Class,a1和其他的都不是,因?yàn)楹蚢3維數(shù)不同,和a4元素類型不同。

? ? 代表數(shù)組的Class實(shí)例對象的getSuperClass方法返回的父類為Object類對應(yīng)的Class。

? ? 基本類型數(shù)組可以被當(dāng)作Object使用,但不能被當(dāng)作Object[]使用,非基本類型的都可以。

? ? Arrays.asList()處理int[]和String[]的區(qū)別就在于得到的集合會把int[]整個(gè)數(shù)組當(dāng)成一個(gè)元素放進(jìn)集合,而String[]數(shù)組會把數(shù)組中的每一個(gè)字符串當(dāng)成元素存進(jìn)數(shù)組。

? ? 對數(shù)組進(jìn)行反射

? ? Array工具類用于對數(shù)組的反射操作,它里邊的方法全是靜態(tài)的。

? ? 演示:

import java.lang.reflect.*; class ReflectDemo {public static void main(String[] args)throws Exception{int[] a1 = {4,3,2,5,3};String[] a2 = {"ada","adadsa","adad","fffgf"};printArray(a1);printArray(a2);}public static void printArray(Object obj){Class clazz = obj.getClass();//獲取數(shù)組的字節(jié)碼對象;if(clazz.isArray())//判斷這個(gè)字節(jié)碼對象是不是數(shù)組的;{int len = Array.getLength(obj);//獲取數(shù)組的長度;for(int x=0;x<len;x++)//對數(shù)組進(jìn)行遍歷;{System.out.println(Array.get(obj,x));}}else{System.out.println(obj);}} }

? ? HashCode分析

? ? HashCode方法的作用是通過Hash算法來對對象進(jìn)行比較,在我們比較一個(gè)集合中的元素是否相同時(shí),一般是把這個(gè)對象和集合中的每一個(gè)元素進(jìn)行比較,這樣如果元素個(gè)數(shù)太多,比較起來效率就變的很低,所以,有人發(fā)明了哈希算法,通過這種算法算出的哈希值,我們把集合分成了很多區(qū)域,當(dāng)某個(gè)對象的哈希值符合某個(gè)區(qū)域的特點(diǎn)時(shí),就到這個(gè)區(qū)域去尋找是否存在與這個(gè)對象相同的元素,這樣就大大的縮小了比較范圍,增加了效率,但是這種方法只適用于比較原理基于哈希算法的集合。

? ? 內(nèi)存泄漏:當(dāng)一個(gè)對象被存儲今HashSet集合,就不能再修改參與HashCode值運(yùn)算的字段了,否則對象修改后的哈希值就與修改前存進(jìn)集合的哈希值不同了,這是如果要刪除集合中的這個(gè)對象,就找不到了,造成內(nèi)存泄漏。

? ? 反射技術(shù)開發(fā)框架

? ? 框架相當(dāng)于開發(fā)商蓋房子,蓋的時(shí)候,并不知道住進(jìn)來的人會怎么去裝修,比如說門窗的安裝,這時(shí)候,開發(fā)商只需要給住戶提供門窗的框架,后期住戶要使用什么樣的門窗有他們自己決定,如果我們自己一步步的去建房,走到裝修這一步要花費(fèi)很多功夫,如果已經(jīng)有了開發(fā)商給我們提供的這個(gè)框架,就會變得簡單。

? ? 其實(shí)java中的框架也是一樣的道理,我在寫框架的時(shí)候,并不知道后來的人會給這個(gè)框架傳遞什么樣的類,所以在程序中也沒辦法直接創(chuàng)建這個(gè)類的對象,要讓框架獲得這樣未卜先知的能力,我們在開發(fā)框架時(shí)就需要用到反射。

? ? 我們以后使用別人寫的類有兩種使用方式:一種是我去調(diào)用別人的類,另一種是別人調(diào)用我寫的類,這兩種類是有區(qū)別的,前一種叫做工具類,另一種就是框架,框架中使用的就是我們所寫的類。

? ? 下面我們來制作一個(gè)簡單的框架:

import java.lang.reflect.*; import java.io.*; import java.util.*; class Demo {public int x;public int y;Demo(int x,int y){this.x = x;this.y = y;} } class ReflectDemo {public static void main(String[] args)throws Exception{Demo d1 = new Demo(4,6);Demo d2 = new Demo(4,5);Demo d3 = new Demo(4,6);InputStream in = new FileInputStream("config.properties");//用文件讀取流和配置文件相關(guān)聯(lián);Properties prop = new Properties();prop.load(in);//將流中的數(shù)據(jù)加載進(jìn)這個(gè)集合中;String className = prop.getProperty("className");//獲取鍵對應(yīng)的值;Class clazz = Class.forName(className);//獲取這個(gè)值對應(yīng)的class對象;Collection collection = (Collection)clazz.newInstance();//獲取這個(gè)字節(jié)碼的實(shí)例對象;collection.add(d1);//將數(shù)據(jù)添加進(jìn)集合中;collection.add(d2);collection.add(d3);System.out.println(collection.size());//獲取集合的大小;in.close();//關(guān)流;} }

























總結(jié)

以上是生活随笔為你收集整理的黑马程序员java学习笔记——正则表达式、反射的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

婷婷综合导航 | 2023av| 中文字幕不卡在线88 | 国产精品毛片久久久久久久久久99999999 | 久久精品美女视频网站 | 国产在线专区 | 91九色老 | 99免费观看视频 | 国产精彩视频一区 | 久久av伊人 | 免费在线观看黄 | 中文字幕色站 | 婷婷综合av | 精品国产1区 | 看av在线| 爱爱av在线 | 日韩久久在线 | 中文字幕在线网 | av丝袜在线| 少妇性aaaaaaaaa视频 | 天天曰天天干 | 草草草影院 | 国产又黄又爽又猛视频日本 | 亚洲资源视频 | 欧美一级免费片 | 成人免费视频免费观看 | 免费观看久久 | 韩国一区在线 | 中文字幕日韩一区二区三区不卡 | 国产传媒一区在线 | 一区二区三区影院 | 美女视频黄免费网站 | 黄色视屏免费在线观看 | 国产高清av免费在线观看 | 婷婷综合电影 | 特级黄色一级 | 超碰个人在线 | 中文字幕观看在线 | 国产色中涩| 国产91精品一区二区麻豆网站 | 亚洲欧美视频网站 | 青草视频在线看 | 国产精品欧美一区二区三区不卡 | 国产精品18久久久久久不卡孕妇 | 日p视频在线观看 | 欧美精品资源 | 久久成人国产 | 欧美天天射 | 日韩一区二区三区不卡 | 五月亚洲| 国产在线成人 | 国产成人精品亚洲日本在线观看 | 国偷自产视频一区二区久 | 国产传媒一区在线 | 亚洲成a人片综合在线 | 国产精品福利久久久 | av福利在线免费观看 | 狠狠色丁香婷婷综合视频 | 91亚洲精品国偷拍 | 在线观看的av| 国产麻豆精品传媒av国产下载 | 精品国产伦一区二区三区观看说明 | 超碰在线94 | av免费观看在线 | 久久99久久99精品免观看粉嫩 | 91在线九色 | 色天天久久 | 欧美91片 | 江苏妇搡bbbb搡bbbb | 欧美精品一区二区免费 | 蜜臀久久99精品久久久久久网站 | 亚洲综合色丁香婷婷六月图片 | 美女免费视频一区二区 | 午夜精品一区二区三区四区 | 久久精品男人的天堂 | 九九热精 | 亚洲精品乱码久久久久久久久久 | 久久精品女人毛片国产 | 亚洲国产午夜视频 | 亚洲aⅴ乱码精品成人区 | 国产日本亚洲 | 久久综合久久综合这里只有精品 | 久久久久久久免费看 | 99久久婷婷国产一区二区三区 | 精品久久久久久亚洲综合网站 | 亚洲国产wwwccc36天堂 | 国产在线一线 | 精品国产久| 色激情五月 | 久久av在线| 国产特级毛片aaaaaa毛片 | 午夜精品视频在线 | 在线三级av | 夜夜婷婷| 狠狠撸电影 | 日本中文字幕在线免费观看 | 在线免费观看国产视频 | 日韩av成人 | 中文字幕日本特黄aa毛片 | 天天激情在线 | 黄色aaa毛片| 一级黄色电影网站 | 超碰人人舔 | 国产亚洲无 | av888.com| 免费aa大片 | 天天插天天狠 | 黄色亚洲大片免费在线观看 | 麻豆影视在线免费观看 | 天天夜夜狠狠操 | 激情综合啪 | 高清精品视频 | 天天干天天操 | 亚洲草视频| 成人免费网站在线观看 | 成人av高清在线 | 日韩三级在线观看 | 午夜av片| 最近中文字幕mv | 国产亚洲精品电影 | 欧美91精品久久久久国产性生爱 | 欧美日韩国产一区二区三区在线观看 | 91av网址| 久久久久蜜桃 | 一二区电影 | 日韩av资源在线观看 | 亚洲涩涩色 | 日韩中文字幕视频在线观看 | 亚洲欧美偷拍另类 | 久久成人精品电影 | 日本不卡一区二区 | 久久久久久99精品 | 亚洲国产wwwccc36天堂 | 在线观看视频免费大全 | 日本三级在线观看中文字 | 日韩在线首页 | 亚洲成人av片在线观看 | 毛片网站免费 | 欧美一区日韩一区 | 丝袜美腿av| 国产精品久久婷婷六月丁香 | 国产精品三级视频 | 成 人 黄 色 视频 免费观看 | 亚洲特级片 | av千婊在线免费观看 | 九9热这里真品2 | 探花国产在线 | 免费看黄色毛片 | 99免费在线观看 | 精品久久精品久久 | 97在线免费视频观看 | 在线精品亚洲 | 久久精品国产亚洲 | 人人爽人人爽人人片 | 亚洲精品国产精品乱码在线观看 | 亚洲视频www | 精品综合久久 | 成人中文字幕在线观看 | 久久免费黄色网址 | 丁香综合激情 | 在线观看免费一级片 | 中文av一区二区 | 久久精品一二三区白丝高潮 | 国产精品午夜在线 | 国产视频 亚洲视频 | 婷婷在线免费 | 一级淫片在线观看 | 99视频免费播放 | 国产破处在线播放 | 中文区中文字幕免费看 | 婷婷精品在线视频 | 97精品国产aⅴ | 国产精品久久久久久久久软件 | 国产资源精品 | 久久免费视频网 | 91在线视频观看 | 日韩久久精品一区二区 | 91久久久久久久 | 亚洲午夜av久久乱码 | 999久久久国产精品 高清av免费观看 | 五月天婷婷狠狠 | 日韩高清不卡在线 | a级片韩国 | 99热播精品 | 国产成人久久精品77777综合 | 久久精品网| 国产精品11| 麻豆91在线 | 久久首页| a视频免费| 日韩h在线观看 | 欧美精品久久久久久 | 亚洲激情精品 | 久久成人久久 | 成人影片在线免费观看 | 96国产精品| 在线播放视频一区 | 午夜国产成人 | 四虎永久免费 | 成年人黄色免费网站 | 最新日韩电影 | 97在线免费视频观看 | 韩国一区二区三区视频 | 日韩色av色资源 | 亚洲激情婷婷 | 成人资源网 | 黄色电影在线免费观看 | 午夜精品久久久久久久久久久久 | 免费看片网址 | 激情综合网五月激情 | www.色的| 中文字幕国产精品一区二区 | 91看片淫黄大片一级在线观看 | 在线日韩 | 久久国产精品免费视频 | 亚洲精品乱码久久久久久蜜桃欧美 | 日韩一级电影网站 | 日本性xxx | 国产香蕉视频在线播放 | 狠狠躁日日躁夜夜躁av | 国产精品99在线播放 | 六月天综合网 | av日韩中文| 天天摸日日操 | 27xxoo无遮挡动态视频 | 粉嫩av一区二区三区免费 | 伊人射 | 狠狠狠色丁香婷婷综合久久88 | 日韩 精品 一区 国产 麻豆 | 久久中文字幕视频 | 五月婷婷av在线 | 99在线视频播放 | 国产在线综合视频 | 亚洲国产精彩中文乱码av | 国产精品黄色影片导航在线观看 | 999在线视频 | 精品夜夜嗨av一区二区三区 | 亚洲一级特黄 | 在线观看91 | 婷婷六月综合亚洲 | 一区二区三区手机在线观看 | 黄色国产高清 | 天天操操 | 亚洲在线精品 | mm1313亚洲精品国产 | 精品久久久久一区二区国产 | 亚洲国产黄色片 | 91午夜精品| 色丁香婷婷 | 最新中文字幕 | 婷婷激情欧美 | 国产视频一区在线免费观看 | 亚洲精品av在线 | 色综合久久久久久中文网 | 91刺激视频 | 亚洲国产午夜精品 | japanesefreesexvideo高潮| 黄色在线成人 | 99热精品国产一区二区在线观看 | 五月婷婷久久丁香 | 中文在线字幕免费观 | 国产亚洲精品美女久久 | www五月 | 国产亚洲精品久久 | 久久网址 | 曰韩精品 | 在线 精品 国产 | 在线性视频日韩欧美 | 国产日韩欧美在线观看 | 手机成人在线 | 久久综合九色综合久99 | 99精品视频网 | 狠狠色婷婷丁香六月 | 日韩在线观看视频中文字幕 | 最新国产精品拍自在线播放 | 久久av中文字幕片 | 999免费视频| 国产黄在线观看 | 中文字幕亚洲欧美日韩2019 | 日本性视频 | 亚洲午夜精品久久久久久久久久久久 | 日本久久久久久科技有限公司 | 亚洲天堂在线观看完整版 | 日韩免 | 五月天久久 | 国产一级二级三级视频 | 九九视频在线观看视频6 | av无限看 | 成年人免费电影在线观看 | 91女人18片女毛片60分钟 | 久久免费看a级毛毛片 | 精品婷婷| 成人免费在线观看入口 | 久久久久中文 | 亚洲日本精品视频 | 一区二区三区日韩精品 | 午夜18视频在线观看 | 久久调教视频 | 日韩欧美视频一区二区 | 国产精品久久久久三级 | 久久毛片高清国产 | 天天操天天艹 | 69av久久| 91视频国产免费 | 亚洲日本欧美在线 | www.久久免费视频 | 免费一级片在线 | 日本不卡视频 | 亚洲黄色免费观看 | 国产1区在线观看 | 日韩高清无线码2023 | 久av在线 | 亚洲在线免费视频 | av日韩在线网站 | a黄色片 | 麻豆传媒视频在线免费观看 | 精品视频免费看 | 黄色av影视 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 成人一区电影 | 欧美久久99 | 国产又粗又猛又色 | 久久看片网 | 国产色就色| 最新一区二区三区 | 国产一区二区三区高清播放 | 五月婷婷中文网 | 夜色.com| 91香蕉久久 | 免费观看91视频 | 婷婷色六月天 | 成人一级电影在线观看 | 91日韩精品一区 | 国产日韩欧美综合在线 | 亚洲日本色 | 成人av免费播放 | 狠狠色丁香久久婷婷综 | 蜜臀久久99精品久久久酒店新书 | 在线观看的黄色 | 久久毛片视频 | 99人久久精品视频最新地址 | 97国产一区二区 | 一区二区中文字幕在线播放 | 日日夜夜精品免费观看 | 91在线免费观看国产 | 99精品国产99久久久久久97 | 麻花天美星空视频 | 99久久99久久精品 | 亚洲精品tv | 免费日韩在线 | 免费能看的av | 日本在线观看中文字幕 | 97超碰福利久久精品 | 免费一级片在线 | 91视频-88av | 人人讲下载 | 国产区 在线 | 国产区免费在线 | 亚洲精品中文字幕在线 | 久久久www免费电影网 | 亚洲免费a | 国产资源免费在线观看 | 欧美日韩在线精品一区二区 | 精品久久亚洲 | av中文字幕网 | 国产精品久久久久久久久蜜臀 | 九七视频在线观看 | 中文字幕亚洲在线观看 | 日韩免费网址 | 日韩一区二区三区免费电影 | 日韩欧美专区 | 亚洲精品久久久久中文字幕m男 | 精品久久精品久久 | 亚洲精品视频在线免费 | 91视频在线网址 | 午夜色场| 日韩a级黄色 | 免费看毛片网站 | 在线一区电影 | 正在播放国产精品 | 最新日本中文字幕 | 色精品视频 | 永久免费精品视频 | 日日日爽爽爽 | 毛片3 | 亚洲jizzjizz日本少妇 | www.黄色在线| 午夜久操 | 国产高清免费av | 亚洲一区日韩在线 | 日韩在线观看一区二区 | 国产一级片不卡 | av亚洲产国偷v产偷v自拍小说 | 96久久精品 | 开心丁香婷婷深爱五月 | 成人午夜免费剧场 | 久久精品爱爱视频 | 一区中文字幕在线观看 | 91污在线 | 国产专区在线播放 | 亚洲成人在线免费 | 六月色婷婷| 麻豆免费在线视频 | 欧美日韩后 | 久久99国产精品二区护士 | 成人av手机在线 | 欧美在线1| 精品国产欧美一区二区三区不卡 | 国产精品综合久久久久 | 在线网站黄 | 在线观看视频三级 | 精品99免费 | 五月婷婷六月丁香在线观看 | 免费h视频 | 精品视频www | 超级碰碰免费视频 | 精品国产网址 | 国产在线自 | 色噜噜日韩精品一区二区三区视频 | 欧美日韩国产在线观看 | 色香蕉在线视频 | 久久大视频 | 久久香蕉国产精品麻豆粉嫩av | 欧洲亚洲精品 | 久久综合欧美精品亚洲一区 | 怡红院久久| 波多野结衣视频网址 | 欧美日韩一区二区在线观看 | 色综合久久久久 | 久久精品久久久久电影 | 国产成人精品综合久久久久99 | 欧美一级特黄aaaaaa大片在线观看 | 日本黄网站 | 97日日碰人人模人人澡分享吧 | 久久久久久高潮国产精品视 | 91精品爽啪蜜夜国产在线播放 | 成人av电影免费在线观看 | 日本系列中文字幕 | 99久久精品国产系列 | 国产亚洲视频在线观看 | 久久久久久久久久久久电影 | 9999精品视频 | 黄色91在线观看 | 99亚洲天堂 | 欧美日韩国产亚洲乱码字幕 | 亚洲免费视频观看 | 久久综合久久综合这里只有精品 | 天堂av最新网址 | 综合网伊人 | 在线视频欧美精品 | 久久国产美女视频 | 欧美中文字幕第一页 | 91久久国产自产拍夜夜嗨 | 天堂av网在线 | 免费的黄色的网站 | 涩涩网站在线播放 | 在线中文字幕一区二区 | 激情综合久久 | 美女国内精品自产拍在线播放 | 一区二区三区在线视频111 | 中文字幕第 | 在线日韩中文字幕 | 精品久久一 | 色综合久久综合 | 欧美精品生活片 | 亚洲精品美女 | 精产嫩模国品一二三区 | 中文字幕 91 | 91视频xxxx| 中文字幕免 | 久草在在线 | 五月婷丁香 | 天天爱综合 | 中文字幕在线观看播放 | 人人看人人爱 | 久久99这里只有精品 | 久久五月网 | 嫩模bbw搡bbbb搡bbbb | 天天av天天| 国产不卡av在线播放 | 国产精品国产三级国产专区53 | 色婷婷中文 | 综合在线色 | 亚洲精品456在线播放 | 成人综合免费 | 天天色天天操综合 | 五月天久久激情 | 96亚洲精品久久久蜜桃 | 久久国内精品视频 | 日本中文字幕一二区观 | 久久999精品 | 亚洲精品视频在线观看免费 | 国产美女被啪进深处喷白浆视频 | 欧美日韩一区二区三区不卡 | 天天在线免费视频 | 婷婷5月激情5月 | 一区三区在线欧 | 久久综合久久八八 | 天天干天天怕 | 国产日韩欧美视频在线观看 | 香蕉手机在线 | 伊人首页| 免费日韩 精品中文字幕视频在线 | 中文字幕精品一区二区精品 | 中文字幕免费不卡视频 | 国产精品久久久久久久久岛 | 五月天天av | 国产亚洲精品精品精品 | 中文字幕 在线 一 二 | 欧美三级高清 | 天天在线视频色 | 少妇av网| 成人网在线免费视频 | 麻豆视频免费入口 | 日韩av高潮 | 一级免费片| 国产综合精品久久 | 中文免费 | 丁香婷婷综合激情 | 免费精品人在线二线三线 | 韩日电影在线观看 | 日本三级国产 | av成人在线网站 | 日日夜夜狠狠操 | 69精品| 免费av网址在线观看 | 国产成人在线免费观看 | 久久久国产精品麻豆 | 97成人超碰 | 精品久久在线 | 97超级碰碰碰碰久久久久 | 成人网444ppp| 四虎免费av | 毛片网在线 | 国产精品99在线播放 | 日韩精品中文字幕一区二区 | 人人看人人做人人澡 | 国产亚洲精品免费 | 欧美精品久久99 | 免费久久网 | 精品视频国产一区 | 国产精品黄色影片导航在线观看 | 久久夜色电影 | 麻豆视频在线观看 | 丁香电影小说免费视频观看 | 五月天天av| 99这里有精品 | 国产成人福利在线 | 午夜精品一区二区三区在线播放 | 日韩中文免费视频 | 一性一交视频 | 96亚洲精品久久 | 三级免费黄色 | 色网站中文字幕 | 国产日韩在线视频 | 国产精品涩涩屋www在线观看 | 国产污视频在线观看 | 中文字幕一区二区三区四区视频 | 91av在线免费看 | 亚洲三级在线播放 | 91中文字幕在线播放 | 激情网站免费观看 | 国产中文字幕免费 | 久久精品视频播放 | 96精品视频 | 成人国产精品免费观看 | bbbb操bbbb| 色国产精品一区在线观看 | 国产短视频在线播放 | 一区二区三区四区精品 | 激情五月看片 | 免费在线观看污网站 | 国产高清在线 | 在线免费看黄色 | 天天操天天干天天操天天干 | 五月婷婷六月丁香 | av大全在线观看 | 中文字幕在线免费观看 | 99r在线视频 | 免费看av片网站 | www.午夜| 久草精品在线观看 | 精品久久久99 | 午夜在线观看影院 | 成人免费在线网 | 精品成人在线 | 成人性生交大片免费观看网站 | 99理论片 | 日韩啪视频 | 在线观看av大片 | 久久97精品 | 91亚色视频在线观看 | 444av| 国产精品国产亚洲精品看不卡 | 正在播放 久久 | 黄色片网站大全 | 国产成人333kkk | 国产小视频在线免费观看视频 | 亚洲日b视频 | 91在线免费公开视频 | 久久精品超碰 | 99热最新地址 | 91久久精品一区二区二区 | 91av视频观看 | 黄色免费在线视频 | 天天综合网在线 | 国产综合在线观看视频 | 91在线91拍拍在线91 | 在线免费三级 | 亚洲午夜精品一区二区三区电影院 | 欧美一区二区三区特黄 | 久久免费看毛片 | 在线а√天堂中文官网 | 日韩有码中文字幕在线 | 国产a国产 | 精品国产一区二区三区在线观看 | 99精品观看 | 97在线观看免费观看 | 欧美精品亚洲精品 | 欧美一区二区伦理片 | 国产精品网站一区二区三区 | 在线播放 日韩专区 | www.国产高清 | 欧美一级视频免费 | 欧美在线free| 黄色三级在线 | 不卡电影免费在线播放一区 | 在线视频日韩精品 | www色| 日韩欧美国产激情在线播放 | 国产亚州精品视频 | 国产精品久久久久久99 | 久久er99热精品一区二区 | 欧美日韩中文字幕视频 | 日本aaaa级毛片在线看 | 亚洲激情校园春色 | 韩日视频在线 | 免费在线观看成人av | 91天天操| 欧美成人a在线 | 国产免码va在线观看免费 | 精品一区二区亚洲 | 久久这里有精品 | 99久久精品免费看国产 | 久久福利在线 | 免费在线日韩 | 中文字幕在线观看完整 | 九九热精品视频在线播放 | 亚洲天天综合网 | 色综合久久88色综合天天 | 天天在线免费视频 | 极品国产91在线网站 | 亚洲第一av在线 | 韩国精品福利一区二区三区 | 欧美一级免费片 | 中文字幕日韩免费视频 | 日本在线视频一区二区三区 | 精品国产大片 | 国内精品久久久久久久久 | 国产美女精品视频免费观看 | 成人亚洲精品久久久久 | 久久久久夜色 | 超碰在线人人爱 | 久久精品欧美 | 成人91在线| 午夜国产福利在线观看 | av黄色一级片 | www.色五月.com | 日日爱夜夜爱 | 久久久久久不卡 | 激情中文在线 | 欧美一区二区在线 | 国产一区 在线播放 | 丁香婷婷自拍 | 欧美激情视频三区 | 国产一区二区在线观看视频 | 国产一级片久久 | 五月婷婷一区 | 欧美日韩啪啪 | 伊人久久精品久久亚洲一区 | 成人黄色av免费在线观看 | 国产a免费| 久久天天躁 | 国产亚洲视频系列 | 日韩网站一区二区 | 国产99久久久久 | 天躁狠狠躁 | 欧美成人在线免费观看 | 久久激情小视频 | 中文字幕久久亚洲 | 亚州精品天堂中文字幕 | 国产精品日韩高清 | 亚洲精品黄色 | 日韩高清免费在线 | 国产理论在线 | 欧美日韩性| 三级av免费看 | 69国产盗摄一区二区三区五区 | 在线观看国产区 | 黄色成人av| 国产精彩视频一区二区 | 国产精品久久麻豆 | 亚洲精品99久久久久中文字幕 | 91精品国自产在线观看 | 国产91精品看黄网站在线观看动漫 | 高潮久久久久久 | 最近中文字幕第一页 | 国产精品二区在线观看 | 国产一区二区不卡在线 | 久久6精品 | 中文字幕亚洲高清 | 三级黄色网址 | 天天摸天天操天天舔 | 久久精品视频一 | 久久久久久久亚洲精品 | 午夜精品成人一区二区三区 | 亚洲视频axxx | 一区二区三区国产精品 | 中文字幕乱码电影 | 男女免费av| 91cn国产在线| 国产一区二区精品91 | 日韩av一区二区在线 | 天天干天天爽 | 亚洲成人免费在线 | 最新国产中文字幕 | 国产精品久久久久永久免费看 | 国产一区二区在线视频观看 | 91九色视频在线 | 91在线看黄| 欧美另类色图 | 91久久精| 国产99久久久国产精品免费二区 | 99精彩视频在线观看免费 | 日韩精品一区二区三区在线播放 | 欧美午夜久久 | 91污污| 久久久久久黄色 | 亚洲成人av影片 | 伊人久久婷婷 | 国产区精品视频 | 美女黄濒 | 成在人线av | 国产亚洲婷婷免费 | 国产精品久久久久久妇 | 久色 网| 国产精品自产拍在线观看中文 | 91亚色免费视频 | 亚洲欧洲精品视频 | 中文字幕在线播放一区二区 | 亚洲永久av | 欧美资源在线观看 | 人人爱人人射 | 国产精品免费久久久 | 色在线亚洲 | 青春草视频在线播放 | 91精品1区| 久久草 | 日韩av中文字幕在线 | 久久久久久久久电影 | 久久久一本精品99久久精品66 | 国产精品久久久久久久久久白浆 | 99久久精品久久久久久清纯 | 中文字幕在线免费观看视频 | se视频网址 | 久久久久久久99精品免费观看 | 九色视频自拍 | 国产色视频一区二区三区qq号 | 欧美精品日韩 | 国产丝袜美腿在线 | 人人看人人做人人澡 | 草久久久久久 | 在线色吧 | 99在线精品免费视频九九视 | 久久视频二区 | 成人av片免费观看app下载 | 日韩在线观| 国产精品欧美精品 | 久草视频免费在线播放 | 天堂网一区 | 久草在线视频在线观看 | 久久一区精品 | 91桃色免费视频 | 超碰九九 | 日日干天天干 | av高清一区二区三区 | 狠狠艹夜夜干 | 色婷婷综合在线 | 国产 日韩 中文字幕 | 成人在线一区二区 | 亚洲国产精品视频在线观看 | 国产精品综合在线 | 日韩av免费一区 | 久久精品99国产精品日本 | 亚洲v欧美v国产v在线观看 | 日本特黄特色aaa大片免费 | 一级做a视频 | 91色在线观看 | 亚洲精品乱码久久久久 | 欧美一级日韩三级 | 热re99久久精品国产66热 | 国产黄色电影 | 91chinesexxx | 中文字幕中文字幕 | 日韩在线观看网站 | 久久精品中文字幕免费mv | 久久精品亚洲一区二区三区观看模式 | 人交video另类hd| 国产精品视频资源 | 免费午夜视频在线观看 | 国产精品原创视频 | 国语自产偷拍精品视频偷 | av日韩不卡 | 最新av免费在线观看 | 中文字幕网站视频在线 | 日日摸日日添夜夜爽97 | 伊人中文字幕在线 | 91麻豆精品国产自产在线 | 精品一区二区三区久久久 | 激情综合五月天 | 国产精品不卡一区 | 日本不卡一区二区三区在线观看 | 99精品在线直播 | 美女在线观看网站 | 丁香婷婷久久久综合精品国产 | 奇米影视8888在线观看大全免费 | 欧美激情一区不卡 | 国产在线a不卡 | 五月天丁香综合 | 国产久草在线观看 | .国产精品成人自产拍在线观看6 | 日本中文字幕网址 | 国产91aaa | 天天躁日日躁狠狠 | 日韩精品2区| 久久久久www | 成人h在线观看 | 欧美激情第八页 | 国产高清在线免费 | 色婷婷丁香 | 在线中文字幕电影 | 久久毛片高清国产 | 精品久久久久久电影 | 一区二区中文字幕在线播放 | 久久久久福利视频 | 日韩精品一区二区三区第95 | 成人免费共享视频 | 精品久久久久久久久久久久久久久久 | 欧美日韩国产精品一区 | 亚洲国产精品999 | 久久久久美女 | 久久99亚洲精品久久 | 99热精品免费观看 | 成人av电影在线 | 深夜免费福利网站 | 日本久久成人中文字幕电影 | 丁香花在线视频观看免费 | 成年人免费av网站 | 国产精品剧情在线亚洲 | 久久精品123 | 免费黄在线观看 | av在线一| 欧美日韩精品网站 | 久热av | 色开心 | 国产精品18久久久久久不卡孕妇 | 国产黄色成人av | 国产视频在线播放 | 成人一区二区在线 | 日韩区欧美久久久无人区 | 91欧美视频网站 | 日本二区三区在线 | 中文字幕精品www乱入免费视频 | 亚洲综合成人av | 99九九视频| 亚洲2019精品 | 草免费视频 | 久草国产在线 | 精品视频不卡 | 欧美精品中文在线免费观看 | 少妇bbbb | av专区在线| 国产精品永久免费在线 | 中文字幕视频一区二区 | 久久高清国产 | 日韩精品一区二区三区在线播放 | 91成人天堂久久成人 | 波多野结衣精品 | 欧美日韩高清一区二区 | 欧美在一区 | av 一区二区三区 | 91天天视频 | av三级在线播放 | 国产精品日韩久久久久 | 中国一级片在线播放 | 欧美日韩国产一二三区 | 天天操天天添 | 久久精品一 | 在线播放 日韩专区 | 国产伦精品一区二区三区免费 | 国产午夜麻豆影院在线观看 | 成人av电影免费在线观看 | 日韩在线视频线视频免费网站 | 在线色吧 | 天天射天天色天天干 | 激情综合五月婷婷 | 亚洲国产片 | 日韩精品免费 | 亚洲欧洲日韩 | 毛片美女网站 | 国内视频在线观看 | 国产成人黄色在线 | 91探花国产综合在线精品 | 91视频com| 日韩三级免费观看 | 超碰资源在线 | 波多野结衣一区三区 | 在线精品视频免费观看 | 91精品播放 | 国产精品久久久久久电影 | 国产不卡在线观看视频 | 日韩在线视频免费看 | 国产麻豆精品一区 | 免费网站v | 极品久久久久 | 免费看黄视频 | av电影av在线 | 九九免费精品视频 | 午夜免费福利片 | 亚洲91精品在线观看 | 成人一区二区在线 | 国产欧美三级 | 在线视频久久 | 天堂视频中文在线 | 国产精品久久久久久久妇 | 99久热在线精品 | 国产精品一区二区在线 | www免费看片com | 久久视频国产精品免费视频在线 | 欧美 激情 国产 91 在线 | 九九欧美| 午夜精品视频福利 | av久久在线 | 亚洲综合在线播放 | 中文字幕免费一区 | 久久久久人人 | 国产成人三级在线 | 99视频网站 | 欧美日韩国语 | 日韩精品久久久久久久电影竹菊 | 激情五月婷婷 | 亚洲精品国产综合久久 | 国产一区不卡在线 | av在线免费播放 | 亚洲精品午夜久久久久久久 | 精品国产三级 | 91网址在线观看 | 天天射射天天 | 免费精品人在线二线三线 | 久久黄色美女 | 天天天操天天天干 | 最新99热 | 精品99免费 | 免费v片 | 91福利影院在线观看 | 欧美精品久久久久久久久久丰满 | 婷婷丁香视频 | 免费看成年人 | 日韩精品一区二区免费视频 | 久久久免费国产 | 最近中文字幕大全 | 欧美久久久久久久久久久久 | 亚洲精品玖玖玖av在线看 | 亚洲综合少妇 | 香蕉视频在线免费 | 久久综合免费视频影院 | 99久久这里有精品 | 夜夜澡人模人人添人人看 | 亚洲视频2 | 色小说在线 | 欧洲亚洲女同hd | 久久久黄色av | 国产色啪| 久草在线最新 | 人人干干人人 | 国产在线免费观看 | 国色天香永久免费 | 国产成人久久精品亚洲 | 欧美色图一区 | 日韩精品一区在线播放 | 天天爽夜夜爽人人爽一区二区 | 国产中文视 | 天天综合久久综合 | 日韩一区二区三免费高清在线观看 | 精品国产色 | 日韩欧美在线免费观看 | 国产视频2021 | 成人午夜电影在线观看 |