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

七大陷阱!99%的Java開(kāi)發(fā)者都會(huì)遇到

開(kāi)發(fā) 前端
如果目的是將所有出現(xiàn)的 A 都替換為 X,那么使用 replaceAll 方法似乎很直觀。方法名本身就清楚地表明了它的用途。于是問(wèn)題來(lái)了:replace 方法會(huì)替換所有匹配的字符嗎?

環(huán)境:SpringBoot3.2.5

1. replace是否會(huì)替換所有字符?

在處理字符串時(shí),我們經(jīng)常需要替換字符串中的字符,比如在字符串 "ACDAB$%^&A*Y" 中將 A 替換為 X。首先想到的方法可能就是使用 replace 方法。

如果目的是將所有出現(xiàn)的 A 都替換為 X,那么使用 replaceAll 方法似乎很直觀。方法名本身就清楚地表明了它的用途。

于是問(wèn)題來(lái)了:replace 方法會(huì)替換所有匹配的字符嗎?

JDK文檔說(shuō)明:

圖片圖片

翻譯:該方法將此字符串中每個(gè)與目標(biāo)字面量序列相匹配的子字符串替換為指定的替換字面量序列。替換操作從字符串的開(kāi)頭到結(jié)尾依次進(jìn)行,例如,在字符串 "aaa" 中將 "aa" 替換為 "b" 將得到 "ba" 而不是 "ab"。

那么 replace 與 replaceAll 的區(qū)別?

replace 方法有2個(gè)重載的方法:

String str = "ACDAB$%^&A*Y" ;
System.err.println(str.replace('A', 'X')) ;
System.err.println(str.replace("A", "X")) ;

replaceAll 方法簽名:

public String replaceAll(String regex, String replacement)

可以通過(guò)正則表達(dá)式的方式進(jìn)行替換。如下示例:

String str = "ACDAB$%^&A*Y" ;
// 簡(jiǎn)單字符串替換
System.err.println(str.replaceAll("A", "X")) ;
// 正則替換,替換 '*' 字符,需要轉(zhuǎn)義
System.err.println(str.replaceAll("\\*", "XO")) ;

如果僅僅是將 '*' 進(jìn)行替換,那么使用replace更簡(jiǎn)單

System.err.println(str.replace("*", "XO")) ;

以上都是替換整個(gè)字符串中匹配的,如果你只希望替換第一個(gè)出現(xiàn)的,那么可以使用如下方法:

System.err.println(str.replaceFirst("A", "-")) ;

第一個(gè)參數(shù)接受的是正則表達(dá)式。

2. Integer類(lèi)型不要用 "==" 判斷

這不是絕對(duì)的,需要看情況,你比較的數(shù)值大小了。如下示例:

Integer a = 1 ;
Integer b = 1 ;
System.err.printf("a == b ? %s%n", a == b) ;


a = 128 ;
b = 128 ;
System.err.printf("a == b ? %s%n", a == b) ;


a = -128 ;
b = -128 ;
System.err.printf("a == b ? %s%n", a == b) ;


a = -129 ;
b = -129 ;
System.err.printf("a == b ? %s%n", a == b) ;

輸出結(jié)果:

a == b ? true
a == b ? false
a == b ? true
a == b ? false

為什么這樣?通過(guò)javap反編譯后

圖片圖片

當(dāng)我們將值賦給Integer類(lèi)型變量時(shí)調(diào)用的是Integer#valueOf靜態(tài)方法,該方法簽名如下:

public static Integer valueOf(int i) {
  if (i >= IntegerCache.low && i <= IntegerCache.high)
    return IntegerCache.cache[i + (-IntegerCache.low)] ;
  return new Integer(i);
}

這里的low與high取值如下:

圖片圖片

默認(rèn)[low, high] = [-128, 127],也就是說(shuō)默認(rèn)Integer緩存了這個(gè)范圍的數(shù)字,只要取值在這個(gè)范圍,那么都將返回緩存的數(shù)據(jù)。這也就是上面輸出結(jié)果的原因了。

通過(guò)上面的源碼我們也看到了,我們是可以通過(guò)jvm參數(shù)來(lái)改變這默認(rèn)緩存大小的,運(yùn)行程序時(shí)添加如下的jvm參數(shù):

-Djava.lang.Integer.IntegerCache.high=128

這樣設(shè)置后,我們?cè)谶\(yùn)行上面程序,128的比較將打印true 。

3. 使用BigDecimal能否避免精度損失?

通常,對(duì)于涉及小數(shù)(例如金額)的字段,我們會(huì)將它們定義為BigDecimal而不是Double,以避免精度損失??紤]以下使用Double的場(chǎng)景:

double a = 0.02;
double b = 0.03;
System.out.println(a - b);

最終結(jié)果我們期望的是0.01,但實(shí)際是:

0.009999999999999998

這是因?yàn)閮蓚€(gè)double值的減法運(yùn)算會(huì)被轉(zhuǎn)換為二進(jìn)制形式,而double的有效數(shù)字精度限制為16位,這可能導(dǎo)致小數(shù)位的存儲(chǔ)不足,從而產(chǎn)生誤差。

那么使用BigDecimal是否能解決呢?

BigDecimal a1 = new BigDecimal(0.02) ;
BigDecimal b1 = new BigDecimal(0.03) ;
System.err.println(b1.subtract(a1)) ;

執(zhí)行結(jié)果

0.0099999999999999984734433411404097569175064563751220703125

為什么?我們先看看BigDecimal的構(gòu)造函數(shù)說(shuō)明:

圖片圖片

我們看上面的第一點(diǎn)即可:

翻譯:這個(gè)構(gòu)造函數(shù)的結(jié)果可能會(huì)有些不可預(yù)測(cè)。人們可能會(huì)認(rèn)為,在Java中寫(xiě)new BigDecimal(0.1)會(huì)創(chuàng)建一個(gè)完全等于0.1的BigDecimal(未縮放值為1,精度為1),但實(shí)際上它等于0.1000000000000000055511151231257827021181583404541015625。這是因?yàn)?.1在雙精度浮點(diǎn)數(shù)(或者任何有限長(zhǎng)度的二進(jìn)制小數(shù))中無(wú)法被精確表示。因此,盡管表面上看起來(lái)如此,但傳遞給構(gòu)造函數(shù)的值并不完全等于0.1。

這也說(shuō)明了,我們直接通過(guò)構(gòu)造函數(shù)傳入的double類(lèi)型進(jìn)行計(jì)算是有風(fēng)險(xiǎn)的。

接著我們看第二點(diǎn):

翻譯:String 構(gòu)造函數(shù)是完全可預(yù)測(cè)的:寫(xiě) new BigDecimal("0.1") 會(huì)創(chuàng)建一個(gè)完全等于 0.1 的 BigDecimal,正如人們所期望的那樣。因此,通常建議優(yōu)先使用 String 構(gòu)造函數(shù)而不是這個(gè)(指直接使用 double 值的)構(gòu)造函數(shù)。

我們將上面的代碼改為如下:

BigDecimal aa = new BigDecimal("0.02") ;
BigDecimal bb = new BigDecimal("0.03") ;
System.err.println(bb.subtract(aa)) ;
// 0.01

輸出正確

我們還可以通過(guò)如下的方式:

aa = BigDecimal.valueOf(0.02) ;
bb = BigDecimal.valueOf(0.03) ;
System.err.println(bb.subtract(aa)) ;
// 0.01

此種方式是不是更加方便。其BigDecimal#valueOf內(nèi)如如下:

圖片圖片

關(guān)于BigDecimal更多內(nèi)容請(qǐng)查看下面文章:

不想被坑?快來(lái)了解BigDecimal的陷阱。

4. 是否真的不能使用 "+" 拼接字符串?

字符串值被視為不可變的序列。這意味著一旦定義了字符串對(duì)象,其數(shù)據(jù)就不能被修改。如果需要進(jìn)行修改,則會(huì)創(chuàng)建一個(gè)新的對(duì)象。如下示例:

String a = "123" ;
String b = "456" ;
String c = a + b ;
System.out.println(c) ;

在涉及大量字符串拼接的場(chǎng)景中,使用String對(duì)象會(huì)創(chuàng)建許多不必要的中間對(duì)象。這不僅浪費(fèi)內(nèi)存空間,還會(huì)降低效率。

在這種情況下,我們可以使用更高效的可變字符序列,如StringBuilder或StringBuffer來(lái)定義對(duì)象。

那么,StringBuilder和StringBuffer有什么區(qū)別呢?

主要區(qū)別在于,StringBuffer在其主要方法上添加了synchronized關(guān)鍵字,而StringBuilder則沒(méi)有。因此:

  • StringBuffer是線程安全的。
  • StringBuilder不是線程安全的。

在大多數(shù)情況下,建議使用StringBuilder進(jìn)行字符串拼接,觸發(fā)你需要在多線程環(huán)境下進(jìn)行字符串的操作。

StringBuilder中的append方法可以在不創(chuàng)建中間對(duì)象的情況下拼接字符串,因此它更高效,而且它不是同步的。

String a = "123";
String b = "456";
StringBuilder c = new StringBuilder();
c.append(a).append(b);
System.out.println(c);

那么使用String進(jìn)行字符串拼接是否總是比使用StringBuilder效率低?

首先,我們通過(guò)javap反編譯上面使用StringBuilder的代碼:

圖片圖片

通過(guò)反編譯,定義了2個(gè)String變量,創(chuàng)建一個(gè)StringBuilder對(duì)象,最后使用了2次append方法。

最后,我們?cè)俜淳幾g使用 "+" 操作符的方式:

圖片圖片

對(duì)比下,基本一樣啊。

注意:從JDK 5開(kāi)始,Java對(duì)String類(lèi)型的字符串的+操作進(jìn)行了優(yōu)化。這個(gè)操作在編譯成字節(jié)碼文件時(shí),+操作會(huì)被轉(zhuǎn)換成StringBuilder的append方法調(diào)用,以提高效率。

5. isEmpty & isBlank區(qū)別

當(dāng)我們執(zhí)行字符串操作時(shí),經(jīng)常需要檢查字符串是否為空。如果我們不使用任何工具,通常會(huì)像這樣進(jìn)行檢查:

public static void check(String source) {
  if (null != source && !"".equals(source)) {
    System.out.println("not empty");
  }
}

如果我們每次都需要進(jìn)行這樣的檢查,那可能會(huì)非常繁瑣。推薦使用Apache Commons Lang 3中的StringUtils類(lèi),它包含了許多有用的空值檢查方法:isEmpty、isBlank、isNotEmpty、isNotBlank,以及其他字符串處理方法。

接下來(lái), 我們來(lái)看看isEmpty與isBlank的區(qū)別。

StringUtils.isEmpty(null) ;
StringUtils.isEmpty("") ;
StringUtils.isEmpty(" ") ;
StringUtils.isEmpty("bob") ;
StringUtils.isEmpty("  bob  ") ;

使用isBlank

StringUtils.isBlank(null)      = true
StringUtils.isBlank("")        = true
StringUtils.isBlank(" ")       = true
StringUtils.isBlank("bob")     = false
StringUtils.isBlank("  bob  ") = false

這兩種方法的關(guān)鍵區(qū)別在于,對(duì)于空字符串 " " 的情況,isEmpty 返回 false,而 isBlank 返回 true。

6. Mapper返回的集合List是否進(jìn)行Null檢查?

如下代碼,是否需要進(jìn)行null檢查?

List<User> list = userMapper.query(search);
if (CollectionUtils.isNotEmpty(list)) {
  List<Long> idList = list.stream().map(User::getId).collect(Collectors.toList());
}

注:CollectionUtils使用的是commons-collections4包。內(nèi)部如下調(diào)用

public static boolean isEmpty(final Collection<?> coll) {
  return coll == null || coll.isEmpty();
}

現(xiàn)在我們要確定的是如果基于MyBatis查詢(xún)返回的集合是否需要進(jìn)行null檢查呢?

查看MyBatis源碼,DefaultResultSetHandler#handleResultSets方法。

圖片圖片

collapseSingleResultList方法

private List<Object> collapseSingleResultList(List<Object> multipleResults) {
  return multipleResults.size() == 1 ? (List<Object>) multipleResults.get(0) : multipleResults;
}

通過(guò)查看源碼得知,我們沒(méi)有必要進(jìn)行null的檢查,得到結(jié)果后可以直接進(jìn)行使用。

7. 正確使用indexOf方法

首先,我們先來(lái)看看下面的代碼:

String source = "#ABBXXXOOO*pack";
if (source.indexOf("#") > 0) {
  System.out.println("success") ;
  // TODO
}

此代碼并不會(huì)輸出任何東西。indexOf如果不存在,那么返回 -1。該方法的說(shuō)明:

圖片圖片

指定子字符串第一次出現(xiàn)的索引,如果沒(méi)有這樣的出現(xiàn),則返回-1。

indexOf方法返回指定元素在字符串中的位置,從0開(kāi)始計(jì)數(shù)。在上面的例子中,#位于字符串的第一個(gè)位置,所以indexOf方法返回的值實(shí)際上是0。

所以,這里我們應(yīng)該這樣判斷

if (source.indexOf("#") > -1) {
  // ...
}

但是,我覺(jué)得下面的方法更好:

if (source.contains("#")) {
  System.err.println("contains success") ;
}

責(zé)任編輯:武曉燕 來(lái)源: Spring全家桶實(shí)戰(zhàn)案例源碼
相關(guān)推薦

2020-07-07 10:24:15

華為服務(wù)技術(shù)

2025-10-11 07:20:00

CIO成本優(yōu)化企業(yè)

2014-08-25 09:41:22

GMGDC

2023-11-07 15:03:56

2019-07-28 21:29:40

2009-08-31 16:28:35

程序開(kāi)發(fā)語(yǔ)言

2022-04-12 15:49:46

IT領(lǐng)導(dǎo)者技能

2023-12-06 07:36:27

前端開(kāi)發(fā)

2025-03-10 00:14:00

C#開(kāi)發(fā)者技術(shù)

2025-02-11 08:00:00

閉包JavaScript開(kāi)發(fā)

2018-04-11 14:13:29

物聯(lián)網(wǎng)信息技術(shù)互聯(lián)網(wǎng)

2020-12-22 09:55:55

IT首席信息官CIO

2022-05-23 08:09:42

物聯(lián)網(wǎng)IOT

2020-12-18 10:35:27

IT技術(shù)領(lǐng)導(dǎo)者

2015-07-08 08:51:11

SDN

2019-12-26 09:00:27

云計(jì)算悖論智能

2013-09-10 09:35:53

移動(dòng)開(kāi)發(fā)者全能開(kāi)發(fā)者技能

2017-09-04 18:02:58

應(yīng)用程序APP移動(dòng)設(shè)備

2009-12-01 14:35:06

Linux忠告

2018-09-10 06:00:12

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

999国内精品视频在线| 国产一区二区三区在线看| 欧美交换配乱吟粗大25p| 亚洲高清视频网站| 久久久久.com| 日韩在线观看网站| 中文字幕精品久久久| 日韩三区在线| 亚洲一区二区黄色| 亚洲电影网站| 天天色综合久久| 激情五月婷婷综合| 奇门遁甲1982国语版免费观看高清| 娇妻被老王脔到高潮失禁视频| 精品一区二区三区四区五区 | 一本一本a久久| 人妻精品一区二区三区| 久久综合综合久久综合| 91av国产在线| 久久久国产成人| 日本不卡免费一区| 日韩大陆毛片av| 91精产国品一二三| 少妇精品视频在线观看| 色综合久久99| 日韩av高清在线看片| 国产乱色在线观看| 日本一区二区三区四区在线视频 | 国产一级不卡毛片| 18aaaa精品欧美大片h| 成人欧美一区二区三区黑人麻豆| 国产另类自拍| 国产成人久久精品77777综合| 日韩一区欧美二区| 欧美伊久线香蕉线新在线| 国产黄色片在线免费观看| 日韩在线不卡| 在线观看国产精品淫| 欧美色图亚洲激情| 欧洲精品一区| 亚洲国产精品一区二区久| 久久久久亚洲av片无码v| 成人黄色在线| 欧美三级电影网| 高清一区二区视频| 欧美xoxoxo| 色婷婷精品久久二区二区蜜臂av| 91专区在线观看| 国产精品久久77777| 国产成人一区二区三区影院在线| 成人一二三区| 这里只有精品视频在线| 三年中国中文观看免费播放| 国产一区二区在线| 亚洲三级黄色在线观看| 成人性生交大免费看| 色综合综合色| 一区二区三区视频免费在线观看| 久久精品国产亚洲AV熟女| 在线亚洲a色| 亚洲美女动态图120秒| www.超碰97| 国产亚洲第一伦理第一区| 亚洲欧洲美洲在线综合| 一级肉体全黄裸片| 天天综合一区| 欧美极品少妇xxxxⅹ喷水 | 欧美少妇另类| 国产午夜亚洲精品羞羞网站| 欧美亚洲国产免费| 日本高清视频在线播放| 亚洲视频中文字幕| 国产xxxx振车| 亚洲同志男男gay1069网站| 在线亚洲精品福利网址导航| 亚洲36d大奶网| 欧美h版在线观看| 亚洲成人久久电影| 亚洲精品成人无码| 亚洲最大av| 2019中文字幕在线| 一级黄色片在线| 国产成人综合视频| 欧美精品与人动性物交免费看| av在线女优影院| 亚洲男人的天堂av| 一本大道熟女人妻中文字幕在线 | 久久精品中文字幕一区二区三区 | 欧美大片免费观看| 色播视频在线播放| 美女一区二区三区| 国产日韩精品推荐| 日韩子在线观看| 亚洲超碰97人人做人人爱| 538在线视频观看| 99re91这里只有精品| 亚洲女人天堂成人av在线| 久久嫩草捆绑紧缚| 亚洲欧美日韩精品一区二区| 国产一区二区在线免费视频| 欧美一级一区二区三区| 亚洲国产精品激情在线观看| 免费在线看黄色片| 久久婷婷五月综合色丁香| 日韩一区二区三区视频在线 | 日韩精品免费一区二区三区竹菊| 中文字幕不卡av| 国产性xxxx高清| 国产一区二区福利视频| 鲁丝一区二区三区免费| 在线视频中文字幕第一页| 色欧美日韩亚洲| 午夜性福利视频| 99精品小视频| 国产精品99一区| 日本高清视频网站| 亚洲品质自拍视频| 日本激情视频在线播放| 另类尿喷潮videofree| 久久躁狠狠躁夜夜爽| 波多野结衣爱爱| av网站一区二区三区| 日本一区二区三区四区五区六区| 桃花岛tv亚洲品质| 亚洲激情国产精品| 久久免费黄色网址| 国产酒店精品激情| 四虎免费在线观看视频| 成人高清一区| 中文日韩在线观看| 国产成人自拍偷拍| 久久综合精品国产一区二区三区 | 日本在线不卡视频| 欧美黑人xxxxx| 性欧美18~19sex高清播放| 日韩视频在线你懂得| 国产福利视频网站| 韩国女主播成人在线观看| 天天综合狠狠精品| 欧美日韩激情电影| 一区二区三区高清国产| 国产真人无遮挡作爱免费视频| 久久久久久久久99精品| 欧美 日韩精品| 免费av一区| 国产精品久久精品| 在线视频三区| 欧美日韩高清一区二区三区| 内射毛片内射国产夫妻| 蜜桃视频一区二区三区 | 添女人荫蒂视频| 国产精品美女久久久浪潮软件| 国产欧美综合精品一区二区| 成年人视频免费在线播放| 欧美va亚洲va国产综合| 国产精品第56页| 91视频www| 午夜免费一区二区| 日韩精品久久| 亚洲一区久久久| 欧美videossex另类| 亚洲成人av中文字幕| 日韩字幕在线观看| 国产欧美精品一区aⅴ影院| 自拍偷拍一区二区三区四区 | 日韩精品视频在线观看视频| 白白在线精品| 欧美一级淫片videoshd| 国产资源在线看| 7777精品伊人久久久大香线蕉超级流畅| 成年人二级毛片| av中文字幕亚洲| 88av.com| 91精品国产自产在线观看永久∴| 成人av影视在线| 自由日本语热亚洲人| 亚洲色图15p| 99在线观看免费| 五月激情丁香一区二区三区| 超碰97人人干| 国产在线国偷精品免费看| 欧美日韩dvd| 亚洲女娇小黑人粗硬| 国产精品视频资源| 久久99亚洲网美利坚合众国| 精品小视频在线| 亚洲网站免费观看| 亚洲成人一区在线| 亚洲a∨无码无在线观看| 丁香五精品蜜臀久久久久99网站 | 国内久久精品视频| 成年人网站免费视频| 大胆日韩av| 国产伦精品一区二区三毛| 97欧美成人| 97久久久免费福利网址| 成a人v在线播放| 亚洲激情在线视频| 国产精品怡红院| 欧美日韩国产麻豆| 成人免费视频国产免费观看| 99精品久久久久久| 在线视频观看一区二区| 亚洲综合丁香| 国产成人生活片| 日韩成人精品一区二区| 精品视频免费观看| 日韩精品免费视频一区二区三区 | 丁香色欲久久久久久综合网| 综合亚洲色图| 国产精品高清一区二区三区| 巨大黑人极品videos精品| 992tv成人免费影院| 国产黄色在线观看| 亚洲最新av在线网站| 四季av日韩精品一区| 91精品国产综合久久久蜜臀图片| 无码人妻精品一区二区蜜桃色欲| 亚洲综合一二区| 中国一级片在线观看| 国产色91在线| 免费黄色在线视频| 99久久国产综合精品女不卡| 亚洲成人福利视频| 国产在线一区观看| www.cao超碰| 日韩福利电影在线观看| 国产成人久久777777| 亚洲精品极品| 国产a级片网站| 综合一区在线| 亚洲一区精彩视频| 日韩精品免费| 亚洲不卡一卡2卡三卡4卡5卡精品| 97精品久久| 亚洲一区亚洲二区亚洲三区| 国产精品视频一区二区三区| 国产欧美一区二区三区久久人妖| 成人黄色免费短视频| 日韩暖暖在线视频| 国模冰冰炮一区二区| 欧美亚洲第一页| 久草在线中文最新视频| 91精品国产高清| jizzjizz中国精品麻豆| 欧美黑人一级爽快片淫片高清| 老司机在线永久免费观看| 日韩在线观看网站| 超碰免费公开在线| 欧美日本啪啪无遮挡网站| 尤物视频在线看| 欧美黑人一级爽快片淫片高清| 亚洲婷婷噜噜| 久久久爽爽爽美女图片| 91福利在线尤物| 欧美与欧洲交xxxx免费观看| 波多野一区二区| 欧美一区二区大胆人体摄影专业网站| 中文一区一区三区高中清不卡免费| 97婷婷大伊香蕉精品视频| 午夜影院一区| 国产精品扒开腿做爽爽爽视频| 99欧美精品| 91在线中文字幕| 粉嫩精品导航导航| 蜜桃视频在线观看成人| 色综合五月天| 男女啪啪免费观看| 在线看片欧美| 欧美 日本 亚洲| 久久精品国产**网站演员| 亚洲18在线看污www麻豆 | 这里只有精品在线观看视频 | 欧美二区三区在线| 北条麻妃国产九九九精品小说| 在线视频91| 在线欧美亚洲| 亚洲视频在线观看一区二区三区| 久久精品国产久精国产| 绯色av蜜臀vs少妇| 久久久三级国产网站| 国产3级在线观看| 亚洲国产视频网站| 天天天天天天天干| 精品人伦一区二区色婷婷| 国产小视频在线观看| 美女扒开尿口让男人操亚洲视频网站| 17videosex性欧美| 国产精品无av码在线观看| 66精品视频在线观看| 日韩国产美国| 91久久午夜| 亚洲精品第三页| 99久久精品免费看国产| 亚洲欧洲综合网| 精品福利一区二区| 国产巨乳在线观看| 亚洲欧美日韩在线一区| 呦呦在线视频| 国产剧情日韩欧美| 日韩av资源网| 黄色片免费在线观看视频| 免费看的黄色欧美网站| 下面一进一出好爽视频| 国产欧美精品国产国产专区| 久久伊人成人网| 这里只有精品视频在线观看| 免费黄网站在线观看| 欧美激情2020午夜免费观看| www.久久.com| 精品福利影视| 好看不卡的中文字幕| 亚洲精品在线视频播放| 国产无遮挡一区二区三区毛片日本| 美女福利视频在线观看| 欧美天堂亚洲电影院在线播放| 天天综合天天综合| 欧美黑人极品猛少妇色xxxxx| 精品亚洲a∨| 欧洲在线视频一区| 国产精品久久久亚洲一区| 中文字幕第66页| 国产精品色哟哟| www.日韩一区| 亚洲女同性videos| 久草在线中文最新视频| 国产福利久久精品| 91成人超碰| 日韩不卡一二三| 国产精品免费免费| 中文资源在线播放| 亚洲无亚洲人成网站77777| 国产乱码精品一区二三赶尸艳谈| 99久久无色码| 欧美精品导航| 日本r级电影在线观看| 最新欧美精品一区二区三区| 一级aaaa毛片| 精品国产区一区二区三区在线观看| 美女色狠狠久久| 日韩在线三级| 免费人成精品欧美精品| 中文字幕黄色网址| 在线观看免费视频综合| 国产三级电影在线观看| 国产91免费看片| 欧美先锋资源| 三级a三级三级三级a十八发禁止| 中文字幕av一区二区三区免费看| 亚洲午夜在线播放| 日韩中文字幕欧美| 国产日韩一区二区三免费高清| 国产a级片免费看| 国产久卡久卡久卡久卡视频精品| 欧美日韩国产精品一区二区三区| 日韩一区二区三区电影| 色呦呦在线播放| 久久综合入口| 免费久久99精品国产| www日韩在线| 精品国产三级电影在线观看| 黄色污网站在线观看| 欧美深深色噜噜狠狠yyy| 另类小说一区二区三区| 日本中文在线视频| 精品国产凹凸成av人网站| 交100部在线观看| 日韩免费av电影| 精品制服美女丁香| 久久久精品一区二区涩爱| 精品性高朝久久久久久久| 粉嫩91精品久久久久久久99蜜桃| 亚洲视频sss| 国产不卡在线播放| 欧美日韩综合一区二区三区| 一区二区欧美亚洲| 18国产精品| 日韩在线第三页| 一区二区三区四区av| 亚洲av激情无码专区在线播放| 国产精品久久久久久久久久新婚 | 久久久久国产精品人| 国产一区二区三区成人| 欧美精品成人在线| 欧洲激情综合| 国产免费a级片| 欧美亚州韩日在线看免费版国语版| 黄色大片在线播放| 久久偷看各类wc女厕嘘嘘偷窃| 麻豆成人免费电影| 日本一区二区三区四区五区| 中文字幕精品av| 国产精品xxxav免费视频| 中文字幕国产传媒| 午夜视频一区二区| 免费在线看a| 欧美中文娱乐网| 成人午夜碰碰视频| 国产免费www| 欧美一级成年大片在线观看|