国产无遮挡裸体免费直播视频,久久精品国产蜜臀av,动漫在线视频一区二区,欧亚日韩一区二区三区,久艹在线 免费视频,国产精品美女网站免费,正在播放 97超级视频在线观看,斗破苍穹年番在线观看免费,51最新乱码中文字幕

Scala基礎(chǔ)語法總結(jié)

 更新時間:2023年11月01日 11:22:03   投稿:wdc  
這篇文章主要介紹了Scala基礎(chǔ)語法總結(jié),需要的朋友可以參考下

一、變量

val/var 變量名稱:變量類型 = 初始值

注意:

  • val定義的是不可重新賦值的變量(值不可修改)

  • var定義的是可重新賦值的變量(值可以修改)

  • scala中聲明變量是變量名稱在前,變量類型在后,跟java是正好相反

  • scala的語句最后不需要添加分號、、

 惰性變量

  • Scala中使用==關(guān)鍵字lazy==來定義惰性變量,實現(xiàn)延遲加載(懶加載)。

  • 惰性變量只能是不可變變量,并且只有在調(diào)用惰性變量時,才會去實例化這個變量。

  • 語法格式

lazy val 變量名 = 表達式

 二、數(shù)據(jù)類型

基礎(chǔ)類型類型說明
Byte8位帶符號整數(shù)
Short16位帶符號整數(shù)
Int32位帶符號整數(shù)
Long64位帶符號整數(shù)
Char16位無符號Unicode字符
StringChar類型的序列(字符串)
Float32位單精度浮點數(shù)
Double64位雙精度浮點數(shù)
Booleantrue或false

1. scala中所有的類型都使用大寫字母開頭,說明是它是“類”
2. 整形使用Int而不是Integer
3. scala中定義變量可以不寫類型,讓scala編譯器自動推斷 

三、scala中的條件表達式

1、if表達式

這個和java差不多,可以加括號,或者不加括號

  def main(args: Array[String]): Unit = {
     val x:Int=2
     if (x>10) println(x)
     else println(x+x)
}

打印為2

2、塊表達式

定義變量時用 {} 包含一系列表達式,其中塊的最后一個表達式的值就是塊的值

  def main(args: Array[String]): Unit = {

    val x = 0
    val result = {
      val y = x + 10
      val z = y + "-hello"
      val m = z + "-kaikeba"
      "over"
    }
    println(result)
}

打印結(jié)果

over

Process finished with exit code 0

返回值就是m了 

  def main(args: Array[String]): Unit = {
    val x = 0
    val result = {
      val y = x + 10
      val z = y + "-hello"
      val m = z + "-kaikeba"
      m
    }
    println(result)
}

打印結(jié)果

10-hello-kaikeba

四、循環(huán)

在scala中,可以使用for和while,但一般推薦使用for表達式,因為for表達式語法更簡潔

for (i <- 表達式/數(shù)組/集合){
    //表達式
}

1、簡單for循環(huán)

def main(args: Array[String]): Unit = {
    var nums=1 to 10
    //for循環(huán)
    for(i <- nums) println(i)
}

2、雙層for循環(huán)

  def main(args: Array[String]): Unit = {

    //雙層for循環(huán)
    for (i <- 1 to 3; j <- 1 to 3)
      println(i * 10 + j)
}

打印的值為

11
12
13
21
22
23
31
32
33

3、守衛(wèi):在for表達式中可以添加if判斷語句,這個if判斷稱為守衛(wèi)

 def main(args: Array[String]): Unit = {
//    守衛(wèi)
    var nums = 1 to 10
    for (i <- nums if i>5 ) println(i)
}

打印的值為: 

6
7
8
9
10

4、yield表達式 

在for循環(huán)體中,以yield表達式開始,這類循環(huán)能構(gòu)建出一個新的集合,我們把這類循環(huán)稱為推導(dǎo)式

def main(args: Array[String]): Unit = {

    // for推導(dǎo)式:for表達式中以yield開始,該for表達式會構(gòu)建出一個集合
    val v = for(i <- 1 to 5) yield i * 10
    //打印集合v的第一個元素
    println(v(0))
}

打印的值為

10

五、while循環(huán)

while(返回值為布爾類型的表達式){
    //表達式
}

六、方法

def methodName (參數(shù)名:參數(shù)類型, 參數(shù)名:參數(shù)類型) : [return type] = {
    // 方法體:一系列的代碼
}
  • 參數(shù)列表的參數(shù)類型不能省略

  • 返回值類型可以省略,由scala編譯器自動推斷

  • 返回值可以不寫return,默認就是{}塊表達式的值  

  • 注意:

  • 如果定義遞歸方法,必須指定返回值類型

  • 示例:(方法三)

  • 定義遞歸方法(求階乘)

  • 10 * 9 * 8 * 7 * 6 * ... * 1

  //方法一
  def yy(i: Int = 10, u: Int = 8): Int = {
    return i + u;
  }

  //方法二
  def tt(i: Int) = i * i


  /**
   * 遞歸必須添加返回值參數(shù)
   *
   * @param x
   * @return
   */
  //方法三
  def m1(x: Int): Int = {
    if (x == 1) 1
    else x * m1(x - 1)
  }

  /**
   * 參數(shù)值加*,可以傳遞多個參數(shù)
   *
   * @param num
   * @return
   */
  //    方法四
  def add(num: Int*) = num.sum

  def main(args: Array[String]): Unit = {
    
        println(yy(1))
        println(tt(8))
        println(m1(10))
        println(add(1,2,3))
}

打印的值為

9
64
3628800
6

6、函數(shù)

  • 函數(shù)在scala中屬于頭等公民

    • 數(shù)字能做的事,函數(shù)也可以

    • 數(shù)字可以作為參數(shù),所以函數(shù)也可以作為其他方法或函數(shù)的參數(shù)

    • 數(shù)字可以作為返回值,所以函數(shù)也可以作為其他方法或函數(shù)的返回值

    • 數(shù)字可以賦值給一個變量,所以函數(shù)也可以賦值給一個變量

  • scala支持函數(shù)式編程,將來編寫Spark/Flink程序中,會大量使用到函數(shù)

  • 語法

val 函數(shù)變量名 = (參數(shù)名:參數(shù)類型, 參數(shù)名:參數(shù)類型....) => 函數(shù)體

注意

  • 函數(shù)是一個對象(變量)

  • 類似于方法,函數(shù)也有輸入?yún)?shù)和返回值

  • 函數(shù)定義不需要使用def定義

  • 無需指定返回值類型

 val add2 = (x: Int, y: Int) => x * y
  def main(args: Array[String]): Unit = {
        println(add2(2,4))
}

 打印的值為

8

方法和函數(shù)的區(qū)別

  • 方法是隸屬于類或者對象的,在運行時,它是加載到JVM的==方法區(qū)==中

  • 可以將函數(shù)對象賦值給一個變量,在運行時,它是加載到JVM的==堆內(nèi)存==中

  • 函數(shù)是一個對象,繼承自FunctionN,函數(shù)對象有apply,curried,toString,tupled這些方法,而方法則沒有

方法轉(zhuǎn)換為函數(shù)

  • 有時候需要將方法轉(zhuǎn)換為函數(shù),作為變量傳遞,就需要將方法轉(zhuǎn)換為函數(shù)

  • 使用 即可將方法轉(zhuǎn)換為函數(shù)(記得空格)

  •  //方法三
      def m1(x: Int): Int = {
        if (x == 1) 1
        else x * m1(x - 1)
      }
      val hanshu=m1 _;
      def main(args: Array[String]): Unit = {
    
        println(hanshu(10))
      }

    打印的結(jié)果 

  • 3628800

    7、數(shù)組

  • scala中數(shù)組的概念是和Java類似,可以用數(shù)組來存放同類型的一組數(shù)據(jù)

  • scala中,有兩種數(shù)組,一種是定長數(shù)組,另一種是變長數(shù)組 

(1)、定長數(shù)組

  • 定長數(shù)組指的是數(shù)組的長度不允許改變

  • 數(shù)組的元素可以改變

demo如下 

def main(args: Array[String]): Unit = {
    val a = new Array[Int](10)
    println(a)
    a(0)=98
    println(a(0))
    println(a(1))
    println(a.length)
  }

 打印的值為:

[I@ea4a92b
98
0
10

(2)、變長數(shù)組

  • 變長數(shù)組指的是數(shù)組的長度是可變的,可以往數(shù)組中添加、刪除元素

  • 創(chuàng)建變長數(shù)組,需要提前導(dǎo)入ArrayBuffer類

import scala.collection.mutable.ArrayBuffer

語法

  • 創(chuàng)建空的ArrayBuffer變長數(shù)組

  • val/var a = ArrayBuffer[元素類型]()

    創(chuàng)建帶有初始元素的ArrayBuffer

  • val/var a = ArrayBuffer(元素1,元素2,元素3....)

    變長數(shù)組的增刪改操作

  • 使用+=添加元素

  • 使用-=刪除元素

  • 使用++=追加一個數(shù)組到變長數(shù)組

demo如下 

  def main(args: Array[String]): Unit = {
    //變長數(shù)組
    val a = ArrayBuffer[String]();
    a+=("test")
    a+=("張三")
    a++=Array("妞兒","所以算是")
    println(a(3))
    println(a.size)
  }
}

打印的值為

所以算是
4

(3)、遍歷數(shù)組

可以使用以下兩種方式來遍歷數(shù)組:

  • 使用==for表達式== 直接遍歷數(shù)組中的元素

  • 使用 ==索引== 獲得數(shù)組中的元素

for(i <- a) println(i)
/0 to n    ——包含0,也包含n
for(i <- 0 to a.length -1 ) println(a(i))
//0 until n ——生成一系列的數(shù)字,包含0,不包含n
for(i <- 0 until a.length) println(a(i))

(4)、數(shù)組常用操作

scala中的數(shù)組封裝了豐富的計算操作,將來在對數(shù)據(jù)處理的時候,不需要我們自己再重新實現(xiàn)。

  • 求和——sum方法

  • 求最大值——max方法

  • 求最小值——min方法

  • 排序——sorted方法

 def main(args: Array[String]): Unit = {

    val array = Array(1,3,4,2,5)
    println("求和:"+array.sum)
    println("最大值:"+array.max)
    println("最小值:"+array.min)
    println("排序(獲取一個新數(shù)組,并翻轉(zhuǎn)):"+array.sorted.reverse(0))

  }

 打印如下

求和:15
最大值:5
最小值:1
排序(獲取一個新數(shù)組,并翻轉(zhuǎn)):5

8、元組 

元組可以用來包含一組不同類型的值。例如:姓名,年齡,性別,出生年月。

元組的元素是不可變的。

1、定義元組

使用括號來定義元組

val/var 元組變量名稱 = (元素1, 元素2, 元素3....)

使用箭頭來定義元素(元組只有兩個元素 )

val/var 元組 = 元素1 -> 元素2

2、訪問元組

  • 使用 _1、_2、_3....來訪問元組中的元素

  • 元組的index從1開始,_1表示訪問第一個元素,依次類

  def main(args: Array[String]): Unit = {
    val a = (1, "張三", 20, "北京市")
    val b = 1 -> 2
    println(a._1)
    println(a._4)
    println(b._1)
  }

 打印的值為

1
北京市
1

9、映射Map

  • Map可以稱之為映射。它是由鍵值對組成的集合。scala當中的Map集合與java當中的Map類似,也是key,value對形式的。

  • 在scala中,Map也分為不可變Map和可變 Map。

(1)、不可變map

  定義語法

val/var map = Map(鍵->值, 鍵->值, 鍵->值...)    // 推薦這種寫法,可讀性更好 
val/var map = Map((鍵, 值), (鍵, 值), (鍵, 值), (鍵, 值)...)
def main(args: Array[String]): Unit = {
    val map1 = Map("zhangsan"->30, "lisi"->40)
    val map2 = Map(("zhangsan", 30), ("lisi", 30))
    println(map1("lisi"))
    println(map2("zhangsan"))
  }

打印的值為

40
30

(2)、可變Map

1、導(dǎo)包

import scala.collection.mutable.Map
  def main(args: Array[String]): Unit = {

    val map3 = Map("zhangsan" -> 30, "lisi" -> 40)
    //修改一個
    map3("zhangsan") = 50
    println("修改的" + map3)
    //添加一個
    map3 += ("yy" -> 22)
    println("添加的" + map3)
    //刪去一個
    map3 -= "yy"
    println("刪除的" + map3)
    //拿取到map所有key
    println("拿取到map所有key:" + map3.keys)
    println("拿取到map所有key:" + map3.keySet)
    //獲取所有的value
    println("獲取所有的value:" + map3.values)
  }

打印的值為: 

修改的Map(lisi -> 40, zhangsan -> 50)
添加的Map(yy -> 22, lisi -> 40, zhangsan -> 50)
刪除的Map(lisi -> 40, zhangsan -> 50)
拿取到map所有key:Set(lisi, zhangsan)
拿取到map所有key:Set(lisi, zhangsan)
獲取所有的value:HashMap(40, 50)

(3)、遍歷Map

     val map3 = Map("zhangsan" -> 30, "lisi" -> 40)
    //方法一。通過遍歷key拿取到值
    for (i <- map3.keys) println(i + "->" + map3(i))
    //方法二,通過元組的方法拿取到值
    for (i <- map3) println(i._1 + "->" + i._2)
    //方法三
    for((k, v) <- map3) println(k + " -> " + v)
lisi->40
zhangsan->30
lisi->40
zhangsan->30
lisi -> 40
zhangsan -> 30

10、Set集合

  • Set是代表沒有重復(fù)元素的集合。

  • Set具備以下性質(zhì):

    • 1、元素不重復(fù)

    • 2、不保證插入順序

  • scala中的set集合也分為兩種,一種是不可變集合,另一種是可變集合。

不可變set集合 

//創(chuàng)建一個空的不可變集
val/var 變量名 = Set[類型]()

//給定元素來創(chuàng)建一個不可變集
val/var 變量名 = Set[類型](元素1, 元素2, 元素3...)
 def main(args: Array[String]): Unit = {
    val a = Set(1, 1, 2, 3, 4, 5)
    println("a的長度大小"+a.size)
    for(i<-a)println(i)
    println("添加一個元素的新set:",a + 6)
    println("刪除一個元素的新set:",a -1)
    println("刪除多個元素的新set:",a -- Set(2,3) )
    println("添加多個元素的新set:",a ++ Set(6,7,8)  )
    println("多個Set集合交集的新set:",a & Set(3,4,5,6))
    println(a)
  }

打印如下:

a的長度大小5
5
1
2
3
4
(添加一個元素的新set:,Set(5, 1, 6, 2, 3, 4))
(刪除一個元素的新set:,Set(5, 2, 3, 4))
(刪除多個元素的新set:,Set(5, 1, 4))
(添加多個元素的新set:,Set(5, 1, 6, 2, 7, 3, 8, 4))
(多個Set集合交集的新set:,Set(5, 3, 4))
Set(5, 1, 2, 3, 4)

注意:這里對不可變的set集合進行添加刪除等操作,對于該集合來說是沒有發(fā)生任何變化,這里是生成了新的集合,新的集合相比于原來的集合來說發(fā)生了變化

可變Set集合

要使用可變集,必須要手動導(dǎo)入:

import scala.collection.mutable.Set

11、列表 List

  • List是scala中最重要的、也是最常用的數(shù)據(jù)結(jié)構(gòu)。

  • List具備以下性質(zhì):

    • 1、可以保存重復(fù)的值

    • 2、有先后順序

  • 在scala中,也有兩種列表,一種是不可變列表、另一種是可變列表

  • 不可變列表就是列表的元素、長度都是不可變的

  • 語法

    不可變列表

  • 使用 List(元素1, 元素2, 元素3, ...) 來創(chuàng)建一個不可變列表,語法格式
val/var 變量名 = List(元素1, 元素2, 元素3...)

//使用 Nil 創(chuàng)建一個不可變的空列表
val/var 變量名 = Nil

//使用 :: 方法創(chuàng)建一個不可變列表
val/var 變量名 = 元素1 :: 元素2 :: Nil
 def main(args: Array[String]): Unit = {
    val list1 = List(1, 2, 3, 4)
    val list2 = Nil
    val list3= 1::2::3::Nil
    println(list1(0))
    println(list3)
  }

 打印的值為

1
List(1, 2, 3)

可變列表

1、使用ListBuffer元素類型 創(chuàng)建空的可變列表,語法結(jié)構(gòu)

val/var 變量名 = ListBuffer[Int]()

2、使用ListBuffer(元素1, 元素2, 元素3...)創(chuàng)建可變列表,語法結(jié)構(gòu)

val/var 變量名 = ListBuffer(元素1,元素2,元素3...)
    val a = ListBuffer[Int]()
    val b = ListBuffer(1, 2, 3, 4)
    println(b(0))
    println("list數(shù)組首部:", b.head)
    println("獲取除了第一個元素外其他元素組成的列表", b.tail)
    b += 5
    println("添加應(yīng)元素", b)
    b ++= List(6, 7)
    println("添加一個不可變列表", b)
    b ++= ListBuffer(8, 9)
    println("添加一個可變列表", b)
    b -= 9
    println("刪除單個元素", b)
    b --= List(7,8)
    println("刪除一個不可變的列表存在的元素", b)
    b --= ListBuffer(5,6)
    println("刪除一個可變的列表存在的元素", b)
    println("toList根據(jù)可變的列表生成一個不可變列表",b.toList)
    println("toList根據(jù)可變的列表生成一個不可變列表,原列表不變",b)

    println("toArray根據(jù)可變的列表生成一個新的不可變數(shù)組",b.toArray)
    println("toArray根據(jù)可變的列表生成一個新的不可變數(shù)組,原列表不變",b)

打印如下

1
(list數(shù)組首部:,1)
(獲取除了第一個元素外其他元素組成的列表,ListBuffer(2, 3, 4))
(添加應(yīng)元素,ListBuffer(1, 2, 3, 4, 5))
(添加一個不可變列表,ListBuffer(1, 2, 3, 4, 5, 6, 7))
(添加一個可變列表,ListBuffer(1, 2, 3, 4, 5, 6, 7, 8, 9))
(刪除單個元素,ListBuffer(1, 2, 3, 4, 5, 6, 7, 8))
(刪除一個不可變的列表存在的元素,ListBuffer(1, 2, 3, 4, 5, 6))
(刪除一個可變的列表存在的元素,ListBuffer(1, 2, 3, 4))
(toList根據(jù)可變的列表生成一個不可變列表,List(1, 2, 3, 4))
(toList根據(jù)可變的列表生成一個不可變列表,原列表不變,ListBuffer(1, 2, 3, 4))
(toArray根據(jù)可變的列表生成一個新的不可變數(shù)組,[I@3567135c)
(toArray根據(jù)可變的列表生成一個新的不可變數(shù)組,原列表不變,ListBuffer(1, 2, 3, 4))

12、函數(shù)式編程

  • 我們將來使用Spark/Flink的大量業(yè)務(wù)代碼都會使用到函數(shù)式編程。

  • 下面的這些操作是學(xué)習(xí)的重點,先來感受下如何進行函數(shù)式編程以及它的強大

(1)、遍歷 - foreach

方法描述

foreach(f: (A) ? Unit): Unit
foreachAPI說明
參數(shù)f: (A) ⇒ Unit接收一個函數(shù)對象作為參數(shù) 函數(shù)的輸入?yún)?shù)為集合的元素 返回值為空
返回值Unit
  def main(args: Array[String]): Unit = {
    val list = List(1, 2, 3, 4)
    //定義一個匿名函數(shù)傳入到foreach方法中
    list.foreach((u: Int) => println(u))
    //匿名函數(shù)的輸入?yún)?shù)類型可以省略,由編譯器自動推斷
    list.foreach(u => println(u))
    //  當函數(shù)參數(shù),只在函數(shù)體中出現(xiàn)一次,而且函數(shù)體沒有嵌套調(diào)用時,可以使用下劃線來簡化函數(shù)定義
    list.foreach(println(_))
    //最簡單直接
    list.foreach(println)
  }

(2)、映射 - map

  • 集合的映射操作是將來在編寫Spark/Flink用得最多的操作,是我們必須要掌握。

  • 方法描述

def map[B](f: (A) ? B): TraversableOnce[B]
  • 方法說明

ap方法API說明
泛型[B]指定map方法最終返回的集合泛型
參數(shù)f: (A) ⇒ B傳入一個函數(shù)對象作為參數(shù) 該函數(shù)接收一個類型A(要轉(zhuǎn)換的集合的元素類型) 返回值為類型B
返回值TraversableOnce[B]B類型的集合

    val list = List(1, 2, 3, 4)
    //定義一個匿名函數(shù)
    val b=list.map((i:Int)=>i*10)
    println(b)
    //省略匿名函數(shù)參數(shù)類型
    val c=list.map(i=>i*10)
    println(c)
    //最簡單用下劃線的方法
    val d=  list.map(_ * 10)
    println(d)

打印結(jié)果如下

List(10, 20, 30, 40)
List(10, 20, 30, 40)
List(10, 20, 30, 40)

(3)、扁平化映射 - flatmap

  • 映射扁平化也是將來用得非常多的操作,也是必須要掌握的。

  • 方法描述

def flatMap[B](f: (A) ? GenTraversableOnce[B]): TraversableOnce[B]

方法說明  

flatmap方法API說明
泛型[B]最終要轉(zhuǎn)換的集合元素類型
參數(shù)f: (A) ⇒ GenTraversableOnce[B]傳入一個函數(shù)對象作為參數(shù) 函數(shù)的參數(shù)是集合的元素 函數(shù)的返回值是一個集合
返回值TraversableOnce[B]B類型的集合

def main(args: Array[String]): Unit = {
    val list = List("hadoop hive spark flink", "hbase spark")
    val tt = list.flatMap(x => x.split(" "));
    println(tt)
    //簡寫
    val t2 = list.flatMap(_.split(" "))
    println(t2)
    //flatMap該方法其本質(zhì)是先進行了map 然后又調(diào)用了flatten
    val t3 = list.map(_.split(" ")).flatten
    println(t3)
  }

打印結(jié)果如下

List(hadoop, hive, spark, flink, hbase, spark)
List(hadoop, hive, spark, flink, hbase, spark)
List(hadoop, hive, spark, flink, hbase, spark)

(4)、過濾 - filter

  • 過濾符合一定條件的元素

  • 方法描述

def filter(p: (A) ? Boolean): TraversableOnce[A]

 方法說明

filter方法API說明
參數(shù)p: (A) ⇒ Boolean傳入一個函數(shù)對象作為參數(shù) 函數(shù)的參數(shù)是集合中的元素 此函數(shù)返回布爾類型,滿足條件返回true, 不滿足返回false
返回值TraversableOnce[A]列表

 demo展示

def main(args: Array[String]): Unit = {
    val list = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
    ///過濾出集合中大于5的元素
    val tt=list.filter(x=>x>5)
    println(tt)
    //把集合中大于5的元素取出來乘以10生成一個新的list集合
    val t3=list.filter(x=>x>5).map(u=>u*10)
    println(t3)
  }

 打印的值為:

List(6, 7, 8, 9, 10)
List(60, 70, 80, 90, 100)

(5) 、分組 - groupBy

  • 首先集合的元素得是kv對的;

  • 如果要將數(shù)據(jù)按照某值分組來進行統(tǒng)計分析,就需要使用到分組方法

  • groupBy表示按照函數(shù)將列表分成不同的組

  • 方法描述

def groupBy[K](f: (A) ⇒ K): Map[K, List[A]] 

  • 方法說明

groupBy方法API說明
泛型[K]分組字段的類型
參數(shù)f: (A) ⇒ K傳入一個函數(shù)對象 接收集合元素類型的參數(shù) 返回一個K類型的key,這個key會用來進行分組,相同的key放在一組中
返回值Map[K, List[A]]返回一個映射,K為分組字段,List為這個分組字段對應(yīng)的一組數(shù)據(jù)

scala> val a = List("張三"->"男", "李四"->"女", "王五"->"男")
a: List[(String, String)] = List((張三,男), (李四,女), (王五,男))

// 按照性別分組
scala> a.groupBy(_._2)
res0: scala.collection.immutable.Map[String,List[(String, String)]] = Map(男 -> List((張三,男), (王五,男)),
女 -> List((李四,女)))

// 將分組后的映射轉(zhuǎn)換為性別/人數(shù)元組列表
scala> res0.map(x => x._1 -> x._2.size)
res3: scala.collection.immutable.Map[String,Int] = Map(男 -> 2, 女 -> 1)

//根據(jù)這個例子,思考下,作業(yè)中如何使用scala編程,實現(xiàn)詞頻統(tǒng)計?
 

//求每個省份有多少人?
val b = List("張三"->("男", "北京"), "李四"->("女", "河北"), "王五"->("男", "北京"))

scala> b.groupBy(_._2._2).map(x => (x._1, x._2.size))
res14: scala.collection.immutable.Map[String,Int] = Map(北京 -> 2, 河北 -> 1)

object yyy {
  def main(args: Array[String]): Unit = {
   val a = List("張三"->"男", "李四"->"女", "王五"->"男")
    println(a.groupBy(_._2))

    val list2 =List("a,b,c","y,c,a,e,a,c,a")
    var map=list2.flatMap(x=>x.split(",")).groupBy(x=>x).map(y=>(y._1,y._2.size));
    println(map)
    println("a的個數(shù)是:"+map("a"))
  }
}

打印的值為 

Map(男 -> List((張三,男), (王五,男)), 女 -> List((李四,女)))
Map(e -> 1, y -> 1, a -> 4, b -> 1, c -> 3)
a的個數(shù)是:4

(6)、排序 - sort

在scala集合中,可以使用以下幾種方式來進行排序

  • sorted默認排序

  • sortBy指定字段排序

  • sortWith自定義排序

sorted默認排序

 def main(args: Array[String]): Unit = {
    val list = List(5, 1, 2, 4, 3)
    println(list.sorted)
  }
List(1, 2, 3, 4, 5)

sortBy指定字段排序

def sortBy[B](f: (A) ? B): List[A]
sortBy方法API說明
泛型[B]按照什么類型來進行排序
參數(shù)f: (A) ⇒ B傳入函數(shù)對象作為參數(shù) 函數(shù)接收一個集合類型的元素為參數(shù) 返回B類型的元素進行排序
返回值List[A]返回排序后的列表

結(jié)果如下: 

 val list2 = List("1 hadoop", "2 spark", "3 flink")
    println(list2.sortBy(x=>x.split(" ")(0)))

打印的結(jié)果如下: 

List(1 hadoop, 2 spark, 3 flink)

sortWith自定義排序  

  • 自定義排序,根據(jù)一個函數(shù)來進行自定義排序

  • 方法描述

def sortWith(lt: (A, A) ? Boolean): List[A]
sortWith方法API說明
參數(shù)lt: (A, A) ⇒ Boolean傳入一個比較大小的函數(shù)對象作為參數(shù) 函數(shù)接收兩個集合類型的元素作為參數(shù) 返回兩個元素大小,小于返回true,大于返回false
返回值List[A]返回排序后的列表
   val list3 = List(2, 3, 1, 6, 4, 5)
    //降序
    var tt = list3.sortWith((x, y) => x > y)
    println(tt)
    //升序
    var tt2 = list3.sortWith((x, y) => x < y)
    println(tt2)
    //簡寫
    var tt3 =list3.sortWith(_ > _)
    println(tt3)

 打印的結(jié)果:

List(6, 5, 4, 3, 2, 1)
List(1, 2, 3, 4, 5, 6)
List(6, 5, 4, 3, 2, 1)

(5)、聚合 - reduce

  • reduce表示將列表,傳入一個函數(shù)進行聚合計算

  • 方法描述

def reduce[A1 >: A](op: (A1, A1) ? A1): A1
reduce方法API說明
泛型[A1 >: A](下界)A1必須是集合元素類型的子類
參數(shù)op: (A1, A1) ⇒ A1傳入函數(shù)對象,用來不斷進行聚合操作 第一個A1類型參數(shù)為:當前聚合后的變量 第二個A1類型參數(shù)為:當前要進行聚合的元素
返回值A1列表最終聚合為一個元素
def main(args: Array[String]): Unit = {
    val a = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
    //基礎(chǔ)的寫法
    var b = a.reduce((x, y) => x + y)
    println("基礎(chǔ)的寫法"+b)
    //簡單的寫法
    var c = a.reduce(_ + _)
    println("簡單的寫法"+c)
    //從左往右計算
    var d = a.reduceLeft(_ + _)
    println("從左往右計算"+d)
     //從右往左計算
    var f = a.reduceRight(_ + _)
    println("從右往左計算"+f)
  }
基礎(chǔ)的寫法55
簡單的寫法55
從左往右計算55
從右往左計算55

(6)、折疊 - fold

fold與reduce很像,但是多了一個指定初始值參數(shù)

def fold[A1 >: A](z: A1)(op: (A1, A1) ? A1): A1
reduce方法API說明
泛型[A1 >: A](下界)A1必須是集合元素類型的子類
參數(shù)1z: A1初始值
參數(shù)2op: (A1, A1) ⇒ A1傳入函數(shù)對象,用來不斷進行折疊操作 第一個A1類型參數(shù)為:當前折疊后的變量 第二個A1類型參數(shù)為:當前要進行折疊的元素
返回值A1列表最終折疊為一個元素
def main(args: Array[String]): Unit = {
    val a = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

    var e = a.fold(0)(_ + _)
    println("簡單折疊:",e)
    var g = a.fold(5)(_ + _)
    println("給定一個初始值,,折疊求和:"+g)
    var h=  a.foldLeft(10)(_ + _)
    println("從左往右折疊:",h)

  }
(簡單折疊:,55)
給定一個初始值,,折疊求和:60
(從左往右折疊:,65)

13、高階函數(shù)

使用函數(shù)值作為參數(shù),或者返回值為函數(shù)值的“函數(shù)”和“方法”,均稱之為“高階函數(shù)”。

1、函數(shù)值作為參數(shù)

  def main(args: Array[String]): Unit = {
    //定義一個數(shù)組
    val array = Array(1, 2, 3, 4, 5)
    //定義一個函數(shù)
    val func = (x: Int) => x * 10
    //函數(shù)作為參數(shù)傳遞到方法中
    val tt=  array.map(func)
    println("通過map轉(zhuǎn)化的新數(shù)組:",tt)
    println("通過map轉(zhuǎn)化的新數(shù)組最大:",tt.max)
  }

打印的值為:

(通過map轉(zhuǎn)化的新數(shù)組:,[I@17550481)
(通過map轉(zhuǎn)化的新數(shù)組:,50)

2、匿名函數(shù)

一個沒有名稱的函數(shù)----匿名函數(shù)

 def main(args: Array[String]): Unit = {
    val array = Array(1, 2, 3, 4, 5)
    var a = array.map(x => x * 10)
    println(a.max)
  }

打印的值為: 

50

3、柯里化

方法可以定義多個參數(shù)列表,當使用較少的參數(shù)列表調(diào)用多參數(shù)列表的方法時,會產(chǎn)生一個新的函數(shù),該函數(shù)接收剩余的參數(shù)列表作為其參數(shù)。這被稱為柯里化。

 def main(args: Array[String]): Unit = {
    def getAddress(a: String): (String, String) => String = {
      (b: String,c: String) => a + "-" + b + "-" + c
    }
    var b=getAddress("china");
    var c=b("beijing","tianAnMen")
    println(c)
  }
china-beijing-tianAnMen

 4、閉包

函數(shù)里面引用外面類成員變量叫作閉包

  def main(args: Array[String]): Unit = {
    var factor = 1
    val f1 = (x: Int) => x * factor
    println(f1(8))
    factor=2
    println(f1(8))
  }
8
16

//定義的函數(shù)f1,它的返回值是依賴于不在函數(shù)作用域的一個變量
//后期必須要要獲取到這個變量才能執(zhí)行
//spark和flink程序的開發(fā)中大量的使用到函數(shù),函數(shù)的返回值依賴的變量可能都需要進行大量的網(wǎng)絡(luò)傳輸獲取得到。這里就需要這些變量實現(xiàn)序列化進行網(wǎng)絡(luò)傳輸。

 def main(args: Array[String]): Unit = {
   
    def multiply(x: Double) = (y: Double) => x * y

    //先進行科爾化
    val doubleFunc = multiply(2)
    val tripleFunc = multiply(3)
    //    再對閉包進行計算
    var u = doubleFunc(10)
    var u2 = tripleFunc(10)
    println(u)
    println(u2)
  }
20.0
30.0

14、scala面向?qū)ο缶幊讨?/h2>

1、類的定義

scala是支持面向?qū)ο蟮模灿蓄惡蛯ο蟮母拍睢?/p>

  • 定義一個Customer類,并添加成員變量/成員方法

  • 添加一個main方法,并創(chuàng)建Customer類的對象,并給對象賦值,打印對象中的成員,調(diào)用成員方法

與java相比,他無需get set方法,就可以對變量進行賦值封裝操作 

import java.util.Date

class Customer {
  var name: String = _
  var sex: String = _
  val registerDate: Date = new Date

  def sayHi(msg: String) = {
    println(msg)
  }
}

object Main {
  def main(args: Array[String]): Unit = {
    val customer = new Customer
    //給對象的成員變量賦值
    customer.name = "張三"
    customer.sex = "男"

    println(s"姓名: ${customer.name}, 性別:${customer.sex}, 注冊時間: ${customer.registerDate}")
    //對象調(diào)用方法
    customer.sayHi("你好!")
  }
}

 打印的結(jié)果為:

姓名: 張三, 性別:男, 注冊時間: Fri Apr 22 16:23:21 CST 2022
你好!

(1). var name:String = _,  _表示使用默認值進行初始化
   例如:String類型默認值是null,Int類型默認值是0,Boolean類型默認值是false...
(2). val變量不能使用_來進行初始化,因為val是不可變的,所以必須手動指定一個默認值
(3). main方法必須要放在一個scala的object(單例對象)中才能執(zhí)行

2、類的構(gòu)造器

主構(gòu)造器

  • 主構(gòu)造器是指在類名的后面跟上一系列參數(shù),例如

class 類名(var/val 參數(shù)名: 類型 = 默認值, var/val 參數(shù)名: 類型 = 默認值){
    // 構(gòu)造代碼塊
}

輔助構(gòu)造器

  • 在類中使用this來定義,例如

    def this(參數(shù)名: 類型, 參數(shù)名: 類型) {
        ...
    }
    package com.testScala.D_lei
    
    class Student(val name: String, val age: Int) {
    
      val address: String = "beijing"
    
      // 定義一個參數(shù)的輔助構(gòu)造器
      def this(name: String) {
        // 輔助構(gòu)造器的第一行必須調(diào)用主構(gòu)造器或其他輔助構(gòu)造器或者super父類的構(gòu)造器
        this(name, 20)
      }
    
      def this(age: Int) {
        this("某某某", age)
      }
    
    }
    
    object test {
      def main(args: Array[String]): Unit = {
        val tt = new Student("張三");
        println(s"name等于:${tt.name},address:${tt.address},age:${tt.age}")
      }
    }

    15、scala面向?qū)ο缶幊讨畬ο?/h2>

1、scala中的object

  • scala中是沒有Java中的靜態(tài)成員的。如果將來我們需要用到static變量、static方法,就要用到scala中的單例對象object

  • 定義object

    • 定義單例對象和定義類很像,就是把class換成object

  • 演示

    • 定義一個工具類,用來格式化日期時間

object DateUtils {
//  / 在object中定義的成員變量,相當于Java中定義一個靜態(tài)變量
  // 定義一個SimpleDateFormat日期時間格式化對象
  val simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm")

  // 構(gòu)造代碼
  println("構(gòu)造代碼")

  // 相當于Java中定義一個靜態(tài)方法
  def format(date: Date) = simpleDateFormat.format(date)

  // main是一個靜態(tài)方法,所以必須要寫在object中
  def main(args: Array[String]): Unit = {

    println { DateUtils.format(new Date()) };
  }
}

 (1). 使用object 單例對象名定義一個單例對象,可以用object作為工具類或者存放常量
(2). 在單例對象中定義的變量,類似于Java中的static成員變量
(3). 在單例對象中定義的方法,類似于Java中的static方法
(4). object單例對象的構(gòu)造代碼可以直接寫在花括號中
(5). 調(diào)用單例對象的方法,直接使用單例對象名.方法名,訪問單例對象的成員變量也是使用單例對象名.變量名
(6). 單例對象只能有一個無參的主構(gòu)造器,不能添加其他參數(shù)

2、scala中的伴生對象

  • 在==同一個scala文件,有一個class和object具有同樣的名字==,那么就稱這個object是class的伴生對象,class是object的伴生類;

  • 伴生類和伴生對象的最大特點是,可以相互訪問;

package com.testScala.E_duixiang

class Dog {
  val id = 1
  private var name = "kkb"
  def printName(): Unit = {
    //在Dog類中可以訪問伴生對象Dog的私有屬性
    println(Dog.CONSTANT + name )
  }
}

object Dog{
  //伴生對象中的私有屬性
  private val CONSTANT = "汪汪汪 : "
  def main(args: Array[String]) {
    val dog = new Dog
    //訪問私有的字段name
    dog.name = "123"
    dog.printName()
  }
}
汪汪汪 : 123

(1). 伴生類和伴生對象的名字必須是一樣的
(2). 伴生類和伴生對象需要在一個scala源文件中
(3). 伴生類和伴生對象可以互相訪問private的屬性

3、scala中object的apply方法

  • ==實現(xiàn)伴生對象Array的apply方法==

  • 伴生對象的apply方法用來快速地創(chuàng)建一個伴生類的對象。

package com.testScala.E_duixiang

class Person(var name: String, var age: Int) {

  override def toString = s"Person($name, $age)"
}

object Person {
  // 實現(xiàn)apply方法
  // 返回的是伴生類的對象
  def apply(name: String, age: Int): Person = new Person(name, age)

  // apply方法支持重載
  def apply(name: String): Person = new Person(name, 20)

  def apply(age: Int): Person = new Person("某某某", age)

  def apply(): Person = new Person("某某某", 20)
}

object Main2 {
  def main(args: Array[String]): Unit = {
    val p1 = Person("張三", 20)
    val p2 = Person("李四")
    val p3 = Person(100)
    val p4 = Person()

    println(p1)
    println(p2)
    println(p3)
    println(p4)
  }
}
Person(張三, 20)
Person(李四, 20)
Person(某某某, 100)
Person(某某某, 20)

 (1). 當遇到類名(參數(shù)1, 參數(shù)2...)會自動調(diào)用伴生對象相應(yīng)的apply方法,在apply方法中來創(chuàng)建對象
(2). 定義apply時,如果參數(shù)列表是空,也不能省略括號(),否則引用的是伴生對象

4、scala中object的main方法

  • scala和Java一樣,如果要運行一個程序,必須有一個main方法。

  • 而在Java中main方法是靜態(tài)的,而在scala中沒有靜態(tài)方法。

object Main1{
  def main(args: Array[String]) = {
    println("hello, scala")
  }
}

16、scala面向?qū)ο缶幊讨^承

1、繼承extends

  • scala和Java一樣,使用extends關(guān)鍵字來實現(xiàn)繼承??梢栽谧宇愔卸x父類中沒有的字段和方法,或者重寫父類的方法。

  • package com.testScala.F_jicheng
    
    class Person1 {
      var name = "jianghaojie"
    
      def getName = this.name
    }
    
    class Student extends Person1
    
    object main1 {
      def main(args: Array[String]): Unit = {
        val p1 = new Person1()
        val p2 = new Student()
        p2.name = "蔣皓潔"
        println(p1.getName)
        println(p2.getName)
      }
    }
    jianghaojie
    蔣皓潔

    2、override和super

     ???如果子類要覆蓋父類中的一個非抽象方法,必須要使用override關(guān)鍵字

  • 可以使用override關(guān)鍵字來重寫一個val字段

  • 可以使用super關(guān)鍵字來訪問父類的成員

  • ==示例1:class繼承class==

class Person3 {
  val name = "super"

  def getName = name
}

class Student3 extends Person3 {
  // 重寫val字段
  override val name: String = "child"

  // 重寫getName方法
  override def getName: String = "hello, " + super.getName
}

object Main3 {
  def main(args: Array[String]): Unit = {
    val p = new Student3();
    println(p.name)
    println(p.getName)
  }
}
child
hello, child

3、isInstanceOf和asInstanceOf

  • 我們經(jīng)常要在代碼中進行類型的判斷和類型的轉(zhuǎn)換。在Java中,我們可以使用instanceof關(guān)鍵字、以及(類型)object來實現(xiàn),在scala中如何實現(xiàn)呢?

  • scala中對象提供==isInstanceOf==和==asInstanceOf==方法。

    • isInstanceOf判斷對象是否為指定類的對象

    • asInstanceOf將對象轉(zhuǎn)換為指定類型

JavaScala
判斷對象是否是C類型obj instanceof Cobj.isInstanceof[C]
將對象強轉(zhuǎn)成C類型(C ) objobj.asInstanceof[C]
獲取類型為T的class對象C.classclassOf[C]
  • ==示例==

class Person4
class Student4 extends Person4

object Main4 {
  def main(args: Array[String]): Unit = {
    val s1: Person4 = new Student4

    // 判斷s1是否為Student4類型
    if(s1.isInstanceOf[Student4]) {
      // 將s1轉(zhuǎn)換為Student3類型
      val s2 =  s1.asInstanceOf[Student4]
      println(s2)
    }
  }
}
com.testScala.F_jicheng.Student4@ea4a92b

4、getClass和classOf

isInstanceOf 只能判斷出對象是否為指定類以及其子類的對象,而不能精確的判斷出,對象就是指定類的對象。如果要求精確地判斷出對象就是指定類的對象,那么就只能使用 getClass 和 classOf 。

  • 對象.getClass可以精確獲取對象的類型

  • classOf[x]可以精確獲取類型

  • 使用==操作符就可以直接比較

class Person5
class Student5 extends Person5

object Student5{
  def main(args: Array[String]) {
    val p: Person5 = new Student5
    //判斷p是否為Person5類的實例
    println(p.isInstanceOf[Person5])//true

    //判斷p的類型是否為Person5類
    println(p.getClass == classOf[Person5])//false

    //判斷p的類型是否為Student5類
    println(p.getClass == classOf[Student5])//true
  }
}

5、訪問修飾符

java中的訪問控制,同樣適用于scala,可以在成員前面添加private/protected關(guān)鍵字來控制成員的可見性。但在scala中,==沒有public關(guān)鍵字,任何沒有被標為private或protected的成員都是公共的==。
 

==private[this]修飾符==

  • 被修飾的成員只能在當前類中被訪問?;蛘呖梢岳斫鉃椋?code>只能通過this.來訪問(在當前類中訪問成員會自動添加this.)

package com.testScala.F_jicheng
class Person6 {
  // 只有在當前對象中能夠訪問
  private[this] var name = "super"

  def getName = this.name	// 正確!

  def sayHelloTo(p: Person6) = {
    println("hello" + p.name)     // 報錯!無法訪問
  }
}

object Person6 {
  def showName(p: Person6) = println(p.name)  // 報錯!無法訪問
}

protected[this]修飾符==

  • ==被修飾的成員只能在當前類和當前類的子類中被訪問==。也可以理解為:當前類通過this.訪問或者子類通過this.訪問

  • 示例

package com.testScala.F_jicheng

class Person7 {
  // 只有在當前類以及繼承該類的當前對象中能夠訪問
  protected[this] var name = "super"

  def getName = {
    // 正確!
    this.name
  }

  def sayHelloTo1(p: Person7) = {
    // 編譯錯誤!無法訪問
//    println(p.name)
  }
}

object Person7 {
  def sayHelloTo3(p: Person7) = {
    // 編譯錯誤!無法訪問
//    println(p.name)
  }
}

class Student7 extends Person7 {
  def showName = {
    // 正確!
    println(name)
  }

  def sayHelloTo2(p: Person7) = {
    // 編譯錯誤!無法訪問
//    println(p.name)
  }
}
object  yy{
  def main(args: Array[String]): Unit = {
    var yu=    new Student7();
    yu.showName
//    println()
  }
}

6、調(diào)用父類的constructor

  • ==實例化子類對象,必須要調(diào)用父類的構(gòu)造器==,在scala中,只能在子類的主構(gòu)造器中調(diào)用父類的構(gòu)造器

  • 示例

 ??????

package com.testScala.F_jicheng

class Person8(var name: String){
  println("name:"+name)
}

// 直接在子類的類名后面調(diào)用父類構(gòu)造器
class Student8(name: String, var clazz: String) extends Person8(name)

object Main8 {
  def main(args: Array[String]): Unit = {
    val s1 = new Student8("張三", "三年二班")
    println(s"${s1.name} - ${s1.clazz}")
  }
}
name:張三
張三 - 三年二班

7、抽象類

  • 如果類的某個成員在當前類中的定義是不包含完整的,它就是一個抽象類

  • 不完整定義有兩種情況:

    • 1.方法沒有方法體

    • 2.變量沒有初始化

  • 沒有方法體的方法稱為抽象方法,沒有初始化的變量稱為抽象字段。定義抽象類和Java一樣,在類前面加上abstract關(guān)鍵字就可以了

package com.testScala.F_jicheng

abstract class Person9(val name: String) {
  //抽象方法
  def sayHello: String
  def sayBye: String
  //抽象字段
  val address: String
}
class Student9(name: String) extends Person9(name){
  //重寫抽象方法或字段,def前不必加override關(guān)鍵字
  def sayHello: String = "Hello," + name
  def sayBye: String ="Bye," + name
  //重寫抽象字段
   val address: String = "beijing "
}
object Main9{
  def main(args: Array[String]) {
    val s = new Student9("tom")
    println(s.sayHello)
    println(s.sayBye)
    println(s.address)
  }
}
Hello,tom
Bye,tom
beijing 

17、scala面向?qū)ο缶幊讨畉rait特質(zhì)

  • 特質(zhì)是scala中代碼復(fù)用的基礎(chǔ)單元

  • 它可以將方法和字段定義封裝起來,然后添加到類中

  • 與類繼承不一樣的是,類繼承要求每個類都只能繼承一個超類,而一個類可以添加任意數(shù)量的特質(zhì)。

  • 特質(zhì)的定義和抽象類的定義很像,但它是使用trait關(guān)鍵字

1、作為接口使用

  • 使用extends來繼承trait(scala不論是類還是特質(zhì),都是使用extends關(guān)鍵字)

  • 如果要繼承多個trait,則使用with關(guān)鍵字

==示例一:繼承單個trait==  

trait Logger1 {
  // 抽象方法
  def log(msg: String)
}

class ConsoleLogger1 extends Logger1 {
  override def log(msg: String): Unit = println(msg)
}

object LoggerTrait1 {
  def main(args: Array[String]): Unit = {
    val logger = new ConsoleLogger1
    logger.log("控制臺日志: 這是一條Log")
  }
}
控制臺日志: 這是一條Log

==示例二:繼承多個trait==

trait Logger2 {
  // 抽象方法
  def log(msg: String)
}

trait MessageSender {
  def send(msg: String)
}

class ConsoleLogger2 extends Logger2 with MessageSender {

  override def log(msg: String): Unit = println(msg)

  override def send(msg: String): Unit = println(s"發(fā)送消息:${msg}")
}

object LoggerTrait2 {
  def main(args: Array[String]): Unit = {
    val logger = new ConsoleLogger2
    logger.log("控制臺日志: 這是一條Log")
    logger.send("你好!")
  }
}
控制臺日志: 這是一條Log
發(fā)送消息:你好!

2、定義具體的方法

  • 和類一樣,trait中還可以定義具體的方法。

  • ==示例==

package com.testScala.G_trait

trait LoggerDetail {
  // 在trait中定義具體方法
  def log(msg: String) = println(msg)
}

class PersonService extends LoggerDetail {
  def add() = log("添加用戶")
}

object MethodInTrait {
  def main(args: Array[String]): Unit = {
    val personService = new PersonService
    personService.add()
  }
}
添加用戶

3、定義具體方法和抽象方法

  • 在trait中,可以混合使用具體方法和抽象方法

  • 使用具體方法依賴于抽象方法,而抽象方法可以放到繼承trait的子類中實現(xiàn),這種設(shè)計方式也稱為模板模式

==示例==

package com.testScala.G_trait

trait Logger3 {
  // 抽象方法
  def log(msg: String)
  // 具體方法(該方法依賴于抽象方法log
  def info(msg: String) = log("INFO:" + msg)
  def warn(msg: String) = log("WARN:" + msg)
  def error(msg: String) = log("ERROR:" + msg)
}

class ConsoleLogger3 extends Logger3 {
  override def log(msg: String): Unit = println(msg)
}

object LoggerTrait3 {
  def main(args: Array[String]): Unit = {
    val logger3 = new ConsoleLogger3

    logger3.log("這是一條日志信息")
    logger3.info("這是一條普通信息")
    logger3.warn("這是一條警告信息")
    logger3.error("這是一條錯誤信息")
  }
}
這是一條日志信息
INFO:這是一條普通信息
WARN:這是一條警告信息
ERROR:這是一條錯誤信息

4、定義具體字段和抽象字段

  • 在trait中可以定義具體字段和抽象字段

  • 繼承trait的子類自動擁有trait中定義的字段

  • 字段直接被添加到子類中

package com.testScala.G_trait

import java.text.SimpleDateFormat
import java.util.Date

trait LoggerEx {
  // 具體字段
  val sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm")
  val INFO = "信息:" + sdf.format(new Date)
  // 抽象字段
  val TYPE: String

  // 抽象方法
  def log(msg: String)
}

class ConsoleLoggerEx extends LoggerEx {
  // 實現(xiàn)抽象字段
  override val TYPE: String = "控制臺"
  // 實現(xiàn)抽象方法
  override def log(msg: String): Unit = print(s"$TYPE$INFO $msg")
}

object FieldInTrait {
  def main(args: Array[String]): Unit = {
    val logger = new ConsoleLoggerEx

    logger.log("這是一條消息")
  }
}
控制臺信息:2022-04-24 15:05 這是一條消息

5、實例對象混入trait

  • trait還可以混入到實例對象中,給對象實例添加額外的行為

  • 只有混入了trait的對象才具有trait中的方法,其他的類對象不具有trait中的行為

  • 使用with將trait混入到實例對象中

  • ==示例==

package com.testScala.G_trait

trait LoggerMix {
  def log(msg: String) = println(msg)
}

class UserService

object FixedInClass {
  def main(args: Array[String]): Unit = {
    // 使用with關(guān)鍵字直接將特質(zhì)混入到對象中
    val userService = new UserService with LoggerMix
    userService.log("你好")
  }
}
你好

18、模式匹配和樣例類

  • scala有一個十分強大的模式匹配機制,可以應(yīng)用到很多場合。

    • switch語句

    • 類型查詢

    • 以及快速獲取數(shù)據(jù)

  • 并且scala還提供了樣例類,對模式匹配進行了優(yōu)化,可以快速進行匹配。

1、匹配字符串

import scala.util.Random


//todo:匹配字符串
object CaseDemo01 extends App{
  //定義一個數(shù)組
  val arr = Array("hadoop", "zookeeper", "spark", "storm")

  //隨機取數(shù)組中的一位,使用Random.nextInt
  val name = arr(Random.nextInt(arr.length))
  println(name)

  name match {
    case "hadoop"     => println("大數(shù)據(jù)分布式存儲和計算框架...")
    case "zookeeper"  => println("大數(shù)據(jù)分布式協(xié)調(diào)服務(wù)框架...")
    case "spark"      => println("大數(shù)據(jù)分布式內(nèi)存計算框架...")
    //表示以上情況都不滿足才會走最后一個
    case _            => println("我不認識你")
  }
}
hadoop
大數(shù)據(jù)分布式存儲和計算框架...

2、匹配類型

//todo:匹配類型
object CaseDemo02 extends App{
  //定義一個數(shù)組
  val arr = Array("hello", 1, -2.0, CaseDemo02)

  //隨機獲取數(shù)組中的元素
  val value = arr(Random.nextInt(arr.length))
  println(value)

  value match {
    case x: Int                => println("Int=>"+x)
    case y: Double if(y >= 0)    => println("Double=>"+y)
    case z: String             => println("String=>"+z)
    case _                     => throw new Exception("not match exception")
  }
}
hello
String=>hello

3、匹配數(shù)組

package com.testScala.H_pipei

//匹配數(shù)組
object CaseDemo03 extends App{

  //匹配數(shù)組
  val arr = Array(1, 3, 5)
  arr match {
    case Array(1, x, y) => println(x + "---" + y)
    case Array(1, _*)   => println("1...")
    case Array(0)       => println("only 0")
    case _              => println("something else")

  }
}

1...

4、匹配集合

//匹配集合
object CaseDemo04 extends App{

  val list = List(0, 3, 6)
  list match {
    case 0::Nil        => println("only 0")
    case 0::tail       => println("0....")
    case x::y::z::Nil  => println(s"x:$x y:$y z:$z")
    case _             => println("something else")
  }
}
0....

5、匹配元組

package com.testScala.H_pipei

//匹配元組
object CaseDemo05 extends App{

  val tuple = (1, 3, 5)
  tuple match {
    case (1, x, y)    => println(s"1,$x,$y")
    case (2, x, y)    => println(s"$x,$y")
    case _            => println("others...")
  }
}
1,3,5

6、樣例類

  • 樣例類是一種特殊類,它可以用來快速定義一個用于保存數(shù)據(jù)的類(類似于Java POJO類),==而且它會自動生成apply方法,允許我們快速地創(chuàng)建樣例類實例對象==。后面在并發(fā)編程和spark、flink這些框架也都會經(jīng)常使用它。

  • 定義樣例類

  • 語法結(jié)構(gòu)

case class 樣例類名(成員變量名1: 類型1, 成員變量名2: 類型2 ...)

package com.testScala.H_pipei

// 定義一個樣例類
// 樣例類有兩個成員name、age
case class CasePerson(name: String, age: Int)

// 使用var指定成員變量是可變的
case class CaseStudent(var name: String, var age: Int)

object CaseClassDemo {
  def main(args: Array[String]): Unit = {
    // 1. 使用new創(chuàng)建實例
    val zhagnsan = new CasePerson("張三", 20)
    println(zhagnsan)

    // 2. 使用類名直接創(chuàng)建實例
    val lisi = CasePerson("李四", 21)
    println(lisi)

    // 3. 樣例類默認的成員變量都是val的,除非手動指定變量為var類型
    //lisi.age = 22  // 編譯錯誤!age默認為val類型

    val xiaohong = CaseStudent("小紅", 23)
    xiaohong.age = 24
    println(xiaohong)
  }
}
CasePerson(張三,20)
CasePerson(李四,21)
CaseStudent(小紅,24)

樣例對象

  • 使用case object可以創(chuàng)建樣例對象。樣例對象是單例的,而且它沒有主構(gòu)造器。樣例對象是可序列化的。格式:

case object 樣例對象名

case class SendMessage(text: String)

// 消息如果沒有任何參數(shù),就可以定義為樣例對象
case object startTask
case object PauseTask
case object StopTask

case class SubmitTask(id: String, name: String)
case class HeartBeat(time: Long)
case object CheckTimeOutTask

object CaseDemo06 extends App{
  val arr = Array(CheckTimeOutTask,
    HeartBeat(10000),
    SubmitTask("0001", "task-0001"))

  arr(Random.nextInt(arr.length)) match {

    case SubmitTask(id, name) => println(s"id=$id, name=$name")
    case HeartBeat(time)      => println(s"time=$time")
    case CheckTimeOutTask     => println("檢查超時")
  }
}
檢查超時

7、Option類型

  • 在Scala中Option類型用樣例類來表示可能存在或也可能不存在的值

  • Option類型有2個子類

  • 一個是Some

    • Some包裝了某個值

  • 一個是None

    • None表示沒有值

object TestOption {
  def main(args: Array[String]) {
    val map = Map("a" -> 1, "b" -> 2)

    val value: Option[Int] = map.get("b")
    println(value)
    val v1 = value match {
      case Some(i) => i
      case None => 0
    }
    println(v1)

    //更好的方式
    val v2 = map.getOrElse("c", 0)
    println(v2)
  }
}
Some(2)
2
0

8、偏函數(shù)

  • 被包在花括號內(nèi)==沒有match的一組case語句==是一個偏函數(shù)

  • 它是PartialFunction[A, B]的一個實例,

    • A代表輸入?yún)?shù)類型

    • B代表返回結(jié)果類型

    • 可以理解為:偏函數(shù)是一個參數(shù)和一個返回值的函數(shù)。

  • ==示例==

object TestPartialFunction {
  // func1是一個輸入?yún)?shù)為Int類型,返回值為String類型的偏函數(shù)
  val func1: PartialFunction[Int, String] = {
    case 1 => "一個"
    case 2 => "二個"
    case 3 => "三個"
    case _ => "其他"
  }

  def main(args: Array[String]): Unit = {
    println(func1(1))

    val list = List(1, 2, 3, 4, 5, 6)

    //使用偏函數(shù)操作
    val result = list.filter{
      case x if x >3 => true
      case _ => false
    }
    println(result)
  }

19、異常處理

 ??????

def main(args: Array[String]): Unit = {
   val i = 10 / 0
    
    println("你好!")
  }

Exception in thread "main" java.lang.ArithmeticException: / by zero
	at ForDemo$.main(ForDemo.scala:3)
	at ForDemo.main(ForDemo.scala)

執(zhí)行程序,可以看到scala拋出了異常,而且沒有打印出來"你好"。說明程序出現(xiàn)錯誤后就終止了。那怎么解決該問題呢?

1、 捕獲異常

  • 在scala中,可以使用異常處理來解決這個問題。

    • 在Scala里,借用了==模式匹配的思想來做異常的匹配==

    • 以下為scala中try...catch異常處理的語法格式:

try {
    // 代碼
}
catch {
    case ex: 異常類型1 => // 代碼
    case ex: 異常類型2 => // 代碼
}
finally {
    // 代碼

  • try中的代碼是我們編寫的業(yè)務(wù)處理代碼

  • 在catch中表示當出現(xiàn)某個異常時,需要執(zhí)行的代碼

  • 在finally中,是不管是否出現(xiàn)異常都會執(zhí)行的代碼

try {
    val i = 10 / 0

} catch {
    case ex: Exception => println(ex.getMessage)
} finally {
    println("我始終都會執(zhí)行!")
}

2、拋出異常

  • 我們也可以在一個方法中,拋出異常。語法格式和Java類似,使用throw new Exception...

  • ==示例==

  def main(args: Array[String]): Unit = {
    throw new Exception("這是一個異常")
  }

Exception in thread "main" java.lang.Exception: 這是一個異常
	at ForDemo$.main(ForDemo.scala:3)
	at ForDemo.main(ForDemo.scala)

20、提取器(Extractor)

  • =提取器是從傳遞給它的對象中提取出構(gòu)造該對象的參數(shù)==。(回想樣例類進行模式匹配提取參數(shù))

  • scala 提取器是一個帶有unapply方法的對象。

    • ==unapply方法算是apply方法的反向操作==

    • unapply接受一個對象,然后從對象中提取值,提取的值通常是用來構(gòu)造該對象的值。

package com.testScala.I_Extractor

class Student {
  var name: String = _   // 姓名
  var age: Int = _       // 年齡

  // 實現(xiàn)一個輔助構(gòu)造器
  def this(name: String, age: Int) = {
    this()

    this.name = name
    this.age = age
  }
}

object Student {
  def apply(name: String, age: Int): Student = new Student(name, age)

  // 實現(xiàn)一個解構(gòu)器
  def unapply(arg: Student): Option[(String, Int)] = Some(arg.name, arg.age)
}

object extractor_DEMO {
  def main(args: Array[String]): Unit = {
    val zhangsan = Student("張三", 20)

    zhangsan match {
      case Student(name, age) => println(s"姓名:$name 年齡:$age")
      case _ => println("未匹配")
    }
  }
}
姓名:張三 年齡:20

21、泛型

    scala和Java一樣,類和特質(zhì)、方法都可以支持泛型。我們在學(xué)習(xí)集合的時候,一般都會涉及到泛型。

在scala中,使用方括號來定義==類型參數(shù)==。

1、定義一個泛型方法

object learn01 {
  def getMiddle[A](arr: Array[A]) = arr(arr.length / 2)

  def main(args: Array[String]): Unit = {
    val arr1 = Array(1, 2, 3, 4, 5)
    val arr2 = Array("a", "b", "c", "d", "f")

    println(getMiddle[Int](arr1))
    println(getMiddle[String](arr2))

    // 簡寫方式,scala自動進行類型推斷
    println(getMiddle(arr1))
    println(getMiddle(arr2))
  }
}

2、定義一個泛型類

定義一個Pair類包含2個類型不固定的泛型

package com.testScala.J_fanxing


  // 類名后面的方括號,就表示這個類可以使用兩個類型、分別是T和S
  // 這個名字可以任意取
  class Pair[T, S](val first: T, val second: S)

  case class People(var name: String, val age: Int)

  object Pair {
    def main(args: Array[String]): Unit = {

      val p1 = new Pair[String, Int]("張三", 10)
      println(p1.first)
      val p2 = new Pair[String, String]("張三", "1988-02-19")
      println(p2.first)
      val p3 = new Pair[People, People](People("張三", 20), People("李四", 30))
      println(p3.first.age)
    }
  }
張三
張三
20

22、上下界

  • ==在指定泛型類型時,有時需要界定泛型類型的范圍,而不是接收任意類型==。比如,要求某個泛型類型,必須是某個類的子類,這樣在程序中就可以放心的調(diào)用父類的方法,程序才能正常的使用與運行.

  • scala的上下邊界特性允許泛型類型是某個類的子類,或者是某個類的父類

    • 1、 ==U >: T==

      這是類型==下界==的定義,也就是U必須是類型T的父類或者是T類型本身。

    • 2、 ==U <: T==

      這是類型==上界==的定義,也就是U必須是類型T的子類或者是T類型本身。

  • ==示例一==

package com.testScala.J_fanxing

// 類名后面的指定泛型的范圍 ----上界
class Pair1[T &lt;: Person, S &lt;: Person](val first: T, val second: S) {
  def chat(msg: String) = println(s"${first.name}對${second.name}說: $msg")
}

class Person(var name: String, val age: Int)

object Pair1 {
  def main(args: Array[String]): Unit = {

    val p3 = new Pair1[Person, Person](new Person("張三", 20), new Person("李四", 30))
    p3.chat("你好啊!")
  }
}
張三對李四說: 你好啊!

==示例二==

class Pair22[T &lt;: Person, S &gt;: Policeman &lt;: Person](val first: T, val second: S) {
  def chat(msg: String) = println(s"${first.name}對${second.name}說: $msg")
}

class Person(var name: String, val age: Int)
class Policeman(name: String, age: Int) extends Person(name, age)
class Superman(name: String) extends Policeman(name, -1)

object Pai {
  def main(args: Array[String]): Unit = {
    // 編譯錯誤:第二個類型參數(shù)必須是Person的子類(包括本身)、Policeman的父類(包括本身)
    val p3 = new Pair22[Person, Policeman](new Person("張三", 20), new Policeman("李四",20))
    p3.chat("你好啊!")
  }
}
張三對李四說: 你好??!

23、協(xié)變、逆變、非變

  • 來一個類型轉(zhuǎn)換的問題

class Pair[T](a: T)

object Pair {
  def main(args: Array[String]): Unit = {
    val p1 = new Pair("hello")
    // 編譯報錯,無法將p1轉(zhuǎn)換為p2
    val p2: Pair[AnyRef] = p1

    println(p2)
  }
}

==協(xié)變==

class Pair[+T],這種情況是協(xié)變。類型B是A的子類型,Pair[B]可以認為是Pair[A]的子類型。這種情況,參數(shù)化類型的方向和類型的方向是一致的。

==逆變==

class Pair[-T],這種情況是逆變。類型B是A的子類型,Pair[A]反過來可以認為是Pair[B]的子類型。這種情況,參數(shù)化類型的方向和類型的方向是相反的。 

==非變==

class Pair[T]{},這種情況就是非變(默認),類型B是A的子類型,Pair[A]和Pair[B]沒有任何從屬關(guān)系,這種情況和Java是一樣的。 

package com.testScala.K_xieBian

class Super
class Sub extends Super

//非變
class Temp1[A](title: String)
//協(xié)變
class Temp2[+A](title: String)
//逆變
class Temp3[-A](title: String)

object Covariance_demo {
  def main(args: Array[String]): Unit = {
    val a = new Sub()
    // 沒有問題,Sub是Super的子類
    val b: Super = a

    // 非變
    val t1: Temp1[Sub] = new Temp1[Sub]("測試")
    // 報錯!默認不允許轉(zhuǎn)換
    // val t2: Temp1[Super] = t1

    // 協(xié)變
    val t3: Temp2[Sub] = new Temp2[Sub]("測試")
    val t4: Temp2[Super] = t3

    // 逆變
    val t5: Temp3[Super] = new Temp3[Super]("測試")
    val t6: Temp3[Sub] = t5
  }
}

 ==總結(jié)==

C[+T]:如果A是B的子類,那么C[A]是C[B]的子類。
C[-T]:如果A是B的子類,那么C[B]是C[A]的子類。
C[T]: 無論A和B是什么關(guān)系,C[A]和C[B]沒有從屬關(guān)系。

24、隱式轉(zhuǎn)換和隱式參數(shù)

1 隱式轉(zhuǎn)換

  • Scala提供的隱式轉(zhuǎn)換和隱式參數(shù)功能,是非常有特色的功能。是Java等編程語言所沒有的功能。

  • 它可以允許你手動指定,將某種類型的對象轉(zhuǎn)換成其他類型的對象或者是給一個類增加方法。通過這些功能,可以實現(xiàn)非常強大、特殊的功能。

  • 隱式轉(zhuǎn)換其核心就是定義一個使用 ==implicit== 關(guān)鍵字修飾的方法 實現(xiàn)把一個原始類轉(zhuǎn)換成目標類,進而可以調(diào)用目標類中的方法

.2 隱式參數(shù)

  • 所謂的隱式參數(shù),指的是在函數(shù)或者方法中,定義一個用implicit修飾的參數(shù),此時Scala會嘗試找到一個指定類型的用implicit修飾的值,即==隱式值==,并注入?yún)?shù)。

  • ==所有的隱式轉(zhuǎn)換和隱式參數(shù)必須定義在一個object中==

  • package com.kaikeba.implic_demo
    
    //todo:隱式轉(zhuǎn)換案例二:超人變身
    class Man(val name: String)
    
    class SuperMan(val name: String) {
      def heat = print("超人打怪獸")
    }
    
    object SuperMan{
      //隱式轉(zhuǎn)換方法
      implicit def man2SuperMan(man: Man) = new SuperMan(man.name)
    
      def main(args: Array[String]) {
          val hero = new Man("hero")
          //Man具備了SuperMan的方法
          hero.heat
      }
    }

到此這篇關(guān)于Scala基礎(chǔ)語法總結(jié)的文章就介紹到這了,更多相關(guān)Scala基礎(chǔ)語法詳解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Windows7下安裝Scala 2.9.2教程

    Windows7下安裝Scala 2.9.2教程

    這篇文章主要介紹了Windows7下安裝Scala 2.9.2教程,本文給出了Scala的安裝步驟以及在Eclipse IDE安裝Scala的步驟,需要的朋友可以參考下
    2015-03-03
  • Scala實現(xiàn)二分查找的代碼實例

    Scala實現(xiàn)二分查找的代碼實例

    這篇文章主要介紹了Scala實現(xiàn)二分查找的代碼實例,找到數(shù)組的中間值,和需要查找的值進行對比:如果中間值等于查找值,直接返回中間值下標;如果中間值大于查找值,則遞歸向左邊查找;如果中間值小于查找值,則遞歸向右邊查找,直到找完所有的元素,需要的朋友可以參考下
    2023-11-11
  • Scala基礎(chǔ)簡介及代碼示例

    Scala基礎(chǔ)簡介及代碼示例

    這篇文章主要介紹了Scala基礎(chǔ)簡介及代碼示例,小編覺得挺不錯的,這里給大家分享下,供需要的朋友參考。
    2017-10-10
  • Scala基礎(chǔ)語法總結(jié)

    Scala基礎(chǔ)語法總結(jié)

    這篇文章主要介紹了Scala基礎(chǔ)語法總結(jié),需要的朋友可以參考下
    2023-10-10
  • 淺談Scala的Class、Object和Apply()方法

    淺談Scala的Class、Object和Apply()方法

    下面小編就為大家?guī)硪黄獪\談Scala的Class、Object和Apply()方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Scala排序算法之歸并排序解析

    Scala排序算法之歸并排序解析

    這篇文章主要介紹了Java排序算法之歸并排序解析,簡介:歸并排序是一種經(jīng)典的排序算法,它采用分治的思想,將待排序的數(shù)組不斷地分割成小的子數(shù)組,然后再將這些子數(shù)組合并成有序的數(shù)組,需要的朋友可以參考下
    2023-10-10
  • Scala安裝及環(huán)境圖文配置教程

    Scala安裝及環(huán)境圖文配置教程

    這篇文章主要為大家詳細介紹了Scala安裝及環(huán)境圖文配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 利用Gradle如何構(gòu)建scala多模塊工程的步驟詳解

    利用Gradle如何構(gòu)建scala多模塊工程的步驟詳解

    這篇文章主要給大家介紹了關(guān)于如何利用Gradle構(gòu)建scala多模塊工程的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04

最新評論

亚洲欧美人精品高清| 狠狠躁夜夜躁人人爽天天久天啪| 五十路人妻熟女av一区二区| 日韩剧情片电影在线收看| 99久久成人日韩欧美精品| 超碰97人人做人人爱| 噜噜色噜噜噜久色超碰| 香港一级特黄大片在线播放 | 国产无遮挡裸体免费直播视频| 成人亚洲精品国产精品| 97国产精品97久久| 97少妇精品在线观看| 日本美女性生活一级片| 久久久精品精品视频视频| 偷拍自拍视频图片免费| 国产精品视频资源在线播放| 在线观看国产免费麻豆| 亚洲av一妻不如妾| 精品首页在线观看视频| 欧美精品伦理三区四区| 天美传媒mv视频在线观看| 人人爱人人妻人人澡39| 丝袜肉丝一区二区三区四区在线看| 国产av欧美精品高潮网站| gogo国模私拍视频| 55夜色66夜色国产精品站| 黄色无码鸡吧操逼视频| 狠狠地躁夜夜躁日日躁| av完全免费在线观看av| 在线免费视频 自拍| 少妇深喉口爆吞精韩国| 国产精品久久久久久美女校花| 亚洲欧美综合在线探花| 一二三区在线观看视频| 夜色撩人久久7777| 夫妻在线观看视频91| www天堂在线久久| 硬鸡巴动态操女人逼视频| 日韩成人免费电影二区| 鸡巴操逼一级黄色气| aiss午夜免费视频| 美日韩在线视频免费看| 亚洲熟妇久久无码精品| 天天日天天添天天爽| 亚洲国产欧美国产综合在线| 欧美偷拍自拍色图片| 欧美成人猛片aaaaaaa| 成人av在线资源网站| 亚洲美女自偷自拍11页| 日本少妇人妻xxxxx18| 插小穴高清无码中文字幕| 91国偷自产一区二区三区精品| 护士特殊服务久久久久久久| 丁香花免费在线观看中文字幕| 久久久久91精品推荐99| 天天日天天天天天天天天天天| 日本性感美女三级视频| 免费十精品十国产网站| 岛国免费大片在线观看 | 亚洲2021av天堂| 国产视频一区在线观看| 国产精品成人xxxx| 视频一区 二区 三区 综合| 最新黄色av网站在线观看| 天天日天天天天天天天天天天| 久久午夜夜伦痒痒想咳嗽P| 综合一区二区三区蜜臀| 大香蕉伊人国产在线| 色av色婷婷人妻久久久精品高清| 欧美日韩在线精品一区二区三| 91中文字幕免费在线观看| 91免费放福利在线观看| 无码中文字幕波多野不卡 | 福利视频一区二区三区筱慧| 同居了嫂子在线播高清中文| 38av一区二区三区| 亚洲中文精品字幕在线观看| 天天日天天干天天爱| 青青青青操在线观看免费| 亚洲午夜电影之麻豆| 日本美女性生活一级片| 欧美视频中文一区二区三区| 中文字幕亚洲久久久| 视频一区二区综合精品| 一区二区三区四区五区性感视频| 国产av一区2区3区| 欧美一区二区三区啪啪同性| 97少妇精品在线观看| 亚洲av日韩av第一区二区三区| 午夜精品久久久久久99热| 天天日天天干天天爱| 91综合久久亚洲综合| 午夜在线精品偷拍一区二| 国产白袜脚足J棉袜在线观看| 特级无码毛片免费视频播放| 视频 国产 精品 熟女 | 欧美天堂av无线av欧美| 欧美视频综合第一页| 精品美女久久久久久| 青草久久视频在线观看| 国产中文字幕四区在线观看| 啪啪啪操人视频在线播放| 阿v天堂2014 一区亚洲| 日本午夜爽爽爽爽爽视频在线观看| 女同性ⅹxx女同h偷拍| 欧美视频综合第一页| 午夜成午夜成年片在线观看| 国产又大又黄免费观看| 18禁美女黄网站色大片下载| 天堂av狠狠操蜜桃| 密臀av一区在线观看| av黄色成人在线观看| 大鸡吧插入女阴道黄色片| 日美女屁股黄邑视频| 国产女孩喷水在线观看| 91九色porny蝌蚪国产成人| 国产美女一区在线观看| 国际av大片在线免费观看| 大鸡八强奸视频在线观看| 又黄又刺激的午夜小视频| 不卡日韩av在线观看| 人妻最新视频在线免费观看| 亚洲人妻av毛片在线| 五月天久久激情视频| 国产一区二区神马久久| 中文字幕人妻一区二区视频| 一区二区三区国产精选在线播放 | 99人妻视频免费在线| av天堂中文字幕最新| 2012中文字幕在线高清| 色噜噜噜噜18禁止观看| 国产性感美女福利视频| 国产亚洲欧美45p| 亚洲国产中文字幕啊啊啊不行了| 99精品国产aⅴ在线观看| 66久久久久久久久久久| 久久精品国产23696| 欧美日韩v中文在线| 内射久久久久综合网| 在线免费91激情四射 | 宅男噜噜噜666国产| 亚洲日本一区二区三区 | 水蜜桃一区二区三区在线观看视频| 亚洲男人在线天堂网| 亚洲av成人免费网站| 38av一区二区三区| caoporn蜜桃视频| 日本福利午夜电影在线观看| 亚洲精品乱码久久久久久密桃明 | 日曰摸日日碰夜夜爽歪歪| 色av色婷婷人妻久久久精品高清| 亚洲欧洲一区二区在线观看| 日韩欧美在线观看不卡一区二区| 免费看国产又粗又猛又爽又黄视频| 2022国产精品视频| 国产又粗又硬又猛的毛片视频| 欧美色婷婷综合在线| 日韩av有码中文字幕| 这里有精品成人国产99| 成人24小时免费视频| 丰满的继坶3中文在线观看| 国产熟妇人妻ⅹxxxx麻豆| 国产精品午夜国产小视频| 天天艹天天干天天操| 欧美香蕉人妻精品一区二区| 欧美精品伦理三区四区| 精品国产乱码一区二区三区乱| 欧美另类一区二区视频| 国产精品亚洲在线观看| 亚洲一级 片内射视正片| 中文字幕日韩91人妻在线| 国产极品美女久久久久久| 中文字幕熟女人妻久久久| 黑人性生活视频免费看| www日韩a级s片av| 午夜精品福利91av| 天天草天天色天天干| 精品91自产拍在线观看一区| 亚洲欧美色一区二区| 亚洲1069综合男同| 欧洲亚洲欧美日韩综合| 又粗又硬又猛又黄免费30| 亚洲视频在线观看高清| 亚洲激情,偷拍视频| 80电影天堂网官网| 激情综合治理六月婷婷| 在线国产精品一区二区三区| 青草青永久在线视频18| 久草电影免费在线观看| 免费观看国产综合视频| 成年午夜免费无码区| 蜜桃视频入口久久久| 爆乳骚货内射骚货内射在线| 亚洲国产成人最新资源| 亚洲av极品精品在线观看| 欧美日本aⅴ免费视频| 偷拍自拍亚洲视频在线观看| 黄色成年网站午夜在线观看| 国产极品精品免费视频| 中文字幕高清在线免费播放| 欧美一区二区三区高清不卡tv| 国产日韩精品免费在线| 黄色视频成年人免费观看| aⅴ精产国品一二三产品| 天天日天天敢天天干| 免费看美女脱光衣服的视频| 日韩av熟妇在线观看| 美女吃鸡巴操逼高潮视频| 香蕉91一区二区三区| 精产国品久久一二三产区区别| 熟女国产一区亚洲中文字幕| 1000部国产精品成人观看视频| 青青在线视频性感少妇和隔壁黑丝| 男女啪啪视频免费在线观看| 午夜免费观看精品视频| 日韩精品啪啪视频一道免费| 国产清纯美女al在线| 三级等保密码要求条款| 激情五月婷婷免费视频| 成人av中文字幕一区| 亚洲一区二区三区精品视频在线| 97精品人妻一区二区三区精品| 国产亚洲精品欧洲在线观看| 欧美成人小视频在线免费看| 日韩欧美亚洲熟女人妻| 91精品国产麻豆国产| 国产性感美女福利视频| 日曰摸日日碰夜夜爽歪歪| 狠狠躁夜夜躁人人爽天天久天啪| 91天堂天天日天天操| 91精品国产黑色丝袜| 老鸭窝日韩精品视频观看| 精品久久婷婷免费视频| 天天日天天干天天舔天天射| 亚洲狠狠婷婷综合久久app| 啊啊啊视频试看人妻| 亚洲公开视频在线观看| 国产精彩对白一区二区三区| 日本中文字幕一二区视频| 中国老熟女偷拍第一页| 欧美成人精品欧美一级黄色| 日韩美av高清在线| 婷婷色国产黑丝少妇勾搭AV| 77久久久久国产精产品| 国产视频一区在线观看| 新婚人妻聚会被中出| 男人靠女人的逼视频| 精品黑人一区二区三区久久国产| 91亚洲精品干熟女蜜桃频道 | 日韩欧美一级精品在线观看| 人妻熟女中文字幕aⅴ在线| 国产精品久久久久久久精品视频| 欧美精品国产综合久久| 自拍 日韩 欧美激情| 久久精品在线观看一区二区| 熟女人妻一区二区精品视频| 欧美久久久久久三级网| 2022国产精品视频| www,久久久,com| 国产视频在线视频播放| 中文字幕一区二区三区人妻大片| 在线观看黄色成年人网站| 亚洲va国产va欧美精品88| 亚洲一级特黄特黄黄色录像片| 天天日天天天天天天天天天天| 一区二区三区激情在线| 91综合久久亚洲综合| 欧美交性又色又爽又黄麻豆| 春色激情网欧美成人| 亚洲日本一区二区三区| 精品黑人巨大在线一区| 91小伙伴中女熟女高潮| 98视频精品在线观看| 任我爽精品视频在线播放| 中文字幕高清在线免费播放| 欧洲精品第一页欧洲精品亚洲 | yy6080国产在线视频| 97欧洲一区二区精品免费| 99精品视频之69精品视频| 扒开让我视频在线观看| 大屁股肉感人妻中文字幕在线| 91精品啪在线免费| 一区二区麻豆传媒黄片| 亚洲成人国产综合一区| 国产乱弄免费视频观看| 91九色国产porny蝌蚪| 一个色综合男人天堂| 国产在线拍揄自揄视频网站| 亚洲男人的天堂a在线| 91破解版永久免费| 国产精品视频男人的天堂| 青青擦在线视频国产在线| 亚洲欧美国产综合777| 青青尤物在线观看视频网站| 91人妻精品久久久久久久网站| 任你操任你干精品在线视频| 巨乳人妻日下部加奈被邻居中出| 日韩成人综艺在线播放| 黄片大全在线观看观看| 久久尻中国美女视频| 欧美性受xx黑人性猛交| 91成人在线观看免费视频| 亚洲午夜高清在线观看| 亚洲综合乱码一区二区| 国产janese在线播放| 亚洲男人让女人爽的视频| 午夜精品一区二区三区更新| 在线不卡日韩视频播放| 天码人妻一区二区三区在线看| 国产麻豆国语对白露脸剧情| aⅴ五十路av熟女中出| 性生活第二下硬不起来| sw137 中文字幕 在线| 国产精品中文av在线播放| 日韩人妻丝袜中文字幕| 色综合色综合色综合色| 青青尤物在线观看视频网站| 91麻豆精品秘密入口在线观看| 日本xx片在线观看| 久久久制服丝袜中文字幕| 大陆精品一区二区三区久久| 国产黄色高清资源在线免费观看| 午夜在线观看一区视频| 成人蜜臀午夜久久一区| 天天摸天天亲天天舔天天操天天爽 | 少妇ww搡性bbb91| 中文字幕人妻一区二区视频| 欧美一级色视频美日韩| 骚货自慰被发现爆操| 九色视频在线观看免费| 夜夜嗨av蜜臀av| 狠狠鲁狠狠操天天晚上干干| 99热久久极品热亚洲| 福利在线视频网址导航| 国产日本欧美亚洲精品视| 欧美日韩一级黄片免费观看| 亚洲美女美妇久久字幕组| 中文字幕欧美日韩射射一| 99国内精品永久免费视频| 色97视频在线播放| 国产亚洲视频在线观看| 自拍偷拍亚洲另类色图| 中国熟女一区二区性xx| 女生被男生插的视频网站| 岳太深了紧紧的中文字幕| 视频二区在线视频观看| 午夜激情高清在线观看| 亚洲人妻30pwc| 福利一二三在线视频观看| 98视频精品在线观看| 一区二区三区麻豆福利视频| 国产黄色片蝌蚪九色91| 欧美视频不卡一区四区| av网址国产在线观看| 9国产精品久久久久老师 | 天天躁日日躁狠狠躁躁欧美av | 中文字幕高清免费在线人妻 | 人妻久久无码中文成人| 国产伊人免费在线播放| 国产三级影院在线观看| 日韩美女搞黄视频免费| 黄片三级三级三级在线观看| 伊人开心婷婷国产av| 久久热这里这里只有精品| 爱有来生高清在线中文字幕| 日本真人性生活视频免费看| 91精品资源免费观看| 大白屁股精品视频国产| 久久三久久三久久三久久| 熟女人妻在线中出观看完整版| 男女啪啪视频免费在线观看| 在线观看亚洲人成免费网址| 中文字幕 人妻精品| 在线观看视频 你懂的| 欧美日韩中文字幕欧美| 成人影片高清在线观看| 91香蕉成人app下载| wwwxxx一级黄色片| 2020久久躁狠狠躁夜夜躁| 日本一区美女福利视频| 国产麻豆剧传媒精品国产av蜜桃| 欧美久久久久久三级网| 伊人综合免费在线视频| 日本黄色特一级视频| 91精品国产高清自在线看香蕉网 | 高清一区二区欧美系列| 一区二区三区欧美日韩高清播放| 天天干天天日天天干天天操| 欧美亚洲国产成人免费在线| 中文字幕 亚洲av| 66久久久久久久久久久| 精品一区二区三区三区色爱| 熟女在线视频一区二区三区| AV天堂一区二区免费试看| 老鸭窝在线观看一区| 欧美日本在线视频一区| 欧美日本在线视频一区| 中文字幕网站你懂的| 特黄老太婆aa毛毛片| 成人福利视频免费在线| 在线新三级黄伊人网| 在线免费观看靠比视频的网站| aⅴ五十路av熟女中出| 鸡巴操逼一级黄色气| 日韩国产乱码中文字幕| 亚洲麻豆一区二区三区| 91精品资源免费观看| rct470中文字幕在线| 亚洲在线观看中文字幕av| 91福利在线视频免费观看| 伊人综合免费在线视频| 操的小逼流水的文章| 91久久国产成人免费网站| 美女福利写真在线观看视频| 亚洲一区二区三区偷拍女厕91| 国产一区成人在线观看视频| 超级碰碰在线视频免费观看| 自拍偷拍亚洲另类色图| 成年人中文字幕在线观看| 熟女俱乐部一二三区| 亚洲女人的天堂av| 骚逼被大屌狂草视频免费看| av天堂中文字幕最新| 老司机99精品视频在线观看| 最新国产精品拍在线观看| 一区二区三区四区视频在线播放| 中文字幕乱码人妻电影| 五十路人妻熟女av一区二区| 日本又色又爽又黄又粗| 孕妇奶水仑乱A级毛片免费看| 加勒比视频在线免费观看| 视频久久久久久久人妻| 99av国产精品欲麻豆| 久久久久只精品国产三级| 亚洲综合另类欧美久久| 成年人啪啪视频在线观看| 亚洲中文精品人人免费| 狠狠嗨日韩综合久久| 亚洲一区久久免费视频| 老司机深夜免费福利视频在线观看| 日本在线不卡免费视频| 欧美一级视频一区二区| 最新97国产在线视频| 成人影片高清在线观看| 欧美viboss性丰满| 亚洲男人的天堂a在线| 97人人模人人爽人人喊| 男女之间激情网午夜在线| 91麻豆精品秘密入口在线观看| 一区二区在线观看少妇| 福利视频广场一区二区| 五十路熟女人妻一区二| 老司机免费福利视频网| 亚洲最大免费在线观看| 日本成人一区二区不卡免费在线 | 夜色17s精品人妻熟女| 欧美中文字幕一区最新网址| 亚洲日本一区二区久久久精品| 在线观看视频污一区| 精品美女福利在线观看| 香蕉片在线观看av| 日本熟女精品一区二区三区| 久草电影免费在线观看| 强行扒开双腿猛烈进入免费版| 精品人妻伦一二三区久| 国产亚洲视频在线观看| 自拍 日韩 欧美激情| 91国偷自产一区二区三区精品| 啊啊好大好爽啊啊操我啊啊视频| 久精品人妻一区二区三区| 中文字幕日本人妻中出| 国产又粗又硬又大视频| 鸡巴操逼一级黄色气| av手机免费在线观看高潮| 91p0rny九色露脸熟女| 超碰97免费人妻麻豆| 第一福利视频在线观看| 91桃色成人网络在线观看| 日本一道二三区视频久久| 中文乱理伦片在线观看| 9色在线视频免费观看| 一级黄片大鸡巴插入美女| 好吊视频—区二区三区| 亚洲av自拍天堂网| 综合激情网激情五月五月婷婷| 性色蜜臀av一区二区三区| 国产精品视频资源在线播放| 天天射夜夜操狠狠干| 亚洲美女高潮喷浆视频| 亚洲成人午夜电影在线观看| weyvv5国产成人精品的视频| 成年女人免费播放视频| 二区中出在线观看老师| 人人妻人人爽人人澡人人精品| 日韩特级黄片高清在线看| 99久久超碰人妻国产| 偷偷玩弄新婚人妻h视频| 免费在线看的黄片视频| 国产黄色高清资源在线免费观看| 粉嫩欧美美人妻小视频| 蜜桃色婷婷久久久福利在线| 老司机99精品视频在线观看| 日本一区精品视频在线观看| 精品亚洲在线免费观看| 国产av自拍偷拍盛宴| 做爰视频毛片下载蜜桃视频1| 91久久国产成人免费网站| 成人av免费不卡在线观看| 欧洲欧美日韩国产在线| 全国亚洲男人的天堂| 丝袜亚洲另类欧美变态| 人妻熟女中文字幕aⅴ在线| 中国视频一区二区三区| 2012中文字幕在线高清| 亚洲国产欧美一区二区三区久久| 六月婷婷激情一区二区三区| 午夜91一区二区三区| 天天操天天干天天日狠狠插| 久久精品国产23696| 97人妻总资源视频| 51国产成人精品视频| 姐姐的朋友2在线观看中文字幕 | 欧美久久一区二区伊人| 风流唐伯虎电视剧在线观看| 888亚洲欧美国产va在线播放| 激情五月婷婷综合色啪| 欧美成人黄片一区二区三区| 亚洲一区二区激情在线| 天天操天天射天天操天天天| 亚洲av黄色在线网站| 成熟熟女国产精品一区| av中文字幕国产在线观看| 精品国产在线手机在线| ka0ri在线视频| 中文字幕在线乱码一区二区| 免费看国产av网站| 亚洲公开视频在线观看| 快插进小逼里大鸡吧视频| 丰满少妇翘臀后进式| 做爰视频毛片下载蜜桃视频1| 真实国产乱子伦一区二区| 成人高清在线观看视频| 黄色视频在线观看高清无码| 最新国产亚洲精品中文在线| 天天爽夜夜爽人人爽QC| 美日韩在线视频免费看| 大鸡吧插逼逼视频免费看| 国产精品一区二区av国| 在线播放国产黄色av| 亚洲日本一区二区三区| 国产97在线视频观看| 激情五月婷婷综合色啪| 五月精品丁香久久久久福利社| 午夜精品一区二区三区福利视频| 曰本无码人妻丰满熟妇啪啪| 青青在线视频性感少妇和隔壁黑丝 | 亚洲成人国产综合一区| 被大鸡吧操的好舒服视频免费| 日韩不卡中文在线视频网站| 国产第一美女一区二区三区四区| 一区二区免费高清黄色视频| 精品久久婷婷免费视频| 男人在床上插女人视频| 亚洲美女美妇久久字幕组| 熟女人妻在线观看视频| 亚洲中文字幕人妻一区| 97精品视频在线观看| 精品高跟鞋丝袜一区二区| 亚洲精品成人网久久久久久小说| 婷婷久久久久深爱网| 国产剧情演绎系列丝袜高跟| 青青草精品在线视频观看| 无码精品一区二区三区人 | 青青草原网站在线观看| 亚洲日产av一区二区在线| 夜夜骑夜夜操夜夜奸| 久久久久国产成人精品亚洲午夜| v888av在线观看视频| 人妻自拍视频中国大陆| 亚洲一区二区三区在线高清| 亚洲综合在线视频可播放| 欧美第一页在线免费观看视频| caoporm超碰国产| 人妻素人精油按摩中出| 日本三极片视频网站观看| 边摸边做超爽毛片18禁色戒| 精品91高清在线观看| 亚洲av午夜免费观看| 蜜臀av久久久久蜜臀av麻豆| 亚洲精品乱码久久久本| 亚洲一级美女啪啪啪| 99热碰碰热精品a中文| 91成人精品亚洲国产| 亚洲精品国偷自产在线观看蜜桃| 91福利视频免费在线观看| av俺也去在线播放| av一区二区三区人妻| 97年大学生大白天操逼| 夜色17s精品人妻熟女| 在线免费观看日本片| 亚洲欧美国产综合777| 538精品在线观看视频| 久久久久久久99精品| 国产精品久久综合久久| 狠狠操狠狠操免费视频| 国产精彩对白一区二区三区| 一区二区三区精品日本| 日本丰满熟妇BBXBBXHD| 91精品资源免费观看| 岛国免费大片在线观看| 欧美成人精品欧美一级黄色| 熟女俱乐部一二三区| 国产精品三级三级三级| 久久久久五月天丁香社区| 国产高清精品极品美女| 粉嫩欧美美人妻小视频| 欧美亚洲自偷自拍 在线| 一区二区三区毛片国产一区| 亚洲高清免费在线观看视频| av中文字幕电影在线看| 在线免费观看日本片| 55夜色66夜色国产精品站| 果冻传媒av一区二区三区| 青青青视频自偷自拍38碰| 人妻久久无码中文成人| 精品欧美一区二区vr在线观看| 中文人妻AV久久人妻水| 精产国品久久一二三产区区别| 一区二区三区四区五区性感视频 | 大屁股熟女一区二区三区| 日韩成人免费电影二区| 日本免费视频午夜福利视频| 亚洲成人av一区久久| 男女啪啪啪啪啪的网站| 国产精品福利小视频a| 插逼视频双插洞国产操逼插洞| 成人av天堂丝袜在线观看 | 亚洲国产成人无码麻豆艾秋| aiss午夜免费视频| 丝袜长腿第一页在线| 毛片av在线免费看| 欧美性受xx黑人性猛交| 天天日天天操天天摸天天舔| 动漫av网站18禁| 天天干天天操天天摸天天射| 欧美偷拍自拍色图片| 精品久久久久久久久久久99| 成人av中文字幕一区| 久久人人做人人妻人人玩精品vr| 欧美老鸡巴日小嫩逼| 日韩精品激情在线观看| 亚洲天堂av最新网址| 岛国一区二区三区视频在线| 十八禁在线观看地址免费| 亚洲熟女女同志女同| 亚洲人妻av毛片在线| 精品亚洲国产中文自在线| 久久国产精品精品美女| 自拍偷拍一区二区三区图片| 欧美成人猛片aaaaaaa| 玩弄人妻熟妇性色av少妇| 国产美女午夜福利久久| 午夜的视频在线观看| 欧洲国产成人精品91铁牛tv| 亚洲精品av在线观看| 2020韩国午夜女主播在线| 在线观看av2025| 国产高潮无码喷水AV片在线观看| 成人亚洲国产综合精品| 91精品视频在线观看免费| 亚洲精品三级av在线免费观看| 男人在床上插女人视频| 欧美香蕉人妻精品一区二区| 被大鸡吧操的好舒服视频免费| 日韩精品二区一区久久| 久久综合老鸭窝色综合久久| 亚洲国际青青操综合网站| 夜鲁夜鲁狠鲁天天在线| 91免费观看国产免费| 国产不卡av在线免费| 女同性ⅹxx女同h偷拍| 极品性荡少妇一区二区色欲| 欧美在线一二三视频| 久久久精品999精品日本| 91精品综合久久久久3d动漫| 第一福利视频在线观看| 天天日天天爽天天干| 91国内精品久久久久精品一| 中文字幕成人日韩欧美| 国产免费高清视频视频| 日韩一区二区三区三州| 国产精品一区二区av国| 久久久制服丝袜中文字幕| 麻豆性色视频在线观看| 51精品视频免费在线观看| 男女啪啪啪啪啪的网站| 国产视频网站国产视频| 99热久久这里只有精品| 欧美国产亚洲中英文字幕| 欲满人妻中文字幕在线| 午夜美女少妇福利视频| 韩国爱爱视频中文字幕| 91p0rny九色露脸熟女| 亚洲 自拍 色综合图| 97黄网站在线观看| 又粗又硬又猛又爽又黄的| 日韩人妻在线视频免费| 欧美一区二区三区乱码在线播放| 亚洲av人人澡人人爽人人爱| 大鸡吧插入女阴道黄色片| 欧美亚洲国产成人免费在线| 欧美日韩情色在线观看| 在线观看免费视频色97| 扒开让我视频在线观看| 天天日夜夜操天天摸| 中文字幕国产专区欧美激情| 韩国男女黄色在线观看| 很黄很污很色的午夜网站在线观看 | 国产夫妻视频在线观看免费| 91九色porny国产在线| 激情伦理欧美日韩中文字幕| 成熟熟女国产精品一区| 午夜在线精品偷拍一区二| 久久亚洲天堂中文对白| 久久久久久性虐视频| 男人的网址你懂的亚洲欧洲av| 午夜毛片不卡免费观看视频 | 精品一区二区三四区| 男大肉棒猛烈插女免费视频 | 阴茎插到阴道里面的视频| 青青青视频手机在线观看| 日本高清撒尿pissing| 亚洲国产中文字幕啊啊啊不行了| 美女张开腿让男生操在线看| 亚洲图片欧美校园春色| 大香蕉福利在线观看| 亚洲伊人av天堂有码在线| 黄色在线观看免费观看在线| 天美传媒mv视频在线观看| 91九色porny蝌蚪国产成人| 国产麻豆乱子伦午夜视频观看| 国产亚洲天堂天天一区| 欧美日韩人妻久久精品高清国产 | av天堂中文免费在线| 免费黄色成人午夜在线网站| 91综合久久亚洲综合| 在线观看视频 你懂的| 最新激情中文字幕视频| av天堂中文免费在线| 一区二区三区av高清免费| 色哟哟在线网站入口| 国产成人精品一区在线观看| 337p日本大胆欧美人| 日韩国产乱码中文字幕| 韩国爱爱视频中文字幕| 美女张开两腿让男人桶av| 丝袜肉丝一区二区三区四区在线| 亚洲1卡2卡三卡4卡在线观看| 国产精品免费不卡av| 黄色片一级美女黄色片| 国产精品成人xxxx| 国产麻豆精品人妻av| 偷拍自拍国产在线视频| 91chinese在线视频| 青青草亚洲国产精品视频| 在线视频这里只有精品自拍| 国产精品视频一区在线播放| 亚洲va欧美va人人爽3p| 国产熟妇人妻ⅹxxxx麻豆| 岛国黄色大片在线观看| 天天色天天爱天天爽| 日韩精品中文字幕福利| 精品亚洲国产中文自在线| 五月激情婷婷久久综合网| 视频啪啪啪免费观看| 中文字幕日韩人妻在线三区| 国产男女视频在线播放| 免费观看理论片完整版| 免费一级特黄特色大片在线观看| 男人天堂最新地址av| 高潮喷水在线视频观看| 人妻3p真实偷拍一二区| 日美女屁股黄邑视频| 四虎永久在线精品免费区二区 | 亚洲区欧美区另类最新章节| 真实国产乱子伦一区二区| 9色在线视频免费观看| 免费十精品十国产网站| 日韩美女精品视频在线观看网站| 午夜在线观看岛国av,com| 99精品国产aⅴ在线观看| 操日韩美女视频在线免费看| 精品久久久久久久久久久久人妻| 成人H精品动漫在线无码播放| 午夜免费体验区在线观看| 春色激情网欧美成人| 男女第一次视频在线观看| 亚洲国产精品久久久久蜜桃| 国产丰满熟女成人视频| 99久久激情婷婷综合五月天| 亚洲欧美自拍另类图片| 久久久久久久久久久免费女人| 人人妻人人人操人人人爽| 非洲黑人一级特黄片| 国产白嫩美女一区二区| 自拍偷拍亚洲精品第2页| 91国产在线免费播放| 日本免费午夜视频网站| 啪啪啪操人视频在线播放| 888欧美视频在线| 中文字幕av第1页中文字幕| 亚洲免费在线视频网站| 久久香蕉国产免费天天| 男人操女人逼逼视频网站| 亚洲区欧美区另类最新章节| 亚洲综合一区二区精品久久| 2022天天干天天操| 人人妻人人爱人人草| 亚洲成人线上免费视频观看| 天美传媒mv视频在线观看| 初美沙希中文字幕在线| 中国把吊插入阴蒂的视频| 精品91高清在线观看 | 中文字幕一区二 区二三区四区| 欧美地区一二三专区| 在线新三级黄伊人网| 欧美日本在线观看一区二区| 亚洲综合在线视频可播放| 蝴蝶伊人久久中文娱乐网| 亚洲推理片免费看网站| 欧美一级片免费在线成人观看| 国产一级麻豆精品免费| 久久久制服丝袜中文字幕| 欧美精品中文字幕久久二区| 深田咏美亚洲一区二区| 在线视频免费观看网| 岛国黄色大片在线观看| 摧残蹂躏av一二三区| 天天色天天操天天舔| 午夜极品美女福利视频| 日韩美女福利视频网| 免费观看污视频网站| 成人乱码一区二区三区av| 国产成人综合一区2区| 黑人性生活视频免费看| 4个黑人操素人视频网站精品91| 2o22av在线视频| 国产成人精品亚洲男人的天堂| 天天操天天干天天艹| 色偷偷伊人大杳蕉综合网| 福利片区一区二体验区| 狠狠操狠狠操免费视频| 首之国产AV医生和护士小芳| 啪啪啪啪啪啪啪免费视频| 精品日产卡一卡二卡国色天香| 色婷婷久久久久swag精品| 人妻无码色噜噜狠狠狠狠色| 巨乳人妻日下部加奈被邻居中出| 成人综合亚洲欧美一区| 青青尤物在线观看视频网站| 中文字幕免费福利视频6| 精品suv一区二区69| 一区二区麻豆传媒黄片| jul—619中文字幕在线| 亚洲在线一区二区欧美| 久久人人做人人妻人人玩精品vr| 人妻丝袜精品中文字幕| 美女张开腿让男生操在线看| 中文字幕亚洲久久久| 白白操白白色在线免费视频 | 韩国爱爱视频中文字幕| 亚洲视频在线观看高清| 国产在线自在拍91国语自产精品| 日美女屁股黄邑视频| 中文字幕一区的人妻欧美日韩| 成熟熟女国产精品一区| 日本韩国免费福利精品| 日韩欧美中文国产在线| 亚洲国产在线精品国偷产拍 | 黑人性生活视频免费看| 天天操天天插天天色| 在线观看的黄色免费网站| 中文字幕国产专区欧美激情| 亚洲一区久久免费视频| 91极品大一女神正在播放| 日韩北条麻妃一区在线| 成人性黑人一级av| 少妇被强干到高潮视频在线观看| 色伦色伦777国产精品| 男人的天堂av日韩亚洲| 亚洲av第国产精品| 99亚洲美女一区二区三区| 成人久久精品一区二区三区 | 福利视频一区二区三区筱慧| 一区二区三区国产精选在线播放| 丁香花免费在线观看中文字幕| 国产精品人妻熟女毛片av久| 97黄网站在线观看| 亚洲熟女久久久36d| 经典av尤物一区二区| 免费无毒热热热热热热久| 日本精品一区二区三区在线视频。| 快插进小逼里大鸡吧视频| 人妻久久无码中文成人| 日本性感美女写真视频| 在线视频免费观看网| 特黄老太婆aa毛毛片| 午夜免费观看精品视频| 9国产精品久久久久老师| 亚洲高清自偷揄拍自拍| 日韩美av高清在线| 欧美日韩一区二区电影在线观看| 成人影片高清在线观看| 在线观看日韩激情视频| 99re国产在线精品| 亚洲视频在线观看高清| 天天日天天天天天天天天天天 | 欧美80老妇人性视频| 免费在线播放a级片| 中文字幕在线视频一区二区三区| 亚洲av第国产精品| 免费在线福利小视频| 老司机欧美视频在线看| 天天日天天干天天舔天天射| 好吊视频—区二区三区| 中英文字幕av一区| 在线免费观看欧美小视频| 色婷婷六月亚洲综合香蕉| 国产精品三级三级三级| 欧美成人小视频在线免费看| 国产品国产三级国产普通话三级| 在线不卡日韩视频播放| 日韩国产乱码中文字幕| 亚洲成人激情视频免费观看了 | 成人在线欧美日韩国产| 日本免费午夜视频网站| 视频 国产 精品 熟女 | 少妇人妻真实精品视频| 在线观看av观看av| 亚洲最大黄 嗯色 操 啊| 亚洲av琪琪男人的天堂| 黄网十四区丁香社区激情五月天| 第一福利视频在线观看| 久久h视频在线观看| 精品suv一区二区69| 中文字幕无码日韩专区免费| 日本美女成人在线视频| 97欧洲一区二区精品免费 | 亚洲熟妇久久无码精品| 国产极品精品免费视频| 精品久久久久久久久久中文蒉| 老司机免费视频网站在线看| 亚洲av香蕉一区区二区三区犇| 老司机福利精品视频在线| 极品粉嫩小泬白浆20p主播| 天天日夜夜操天天摸| 99re国产在线精品| 特黄老太婆aa毛毛片| 福利一二三在线视频观看| 欧美日韩熟女一区二区三区| 老司机午夜精品视频资源| 2022中文字幕在线| 人人爱人人妻人人澡39| 阴茎插到阴道里面的视频| 91在线免费观看成人| 国产麻豆剧传媒精品国产av蜜桃| 欧美特级特黄a大片免费| 91超碰青青中文字幕| 天天日天天爽天天爽| 久久精品36亚洲精品束缚| 欧洲亚洲欧美日韩综合| 青青青青操在线观看免费| av一区二区三区人妻| 久久精品久久精品亚洲人| 青青草原色片网站在线观看| 成人伊人精品色xxxx视频| 小泽玛利亚视频在线观看| 孕妇奶水仑乱A级毛片免费看| 成人30分钟免费视频| 日韩精品中文字幕播放| 午夜在线观看一区视频| 亚洲成人av一区在线| 亚洲综合色在线免费观看| 精品国产污污免费网站入口自 | 自拍偷拍,中文字幕| 5528327男人天堂| 99精品一区二区三区的区| 无码日韩人妻精品久久| 亚洲在线一区二区欧美| 日本性感美女三级视频| 国产午夜亚洲精品不卡在线观看| 国产免费高清视频视频| 欧美激情电影免费在线| 亚洲午夜伦理视频在线| 日韩美女搞黄视频免费| 日韩国产乱码中文字幕| 天天日天天天天天天天天天天 | 极品丝袜一区二区三区| 亚洲特黄aaaa片| 99久久中文字幕一本人| 国产高清在线观看1区2区| 亚洲欧美成人综合视频| 天天躁日日躁狠狠躁av麻豆| 欧美日韩亚洲国产无线码| 播放日本一区二区三区电影| 激情伦理欧美日韩中文字幕| 搡老熟女一区二区在线观看| 人妻丝袜诱惑我操她视频| 亚洲在线一区二区欧美| 在线视频这里只有精品自拍| 天天干天天操天天玩天天射 | 精品一区二区三区在线观看| 最后99天全集在线观看| 岛国免费大片在线观看| 日韩成人免费电影二区| 大胸性感美女羞爽操逼毛片| 亚洲视频在线视频看视频在线| 欧美美女人体视频一区| 人妻最新视频在线免费观看| 国产精品国产精品一区二区| 国产性色生活片毛片春晓精品| 国产精品熟女久久久久浪潮| 久久久超爽一二三av| 男人的天堂一区二区在线观看| 亚洲精品国品乱码久久久久| 亚洲精品国偷自产在线观看蜜桃| 天天操天天干天天插| 直接观看免费黄网站| 欧美精品资源在线观看| 青青青青爽手机在线| 国产黄色a级三级三级三级| 亚洲国产精品黑丝美女| 福利在线视频网址导航| 国产女人被做到高潮免费视频| 午夜精品一区二区三区更新| 二区中出在线观看老师| 中文字幕一区二区人妻电影冢本| 日本熟妇丰满厨房55| 日本阿v视频在线免费观看| 日日日日日日日日夜夜夜夜夜夜| 激情小视频国产在线| 亚洲 中文 自拍 无码| 沙月文乃人妻侵犯中文字幕在线| 一区二区三区 自拍偷拍| 亚洲男人让女人爽的视频| 97超碰最新免费在线观看| 精品一区二区三区三区色爱| 粉嫩欧美美人妻小视频| 在线观看av亚洲情色| 天天色天天操天天透| 成人18禁网站在线播放| 久久久噜噜噜久久熟女av| 天天综合天天综合天天网| 婷婷综合亚洲爱久久| 欧美日韩国产一区二区三区三州 | 亚洲成人av一区在线| 小穴多水久久精品免费看| 啪啪啪啪啪啪啪免费视频| 2020av天堂网在线观看| 91免费观看在线网站| 韩国男女黄色在线观看| 任我爽精品视频在线播放| 天天日天天干天天插舔舔| 亚洲综合自拍视频一区| 欧美亚洲免费视频观看| 亚洲国产精品黑丝美女| 国产成人综合一区2区| 亚洲老熟妇日本老妇| 亚洲精品久久综合久| 偷拍美女一区二区三区| 欧美男人大鸡吧插女人视频 | 成人精品视频99第一页| 久久久极品久久蜜桃| 久久精品国产23696| 午夜av一区二区三区| 亚洲熟色妇av日韩熟色妇在线| 蜜桃专区一区二区在线观看| 日韩欧美国产一区ab| 五十路熟女人妻一区二区9933| 一区二区熟女人妻视频| 伊人网中文字幕在线视频| 日本性感美女视频网站| 19一区二区三区在线播放| 国产老熟女伦老熟妇ⅹ| av手机在线观播放网站| 国产成人精品av网站| 97精品成人一区二区三区 | 美女小视频网站在线| 亚洲一区二区三区久久午夜| aⅴ五十路av熟女中出| 天天日天天做天天日天天做| 亚洲成人精品女人久久久| 香蕉片在线观看av| 午夜的视频在线观看| 精品久久久久久久久久久a√国产| 国产精品黄色的av| 久久久久国产成人精品亚洲午夜| 青草青永久在线视频18| 天天日天天日天天擦| 色伦色伦777国产精品| 久久精品久久精品亚洲人| 性感美女福利视频网站| 天天插天天狠天天操| av在线免费中文字幕| 93精品视频在线观看| 国产高清精品一区二区三区| 激情啪啪啪啪一区二区三区| 视频一区二区在线免费播放| 亚洲成人av一区久久| 国产97视频在线精品| 亚洲成人激情av在线| 亚洲特黄aaaa片| 国产亚洲精品视频合集| 91桃色成人网络在线观看| 日本一二三中文字幕| 一区二区三区日韩久久| www日韩a级s片av| 99热久久这里只有精品8| 新97超碰在线观看| 国产91嫩草久久成人在线视频| 2021年国产精品自拍| 国产福利小视频免费观看| 色综合色综合色综合色| 午夜毛片不卡免费观看视频| 亚洲一区二区三区精品乱码| 夜夜嗨av一区二区三区中文字幕| 人人妻人人爱人人草| 久草视频在线一区二区三区资源站 | 免费观看污视频网站| 一个色综合男人天堂| 3344免费偷拍视频| 亚洲av天堂在线播放| 国产女人露脸高潮对白视频| av在线shipin| 久久精品国产999| 国产自拍在线观看成人| 免费一级特黄特色大片在线观看| 亚洲黄色av网站免费播放| 一区二区视频视频视频| 亚洲1区2区3区精华液| asmr福利视频在线观看| 日本丰满熟妇大屁股久久| 国产一线二线三线的区别在哪| 天天日夜夜操天天摸| 日韩av熟妇在线观看| 免费高清自慰一区二区三区网站 | 亚洲激情,偷拍视频| 熟妇一区二区三区高清版| 97瑟瑟超碰在线香蕉| 中文字幕中文字幕 亚洲国产| 福利视频网久久91| 黄色视频在线观看高清无码 | 亚洲成人av在线一区二区| 国产亚洲天堂天天一区| 成人24小时免费视频| 亚洲高清视频在线不卡| 青青青青操在线观看免费| 欧美一区二区中文字幕电影| 久久永久免费精品人妻专区| 日韩美女搞黄视频免费| 国产黑丝高跟鞋视频在线播放| 国产不卡av在线免费| 丝袜国产专区在线观看| 日本韩国免费福利精品| 久久久极品久久蜜桃| 中文字幕日韩精品日本| 天天干天天搞天天摸| 中文字幕 人妻精品| 一区二区三区四区五区性感视频| 国产麻豆剧传媒精品国产av蜜桃| 女生自摸在线观看一区二区三区| 91极品新人『兔兔』精品新作| 欧美亚洲牲夜夜综合久久| 欧美黑人与人妻精品| 久久久久久性虐视频| 青青草亚洲国产精品视频| aaa久久久久久久久| 久久久久只精品国产三级| 亚洲1卡2卡三卡4卡在线观看| 一级黄片大鸡巴插入美女| 色哟哟在线网站入口| 69精品视频一区二区在线观看| 99的爱精品免费视频| 啪啪啪啪啪啪啪啪啪啪黄色| 5528327男人天堂| 人妻少妇亚洲一区二区| www久久久久久久久久久| 在线观看操大逼视频| 国产一区av澳门在线观看| 成人亚洲国产综合精品| 青青青视频自偷自拍38碰| 狠狠躁夜夜躁人人爽天天天天97| 激情五月婷婷综合色啪| 97精品综合久久在线| 91免费黄片可看视频| 污污小视频91在线观看| 亚洲一区二区三区av网站| 亚洲人妻视频在线网| japanese日本熟妇另类| 亚洲国产精品中文字幕网站| 日韩精品啪啪视频一道免费| av中文字幕福利网| av中文字幕在线导航| 日本一本午夜在线播放| 亚洲一区久久免费视频| 国产成人综合一区2区| 综合一区二区三区蜜臀| 无忧传媒在线观看视频| 中文字幕av一区在线观看| 日韩av大胆在线观看| 欧美色呦呦最新网址| 51精品视频免费在线观看| 91九色国产熟女一区二区| 日本裸体熟妇区二区欧美| 91精品免费久久久久久| 美女被肏内射视频网站| 伊人综合免费在线视频| 性感美女高潮视频久久久| 亚洲欧美激情中文字幕| 天天干天天啪天天舔| rct470中文字幕在线| 黄色的网站在线免费看| 巨乳人妻日下部加奈被邻居中出| 中文字幕人妻三级在线观看| 人人妻人人爽人人澡人人精品| 中文字幕高清在线免费播放| 亚洲国产香蕉视频在线播放| 男生用鸡操女生视频动漫| jiuse91九色视频| av中文字幕福利网| 中文字幕熟女人妻久久久| 国产白袜脚足J棉袜在线观看| 日本熟妇色熟妇在线观看| 在线免费观看日本片| 亚洲青青操骚货在线视频| 欧美偷拍亚洲一区二区| 中国视频一区二区三区| 欧美黑人与人妻精品| 久草电影免费在线观看| 农村胖女人操逼视频| av一区二区三区人妻| 又粗又长 明星操逼小视频| 在线观看一区二区三级| 中文字幕人妻被公上司喝醉在线| 国产视频精品资源网站| 亚洲综合色在线免费观看| 国产视频网站国产视频| 色综合色综合色综合色| 亚洲无线观看国产高清在线| 97瑟瑟超碰在线香蕉| 中文字幕中文字幕人妻| 欧美性感尤物人妻在线免费看| 日韩三级电影华丽的外出| 日本一区美女福利视频| 成人综合亚洲欧美一区 | 久久精品在线观看一区二区| 国产精品污污污久久| 美女小视频网站在线| 欧美乱妇无乱码一区二区| 91极品大一女神正在播放| 亚洲av无女神免非久久| 中文字幕乱码人妻电影| 亚洲福利天堂久久久久久| av中文字幕网址在线| 91免费观看国产免费| 97国产福利小视频合集| 国产成人精品一区在线观看| 青青青艹视频在线观看| 亚洲一区二区三区久久午夜| 日韩人妻在线视频免费| 中文字幕欧美日韩射射一| 欧美激情电影免费在线| 97青青青手机在线视频| 国产一区二区视频观看| 99re久久这里都是精品视频| 欧美另类一区二区视频| 亚洲欧洲av天堂综合| 欧美日韩一区二区电影在线观看| 青青伊人一精品视频| 国产成人精品福利短视频| 欧美日本国产自视大全| 99av国产精品欲麻豆| 国产精品黄大片在线播放| 亚洲最大免费在线观看| 蜜臀av久久久久蜜臀av麻豆| 日韩中文字幕福利av| 少妇露脸深喉口爆吞精| 日本黄在免费看视频| 日本www中文字幕| 韩国黄色一级二级三级| 98视频精品在线观看| 无忧传媒在线观看视频| 91九色国产熟女一区二区| 中文字幕 码 在线视频| 一区二区在线视频中文字幕| 人妻最新视频在线免费观看| 在线免费观看国产精品黄色| 91人妻精品一区二区在线看| 狠狠嗨日韩综合久久| 小泽玛利亚视频在线观看| 婷婷综合亚洲爱久久| 一区二区视频视频视频| 中文字幕高清在线免费播放| 国产视频在线视频播放| 大鸡八强奸视频在线观看| 91免费放福利在线观看| 欧美久久一区二区伊人| 中文字幕国产专区欧美激情| 欧美黄片精彩在线免费观看| 久久美欧人妻少妇一区二区三区| 午夜国产福利在线观看| 精品日产卡一卡二卡国色天香| 亚洲免费va在线播放| 成年女人免费播放视频| 久久艹在线观看视频| 人妻久久无码中文成人| 成熟熟女国产精品一区| 日本欧美视频在线观看三区| 一色桃子人妻一区二区三区| 欧美视频中文一区二区三区| 偷拍美女一区二区三区| 大尺度激情四射网站| 久草视频首页在线观看| 激情色图一区二区三区| 黄色中文字幕在线播放| 日本真人性生活视频免费看| av在线免费中文字幕| 男生用鸡操女生视频动漫| 绝色少妇高潮3在线观看| 亚洲日产av一区二区在线| 欧美日韩中文字幕欧美| 热久久只有这里有精品| 伊人综合aⅴ在线网| 国产使劲操在线播放| 亚洲国产40页第21页| 88成人免费av网站| 国产极品美女久久久久久| 黄色男人的天堂视频| 熟女妇女老妇一二三区| 亚洲午夜福利中文乱码字幕 | 日韩在线视频观看有码在线| 激情啪啪啪啪一区二区三区| 国产又粗又猛又爽又黄的视频美国| 阴茎插到阴道里面的视频| 在线观看免费视频网| 大陆精品一区二区三区久久| 中文字幕一区二区人妻电影冢本 | 国产白袜脚足J棉袜在线观看| 大鸡巴操b视频在线| 国产精品伦理片一区二区| 一区二区麻豆传媒黄片| 国产使劲操在线播放| 一本久久精品一区二区| 视频 国产 精品 熟女 | 视频 一区二区在线观看| 精品一线二线三线日本| 大香蕉大香蕉在线看| 国产福利小视频免费观看| 中文字幕+中文字幕| 久久久精品欧洲亚洲av| 午夜美女少妇福利视频| 91综合久久亚洲综合| 国产女人被做到高潮免费视频 | 久久这里只有精彩视频免费| 超碰97免费人妻麻豆| 边摸边做超爽毛片18禁色戒| 九色精品视频在线播放| 国产97视频在线精品| 日韩精品中文字幕在线| 中文字幕网站你懂的| 99精品国产免费久久| 免费大片在线观看视频网站| 日本性感美女写真视频| 日韩中文字幕在线播放第二页| 日日操综合成人av| 75国产综合在线视频| 国产精品亚洲在线观看| 日韩在线视频观看有码在线| av天堂中文字幕最新| 免费69视频在线看| 亚洲一区二区久久久人妻| 免费费一级特黄真人片| 国产精品视频资源在线播放 | 亚洲男人让女人爽的视频| 青青青国产片免费观看视频| 天天操天天干天天插| 日本少妇在线视频大香蕉在线观看 | 人人人妻人人澡人人| 国产一区二区欧美三区 | 少妇ww搡性bbb91| 久精品人妻一区二区三区| 中文亚洲欧美日韩无线码| 亚洲欧美成人综合在线观看| 国产精品三级三级三级| 欧美激情电影免费在线| 亚洲自拍偷拍精品网| 极品粉嫩小泬白浆20p主播| 99精品国产自在现线观看| 亚洲美女高潮喷浆视频| 国产超码片内射在线| 国产污污污污网站在线| www天堂在线久久| 精彩视频99免费在线| 亚洲激情偷拍一区二区| 啪啪啪啪啪啪啪免费视频| 边摸边做超爽毛片18禁色戒| 成人性黑人一级av| 亚洲免费va在线播放| 亚洲精品三级av在线免费观看| 日辽宁老肥女在线观看视频| 综合国产成人在线观看| 色狠狠av线不卡香蕉一区二区| 欧美viboss性丰满| 黑人解禁人妻叶爱071| 亚洲一区制服丝袜美腿| 国产精品精品精品999| 性感美女高潮视频久久久| 38av一区二区三区| 视频在线亚洲一区二区| 自拍偷拍亚洲精品第2页| 中文字幕第一页国产在线| 国产精品女邻居小骚货| asmr福利视频在线观看| 日本一二三中文字幕| 92福利视频午夜1000看| 国产熟妇人妻ⅹxxxx麻豆| 亚洲av自拍偷拍综合| 日本www中文字幕| 福利视频网久久91| 国产普通话插插视频| 国产熟妇乱妇熟色T区| 中文字幕国产专区欧美激情| 亚洲中文字幕国产日韩| 91超碰青青中文字幕| 中文字幕+中文字幕| 97人妻色免费视频| 亚洲男人的天堂a在线| 亚洲免费成人a v| 欧美中国日韩久久精品| 亚洲 欧美 自拍 偷拍 在线| 亚洲Av无码国产综合色区| 精品老妇女久久9g国产| 青青草人人妻人人妻| 97超碰最新免费在线观看| 99国内小视频在现欢看| 日本午夜爽爽爽爽爽视频在线观看 | 熟妇一区二区三区高清版| 93精品视频在线观看| 97超碰最新免费在线观看| 亚洲欧美精品综合图片小说| 18禁美女黄网站色大片下载| 91麻豆精品91久久久久同性| 黑人巨大精品欧美视频| 国产又色又刺激在线视频| 97人妻无码AV碰碰视频| 国产精品国产三级麻豆| 2020久久躁狠狠躁夜夜躁| 亚洲码av无色中文| 黄色资源视频网站日韩| 亚洲午夜在线视频福利| 精品高潮呻吟久久av| 黄色在线观看免费观看在线| 中文字幕在线第一页成人| 日日操综合成人av| av中文字幕在线导航| 欧美精品一区二区三区xxxx| free性日本少妇| 99av国产精品欲麻豆| 日本性感美女写真视频| 日辽宁老肥女在线观看视频| 中文字幕第三十八页久久| 日韩精品中文字幕播放| 综合激情网激情五月天| 亚洲av午夜免费观看| 欧美在线一二三视频| 久久久精品国产亚洲AV一| 天天夜天天日天天日| 欧美viboss性丰满| 一本久久精品一区二区| 性色av一区二区三区久久久 | 午夜精品福利一区二区三区p| 91国产资源在线视频| 亚洲欧美自拍另类图片| 精品人妻每日一部精品| 自拍偷区二区三区麻豆| 激情色图一区二区三区| 黄色大片男人操女人逼| 亚洲成av人无码不卡影片一| wwwxxx一级黄色片| 天天日天天操天天摸天天舔| 日韩午夜福利精品试看| 国产精品伦理片一区二区| 一级黄色片夫妻性生活| 加勒比视频在线免费观看| 黄色大片男人操女人逼| 国产精品成久久久久三级蜜臀av | 青青青青青青草国产| 99热碰碰热精品a中文| 视频二区在线视频观看| 成年人的在线免费视频| 中文字幕1卡1区2区3区| 2020久久躁狠狠躁夜夜躁 | 天天色天天操天天透| 国产揄拍高清国内精品对白| 国产黄网站在线观看播放| 在线免费观看日本伦理| 亚洲国产在线精品国偷产拍| 日韩人妻丝袜中文字幕| 一区二区三区四区五区性感视频| 亚洲伊人色一综合网| 午夜成午夜成年片在线观看| 一区二区视频视频视频| 男女第一次视频在线观看| 97国产福利小视频合集| 小穴多水久久精品免费看| 最近的中文字幕在线mv视频| 国产激情av网站在线观看| 1000部国产精品成人观看视频| 中文字幕高清资源站| 神马午夜在线观看视频| 亚洲精品ww久久久久久| 成人av在线资源网站| heyzo蜜桃熟女人妻| 91成人精品亚洲国产| 五月天中文字幕内射| 99的爱精品免费视频| 日韩欧美一级精品在线观看| 国产精品久久久久久美女校花| 免费av岛国天堂网站| 国内资源最丰富的网站| 中文字幕,亚洲人妻| 久久久久91精品推荐99| 精彩视频99免费在线| 爆乳骚货内射骚货内射在线| 日韩精品电影亚洲一区| 2020中文字幕在线播放| 人人妻人人澡欧美91精品| 区一区二区三国产中文字幕| 亚洲图片偷拍自拍区| 精彩视频99免费在线| 偷拍自拍国产在线视频| 久草极品美女视频在线观看| 国产亚洲国产av网站在线| 中国黄色av一级片| 欧洲亚洲欧美日韩综合| 粗大的内捧猛烈进出爽大牛汉子| 毛片av在线免费看| 激情伦理欧美日韩中文字幕| 国产视频网站国产视频| 9久在线视频只有精品| 国产精品国色综合久久| 后入美女人妻高清在线| 久久久极品久久蜜桃| 天天摸天天亲天天舔天天操天天爽| 91国内精品久久久久精品一| 日本av熟女在线视频| 亚洲精品高清自拍av| gogo国模私拍视频| av中文字幕网址在线| 亚洲人成精品久久久久久久| 国产午夜福利av导航| 嫩草aⅴ一区二区三区| 国产真实灌醉下药美女av福利| 午夜精品久久久久麻豆影视| 国产清纯美女al在线| 午夜精品在线视频一区| 91色网站免费在线观看| 成人午夜电影在线观看 久久| 蜜桃视频17c在线一区二区| 在线免费观看99视频| 天天日天天干天天要| 日本熟女50视频免费| 国产激情av网站在线观看| 男人操女人的逼免费视频| 一区二区三区四区五区性感视频| 3344免费偷拍视频| 婷婷综合亚洲爱久久| 国产精品3p和黑人大战| 免费看高清av的网站| 久久麻豆亚洲精品av| 国产午夜男女爽爽爽爽爽视频 | 久久久精品欧洲亚洲av| 美女大bxxxx内射| 日本成人一区二区不卡免费在线| 亚洲av无女神免非久久| 日韩一个色综合导航| 国产亚洲精品视频合集| 香港一级特黄大片在线播放| 男人在床上插女人视频| 一区二区三区久久中文字幕| 日韩精品二区一区久久| 亚洲精品中文字幕下载| 日韩特级黄片高清在线看| 在线观看成人国产电影| 中文字母永久播放1区2区3区| 国产黄色大片在线免费播放| 97超碰最新免费在线观看| 偷拍3456eee| caoporn蜜桃视频| 精品老妇女久久9g国产| 欧美精品中文字幕久久二区| 亚洲精品精品国产综合| 久久久久久久精品老熟妇| 爆乳骚货内射骚货内射在线| 日本高清撒尿pissing| 国产成人小视频在线观看无遮挡| 精彩视频99免费在线| 福利一二三在线视频观看| 精彩视频99免费在线| 成人性爱在线看四区| 久久精品国产999| 中国老熟女偷拍第一页| 91国偷自产一区二区三区精品| 亚洲综合另类精品小说| 成人动漫大肉棒插进去视频| 91老熟女连续高潮对白| 91色秘乱一区二区三区| 内射久久久久综合网| 超碰公开大香蕉97| 国产女人叫床高潮大片视频| 亚洲图片欧美校园春色| 中文字幕在线乱码一区二区| 中文字幕av熟女人妻| 青青在线视频性感少妇和隔壁黑丝| 日韩a级精品一区二区| 97资源人妻免费在线视频| 中文字幕第1页av一天堂网| 日本三极片视频网站观看| 狠狠鲁狠狠操天天晚上干干| 中国把吊插入阴蒂的视频| 中文字幕奴隷色的舞台50| 男人在床上插女人视频| 美味人妻2在线播放| 99精品国产aⅴ在线观看| 日本丰满熟妇大屁股久久| 精品久久久久久久久久久a√国产 日本女大学生的黄色小视频 | 国产高清在线在线视频| 国产精品黄片免费在线观看| 亚洲熟女综合色一区二区三区四区| 欧美偷拍亚洲一区二区| brazzers欧熟精品系列| 人妻少妇中文有码精品| 亚洲av黄色在线网站| 国产精品国产三级国产精东| 欧美日韩情色在线观看| 黄色中文字幕在线播放| 亚洲中文字幕校园春色| 久久精品在线观看一区二区| 日本特级片中文字幕| 亚洲欧美一卡二卡三卡| 国产精品久久久久久久女人18| 欧美综合婷婷欧美综合| 社区自拍揄拍尻屁你懂的| 欧美日韩情色在线观看| 国产激情av网站在线观看| 亚洲国产精品免费在线观看| 国产福利小视频大全| 9久在线视频只有精品| 久久久噜噜噜久久熟女av| 亚洲精品高清自拍av| 久久久久久久精品老熟妇| 日本午夜爽爽爽爽爽视频在线观看| 国产变态另类在线观看| 美女福利视频网址导航| 日本熟女精品一区二区三区| 最新激情中文字幕视频| 99re久久这里都是精品视频| 成人国产小视频在线观看| 日韩在线视频观看有码在线| 亚洲人妻国产精品综合| 亚洲 国产 成人 在线| 岛国毛片视频免费在线观看| 免费一级黄色av网站| 亚洲成人国产综合一区| 不卡一区一区三区在线| 久久三久久三久久三久久| 沈阳熟妇28厘米大战黑人| 清纯美女在线观看国产| 天堂女人av一区二区| 在线观看的黄色免费网站| av乱码一区二区三区| 人妻少妇中文有码精品| 成人30分钟免费视频| 2022国产综合在线干| 丰满的子国产在线观看| 欧美成一区二区三区四区| 免费av岛国天堂网站| 中文字幕第一页国产在线| 天天日天天透天天操| 人妻少妇亚洲一区二区| 福利视频一区二区三区筱慧| 91精品视频在线观看免费| 亚洲精品欧美日韩在线播放| 日本啪啪啪啪啪啪啪| 在线观看免费视频网| 国产黑丝高跟鞋视频在线播放| 亚洲精品 日韩电影| 亚洲国产欧美国产综合在线| 亚洲高清免费在线观看视频| 18禁网站一区二区三区四区| 人妻另类专区欧美制服| 免费国产性生活视频| 在线观看的黄色免费网站| 超pen在线观看视频公开97 | 国产+亚洲+欧美+另类| 国产午夜激情福利小视频在线| 精品视频中文字幕在线播放 | 中文字幕视频一区二区在线观看| 天天日天天干天天要| 欧美黑人与人妻精品| 大香蕉大香蕉在线有码 av| 国产精品视频资源在线播放| 红桃av成人在线观看| 欧美第一页在线免费观看视频| 一区二区三区综合视频| 亚洲国产40页第21页| 亚洲午夜电影在线观看| 欧美精品免费aaaaaa| 国产极品精品免费视频| 天堂av在线播放免费| 亚洲日本一区二区三区| 日本av在线一区二区三区| 国内自拍第一页在线观看| 大鸡巴操b视频在线| 日韩精品二区一区久久| 黑人乱偷人妻中文字幕| 国产精品视频欧美一区二区| 青青青aaaa免费| 91精品高清一区二区三区| 亚洲中文字幕校园春色| 国产精品国产精品一区二区| 精品一区二区三区三区88 | 成人免费做爰高潮视频| 91国偷自产一区二区三区精品| 大陆胖女人与丈夫操b国语高清| 亚洲中文字幕校园春色 | 毛片av在线免费看| 精品久久久久久久久久久99| 亚洲激情,偷拍视频| 制丝袜业一区二区三区| 青青在线视频性感少妇和隔壁黑丝 | 91亚洲精品干熟女蜜桃频道| 成人免费公开视频无毒| 激情伦理欧美日韩中文字幕| 日本韩国亚洲综合日韩欧美国产| 97年大学生大白天操逼| 偷拍3456eee| 在线观看的黄色免费网站| 日韩欧美一级aa大片| 在线网站你懂得老司机| 欧美精品国产综合久久| 粉嫩av蜜乳av蜜臀| 亚洲av自拍天堂网| 亚洲免费成人a v| 亚洲 国产 成人 在线| 好男人视频在线免费观看网站| 自拍偷拍 国产资源| 中文字幕中文字幕人妻| 黄片三级三级三级在线观看| 一区二区视频在线观看免费观看| 97欧洲一区二区精品免费| 亚洲男人让女人爽的视频| 久久免费看少妇高潮完整版| av新中文天堂在线网址| 天天日天天天天天天天天天天| 又色又爽又黄的美女裸体| 国产黄色大片在线免费播放| 国产精品入口麻豆啊啊啊 | 巨乳人妻日下部加奈被邻居中出| 天天日天天透天天操| 亚洲精品 欧美日韩| 久久麻豆亚洲精品av| 亚洲国际青青操综合网站| 91成人在线观看免费视频| 端庄人妻堕落挣扎沉沦| 美女操逼免费短视频下载链接| 非洲黑人一级特黄片| 亚洲成人线上免费视频观看| 一级黄色片夫妻性生活| 国产大学生援交正在播放| 快点插进来操我逼啊视频| 一区二区三区激情在线| 国产亚洲视频在线观看| 黑人变态深video特大巨大| 亚洲熟妇久久无码精品| 在线可以看的视频你懂的 | 久久艹在线观看视频| asmr福利视频在线观看| 高清成人av一区三区| 免费一级特黄特色大片在线观看 | 最新国产精品网址在线观看| 免费男阳茎伸入女阳道视频| 日本少妇的秘密免费视频| 中文字幕一区二区人妻电影冢本| 天天操天天爽天天干| 亚洲一区二区三区精品乱码| 中文字幕人妻被公上司喝醉在线| 男人天堂最新地址av| 亚洲熟妇x久久av久久| 日本一区二区三区免费小视频| nagger可以指黑人吗| 午夜av一区二区三区| 密臀av一区在线观看| 亚洲av黄色在线网站| 2022中文字幕在线| 青青青国产免费视频| 性感美女福利视频网站| 揄拍成人国产精品免费看视频| 在线观看一区二区三级| 亚洲午夜电影之麻豆| 不卡一区一区三区在线| 97精品视频在线观看| 亚洲1区2区3区精华液| av视网站在线观看| av完全免费在线观看av| 精品高跟鞋丝袜一区二区| 伊人综合免费在线视频| 东京热男人的av天堂| 18禁网站一区二区三区四区| 男人在床上插女人视频| 天天日天天摸天天爱| 日本人妻欲求不满中文字幕| 我想看操逼黄色大片| 成人国产小视频在线观看| 精品久久久久久高潮| 2020久久躁狠狠躁夜夜躁| 免费观看污视频网站| 亚欧在线视频你懂的| 韩国AV无码不卡在线播放| 国产高清在线在线视频| 人妻素人精油按摩中出| 少妇人妻二三区视频| 岛国免费大片在线观看| 1024久久国产精品| 2020久久躁狠狠躁夜夜躁| 99亚洲美女一区二区三区| 日本美女性生活一级片| 2o22av在线视频| 久久久极品久久蜜桃| 亚洲第一伊人天堂网| 欧美黑人性猛交xxxxⅹooo| 亚洲国产欧美国产综合在线| 大尺度激情四射网站| 欧美亚洲国产成人免费在线| 久草电影免费在线观看| 国产第一美女一区二区三区四区 | 不卡一区一区三区在线| 77久久久久国产精产品| 又色又爽又黄的美女裸体| 久久久91蜜桃精品ad| 国产熟妇人妻ⅹxxxx麻豆| 黄色片一级美女黄色片| 99久久中文字幕一本人| 天天色天天操天天舔| 护士特殊服务久久久久久久| 狠狠鲁狠狠操天天晚上干干| 日韩欧美中文国产在线 | 在线观看日韩激情视频| 在线免费观看国产精品黄色| 欧美精品中文字幕久久二区| 久久久久久久久久一区二区三区| 国产剧情演绎系列丝袜高跟| 91高清成人在线视频| 天天操天天爽天天干| 91超碰青青中文字幕| 亚洲 清纯 国产com| 97年大学生大白天操逼| av手机免费在线观看高潮| 亚洲熟妇无码一区二区三区| 中文人妻AV久久人妻水| 在线不卡日韩视频播放| 青青色国产视频在线| 国产又色又刺激在线视频 | 99久久成人日韩欧美精品| 自拍 日韩 欧美激情| 亚洲欧美激情国产综合久久久 | 在线观看视频网站麻豆| 亚洲天堂成人在线观看视频网站 | 九色porny九色9l自拍视频| 欧美区一区二区三视频| 精品av国产一区二区三区四区| 精品91自产拍在线观看一区| 91香蕉成人app下载| 免费看美女脱光衣服的视频| 黄片色呦呦视频免费看| 337p日本大胆欧美人| 欧美日韩一区二区电影在线观看 | 少妇高潮无套内谢麻豆| 青青热久免费精品视频在线观看| 青青草国内在线视频精选| 初美沙希中文字幕在线| 超碰公开大香蕉97| 任我爽精品视频在线播放| 最新国产精品拍在线观看| 99婷婷在线观看视频| 欧美视频中文一区二区三区| 曰本无码人妻丰满熟妇啪啪| 插小穴高清无码中文字幕| 国产午夜无码福利在线看| 久久精品亚洲国产av香蕉| 日本最新一二三区不卡在线| 美女张开腿让男生操在线看| 馒头大胆亚洲一区二区| 色综合久久无码中文字幕波多| xxx日本hd高清| 亚洲成人av一区在线| 啊啊好大好爽啊啊操我啊啊视频| 啊用力插好舒服视频| 少妇露脸深喉口爆吞精| 夜夜骑夜夜操夜夜奸| 欧美久久久久久三级网| 久久精品国产23696| 日本熟女精品一区二区三区| 国产又粗又硬又猛的毛片视频| 人妻av无码专区久久绿巨人 | 天天日天天透天天操| 天天日天天做天天日天天做| 国产日韩一区二区在线看| 免费在线观看污污视频网站| 2018在线福利视频| 一区二区三区激情在线| 亚洲国产最大av综合| 视频一区二区综合精品| 成人免费公开视频无毒| 91精品国产高清自在线看香蕉网| 中字幕人妻熟女人妻a62v网| 性欧美激情久久久久久久| weyvv5国产成人精品的视频| av高潮迭起在线观看| 日视频免费在线观看| 精品久久久久久久久久久a√国产| 亚洲码av无色中文| 中文字幕 亚洲av| 日本韩国免费福利精品| av网站色偷偷婷婷网男人的天堂| 日韩欧美高清免费在线| 亚洲自拍偷拍精品网| 日韩欧美亚洲熟女人妻| 黄色片黄色片wyaa| 国产精品久久综合久久| av手机在线观播放网站| 久久麻豆亚洲精品av| 欧美精产国品一二三产品价格| 999九九久久久精品| 欧美另类重口味极品在线观看| 社区自拍揄拍尻屁你懂的 | 国产97在线视频观看| 97超碰国语国产97超碰| 婷婷六月天中文字幕| 操操网操操伊剧情片中文字幕网| 91九色国产porny蝌蚪| 中文亚洲欧美日韩无线码| 综合色区亚洲熟妇shxstz| 日本熟女50视频免费| 天天干夜夜操啊啊啊| 93视频一区二区三区| 中文字母永久播放1区2区3区| 91精品一区二区三区站长推荐| 精品乱子伦一区二区三区免费播| 国产一区二区在线欧美| 任你操视频免费在线观看| 91人妻精品一区二区久久| 精产国品久久一二三产区区别| 三级黄色亚洲成人av| 天天躁夜夜躁日日躁a麻豆| 亚洲嫩模一区二区三区| 久久久久只精品国产三级| 1000部国产精品成人观看视频| 在线观看操大逼视频| 欧洲欧美日韩国产在线| 亚洲免费福利一区二区三区| avjpm亚洲伊人久久| 成年人中文字幕在线观看| 一二三中文乱码亚洲乱码one| 在线视频这里只有精品自拍| 亚洲丝袜老师诱惑在线观看| 免费黄高清无码国产| 99一区二区在线观看| 中文字幕高清免费在线人妻| 亚洲成人国产综合一区| 亚洲免费在线视频网站| 黄工厂精品视频在线观看| 欧美精品免费aaaaaa| 国产高清精品极品美女| 国产高清精品极品美女| 97人妻人人澡爽人人精品| 绯色av蜜臀vs少妇| 婷婷色国产黑丝少妇勾搭AV| 啪啪啪18禁一区二区三区| 中文字幕乱码人妻电影| 中文字幕日韩精品就在这里| 绝顶痉挛大潮喷高潮无码| 亚洲精品欧美日韩在线播放| 成熟熟女国产精品一区| 在线观看视频污一区| 巨乳人妻日下部加奈被邻居中出 | 成年人啪啪视频在线观看| 老司机免费福利视频网| 亚洲天天干 夜夜操| 天堂v男人视频在线观看| 色哟哟在线网站入口| 色哟哟在线网站入口| 亚洲成人激情视频免费观看了| 粉嫩欧美美人妻小视频| 中文字幕人妻av在线观看| 亚洲成人国产综合一区| 日本午夜爽爽爽爽爽视频在线观看| 同居了嫂子在线播高清中文| 鸡巴操逼一级黄色气| 天天操夜夜骑日日摸| 99精品一区二区三区的区| 99久久99一区二区三区| 2021最新热播中文字幕| 亚洲人妻30pwc| 东京热男人的av天堂| 久久这里有免费精品| 国产91嫩草久久成人在线视频| 一区二区三区国产精选在线播放| AV无码一区二区三区不卡| 亚洲欧美在线视频第一页| 丰满少妇翘臀后进式| 国产一线二线三线的区别在哪| 91九色porny国产在线| 97国产在线av精品| 亚洲免费视频欧洲免费视频| 亚洲成人国产av在线| 欧美一区二区三区在线资源| 经典亚洲伊人第一页| 欲乱人妻少妇在线视频裸| 免费在线黄色观看网站| 亚洲午夜高清在线观看| 精品日产卡一卡二卡国色天香| 99av国产精品欲麻豆| 青青社区2国产视频| 欧美成人黄片一区二区三区| 欲乱人妻少妇在线视频裸| 久久久久只精品国产三级| 亚洲熟妇无码一区二区三区| 红桃av成人在线观看| 国产午夜男女爽爽爽爽爽视频| 欧美亚洲一二三区蜜臀| 日韩av熟妇在线观看| 婷婷色中文亚洲网68| 亚国产成人精品久久久| 插小穴高清无码中文字幕| 日韩亚洲高清在线观看| 国产日韩一区二区在线看 | 亚洲推理片免费看网站| 久久久久久久99精品| 污污小视频91在线观看| 少妇与子乱在线观看| 午夜免费体验区在线观看| 十八禁在线观看地址免费| 亚洲老熟妇日本老妇| 福利在线视频网址导航| caoporm超碰国产| 福利在线视频网址导航| 最新中文字幕乱码在线| 午夜精品福利91av| weyvv5国产成人精品的视频| 美味人妻2在线播放| 1000小视频在线| 人妻熟女在线一区二区| 亚洲专区激情在线观看视频| 亚洲精品乱码久久久本| 欧美精品激情在线最新观看视频| 中文字幕人妻一区二区视频 | av高潮迭起在线观看| 日本又色又爽又黄又粗| 午夜91一区二区三区| 91九色porny国产在线| 玖玖一区二区在线观看| 中文字幕一区的人妻欧美日韩| 日韩a级黄色小视频| 美女张开两腿让男人桶av| 大胆亚洲av日韩av| 91社福利《在线观看| 老熟妇xxxhd老熟女| 大陆精品一区二区三区久久| 国产乱弄免费视频观看| 美女张开两腿让男人桶av| 亚洲卡1卡2卡三卡四老狼| 亚洲欧美激情国产综合久久久| 97色视频在线观看| 精品一区二区三四区| 91欧美在线免费观看| 日辽宁老肥女在线观看视频| 38av一区二区三区| av中文字幕福利网| 国产亚洲视频在线二区| 中文字幕—97超碰网| 中文字幕第三十八页久久| 91久久精品色伊人6882| 狠狠的往里顶撞h百合| 日本免费午夜视频网站| 成人精品视频99第一页| 天天日天天干天天要| 黑人解禁人妻叶爱071| 国产视频在线视频播放| 美女少妇亚洲精选av| 欧美日韩国产一区二区三区三州| av一本二本在线观看| 大陆精品一区二区三区久久| 2021最新热播中文字幕| 欧美日本在线视频一区| 久久精品在线观看一区二区| 自拍偷拍亚洲另类色图| 日视频免费在线观看| 淫秽激情视频免费观看| 一级黄片久久久久久久久| 伊人情人综合成人久久网小说| 国产精品黄大片在线播放| 99精品免费观看视频| 抽查舔水白紧大视频| 成年女人免费播放视频| 国产熟妇乱妇熟色T区| 中英文字幕av一区| 亚洲国产成人无码麻豆艾秋| 99热这里只有国产精品6| 99国内小视频在现欢看| 天天夜天天日天天日| 鸡巴操逼一级黄色气| 亚洲视频在线观看高清| 日本人竟这样玩学生妹| 免费一级特黄特色大片在线观看| 国产精品福利小视频a| 亚洲综合在线观看免费| 日本黄色三级高清视频| 91人妻人人做人人爽在线| 精产国品久久一二三产区区别| 91国内精品久久久久精品一| 国产成人精品久久二区91| 青青青青操在线观看免费| 少妇人妻100系列| 亚洲老熟妇日本老妇| 色婷婷综合激情五月免费观看| 免费啪啪啪在线观看视频| 美女张开两腿让男人桶av| 激情伦理欧美日韩中文字幕| 中文字幕在线乱码一区二区 | 成人30分钟免费视频| 日韩av免费观看一区| 国产精品久久综合久久| 91she九色精品国产| 激情人妻校园春色亚洲欧美| 一区二区三区在线视频福利| 久久久久国产成人精品亚洲午夜| 男人在床上插女人视频| 国产亚洲精品品视频在线| 国产精品黄片免费在线观看| av男人天堂狠狠干| 黑人进入丰满少妇视频| 天天日天天敢天天干| 欧美一区二区中文字幕电影| 黄色无码鸡吧操逼视频| av中文在线天堂精品| 五月天久久激情视频| 国产av自拍偷拍盛宴| 伊人综合免费在线视频| 黄色三级网站免费下载| 看一级特黄a大片日本片黑人| 色综合色综合色综合色| 青青青国产片免费观看视频| 国产大鸡巴大鸡巴操小骚逼小骚逼| 青青草国内在线视频精选| 亚洲av男人的天堂你懂的| av在线shipin| 狠狠躁狠狠爱网站视频| 亚洲成人激情av在线| 亚洲欧美在线视频第一页| 成人激情文学网人妻| 五十路av熟女松本翔子| 黑人大几巴狂插日本少妇| 成人性黑人一级av| 好了av中文字幕在线| 午夜av一区二区三区| 中文字幕AV在线免费看 | 五十路熟女人妻一区二区9933| 99精品视频之69精品视频| 快插进小逼里大鸡吧视频| 沈阳熟妇28厘米大战黑人| 91在线视频在线精品3| 亚洲一区二区三区uij| 欧美精品中文字幕久久二区| 在线成人日韩av电影| 在线观看免费视频网| 天天日天天做天天日天天做| 91国语爽死我了不卡| 日韩一区二区电国产精品| 黄网十四区丁香社区激情五月天| 91免费放福利在线观看| 偷拍自拍亚洲视频在线观看| 欧美精品激情在线最新观看视频| 欧美精品一二三视频| 3344免费偷拍视频| 亚洲1069综合男同| 国产普通话插插视频| 在线观看亚洲人成免费网址| 啊啊好慢点插舔我逼啊啊啊视频 | 日本性感美女三级视频| 91福利视频免费在线观看| 国产欧美精品不卡在线| 2021最新热播中文字幕| h国产小视频福利在线观看| 在线观看911精品国产| 动漫av网站18禁| 777奇米久久精品一区| 2021最新热播中文字幕| 熟女人妻在线中出观看完整版| 巨乳人妻日下部加奈被邻居中出| 久久免看30视频口爆视频| 一级黄片大鸡巴插入美女| 亚洲高清自偷揄拍自拍| 一区二区熟女人妻视频| 97超碰人人搞人人| 超碰公开大香蕉97| 最新中文字幕乱码在线| 最近中文2019年在线看| 亚洲 国产 成人 在线| 欧美日韩一级黄片免费观看| 婷婷久久久综合中文字幕| av一区二区三区人妻| 福利视频一区二区三区筱慧| 91麻豆精品秘密入口在线观看| 精品亚洲在线免费观看| 日韩精品中文字幕在线| 亚洲中文字幕国产日韩| 人妻av无码专区久久绿巨人| 精品国产午夜视频一区二区| 国产成人自拍视频播放| 91麻豆精品久久久久| 黄色无码鸡吧操逼视频| 一区二区三区精品日本| 免费看美女脱光衣服的视频| 97精品成人一区二区三区| 日韩人妻xxxxx| 中文字幕日本人妻中出| 99人妻视频免费在线| 亚洲 图片 欧美 图片| 精品久久久久久久久久久a√国产| av在线资源中文字幕| 欧美亚洲一二三区蜜臀| 很黄很污很色的午夜网站在线观看 | 亚洲天堂av最新网址| 日本韩国在线观看一区二区| 国产亚洲精品品视频在线| 精品日产卡一卡二卡国色天香| 亚洲一区av中文字幕在线观看| 久久永久免费精品人妻专区| 国产刺激激情美女网站| 快插进小逼里大鸡吧视频| 国产在线91观看免费观看| 天天操天天弄天天射| 亚洲va天堂va国产va久| 婷婷久久久综合中文字幕| 国产成人小视频在线观看无遮挡 | 91在线免费观看成人| 久草视频中文字幕在线观看| 人妻少妇精品久久久久久| 男人操女人逼逼视频网站| 91精品一区二区三区站长推荐| 国产真实灌醉下药美女av福利| 天天射,天天操,天天说| 免费黄高清无码国产| 全国亚洲男人的天堂| 精品成人午夜免费看| 青青青爽视频在线播放| 日本少妇的秘密免费视频| 老司机在线精品福利视频| sw137 中文字幕 在线| 中文字幕在线欧美精品| 亚洲av无码成人精品区辽| 天天色天天舔天天射天天爽| 国产高清在线在线视频| 亚洲 自拍 色综合图| 人人人妻人人澡人人| 亚洲激情,偷拍视频| 一区二区视频在线观看免费观看 | 免费观看污视频网站| 亚洲av色香蕉一区二区三区| 91亚洲国产成人精品性色| 含骚鸡巴玩逼逼视频| 精品人人人妻人人玩日产欧| 日本人妻少妇18—xx| jiujiure精品视频在线| 青青青青青手机视频| 馒头大胆亚洲一区二区| 91在线免费观看成人| 在线观看视频网站麻豆| 晚上一个人看操B片| 老司机99精品视频在线观看| 亚洲天堂精品福利成人av| 欧美日韩激情啪啪啪| 在线观看911精品国产| 38av一区二区三区| 美女在线观看日本亚洲一区| 亚洲中文字幕人妻一区| 自拍偷拍日韩欧美一区二区| 精品黑人一区二区三区久久国产 | 欧美日韩v中文在线| 婷婷久久久综合中文字幕| 日本精品美女在线观看| 福利片区一区二体验区| 护士小嫩嫩又紧又爽20p| 自拍偷拍vs一区二区三区| 三上悠亚和黑人665番号| 超碰公开大香蕉97| 视频一区二区在线免费播放| 91亚洲手机在线视频播放| 欧美日本国产自视大全| 日本性感美女写真视频| 888亚洲欧美国产va在线播放| 女同性ⅹxx女同h偷拍| 特级欧美插插插插插bbbbb| 红杏久久av人妻一区| 91片黄在线观看喷潮| yy6080国产在线视频| 亚洲综合在线视频可播放| 亚洲免费av在线视频| 91成人精品亚洲国产| 一区二区在线视频中文字幕| 五十路在线观看完整版| 国产揄拍高清国内精品对白| 国产麻豆国语对白露脸剧情 | 成年人该看的视频黄免费| 3344免费偷拍视频| 亚洲天堂有码中文字幕视频| 免费成人av中文字幕| 亚洲男人让女人爽的视频| 不卡一不卡二不卡三| 国产麻豆乱子伦午夜视频观看| 免费观看丰满少妇做受| 91精品视频在线观看免费| 一区二区麻豆传媒黄片 | 久久国产精品精品美女| 欧美 亚洲 另类综合| 亚洲综合在线观看免费| 中国熟女@视频91| 最新激情中文字幕视频| 一区二区三区久久久91| 视频二区在线视频观看| 大香蕉伊人国产在线| 亚洲综合乱码一区二区| 三级等保密码要求条款| 人妻另类专区欧美制服| 亚洲成高清a人片在线观看| 中文字幕乱码av资源| 女同性ⅹxx女同hd| 99re久久这里都是精品视频| 欧美精品欧美极品欧美视频| 绯色av蜜臀vs少妇| 扒开腿挺进肉嫩小18禁视频| 人妻另类专区欧美制服| jul—619中文字幕在线| 国产乱子伦精品视频潮优女| 一区二区久久成人网| 1000小视频在线| 国产精品日韩欧美一区二区| 婷婷午夜国产精品久久久| 黄色av网站免费在线| 午夜毛片不卡免费观看视频| 中文字幕中文字幕人妻| 99精品久久久久久久91蜜桃| 国产极品精品免费视频| 国产揄拍高清国内精品对白| 亚洲av无乱一区二区三区性色| 中文字幕视频一区二区在线观看| 黄色av网站免费在线| 熟女妇女老妇一二三区| 亚洲日产av一区二区在线| 精品一区二区三四区| 狍和女人的王色毛片| 国产aⅴ一线在线观看| 2o22av在线视频| 久久久久久性虐视频| 日韩精品一区二区三区在线播放| 亚洲成人午夜电影在线观看| 新97超碰在线观看| 中文字幕午夜免费福利视频| 国产精品久久久久网| 亚洲av第国产精品| 一区二区三区精品日本| 2022国产精品视频| 亚洲国产免费av一区二区三区| 欧美爆乳肉感大码在线观看| 亚洲欧美综合另类13p| av在线免费观看亚洲天堂| 搡老熟女一区二区在线观看| 久久久久久久久久一区二区三区 | 高清一区二区欧美系列| aⅴ精产国品一二三产品| 中文字幕—97超碰网| 亚洲va国产va欧美va在线| 91色秘乱一区二区三区| 亚洲第一伊人天堂网| 久久久久久97三级| 日韩少妇人妻精品无码专区| 天天日天天干天天插舔舔| 日本人妻精品久久久久久| 国产精品人妻66p| 久久久久久久久久性潮| 激情五月婷婷免费视频| 亚洲男人的天堂a在线| 99国内小视频在现欢看| 日韩中文字幕在线播放第二页| 91色老99久久九九爱精品| 亚洲视频在线观看高清| 中文字幕日韩无敌亚洲精品| 在线观看av亚洲情色| 黄色的网站在线免费看| 欧美黑人巨大性xxxxx猛交| 亚洲熟女综合色一区二区三区四区 | 中文人妻AV久久人妻水| 99热久久这里只有精品8| 国产精品久久久久久美女校花| 亚洲激情av一区二区| 精品久久久久久久久久久99| 国产一区二区欧美三区| 亚洲精品av在线观看| 九一传媒制片厂视频在线免费观看| 亚洲在线观看中文字幕av| 最新国产精品拍在线观看| 亚洲激情,偷拍视频| sejizz在线视频| 中国视频一区二区三区| brazzers欧熟精品系列| 欧美地区一二三专区| mm131美女午夜爽爽爽| 亚洲国产成人av在线一区|