久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

[ 4w字 ] JavaSE总结(基础+高级+多线程+面试题)

發布時間:2023/12/10 java 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [ 4w字 ] JavaSE总结(基础+高级+多线程+面试题) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

💟 JavaSE溫故而知新
每一個例子每一個圖都會讓你有新的理解。不論是小白初學還是復習用,都會有新的收獲。

文章目錄

  • 一、Java基礎
    • JDK、JRE、JVM
    • **基礎語法**
      • Java編碼規范
      • 1.注釋
      • 2.關鍵字
      • 3.數據類型
      • 4.變量和常量
      • 5.運算符
      • 6.流程控制
      • 7.方法(函數)
      • 8.方法與JVM結合分析
        • 嵌套調用分析
        • 遞歸調用分析
      • 9.數組
        • 數組的語法:
        • 數組的內存結構
        • 二維數組
    • **面向對象**
      • 1.定義一個Java類
      • 2.對象的創建和使用
        • 對象的創建:
        • 對象的使用
      • 3.變量的JVM分析
        • 簡單變量 VS 引用
        • 成員變量 VS 局部變量
      • 4.this
      • 5.面向對象的三大特性
        • 封裝
        • 繼承
        • 多態
      • 6.super
      • 7.JVM分析對象的創建過程
      • 8.單繼承
      • 9.static和final
        • 9.1 static靜態的
        • 9.2 final
        • 9.3 修飾符總結
      • 10.抽象類
        • 10.1 抽象的abstract
        • 10.2 依賴倒轉原則(弱耦合)
      • 11.接口
        • JDK1.8+接口的新語法
        • 開閉原則
        • 接口回調
      • 12.內部類
  • 二、**Java高級**
    • 1.Lambda表達式(語法糖)
    • 2.Object類和常用類
      • object類
      • 包裝類
      • 日期處理
    • 3.字符串處理String
      • 字符串中的常用方法
      • String常量池
      • StringBuilder
    • 4.集合(容器)
      • 集合的組成
        • :one:Collection
        • :two:List
        • :three:Set
        • :four:Map
      • 泛型
      • 線程安全的集合
      • 隊列Queue
    • 5.異常
      • 異常的分類
      • 異常對象的產生和傳遞
      • 異常的處理
        • 聲明拋出
        • 捕獲異常
    • 6.B IO
      • IO流的分類
      • IO編程的基本順序:
      • 字節流
        • 寫文件
        • 讀文件
        • IO流處理異常的方法
      • 文件拷貝
      • 緩沖字節流
      • 對象序列化
      • 對象的克隆
      • 字符流
        • Reader/writer
      • File類
    • 7.多線程(并發編程)
      • 如何創建線程?
        • 方法1(初始):
        • 方法2(老式):
      • 線程的基本狀態
      • 線程的等待
      • 線程池 JDK5
        • 線程池的編碼:
        • 用匿名內部類簡化編碼
      • Callable和Future接口
      • 線程的同步(重點)
        • synchronized
        • 線程的阻塞狀態
      • 線程安全的對象
      • 同步方法
      • 死鎖
    • 8.反射和設計模式
      • 類對象
  • 三、設計模式
    • 1.單例設計模式
    • 2.工廠模式
  • 四、**常見算法**
    • 1.漢諾塔問題
    • 2.排序
      • 1.冒泡排序
  • 五、**常見機試題**
  • 六、**常見面試題**

一、Java基礎

🐤 為了簡潔美觀的代碼而奮斗!

  • 可讀性
  • 可用性
  • 高效性
  • 可維護性
  • 可重用性
  • 可拓展性
  • 弱耦合性

JDK、JRE、JVM


JDK(java程序開發包)=JRE +Tools

JRE=JVM(虛擬機)+API

javac ``XXX.java 生成 .class文件

java XXX運行


基礎語法

Java編碼規范

  • 標識符命名規范:望文知意、大小寫規則(類名單詞首字母大寫、變量名或方法名首單詞小寫后面單詞首字母大寫、包名全小寫、常量名全大寫)
  • 縮進
  • 注釋規范:注釋量不低于100%
  • 1.注釋

    /*** @author 王澤* 這里是文檔注釋,可以與命令 javadoc 生成幫助文檔*/public class Jichu01 {public void zhushi(){//這是行內注釋System.out.println("第一節、注釋");} /* 這里是多行注釋這里是多行注釋這里是多行注釋*/}

    2.關鍵字

    (1)用于數據類型。
      用于數據類型的關鍵字有 boolean、byte、char、 double、 false、float、int、long、new、short、true、void、instanceof。
    (2)用于語句。
      用于語句的關鍵字有break、case、 catch、 continue、 default 、do、 else、 for、 if、return、switch、try、 while、 finally、 throw、this、 super。
    (3)用于修飾
      用于修飾的關鍵字有 abstract、final、native、private、 protected、public、static、synchronized、
      transient、 volatile。
    (4)用于方法、類、接口、包和異常。
      用于方法、類、接口、包和異常的關鍵字有 class、 extends、 implements、interface、 package、import、throws。
    還有些關鍵字,如cat、 future、 generic、innerr、 operator、 outer、rest、var等都是Java保留的沒有意義的關鍵字。
    另外,Java還有3個保留字:true、false、null。它們不是關鍵字,而是文字。包含Java定義的值。和關鍵字一樣,它們也不可以作為標識符使用。

    3.數據類型

    ?? 八大基本數據類型: // 1 字節 占 8位二進制位

    基本數據類型 | 存儲大小 | 取值范圍 | 默認值
    byte | 8 位有符號數 |-2^7?27 到 2^7-127?1 | 0
    short | 16 位有符號數 |-2^{15}?215 到 2^{15}-1215?1 |0
    int | 32 位有符號數 |-2^{31}?231 到 2^{31}-1231?1 |0
    long | 64 位有符號數 | -2^{63}?263 到 2^{63}-1263?1 |0L
    float | 32 位 | 負數 -3.402823e+38 到 -1.401298e-45,正數 1.401298e-45 到 3.402823e+38 0.0f
    double | 64 位 |負數 -1.797693e+308 到 -4.9000000e-324,正數 4.9000000e-324 到 1.797693e+308 0.0d
    char |16 位 |0-65535 |’\u0000’
    boolean |1 位 |true 和 false |false

    👀 注意:

    • 整數類型的直接量默認是 int 類型,如果直接量超出了 int 類型的取值范圍,則必須在其后面加上字母 L 或 l,將直接量顯性聲明為 long 類型,否則會導致編譯錯誤。

    • 浮點類型的直接量默認是 double 類型,如果要將直接量表示成 float 類型,則必須在其后面加上字母 F 或 f。將 double 類型的直接量賦值給 float 類型的變量是不允許的,會導致編譯錯誤。

    • 將小范圍類型的變量轉換為大范圍類型稱為拓寬類型,不需要顯性聲明類型轉換。將大范圍類型的變量轉換為小范圍類型稱為縮窄類型,必須顯性聲明類型轉換,否則會導致編譯錯誤。

    • 布爾類型不能轉換成其他基本數據類型,其他基本數據類型也不能轉換成布爾類型。

    • 字符類型與數字類型之間可以進行轉換。

      將數字類型轉換成字符類型時,只使用整數的低 16 位(浮點數類型將整數部分轉換成字符類型)。

      將字符類型轉換成數字類型時,字符的統一碼轉換成指定的數值類型。如果字符的統一碼超出了轉換成的數值類型的取值范圍,則必須顯性聲明類型轉換。

    特殊字符與轉義字符序列


    💯 例題:

    public static void main(String[] args) {int a =4;long b =5L;int c =(int)b;long d = a;char e = 'A';int f = e;System.out.println(c); //5System.out.println(d); //4System.out.println(f); //65/*Unicode 編碼方式char c ='A'; char c = 65; char c='/u0041';// 這三個都是相等的 都是A'A' -----65'a'------97'0'------48*/}

    對象數據類型:類,接口,數組

    4.變量和常量

    變量:數據類型 變量名 [=值];

    作用域:

    • 類變量(靜態變量) static
    • 成員變量(實例變量)
    • 局部變量(方法內)先賦值再使用

    常量 final MAX_A=10;

    Java變量和常量的儲存位置

  • 類常量和靜態變量:基本類型的常量在運行時常量池中,引用類型的常量(例如字符串)在運行時常量池中保存自堆中的直接引用。靜態變量也是(因為靜態變量必須在類加載的時候就初始化,因為它是可以通過類名訪問的)
  • 除靜態變量之外的類變量:類變量只有在對象創建之后才分配內存,所以基本類型的話在堆中的對象中,引用類型的話在堆中、堆中的對象保存引用
  • 局部變量:局部變量也是只有對象才有的,但是它在方法中,所以其實它是在棧上的:如果是基本類型,就保存在棧上;如果是引用類型,就保存在堆上,然后在棧中保存一個引用
  • 5.運算符

    • 算數運算符 + - * / % ++ --
    • 賦值運算符 =
    • 關系運算符 > < >= <= == != instanceof
    • 邏輯運算符 && || !
    • 位運算符& | ^ ~ >> << >>>
    • 條件運算符 xx? xx :xx
    • 拓展運算符 += -= *=...

    6.流程控制

    順序結構 程序默認

    選擇結構

    • if 單選擇
    • if-else 雙選擇
    • if-else if-else 多選擇結構
    • switch case

    循環結構

    • while
    • do…while
    • for
    • 增強for循環

    幾個關鍵字的使用 break 、continue

    break語句在switch中是用來中止case的。實際上break語句在for、while、do···while循環語句中,用于強行退出當前循環,為什么說是當前循環呢,因為break只能跳出離它最近的那個循環的循環體,假設有兩個循環嵌套使用,break用在內層循環下,則break只能跳出內層循環,如下:

    for(int i=0; i<n; i++) { // 外層循環for(int j=0; j<n ;j++) { // 內層循環break;} }

    continue語句只能用于for、while、do···while循環語句中,用于讓程序直接跳過其后面的語句,進行下一次循環。

    例:輸出10以內的所有奇數

    1 public class ContinueDemo {2 3 public static void main(String[] args) {4 int i = 0;5 6 while(i < 10) {7 i++;8 9 if(i%2 == 0) { // 能被2整除,是偶數 10 continue; // 跳過當前循環 11 } 12 13 System.out.print(i + " "); 14 } 15 } 16 17 }

    這里if條件判斷是否為偶數,如果是偶數則執行continue,直接跳出本次循環,不進行continue后的步驟(即不執行輸出語句),然后下一次循環為奇數,輸出i

    9*9乘法表

    public static void main(String[] args) {for (int i =1;i <= 9;i++){for (int j=1;j <= i;j++){System.out.print(j+"*"+i+"="+(i*j)+"\t");}System.out.println("");}}

    return語句可以從一個方法返回,并把控制權交給調用它的語句。

    7.方法(函數)

    完成特定功能的一部分獨立存在的代碼

    • 函數的定義

      修飾符 (static) 返回值類型 方法名(參數表){方法體; }
    • 方法的調用

      函數名(參數表)
    • 方法的參數

      (數據類型 形參名1,數據類型 形參名2)形參:是一個在方法內部有效的局部變量賦值的時候會發生在函數調用的時候,也就是實參 例如:static void xiaoWang(){xiaoliu("排骨",8); }static void xiaoliu(String eat,int x){System.out.println("今天給老公做了"+eat+",還買了"+x+"瓶啤酒")}
    • 方法的返回值

      return:程序流程會返回到方法的調用點。

    8.方法與JVM結合分析

    棧空間:用來存儲函數內部調用時產生的數據。(局部變量)

    棧幀:每次函數調用時的數據 局部變量表

    嵌套調用分析

    public static void main(String[] args){int a =10;m1(a); } static void m1(int b){m2(b); } static void m2(int c){int d = 20; }

    運行時JVM分析:


    局部變量隨棧幀共存亡

    遞歸調用分析

    當把一個大問題分解成若干個小問題,發現小問題的求解方式和大問題相同,這時候就可以用遞歸來解決。

    /*這樣會導致棧溢出*/ public static void main(String[] args){m1(); } static void m1(){m1(); }

    遞歸必備:回歸條件

    計算n的階乘

    package com.jichu;/*** @author 王澤* 計算n的階乘* n! = n* (n-1)!*/public class Fact {public static void main(String[] args) {System.out.println(fact(4));}/**計算n的階乘*/static int fact(int n){if (n==1){ return 1;}int result = n*fact(n-1);return result;}}

    計算斐波那契數列的第n項

    static int fobo (int n){if (n == 1){ return 0;}if (n == 2) {return 1;}return fobo(n-1) + fabo(n-2); }

    9.數組

    數組的語法:

    1??數組的定義:

    //數據類型[] 數組名;int[] a;

    2?? 定義后JVM不會為其分配內存,所以我們需要為數組分配空間

    ——隱式初始化

    a = new int[5]; JVM會自動給每個數據給一個默認值 0(數值類型)falseboolean) 空指針null(對象類型) ,不同的數據類型分配不同默認值。

    ——顯示初始化

    a = new int[ ]{5,6,8,9}; 數組長度由大括號里的數據決定。

    合并寫法:

    int[] a =new int [5]; //隱式int[] a = {5,6,8,9}; //顯示

    3?? 使用

    數組名[下標]

    ?? 常用數組操作

    1.查詢數組長度 數組名.length a.length

    2.遍歷數組 (按順序訪問數組中的所有元素)

    for(int i = 0; i<a.length;i++){操作..... }

    數組的內存結構

    public static void main(String[] args){int[] a = new int[5]; //只要有new 就是在堆空間開辟空間 }

    JVM中分析

    這個數組在堆中的空間是連續的。

    new int[5];就是開辟這些空間,然后將首地址賦值給a

    數組的空間在內存中是連續的

    • 數組的長度固定,不可改變
    • 數組的下標從0開始 (追求最快的尋址速度)
    • 查詢效率是最高的,增加元素或刪除元素是最低效率

    改變數組長度的方法

    • 不可能在原數組中改變
    • 只能創建一個新數組
    • a=b; 把新數組的地址給原數組
    • 再把原數組里的元素賦值到新數組b[i]=a[i];

    簡寫:java.util.Arrays.copyOf(原數組,新數組長度);

    多個數組變量中可以存儲相同地址

    package com.jichu;import java.util.Arrays;/*** @author 王澤*/public class ShuZu {public static void main(String[] args) {int[] a;a = new int[5];int[] d = new int[10];for (int i = 0; i < a.length; i++) {a[i]=i;System.out.println(a[i]);}System.out.println("-----------");a = d;System.out.println(a.length);System.out.println("------------");for (int i = 0; i < a.length; i++) {a[i]=i;System.out.println(a[i]);}}}

    二維數組

    int[][] a; //由若干個整形數組組成 a = new int[3][4]; // 長度為三

    二維數組的遍歷:

    for(int i = 0; i<a.length ; i++){for(int j=0; j<a[i].length ;j++){sout(a[i][j]+"\t");} }

    二維數組的賦值:

    int[][] a={{1,2,3,4},{5,6,7,8},{0,5,6,8}}
    • int[][] a =new int[3][]; //不指定二維數組長度的

      a[0] = new int[5];

      a[1] = new int[3];

      a[2] = new int[4];

    • int[][] a =new int[][4]; 這句話是錯誤的,不能空缺高維長度

    面向對象

    ?? 面向對象的思想

    世界是由對象組成,對象:一切客觀存在的事物。 # 1.對象的組成: - 屬性 對象有什么 - 方法 對象能做什么,行為 # 2.對象之間的聯系 - is a 繼承關系 - has a 關聯關系(一個對象成為另一個對象的屬性) - use a 依賴關系(一個對象調用另一個對象的方法) # 3.面向對象的思想 - 面對需求,我們先找出解決問題的對象,讓對象之間建立適當的關系。

    💻 面向對象的編程思想

    用計算機中的對象,模擬現實中的對象。

    用計算機中類型的概念,對應現實世界中的類的概念

    類:對象共性的抽象,人對一類事物的認識。 人(類)-李沁(對象)

    1.定義一個Java類

    成員變量與局部變量對比:(定義位置不同)

    • 成員變量有默認值 在對象創建的過程中,屬性會被自動分配到默認值
    • 成員比那里的作用范圍,至少是全類內部
    • 成員變量和局部變量可以同名,同名時局部變量優先訪問

    方法:行為(對象的功能) 函數

    方法聲明:

    // 修飾符(多個,順序不重要) 返回值類型 方法名(參數表)拋出的異常 public static void main(String[] args)

    方法實現:{ }

    • 構造方法 特殊的方法

      • 沒有返回值類型
      • 方法名必須和類名相同
      • 不允許手工調用,在對象的構造過程中自動調用
      • 如果不寫,會自動生成無參構造
    • 方法的重載

      一個類的同一個行為,由于參數的不同所造成的實現差異,對對象的調用者屏蔽

      方法名相同,參數表不同(只有參數名不同不構成重載

      理解:例如我們有一個人的類,類里有吃的方法,根據方法的重載傳不同的食物對應不同的吃法。

    2.對象的創建和使用

    對象的創建:

    一個類就相當于自定義的數據類型,創建對象就像基礎數據類型一樣的聲明方法,只不過要用new來創建。

    通過類創建對象new

    new 類名(); //() ---> 構造方法

    結合JVM對象的創建過程

  • 分配堆空間 屬性 被賦值為 默認值
  • 初始化屬性 屬性 被賦值為 初始值
  • 調用構造方法 (通常構造方法用來給屬性賦值)屬性 通常被賦值為 構造參數
  • 對象的使用

    //類 對象名 = new 類();Girl baby = new Girl(18,"D+"); //baby 存貯對象的地址 baby.屬性; baby.方法();

    3.變量的JVM分析

    簡單變量 VS 引用

    看變量類型

    • 8種基本類型的變量 簡單變量 存在棧中,存值
    • 引用類型(對象,數組…) 存在棧中的是地址,對象存在堆中

    成員變量 VS 局部變量

    看定義的位置

    • 局部變量:函數內部定義,存在棧空間
    • 成員變量:函數外部定義,存在堆空間

    案例分析:

    4.this

    特殊的引用,代表對象自身,或者當前對象

    this.屬性/方法 代表調用當前對象的屬性/方法

    • 可寫可不寫
    • 必須寫的時候:局部變量與成員變量同名的時候,并且想訪問成員變量
    調用構造方法可以直接寫this.() 調用本類其他構造方法 必須是寫在構造方法的第一行

    5.面向對象的三大特性

    封裝

    任何對象都會有一個明確的邊界,這個邊界對對象內部的數據起到保護隔離的作用。

    訪問級別訪問控制修飾符同類同包子類(不同包)不同包(其他類)
    公共public允許允許允許允許
    受保護protected允許允許允許不允許
    默認缺省修飾符允許允許不允許不允許
    私有private允許不允許不允許不允許

    屬性設置為private,為屬性提供公開的setXXX 和getXXX方法

    繼承

    is a 關系

    Class A extends B

    結合jvm分析:

    age屬性如果是私有的不可以訪問。

    3?? 方法的覆蓋(方法的重寫)

    子類用自己的方法實現,替換掉父類繼承給他的方法實現。

    語法要求:

    • 方法名相同
    • 返回值類型相同
    • 參數表相同
    • 子類和父類相比,訪問修飾符只能更寬或相同

    多態

    1?? 基礎語法

    子類對象可以賦值給父類引用

    Animal a;- 編譯時,只能確定a中存儲的必然是Animal對象 或者是Animal的某個子類對象- 運行時,a中的對象類型才會被確定

    ?? 引用類型 a = new 對象類型(); 對象類型可以是引用類型的子類

    編譯看左變,運行看右邊(原理):

    ?? 只能調用引用類型中聲明的方法

    ?? 通過引用找到對象,方法的結果是對象中的方法運行時,根據對象類型調用子類覆蓋之后的方法

    2?? 強制類型轉換(Java是強類型語言)

    上面的存在問題如果我想調用m3(),但是因為引用類型是A,所以我們不能調用。如何解決呢?

    引用類型為B,B中還得裝B或者B的子類的對象,但是A是父類。所以引出下面原則:

    • 子類引用可以直接賦值給父類引用

      Animal a = new Dog();

    • 父類引用賦值給子類引用的時候必須強轉

      Dog d = (Dog) a;

    但是如果Animal a = new Cat(); ,那么運行的時候會拋出類型轉換錯誤。為什么會強轉失敗呢??因為對象類型是無法改變的,我們改變的只是引用。

    總結:

    1.子類引用可以直接賦值給父類引用

    2.父類引用可以通過強制類型轉換賦值給子類引用,保證編譯通過,運行時,可能發生類型轉換異常,對象類型不變,無法通過強轉改變對象的類型

    3.沒有繼承關系的兩個類的引用之間,不能賦值,即使強轉也不行,編譯不可能通過。

    3?? 引出另一個問題?

    Animal a = new Dog(); Person p =(Person) a; //為什么這句話是錯的?

    如果a中裝的是Person 的子類對象,賦值就可能成功;

    實際上a中裝的一定是Animal 或Animal 子類對象

    由于Java 是單繼承語言,Animal 的子類一定不是Person的子類,所以肯定不能成功。不可能有一個對象既能裝a又能裝p

    4?? instanceof 關系運算符

    用在強轉之前,避免類型轉換錯誤

    引用 instanceof 類名 布爾表達式

    判斷 引用中的對象 和 類名 是否兼容

    Animal a = new Dog(); a instanceof Dog // true a中引用的對象是不是dog?? a instanceof Cat //false a instanceof Animal //true

    在強轉之前先用instanceof判斷一下

    if(a instanceof Dog){Dog d = (Dog) a; }

    5?? 多態的典型應用

  • 把不同的子類對象統一放在父類數組中,屏蔽了不同子類的差異。

    Animal[] a = new Animal[5]; a[0] = new Dog(); a[1] = new Cat(); a[2] = new Tiger(); a[3] = new Wolf(); a[4] = new Cock();- for(int i =0; i < a.length ; i++){a[i].eat(); }
  • 把多態用在方法的參數上

    // m(A a) m 方法允許使用A或者A 的某個子類對象作為實參 public static void main(String[] args){feed(new Dog());feed(new Cat()); } static void feed(Animal a){a.eat(); }
  • 把多態用在方法的返回值上

    public static void main(String[] args){Animal a= getAnimal(); } static Animal getAnimal(){return new Cat(); }
  • 6.super

    • 引用:指向父類對象

      可以訪問父類的屬性(少見)調用父類被覆蓋的方法(常見)

    • 用在構造方法中,構造父類對象

      1)程序員主動在構造方法第一行寫了super(…)

      2)程序員主動的在構造方法的第一行寫了this() ,那么真正第一個執行的還是super

      3)構造方法第一行不是super也不是this 那么編譯器會自動為該構造方法第一行添加super

      ====>任何一個構造方法第一行一定是super()

      最先執行的一定是構造父類對象

    構造子類對象,必須先構造父類對象,如果代碼沒有執行調用父類哪個構造方法,默認調用父類無參構造方法。

    建議給每一個類都寫一個無參構造。

    7.JVM分析對象的創建過程

  • 分配堆空間 一次性分配好
  • 創建父類對象
  • 初始化屬性
  • 執行構造方法中的剩余語句
  • A ---- B ------ C (A是爺爺B是爸爸C是兒子)

    創建C對象 --先分配空間

  • 初始化A類的屬性
  • 執行A類的構造方法
  • 初始化B類的構造方法
  • 執行B類的構造方法
  • 初始化C類的屬性
  • 執行C類的構造方法
  • 8.單繼承

    一個類只能有一個直接父類

    為了保證類之間會形成簡單的樹狀結構。

    但是java可以通過其他一些方式實現多繼承例如接口

    9.static和final

    private,static,final都不能和abstract同時出現

    9.1 static靜態的

    • 成員變量(static修飾的成員變量在內存中有獨自一塊,屬于類)

      • 靜態屬性,全類公有,不屬于任何對象。
      • 可以直接用 類名.屬性 來訪問
    • 方法(靜態方法)

      • 可以直接用類名調用
      • 靜態方法只能訪問類的靜態成員
      • 不能出現this
      • 子類可以用靜態方法覆蓋父類的靜態方法 沒有多態
    • 初始代碼塊

      • 初始代碼塊:初始化過程中會執行,先于構造方法執行
      • 靜態初始代碼塊:在類加載的時候執行一次
      • 類加載:讀取.class文件并保存到jvm中的過程,在jvm運行的過程中,一個類只會加載一次

      ? 什么時候會類加載?

      第一次創建該累的對象或第一次訪問類的靜態成員 或 加載子類時,也可能是需要先加載父類。

      如果僅僅是聲明類的引用,不需要進行類加載

      ? 類加載的過程?

    • 如有必要,先加載父類
    • 為類的靜態屬性分配空間,分配默認值
    • 按照代碼的順序初始化靜態屬性或是運行靜態初始代碼塊。

    9.2 final

    • 類 final不能被繼承

    • 方法 final修飾的方法不能被子類覆蓋

    • 變量 成員變量+ 局部變量

      final修飾變量 ===> 常量。只有一次賦值機會。

      當final修飾成員變量的時候,系統就不會提供默認值,就必須在初始化屬性或構造方法中賦值一次

    9.3 修飾符總結

    10.抽象類

    10.1 抽象的abstract

      • 抽象類只能聲明引用,不能創建對象
      • 供子類繼承
      • 例如動物,交通工具 他們的對象都是其子類的對象
    • 方法

      抽象方法沒有方法體只有聲明,只聲明了對象具有什么功能,沒有定義對象如何實現該功能。

    • 抽象類和抽象方法的關系

      • 如果一個類具有抽象方法,那么這個類就必須是抽象類
      • 抽象類中可以有或沒有抽象方法
    • 子類必須==實現(特殊的重寫)==父類中的抽象方法(不想成為抽象類的話)

    10.2 依賴倒轉原則(弱耦合)

    繼承與多態與抽象的組合延伸

    優化后:

    抽象類可以作為標準,約定了對象應該具備的方法 規格

    隔離了標準的使用者 和標準的實現者 從而實現弱耦合

    11.接口

    特殊的抽象類 interface

    • 所有的方法都是 公開抽象方法 public abstract
    • 所有的屬性都是公開靜態的常量 Public static final
    • 沒有構造方法

    實現接口:implements

    接口與抽象類的區別:

    • 一個類可以在繼承另外一個類的同時,實現多個接口
    • 接口之間可以定義多個繼承關系
    interface IE extends IC,ID{}class MyClass extends ClassF implements IA,IB{}

    多繼承下的多態

    JDK1.8+接口的新語法

    利用接口實現多繼承。java中的類之間是單繼承。

    類:一個累的主要共性 放在父類中

    接口:一個類的次要共性,附加信息。

    例如手機實現相機游戲機兩個接口。

    ? 由于接口中都是抽象方法,所以接口作為次要類型,卻不能把方法實現繼承給實現類。

    JDK8版本中 接口的語法

  • 接口中可以定義方法的默認實現,手動加上修飾符default
  • 接口中還可以定義靜態方法 默認public
  • JDK9版本中 接口還可以定義私有方法。

    開閉原則

    一個軟件要對修改關閉,對擴展開放,提高程序的可維護性。

    造成可維護性低下的原因是不斷修改代碼,不改代碼,通過更換,拓展軟件組件來滿足需求的變化。

    例如我們可以用多態,然后覆蓋原有方法。

    接口回調

    我們要讓代碼變通用,我寫類,被別人調用。

    案例:

    interface Callback{ //回調方類A的接口boolean Consider(int money); //思考是否付錢,就是方法cvoid PayFor(int money); //付錢,就是方法c} class TaxiDriver{ //調用方類Bpublic int Answer(Callback callback){ //回答多少錢,就是方法bSystem.out.println("去那的話要100塊");if(callback.Consider(100) == true){callback.PayFor(100);}return 100;} } class Passenger implements Callback{ //回調方類A@Overridepublic boolean Consider(int money) {boolean result = true;if(money > 80){System.out.println(money+"太貴了,您看80行不行?");result = false;}return result;}@Overridepublic void PayFor(int money) {System.out.println("好的,這是您的"+money);}public void TakeTaxi(TaxiDriver td){ //詢問多少錢,就是方法aSystem.out.println("師傅,去天一多少錢?");td.Answer(this);} } public class CallBackTest { @Testpublic void test(){TaxiDriver td = new TaxiDriver();Passenger passenger = new Passenger();passenger.TakeTaxi(td);} }

    12.內部類

    在類的里面可以再定義一個類。

    還有一個匿名內部類。

    編譯后會形成獨立的.class文件,與外部類分別獨立存在

    1?? 成員內部類?

    可以訪問外部類的私有成員

    用外部類名.this.xxx 訪問外部類的屬性或方法

    2?? 靜態內部類?

    只能訪問外部類的靜態成員

    3?? 局部內部類

    定義在方法內部;與局部變量有相同的作用范圍。

    可以訪問外部類的私有成員

    可以訪問外部類的有效的局部變量,編譯器會將該變量變為final,其值不能給變(只能訪問外部類的局部常量)

    4?? 匿名內部類

    • 特殊的局部內部類
    • 必須用在繼承某個類,或實現某個接口
    • 只會創建一次對象
    • 可以訪問外部類的私有成員和局部變量
    • 不能寫構造方法(因為沒有類名)只有默認公開無參構造方法
    new 接口名(){接口實現類的代碼} 用一個匿名的局部內部類實現接口,同時創建了實現類的一個對象interface IA{void m1();void m2(); } new IA{public void m1(){}public void m2(){} }

    匿名內部類的優點:不會打斷程序的思路。不需要寫實現類再創建對象。大量的接口回調都會使用匿名內部類。

    缺點:降低代碼的可讀性


    二、Java高級

    💃 高級篇,很重要!!面試常客!!!

    1.Lambda表達式(語法糖)

    # 代碼的參數化-----> 形式上,代碼可以直接作為參數傳遞。 # 只能用于函數式接口 # 增加可讀性

    本質上就是匿名內部類的新穎寫法,如果一個接口中只有一個抽象方法,這個接口稱為**“函數式接口”**。

    1??.語法:

    # (參數表) ->{方法實現} //利用匿名顳部類創建接口的實現類對象 - 1.參數表中,參數類型也可以省略 - 2.參數表中,如果只有一個參數,圓括號也可以省略 - 3.如果方法的實現只有一條語句(無返回值),‘{}’也可以省略 - 4.如果方法實現只有一條語句,且該方法有返回值,且只有return語句,那么return和{}都可以省略。

    例如:

    Test 是一個interface,里面僅有一個方法test(Student s);/*1.匿名內部類初始寫法*/ Test t1 = new Test(){public boolean test(Student s){return s.getAge()==18;} }/*2.簡化寫法*/ Test t2 = (Student s)->{return s.getAge()==18;};/*3.簡化參數列表*/ Test t3 = s->{return s.getAge()==18;};/*3.簡化方法體*/ Test t4 = s->s.getAge()==18;/*4.在參數中使用*/ /*4.1 以前內部類的使用方法*/ stu = find(ss,new Test(){public boolean test(Student s){return s.getAge()==18;}});/*4.2 lambda 表達式參數使用*/stu = find(ss, s->s.getAge()==18);

    2.Object類和常用類

    💃 每一個開發者都在改變世界。

    object類

    java中所有類的父親 如果一個類沒有指定父類,默認繼承Object類。

    根據多態,如果我們創建一個Object類型的引用,那么可以代表任何對象!

    🚆Object o = 任何對象 不包括8中基本類型

    🚋 Object類中定義的方法是所有Java對象都具有的方法(public 或 protected)【11個方法】

    下面介紹Object中的方法:

    方法名作用用法
    getClass()獲得對象的實際類型o1.getClass()==o2.getClass()判斷o1和o2類型是否相同
    finalize()對象垃圾回收時調用對象的全生命周期里最后一個方法就是finalize()。編碼中沒啥用😂
    toString()返回對象的字符串形式通常重寫此方法,打印o就是打印o.toString()
    equals()判斷兩個對象的內容是否相同首先重寫equals方法,equals(e1.equals(e2));
    hashCode()返回對象的哈希碼

    注釋:

    • getClass 與 instanceof 的區別:instanceof判斷對象是不是某一個類型。例如 a instanceof Animal 不知道是狗還是貓。

    • 垃圾回收:Java中有垃圾自動收集的機制,由JVM中的垃圾收集器自動回收垃圾對象,釋放對應的堆空間.

      ? 什么對象會被認為是垃圾對象??

      答:零引用算法,如果一個對象沒有任何引用指向它,則這個對象就是垃圾對象。

      ? 垃圾對象何時被回收?

      答:在不得不回收,內存耗盡,無法創建新對象時候,才會一次性回收之前被認定為垃圾對象的對象。

    • System.gc(); 喚醒垃圾收集器,有延遲回收策略,sun公司JDK可能不會啟動。就像是你媽叫你去洗碗,你可以不去,也可以去,僅僅是告訴你。

    • toString 返回對象的字符串形式,通常重寫toString()

    • equals() 與 == 的區別就是,==比的是對象的地址,而equals() 才是比較的真實的對象。

      😲 引用之間用==判斷的是地址是否相同(是否指向同一個對象)

      🌏 用equals() 判斷得是對象內容是否相同

      Object類中的equals方法,依然比較地址,如果我們想讓其比較對象內容,我們需要重寫

      //this 和 o對象比較內容 public boolean equals(Object o){//判斷this和o是不是同一個對象if(this == o) return true;//判斷 o是不是 nullif(o == null) return false;//判斷this和o是不是同一個類if(this.getClass() != o.getClass()) return false;//對o做強制類型轉換,變為this類型Employee e = (Employee)o;//逐個比較屬性,基本數據類型用==比較,對象類型用equals比if(this.age == e.age && this.name.equals(e.name)) return true;else return false;//注意這個不是遞歸,兩個equals不是一個,是字符串中的equals }

    包裝類

    Object o = 任何對象,但是基本數據類型不屬于對象的范圍,所以Object o = 10 是錯誤的!所以我們需要將基本類型轉換。

    為8中基本數據類型 各自提供一個類。這時候Object o = 任何數據了。

    基本類型包裝類
    byteByte
    shortShort
    intInteger
    longLong
    floatFloat
    doubleDouble
    charCharacter
    booleanBoolean

    1?? 基本類型和包裝類之間的轉換

    • int——>Integer

      /* 不一定要用構造方法獲得對象,可以用靜態方法,用構造方法會造成內存的浪費。而且Integer類提供的靜態方法還能直接返回Integer的;*/Integer a = Integer.valueOf(i); Integer b = Integer.valueOf(i); // a==b

      Integer.valueOf(i); 獲得一個Integer對象

      Integer類內部會預先創建-128 ~ 127 256個對象,如果在這個區間內,不會產生新對象。

    • Integer——>int

      a.intValue(); //拆箱

    • 從jdk5開始,自動裝箱拆箱,由編譯器自動處理基本類型和包裝類型的轉換。

    2?? 基本類型和String之間的轉換

    • int——> String

      int i =12;

      String s=i+""; 或者 String s=String.valueOf(i);

    • String——>int(重點)

      String s =“1234”;

      int i = Integer.parseInt(s);

    3?? 包裝類和String之間的轉換

    • Integer——>String

      Integer a = 1234;

      String s = a.toString();

    • String——>Integer

      String s =“1234”;

      Integer a = Integer.valueOf(s);

    案例:統計成績,為了區分0分與缺考。

    class Student{Integer score =null;/*對象類型默認是null,如果不給賦值成績那就是null,那就是缺考。如果是0分那么就是0;*/ }

    日期處理

    util包里有一個日期類Class Calendar

    3.字符串處理String

    凡是沒有數值含義的屬性都不要做成數值,例如手機號。

    public final class String我們不能更改,只能用。本質上一個字符串就是一個字符數組的封裝。

    字符串中的常用方法

    1?? 與字符數組相關的方法

    • String(char[] cs) 利用字符數組cs來構造String

    • toCharArray()把字符串轉正字符數組

      把字符串全部變為大寫:因為 大寫+32=小寫String str="HelloWorld";char[] cs = str.toCharArray();for(int i =0; i<cs.length; i++){if(cs[i] >= 'a' && cs[i] <='z'){cs[i] -= 32;}String str2 = new String(cs);System.out.println(str2);}

    2??基礎的方法

    • toUpperCase(); //轉大寫
    • toLowerCase(); //轉小寫
    • charAt(int index); //獲得字符串下標
    • length() //獲得字符串的長度
    • trim() //去掉字符串前后的換行符和空格符
    • equals() //比較兩個字符串中的內容
    • equalsIgnoreCase(String str) //判斷當前字符串和str內容是否相同,忽略大小寫。例如驗證碼驗證的時候。

    3?? 與子串相關

    • starsWith(String str) / endsWith(String str) //判斷當前字符串是否以str這個子串開頭 /結尾
    • contains(String str) //判斷當前字符串是否包含子串str s.contains("BC");s中有沒有BC子串
    • indexOf(String str) 返回str子串在當前字符串中第一次出現的下標,不存在返回-1
    • substring(int fromIndex) 找出當前字符串從fromIndex開始,到結尾的子串
    • substring(int fromIndex,int endIndex) 返回從from到end的子串
    • replace(String str1,String str2) 將字符串中str1替換為str2
    • split(String str) 以str為分隔符,將字符串切割為String[]

    String常量池

    把相同內容的字符串只保留一份。

    ?? 引入字符串常量池:

    一個String對象的內容是不可變的,只有不可變才可以讓多個引用指向同一個對象。如果更改就創建新的對象,引用指向新的。

    串池:字符串常量池,用來存放字符串對象,以供多個引用共享(通常存儲在方法區)

    創建一個String對象,先去字符串常量池里找,有的話直接引用賦值,沒有的話在串池創建。

    如果有new 那么一定是在堆空間中分配內存!

    intern() 返回字符串在串池中的對應字符串地址

    我們如果用數組的方式創建了String,肯定用到了new String() 這時候肯定在堆空間中,我們可以用intern()來找串池對象地址,然后把引用賦值。s4 = s4.intern();

    String s3 =new String(cs).intern();

    StringBuilder

    當字符串的內容改變時,只會創建新的對象。

    顯然,費時且占地兒。

    用StringBuilder完成字符串的拼接,內容變化時,不會產生新的對象

    /*案例:統計兩種方式的運行時間比較*/ static long stringAppend(){long t1 = System.nanoTime();String s= "";for(int i =1; i<= 100000; i++){s +="A";}long t2 =System.nanoTime();return t2-t1; }/*StringBuilder拼接*/ static long stringBuilderAppend(){long t1 = System.nanoTime();String s= "";StringBuilder sb = new StringBuilder(s);for(int i =1; i<=100000; i++){sb.append("A");}s = sb.toString();long t2 =System.nanoTime();return t2-t1; }

    草,這個結果太慢了,創建對象,垃圾回收太慢了(主要是垃圾回收):

    明顯StringBuilder比加的方式快太多了。

    4.集合(容器)

    集合:用來存儲對象的對象(容器) 。在生活中例如書架…

    Object[] 最最最基礎的集合。但是數組有局限性。

    1.數組長度是固定的,數組擴充時需要復雜的拷貝操作。

    2.數組在元素的插入和刪除時使用不方便

    集合:對基礎數據結構的封裝,由Java類庫提供。

    集合的組成

    1??Collection

    • 接口特點:元素是對象(Object)

    • 常用方法

      方法說明
      add(Object o)把對象o放入當前集合
      addAll(Collection c)把集合c中所有的元素放入當前集合
      clear()清空集合
      contains(Object o)判斷集合中是否存在元素o
      remove(Object o)在當前集合中刪除元素o
      size()獲取集合的長度
      toArray()將當前集合轉換為Object[]
      forEach()遍歷當前集合
    • 遍歷

    • 迭代遍歷(陳舊了)

      /** *Iterator 迭代器 * hasNext() 看集合中還有沒有下一個元素 *next() 從迭代器中拿出下一個沒被遍歷的元素 */ Iterator it =list.Iterator(); while(it.hasNext()){Object o = it.next();String s = (String)o;System.out.println(s.toUpperCase()); }
    • for-each jdk1.5

      /** *把list中的每個元素放在o里 */ for(Object o : list){String s=(String)o;System.out.println(s.toUpperCase()); }
    • 自遍歷 jdk1.8

      class MyConsumer implements Consumer{public void accept(Object o){System.out.println(o)} } list.forEach(new MyConsumer()); //通用的邏輯//=====>終極版list.forEach(o ->System.out.println(o)); //list.forEach(System.out::println); 方法引用
    • 實現類

      沒有直接實現類,但是它的子接口有實現類

    2??List

    Collection的子接口

    • 接口特點:元素是有順序,有下標的,元素是可以重復的。

    • 常用方法

      方法說明
      add(int pos,Object o)把元素o插入到當前集合的pos下標上
      get(int pos)獲得集合中pos下標的元素
      indexOf(Object o)獲得元素o在集合中的下標,如果不存在,返回-1
      remove(int pos)刪除集合中pos下標的元素
      set(int pos,Object o )把元素o設置到當前集合的pos下標上
    • 遍歷

    • 下標遍歷

      for(int i = 0;i<list.size();i++){Object o =list.get(i);String s =(String) o;System.out.println(s.toUpperCase); }
    • 迭代遍歷

    • for-each

    • forEach();

    • 實現類

      1.ArrayList 底層用數組實現 查詢快 ,增刪慢

      2.LinkedList 用鏈表實現 查詢慢,增刪快

      3.Vector 數組實現 1.0古老版本(舍棄)

      與ArrayList的區別:Vector線程安全(不安全好),并發效率低

      例如高速公路一直發生事故,那就限制路上只能有一個車。這就是Vector線程安全的樣子。

    3??Set

    Collection的子接口

    • 接口特點:元素是無順序,無下標的,元素的內容不可重復

    • 常用方法:無特有,Collection中的方法

    • 遍歷:

    • 迭代遍歷
    • for-each遍歷
    • forEach();
    • 實現類

      存儲原理:不同的實現類,有不同的方法保證元素內容不同

    • HashSet(散列表)查詢也快,增刪也快,占據空間稍大。為了最好的利用,我們要讓其均勻分配。盡量保證不同對象返回不同整數。

      底層鏈表數組,不按下標順序存放,是根據hashCode() 與長度取余,放到相應的地方。

    • 假如遇到相同的怎么辦???

      會先對s3和s4進行內容的比對,如果equals為true,就拒絕加入。如果內容不相同,s4也會放在2下標,并且s3和s4形成鏈表

      現在問題來了:哈希碼不同,即使內容相同也會放入set集合里。這就不能構成不重復。

      解決辦法就是我們重寫hashCode(),讓內容相同的哈希碼也相同。

      public int hashCode(){return age; //例如用年齡作為哈希碼,那么兩個人就會比較return name.hashCode()+age; }

      如果將自定義的對象放入HashSet,為了保證內容不重復,我們需要覆蓋equals對象,保證內容相同的對象返回true;還要覆蓋hashCode方法,保證內容相同的對象返回相同的整數,盡量保證不同對象返回不同整數。

    • LinkedHashSet HashSet的子類,元素遍歷的時候可以按順序遍歷

    • TreeSet 自動對元素進行排序,根據排序規則過濾重復元素(很少用)

    4??Map

    • 接口特點

      元素是鍵值對 鍵對象:key 值對象:value

      key:無順序,內容不可重復

      value:可重復

    • 常用方法

      方法說明
      put(k key,V value)把key-value鍵值對放入Map,如果key已經存在,新的value覆蓋原有的value
      V get( k key)查找key所對應的value
      containsKey(K key)判斷Map中是否存在key這個鍵
      containsValue(V value)判斷Map是否存在value這個值
      size()返回Map的長度,鍵值對的個數
      remove(K key)刪除key 所對應的鍵值對
      keySet()返回Map中所有key的集合 就是一個Set
      values()返回map中所有值得集合 就是一個Collection
    • 遍歷

    • keySet()

      Set<Integer> ks = map.keySet(); for(Integer key :ks){String calue = map.get(key);System.out.println(key +":"+value); }
    • values() 遍歷所有的值組成的集合

      Collection<String> vs = map.values(); for(String value :vs){sout(value); }
    • 自遍歷

      map.forEach( (k,v)->System.out.println(K+"---"+v) );
    • 實現類

    • HashMap

      與hashSet類似,就是hashMap有值。 鏈表數組,高版本中修改了,用的紅黑樹。在原始基礎上做了優化。

    • linkedHashMap HashMap的子類,維護鍵值對的添加順序

    • TreeMap 自動對key做排序

    • Hashtable 1.0線程安全 慢 不允許用null作為key 或value

    • Properties Hashtable的子類 key和value都是string,通常用語早起的配置文件處理

    總結圖:

    藍線表示學習的時候對比記憶。

    泛型

    集合存儲是Object,無法對元素的類型做出約束,導致類型不安全。

    利用泛型,可以預定集合中元素的類型。

    interface A <T,V>{void m1(); } /*使用的時候*/ class B implements A<Double , String>{/*誰使用,誰指定*/ } --------------------------------------------------------------集合中使用泛型: interface LIst<E>{void add(E o);E get(int pos); } List<String> ls=new ArrayList<String>(); ls.add("abc"); String s=ls.get(0);

    LIst ls = new ArrayList();

    必須:Type1==Typ2

    List ls = new ArrayList();

    既然前后必須一致,那么后面可以省略;

    LIst ls = new ArrayList<>(); Jdk7

    線程安全的集合

    ArrayList 所有方法都不是同步方法。

    Vector 所有方法都是同步方法。

    1?? ConcurrentHashMap?

    如何既保證線程安全,又保證并發效率很高?

    JDK7 以前,采用分段鎖。控制鎖的力度,把Map分為16個片段,針對每個片段加鎖。

    (舉例:map是一個大廁所,有很多小隔間,一個人進去直接把大門鎖了,顯然影響效率,而ConcurrentHashMap就相當于鎖小隔間的門,只會鎖其中的一個片段。)

    JDK8以后,采用CAS算法(比較交換),無鎖算法,存儲效率非常接近于HashMap.

    2?? CopyOnWriteArrayList 永遠不會改變原始集合中的數據

    適用于讀操作。并發效率接近于ArrayList,線程安全

    • 讀操作:獲取集合的數據(不需要加鎖)
    • 寫操作:改變集合的數據( 復制新的集合來實現寫,效率低 )

    3??CopyOnWriteArraySet 原理和CopyOnWriteArrayList一致

    隊列Queue

    隊尾進,對頭出。

    1??LinkedList 同時也實現了隊列接口

    Queue<String> queue = new LinkedList<>();

    線程不安全的類。

    2?? ConcurrentLinkedQueue

    線程安全的 CAS無鎖算法

    BlockingQueue 阻塞隊列,隊列的子接口:當隊列為空的時候,從隊列中取元素的線程會阻塞,而當隊列滿的時候,向隊列中添加元素的線程會阻塞

    • 有界隊列:ArrayBlockingQueue有上限,存在滿的問題,當隊列滿的時候,添加元素線程會阻塞
    • 無界隊列:LinkedBlockingQueue

    集合總結:

    5.異常

    提高程序的容錯性:解決程序運行時的問題

    異常的分類

    避免異常:盡可能使異常不出現,不發生

    處理異常:當異常發生時,應對這種異常

    Throwable 所有異常的父類

    ? |- error 錯誤 嚴重的底層錯誤,不可避免 無法處理

    ? |- Exception 異常 可以處理

    ? |- RuntimeException 子類 運行時異常 未檢查異常 可以避免(空指針、數組下標越界、類型轉換異常) 可以處理可以不處理

    ? |-非 RuntimeException子類 已檢查異常 不可避免,需要處理異常

    異常對象的產生和傳遞

    異常對象的產生:

    throw 異常對象:拋出一個異常

    拋出異常:方法以異常對象作為返回值,返回等同于return

    后面的語句就不打印了

    異常對象的傳遞

    沿著方法調用鏈,沿著方法的調用鏈,逐層返回,直到JVM

    這是中止運行,jvm會顯示異常名,異常內容和異常路徑

    自定義異常:

    如果想寫已檢查異常需要extends Exception

    如果想寫未檢查異常需要extends RuntimeException

    異常的處理

    聲明拋出

    public void method() throws IOException

    throws 異常類名1,異常類名2,…異常類名n

    意思:本方法中出現IO異常,我不做任何處理,拋給上層調用處理!

    方法覆蓋時,子類不能比父類拋出種類更多的異常

    捕獲異常

    try{語句1語句2...//遇到異常 去catch處理 } catch(異常類型 e){} catch(異常類型 e){e.printStackTrace();//打印異常對象的棧追蹤信息 } finally{這里面的無論有沒有異常都運行 } ......

    可以同時捕獲父類異常和子類異常,但是必須先捕獲子類異常,再捕獲父類異常。

    Java中,有三種try-catch結構:

    try{} catch(){}try{} catch(){} finally{}try{} finally{} //無法捕獲異常,利用finally必須執行的特點完成特定操作

    6.B IO

    Java程序的輸入和輸出

    IO流的分類

    1?? 流的概念:用來傳遞東西的對象

    2?? 流的分類:

    • 流的方向:輸入流(讀取數據)/輸出流(寫數據)

    • 數據單位: 字節流(以字節為單位,可以處理一切數據)

      字符流(字符為單位 = 2字節 ,用來處理文本數據)

    • 按照流的功能:

      節點流:實際負責數據的傳輸

      過濾流:為節點流增強功能

    IO編程的基本順序:

  • 創建節點流
  • 構造過濾流
  • 使用過濾流
  • 關閉外層流
  • 字節流

    InputStream :字節輸入流 抽象類,字節流的父類

    OutputStream: 字節輸出流 抽象類,字節流的父類

    子類:文件字節流

    • FileInputStream/FileOutputStream

    寫文件

    /*輸出流*/ public class IOStream {public static void main(String[] args) {try {OutputStream outputStream = new FileOutputStream("a.txt");outputStream.write('A'); //向a.txt中寫一個AoutputStream.close(); //關閉流(這個不該寫在這里!后面有講)} catch (FileNotFoundException e) {System.out.println("文件沒找到");} catch (IOException e) {e.printStackTrace();}} }

    OutputStream outputStream = new FileOutputStream("a.txt",true);追加的方式來打開流

    如果wirte(‘王’);漢字已經超過了字節的范圍

    讀文件

    先不考慮異常的情況下讀文件:

    public class DuFile {public static void main(String[] args) throws IOException {InputStream inputStream = new FileInputStream("a.txt");while(true){int a = inputStream.read();if(a == -1){break;}System.out.println((char) a);}inputStream.close();}}

    IO流處理異常的方法

    常規處理:

    public class IOStream {public static void main(String[] args) {OutputStream outputStream = null;try {outputStream = new FileOutputStream("a.txt",true);outputStream.write('D'); //向a.txt中寫一個A} catch (IOException e) {e.printStackTrace();} finally {if (outputStream != null){try {outputStream.close(); //關閉流} catch (IOException e) {e.printStackTrace();}}}} } 代碼缺點:太多,麻煩 jdk1.7 提供了 try-with-resource

    try-with-resource:帶資源的都需要關閉,一定在finally中。

    try(定義資源 必須是實現類 AutoCloseable接口的對象){ 代碼} catch(Exception e){} //定義在try里的資源會自動關閉

    寫文件異常處理寫法:

    public class IOStream {public static void main(String[] args) { // OutputStream outputStream = null; // try { // outputStream = new FileOutputStream("a.txt",true); // outputStream.write('D'); //向a.txt中寫一個A // } catch (IOException e) { // e.printStackTrace(); // } finally { // if (outputStream != null){ // try { // outputStream.close(); //關閉流 // } catch (IOException e) { // e.printStackTrace(); // } // } // }try(OutputStream outputStream = new FileOutputStream("a.txt",true)){outputStream.write('A');} catch (IOException e) {e.printStackTrace();}}}

    讀文件異常處理

    public class DuFile {public static void main(String[] args) {try (InputStream inputStream = new FileInputStream("a.txt")) {while (true) {int a = inputStream.read();if (a == -1) {break;}System.out.println((char) a);}} catch (IOException e) {e.printStackTrace();}} }

    文件拷貝

    public class FileCopy {public static void main(String[] args) {FileOutputStream fos = null;FileInputStream fis = null;//要復制的文件String filename = "a.txt";try{fis = new FileInputStream(filename);fos = new FileOutputStream("new"+filename);while(true){int a = fis.read();if (a == -1){break;}fos.write(a);}} catch (IOException e) {e.printStackTrace();}finally {if( fis !=null) {try {fis.close();} catch (IOException e) {e.printStackTrace();}}if( fos !=null) {try {fis.close();} catch (IOException e) {e.printStackTrace();}}}}}

    IO效率最重要!,但是上面的代碼執行效率很低,接下來就是提升性能的方法——加一個過濾流

    緩沖字節流

    過濾流:只能給節點流增加功能

    PrintStream可以取代BufferedOutputStream帶緩沖的字節輸出流,這個就是sout使用的。

    System.out.println

    • System:類名 java.long.System
    • System.out:System類中公開靜態常量,是PrintStream類的對象
    • println:方法名

    BufferedInputStream/BufferedOutputStream 緩沖功能,提高I/O效率

    一個流中的構造參數是另外一個流,這個流就是一個過濾流

    flush() //關流或者清空緩沖區都可以讓緩沖區的該去哪去哪 對于緩沖輸出流

    改造后的文件拷貝:

    public class FileCopy {public static void main(String[] args) {FileOutputStream fos = null; //節點流FileInputStream fis = null; //節點流BufferedOutputStream out = null; //輸出緩沖流,這是過濾流BufferedInputStream in = null; //輸入緩沖流//要復制的文件String filename = "a.txt";try{fis = new FileInputStream(filename);in = new BufferedInputStream(fis); //加強節點流的功能,帶緩沖fos = new FileOutputStream("new"+filename);out = new BufferedOutputStream(fos);//帶緩沖的輸出流while(true){int a = in.read(); //用換出流讀數據,存到緩沖區if (a == -1){break;}out.write(a); //緩沖輸出流王外寫}} catch (IOException e) {e.printStackTrace();}//關流的時候只需要關最外層的流,例如過濾流包裹節點流,關過濾流就行finally {if( in !=null) {try {in.close();} catch (IOException e) {e.printStackTrace();}}if( out !=null) {try {out.close();} catch (IOException e) {e.printStackTrace();}}}}}

    對象序列化

    我們想把對象寫入文件要怎么寫呢?

    把對象通過流來傳輸叫做對象的序列化

    有些對象可以序列化,有些不能。生活中的例子,例如我搬家的時候,有的可以拆成小的然后搬,有的卻不行。

    **只有實現了Serializable的接口才能序列化。**就是個標記,告訴IO可以切(序列化)

    可以給對象加transient修飾屬性,稱為臨時屬性不參與序列化

    我們有相應的過濾流:ObjectOutputStream/ObjectInputStream

    有out.wirteObject();方法是寫對象的。

    readObject(); 讀對象。

    對象的克隆

    就是在java堆空間中復制一個新對象;

    最簡單的辦法就是用Object中的clone(); 但是要重寫,修改修飾符。而且對象必須是一個支持克隆的對象實現Cloneable接口。

    注意:他的克隆方式:淺拷貝

    teacher指向的同一個對象。

    淺拷貝:對象復制,但是對象內的屬性不會復制

    深拷貝:對象復制,里面的屬性也復制,就會有兩個teacher對象。

    如何實現深拷貝?對象序列化。這樣的地址完全不同

    字符流

    專門處理char,String數據,而且可以方便的處理字符的編解碼

    ‘A’ ----> 65 :編碼 str.getBytes("GBK")

    65 ----> ‘A’ :解碼 String( ,"GBK")

    不同國家有不同字符集,當編碼格式與解碼格式不同就會出現亂碼現象。

    • ASCII 美國 字符集:英文字符
    • ISO-8859-1 西歐字符
    • GB2312 GBK簡體中文
    • Big5 繁體中文
    • Unicode 全球統一的編碼方式
      • UTF-16(java采用的編碼)
      • UTF-8 (常用的)

    Reader/writer

    抽象類 字符流的父類

    子類:FileReader/FileWriter 文件字節流,節點流

    BufferedReader/BufferdWriter 過濾流,緩沖作用

    PrintWriter帶緩沖的字符輸出流,通常可以取代BufferdWriter

    讀:

    技巧:先創建字節流然后用InputStreamReader/OutputStreamWriter過濾流把字節流構造成字符流 (橋轉換類)

    可以在橋轉換的過程中指定編解碼的方式

    OutputStream fos = new FileOutputStream("a.txt"); Wrirer fw = new OutputStreamWriter(fos,"GBK");

    File類

    file對象代表了磁盤上的一個文件 或 目錄(文件夾),用來實現一些文件操作。

    public class FileTest {public static void main(String[] args) throws Exception {File file = new File("1.txt");file.createNewFile();//創建1.txt文件file.delete();//刪除1.txt //空目錄file.mkdirs(); //創建目錄file.delete(); //刪除目錄System.out.println(file.exists());//file.exists();判斷是否存在file.getAbsolutePath();//獲得絕對路徑file.lastModified();//獲取最后修改時間file.length();//獲取長度File f = new File("D:\\");//file.listFiles();//返回文件數組}}

    無法訪問文件內容。

    7.多線程(并發編程)

    注重思想,我們寫一個頁面,如果大量用戶訪問,那么有上億個線程,是否會出現數據出錯,卡頓等。

    并發編程:多個任務同時執行

    進程:OS中并發的一個任務

    線程:在一個進程中,并發的順序執行流程。

    并發原理:CPU分時間片交替執行,宏觀并行,微觀串行,由OS負責調度。如今的CPU已經發展到了多核CPU,真正存在并行。

    線程的三要素:

    • CPU OS負責調度
    • 數據 堆空間,棧空間(多線程堆空間共享,棧空間獨立)
    • 代碼 (主函數就是主線程)

    如何創建線程?

    方法1(初始):

  • 實現Runnable接口,實現run方法

  • 創建Runnable對象(任務對象)

  • 通過Runnable對象,創建Thread對象(線程對象)、

    現在只是有線程對象:

  • 調用線程對象start()啟動線程(向操作系統申請創建線程)

    現在的代碼中就有三個線程了,main,t1,t2

  • 方法2(老式):

  • 直接繼承Thread類,覆蓋run方法
  • 創建繼承的Thread對象
  • 調用start()方法
  • 線程的基本狀態

    1??程序最開始的時候主線程處于運行狀態

    2?? 主線程執行創建對象,t1,t2處于初始狀態

    3?? 調用start()

    4?? main結束,OS調度,運行run里的代碼,選誰呢??

    選擇的規則:不同OS不同任務調度策略。但是因為start()耗時,所以經常看見t1先執行,是因為這時候t1還沒準備好

    5?? t1時間片到期,t1回到可運行,OS選擇下一個線程(不一定選誰)可能還是t1。

    6?? 線程結束

    線程的等待

    等待狀態:線程執行過程中發現執行不下去了,缺少條件,沒有條件之前進入等待狀態。(例如等紅綠燈)

    • 等待數據的輸入 scanner/B io 不確定時間

    • sleep() 限時等待,給休眠時間

    線程中的sleep()異常只能用try-catch解決,因為方法覆蓋不能拋出比父類多的異常。

    還有一個join() 線程同步中講解。

    線程池 JDK5

    創建一個線程只為一個任務所服務會造成資源浪費。(頻繁創建銷毀線程就是資源浪費)

    線程池的概念:(就像高鐵站出租車區域,來客人就去拉客,送到后還回來繼續等下一個任務,或者辦公室的例子)當一個任務結束時,對應的線程資源不會銷毀,而是回到線程池中等待下一個任務。

    **線程池的好處:**可以控制最高并發數

    有了線程池之后,Thread類就不推薦使用了!

    線程池的編碼:

    一個ExecutorService對象就代表一個線程池

    newCachedThreadPool();長度不固定的,有幾個任務就有幾個線程

    用匿名內部類簡化編碼

    executorService.submit(new Runnable() {@Overridepublic void run() {for (int i = 1; i <= 100; i++) {System.out.println("CCC"+i);}}});

    用lambda表達式簡化

    executorService.submit(()->{for (int i = 0; i <= 100; i++) {System.out.println("CCC"+i);}});

    Callable和Future接口

    用來取代Runnable接口、

    Runnable的缺點:

  • run沒有返回值
  • 不能拋異常
  • Callable接口允許線程有返回值,也允許線程拋出異常

    Future接口用來接受返回值

    案例:計算1~10000的和,用兩個線程,一個算基數,一個算偶數,最后相加。

    主要問題:如何獲得返回值

    返回值存在Future對象中

    package com.gaoji;import java.util.concurrent.*;import static java.util.concurrent.Executors.*;/*** @author 王澤*/public class AddTest {public static void main(String[] args) throws ExecutionException, InterruptedException {ExecutorService es = newFixedThreadPool(2); // es.submit(new task1()); // es.submit(new task2());//如何拿到兩個任務的返回值呢?我們只是扔給了線程池Future<Integer> f1 = es.submit(new task1());Future<Integer> f2 = es.submit(new task1());//...主線程執行自己的任務//獲取返回值,能取到就取,取不到就等待。Integer result1 = f1.get();//從future中取到返回值Integer result2 = f2.get();//從future中取到返回值System.out.println(result1+result2);es.shutdown();}} /**所有基數的和*/ class task1 implements Callable<Integer>{@Overridepublic Integer call(){int result = 0;for (int i = 1; i < 10000; i+=2) {result +=i;}return result;} } /**所有偶數的和*/ class task2 implements Callable<Integer>{@Overridepublic Integer call(){int result = 0;for (int i = 2; i < 10000; i+=2) {result +=i;}return result;} }

    線程的同步(重點)

    兩個線程同時往一個集合中放元素,

    當一個線程對另一個線程join()的時候,這個線程就會等待狀態

    例如:主線程中寫t1.join() t1結束,主線程才繼續。

    t1.join(); //mian線程等待t1結束

    引出問題案例分析:

    正確的過程(假設t1先啟動):

    實際上的順序

    因為sleep,出現了上面的情況,但是不sleep依舊有可能會出現(要執行index++的時候時間片到期了)

    多線程共同訪問同一個對象,由于多線程中堆空間共享,如果破壞了不可分割的操作,就可能導致數據不一致。

    👨?🚀 臨界資源:被多線程共同訪問的對象

    💁?♂ 原子操作:不可分割的操作,要么全部執行要么都不執行

    怎么解決呢?——加鎖

    synchronized

    開發中不鼓勵使用

    //對obj對象加鎖的同步代碼塊 synchronized (obj) {}

    Java中,每個對象都有一個互斥鎖標記(monitor),用來分配一個線程

    只有拿到對象obj鎖標記的線程,才能進入到obj加鎖的同步代碼塊。

    t2synchronized (obj){t1//即使sleep,t2依舊進不來 } t2想進來進不來,這就是阻塞狀態了

    必須進入到所標記代碼塊才能執行,線程離開同步代碼塊時,會釋放對象的鎖標記。

    // 修電線的代碼: synchronized (閘盒對象){將閘盒變為OFF爬上電線桿檢修電路爬下電線桿將閘盒變為ON } 只有這一套完成后,別人才能拿到閘盒的鑰匙。

    線程的阻塞狀態

    線程安全的對象

    該對象成為臨界資源,被多線程訪問時,不會發生原子操作被破壞,導致數據不一致的問題。

    鎖的是對象

    Girl :對象 Boy:線程 拿到Girl鎖標記的Boy,成為Girl的男朋友synchronized(girl){擁抱;接吻;壁咚;......... }// 分手之后,才能讓別人成為男朋友

    同步方法

    只有獲得對象obj所標記的線程,才能調用obj的同步方法

    調用之前競爭obj的鎖標記

    方法調用結束時,會釋放obj的鎖標記

    public class A{public synchronized void m(){} //同步方法 對this加鎖的同步代碼塊 } A a1 = new A(); A a2 = new A(); a1.m(); //線程獲得a1的鎖標記 a1.m();//線程獲得a2的鎖標記 synchronized void m(){} ====== void m(){synchronized(this){} }

    死鎖

    synchronized不僅僅會造成并發效率低,還會造成死鎖問題。

    synchronized(a){//t1synchronized(b){} } ------死鎖了synchronized(b){//t2synchronized(a){} }

    死鎖靠線程之間的通信來解決,t1調用Object中的wait(),會釋放t1所有鎖標記,進入等待狀態。 t2調用notify,通知所有調用過wait()的線程,離開等待狀態。

    wait() 和sleep() 有什么區別??

    都會讓線程進入等待狀態,wait會釋放鎖標記,sleep不會釋放鎖標記。

    (電話亭打電話,你在里面睡著了,鎖依舊是鎖著,這是sleep,如果無人接聽,你先出去讓別人打,這就是wait)

    避免多線程訪問臨界資源,造成數據不一致的辦法:

  • 用數據最好用局部變量,這樣就可以沒有臨界資源。(局部變量存在棧空間,棧空間是線程獨立的)
  • 盡量使用無鎖算法,使用線程安全同時并發效率也很高的對象
  • 使用鎖標記來控制線程安全
  • 8.反射和設計模式

    反射是底層技術 通常用來實現框架和工具

    運行時的類型判定。

    目前創建對象都是采用硬編碼new Dog 。

    類對象

    1??類加載:當JVM第一次使用一個類的時候,它需要將這個類對應的字節碼文件讀入JVM,從而獲取這個類的全部信息(類的父類,擁有哪些屬性,方法,構造方法等等)并保存起來(保存在JVM方法區)

    2??類對象:類加載的產物,包含了一個類的全部信息。

    3?? 類對象所屬的類叫 Class類

    • 類的對象:該類的對象 Dog類的對象---->一只狗
    • 類對象:記錄類信息的對象 Dog類對象,相當于動物園的牌子
    • 類加載:就相當于你不認識這個動物,你把這個動物是啥記憶在腦子里

    ??獲得類對象的三種方式:

    • 類名.class 直接獲取類對象,也可以獲取到8種基本類型的對象

    • 類的對象.getClass() 獲取類對象,例如你去動物園看見一直候,你問他你啥對象??🐒:自己看牌子!

    • class.forName(“類的全名”) 通過類名字符串獲得類對象

    一個類的類對象只能有一個,在JVM中只會產生一個

    拿到了類對象之后 獲取類的信息

    類對象.getName() //查看類名

    類對象.getSuperclass().getName() //查看父類名

    Class[] cs = 類對象.getInterfaces();//獲得一個類實現的所有接口

    屬性方法構造方法又會被封裝

    getMethods() //獲取所有公開的方法的Method對象(子類父類都可以拿到)

    getDecalredMethods()//獲得本類中所有方法的Method對象

    getMethod()/getDeclaredMethod() //根據方法名和參數表,獲得類中的某個方法

    Class:封裝了類的信息

    Method:封裝了方法的信息

    3??獲取類的對象我們可以對類對象調用newInstance() 通過類對象,創建類的對象(手里有個美女介紹,我直接newInstance 直接來一個,美女的對象)

    String classname="com.girl.FullMoneyGirl"; //類名 Class c = Class.forName(classname); //獲得類對象 Object o = c.newInstance(); //創建類的對象

    4?? 調用方法

    利用Method對象.invoke() 通過Method調用該方法

    String methodname="look"; //方法名 Method m = c.getMethod(methodname); //通過類對象c獲取方法 m.invoke(o);

    調用對象的私有方法

    String methodname="ppp"; //方法名 Method m = c.getDeclaredMethod(methodname); //通過類對象c獲取方法 m.setAccessible(true); m.invoke(o);

    三、設計模式

    🗡共有23種設計模式,好書推薦:《java與模式》

    1.單例設計模式

    編寫一個類,這個類只能有一個對象。

    1?? 餓漢式

    ClassA a1 = ClassA.newInstance(); //獲得對象class ClassA{private static ClassA instance = new ClassA(); //先創建一個對象,作為靜態的屬性,ClassA類的唯一對象public static ClassA newInstance(){return instance;}//調用靜態方法 返回已經創建的對象private ClassA(){} //防止用戶用構造方法創建對象導致不是單例 }

    應用場景:比較常用,不會有并發問題,但是浪費了存儲空間

    2??懶漢

    對象的創建時機不一樣,當需要對象時,創建對象,有并發效率問題

    class ClassB{private static ClassB newInstance(){if(instance == null) instance = new ClassB();return instance;}private ClassB(){} }

    如果是多線程調用的話,這種懶漢模式就不是單例的。考慮并發的問題,導致數據不一致。

    /*啟動兩個線程,創建懶漢模式*/ new Thread(()->ClassB.newInstacnce()).start(); new Thread(()->ClassB.newInstacnce()).start();正確寫法:class ClassB{private static ClassB instance = null;public static synchronized ClassB newInstance(){if(instance == null) instance = new ClassB();return instance;}private ClassB(){} }

    但是加了鎖之后,就降低了并發效率。

    3?? 集合了餓漢式懶漢式的優點

    //類加載的時候線程安全,只有需要的時候才創建對象。 //Holder只會加載一次 class ClassC{static class Holder{static ClassC instance = new ClassC();} public static ClassC newInstance(){return Holder.instance;}private ClassC(){} }

    2.工廠模式

    使用反射進行對象創建,IO流讀取文件

    開閉原則:軟件對修改關閉,對拓展開放。

    利用工廠創建對象。

    public static Animal createAnimal(){String classname = null;Properties ps = new Properties();try(FileInputStream fis = new FileInputStream("config.txt")){ps.load(fis);classname = ps.getProperty("animal");class c = Class.forName(classname);Object o = c.newInstance();return (Animal)o;}catch(Exception e){e.printStackTrace();return null;} }

    四、常見算法

    1.漢諾塔問題

    ? 有A B C 三個柱子,和若干個大小不同的圓盤,起初圓盤都在A柱上,小盤在上。現在要把A柱的盤子轉到B柱上。(每次只能移動一個,且小盤子在上面)

    思考過程:把大問題化小。如果A柱上有兩個盤子,先把A上的小盤子移動到C,然后把A 上的大盤子移動到B ,然后把C柱上的小盤子移動到B。 這樣就是每次移動一個盤子。下面是步驟:

  • 先移動(n-1)個盤子 從A 到 C -----小問題

  • 將最底層大盤子移動到B

  • n-1 個盤子 從C 到 B -------大問題

  • 設計函數

    package com.jichu;/*** @author 王澤*/public class HanNuoTa {public static void main(String[] args) {transfer(5,'A','B','C');}/*** 漢諾塔方法:* n:移動幾個盤子*form:從哪個柱子離開*to:移動到哪個柱子*temp:借助哪個柱子* */static void transfer( int n, char from , char to, char temp){//返回條件if (n == 0) {return;}//把n-1個盤子從 from 移動到temp 借助 totransfer(n-1,from,temp,to);//將大盤子從from 移動到 toSystem.out.println(from+"----->"+to);//把n-1 個從temp 移動到 to 借助 fromtransfer(n-1,temp,to,from);}}
  • 2.排序

    1.冒泡排序

    用相鄰的兩個元素比較,按照排序要求對調位置。

    👀 我們會發現,每一輪冒泡排序會把最大(最小)的排到最后,第二次冒泡排序就不包含最后一個。n個元素要做n-1次排序。

    package com.suanfa.paixu;/*** @author 王澤*/public class MaoPao {public static void main(String[] args) {int[] a = {3,8,6,9,2,7};System.out.println("數組的長度=="+a.length);//冒泡排序for (int i = 0; i < a.length-1; i++) {//相鄰元素比較for (int j = 0; j <a.length-1-i ; j++) {if(a[j]>a[j+1]){int temp = a[j];a[j]=a[j+1];a[j+1] = temp;}}}//打印for (int i = 0; i < a.length; i++) {System.out.println(a[i]+" ");}}}

    五、常見機試題

    🤑 主要用于提升編碼能力,重要的編碼在于集合與IO。更新中。。。。


    六、常見面試題


    🌓本章節羅列javaSE相關高頻面試題,每一道題基本都可以在上面的筆記中找到答案。面試題目答案可私聊。

  • 什么是面向對象?
  • JDK JRE JVM
  • ==和equals比較
  • hashCode與equals
  • final,static
  • String、StringBuffer、StringBuilder
  • 重載和重寫的區別
  • 接口和抽象類的區別
  • List和Set的區別
  • ArrayList和LinkedList區別
  • HashMap和HashTable有什么區別?其底層實現是什 么?
  • ConcurrentHashMap原理,jdk7和jdk8版本的區別
  • 什么是字節碼?采用字節碼的好處是什么?
  • Java中的異常體系
  • Java類加載器
  • GC如何判斷對象可以被回收
  • 線程的生命周期?線程有幾種狀態
  • sleep()、wait()、join()、yield()的區別
  • 對線程安全的理解
  • Thread、Runable的區別
  • 對守護線程的理解
  • ThreadLocal的原理和使用場景
  • ThreadLocal內存泄露原因,如何避免
  • 并發、并行、串行的區別
  • 并發的三大特性
  • volatile
  • 為什么用線程池?解釋下線程池參數?
  • 簡述線程池處理流程
  • 線程池中阻塞隊列的作用?為什么是先添加列隊而不是先 創建最大線程?
  • 線程池中線程復用原理
  • 總結

    以上是生活随笔為你收集整理的[ 4w字 ] JavaSE总结(基础+高级+多线程+面试题)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    亚洲精品美女久久久久久久 | 人妻有码中文字幕在线 | 永久黄网站色视频免费直播 | 久久久久久a亚洲欧洲av冫 | 亚洲色偷偷偷综合网 | 野外少妇愉情中文字幕 | 国产真实伦对白全集 | 男人的天堂2018无码 | 亚洲一区二区三区含羞草 | 奇米影视7777久久精品 | 欧美色就是色 | 久久亚洲中文字幕精品一区 | 网友自拍区视频精品 | 欧美老人巨大xxxx做受 | 青春草在线视频免费观看 | 国产成人精品久久亚洲高清不卡 | 无码毛片视频一区二区本码 | 青青草原综合久久大伊人精品 | 久久99精品久久久久久 | 少妇被粗大的猛进出69影院 | 成在人线av无码免观看麻豆 | 97资源共享在线视频 | 国产av一区二区三区最新精品 | 亚洲第一网站男人都懂 | 色综合视频一区二区三区 | 国产凸凹视频一区二区 | 欧美三级不卡在线观看 | 欧美精品一区二区精品久久 | 久久久国产一区二区三区 | 女人被男人躁得好爽免费视频 | 亚洲色欲色欲欲www在线 | 欧美熟妇另类久久久久久不卡 | 无码人妻少妇伦在线电影 | 色一情一乱一伦一视频免费看 | 亚洲国产精品无码一区二区三区 | 福利一区二区三区视频在线观看 | 日韩成人一区二区三区在线观看 | 国产又粗又硬又大爽黄老大爷视 | 无码av最新清无码专区吞精 | 377p欧洲日本亚洲大胆 | 麻豆国产人妻欲求不满谁演的 | 亚洲精品综合一区二区三区在线 | 未满小14洗澡无码视频网站 | 中文字幕av伊人av无码av | 国产舌乚八伦偷品w中 | 亚拍精品一区二区三区探花 | 无码人妻精品一区二区三区下载 | 四虎国产精品一区二区 | av在线亚洲欧洲日产一区二区 | 中文字幕人成乱码熟女app | √8天堂资源地址中文在线 | 亚洲色欲色欲天天天www | 中文久久乱码一区二区 | 最近的中文字幕在线看视频 | 六月丁香婷婷色狠狠久久 | 日本丰满护士爆乳xxxx | 亚洲欧美色中文字幕在线 | 久久综合九色综合97网 | 久久国产精品偷任你爽任你 | 中文字幕无码免费久久99 | 无码帝国www无码专区色综合 | 欧美日韩一区二区三区自拍 | 狂野欧美性猛交免费视频 | 乌克兰少妇xxxx做受 | 美女张开腿让人桶 | 东京热男人av天堂 | 亚洲国产欧美国产综合一区 | 成人亚洲精品久久久久 | 久热国产vs视频在线观看 | 久久天天躁夜夜躁狠狠 | 久久婷婷五月综合色国产香蕉 | aa片在线观看视频在线播放 | 国产精品高潮呻吟av久久4虎 | 亚洲精品成a人在线观看 | 亚洲а∨天堂久久精品2021 | 国产成人无码区免费内射一片色欲 | 久久国产精品萌白酱免费 | 中文字幕无码av波多野吉衣 | 欧美午夜特黄aaaaaa片 | 日本护士毛茸茸高潮 | 久久午夜无码鲁丝片 | 天天躁夜夜躁狠狠是什么心态 | 激情亚洲一区国产精品 | 久久午夜夜伦鲁鲁片无码免费 | 欧美黑人性暴力猛交喷水 | 欧美 日韩 亚洲 在线 | 老头边吃奶边弄进去呻吟 | 日日噜噜噜噜夜夜爽亚洲精品 | 久激情内射婷内射蜜桃人妖 | 色老头在线一区二区三区 | 久久成人a毛片免费观看网站 | 国产内射爽爽大片视频社区在线 | 国产精品久久久午夜夜伦鲁鲁 | 国产人妻人伦精品1国产丝袜 | 网友自拍区视频精品 | 精品国产精品久久一区免费式 | 国产精品亚洲lv粉色 | 亚洲午夜福利在线观看 | 精品无码国产一区二区三区av | 国产情侣作爱视频免费观看 | 一本久久a久久精品亚洲 | 77777熟女视频在线观看 а天堂中文在线官网 | 精品一区二区三区无码免费视频 | 成人欧美一区二区三区 | 国产黄在线观看免费观看不卡 | 东京热无码av男人的天堂 | 好屌草这里只有精品 | 国产真实夫妇视频 | 久久婷婷五月综合色国产香蕉 | 国产9 9在线 | 中文 | 极品尤物被啪到呻吟喷水 | 亚洲伊人久久精品影院 | 九九久久精品国产免费看小说 | 97资源共享在线视频 | 亚洲国产精华液网站w | 欧美人与禽zoz0性伦交 | 国产在线精品一区二区三区直播 | 久久精品国产日本波多野结衣 | 亚洲人成网站在线播放942 | 国产精品18久久久久久麻辣 | 免费男性肉肉影院 | 久久精品国产精品国产精品污 | 九九综合va免费看 | 一本大道久久东京热无码av | 久久精品人人做人人综合试看 | 国产精品久久久久久久9999 | 一本久久伊人热热精品中文字幕 | 中文字幕日韩精品一区二区三区 | 精品一区二区三区无码免费视频 | 国产国产精品人在线视 | 99久久精品日本一区二区免费 | 日本精品人妻无码77777 天堂一区人妻无码 | 夜先锋av资源网站 | 正在播放东北夫妻内射 | 亚洲自偷精品视频自拍 | 国产一区二区三区四区五区加勒比 | 亚洲经典千人经典日产 | 国内精品久久久久久中文字幕 | 国产av一区二区精品久久凹凸 | 任你躁国产自任一区二区三区 | 国产麻豆精品一区二区三区v视界 | 中文精品久久久久人妻不卡 | 亚洲 欧美 激情 小说 另类 | 久久精品人人做人人综合 | 永久黄网站色视频免费直播 | 国产精品亚洲lv粉色 | 国产精品va在线播放 | 成年女人永久免费看片 | 黑人粗大猛烈进出高潮视频 | 一个人看的视频www在线 | 麻豆果冻传媒2021精品传媒一区下载 | 鲁鲁鲁爽爽爽在线视频观看 | 扒开双腿吃奶呻吟做受视频 | 亚洲综合伊人久久大杳蕉 | 精品亚洲韩国一区二区三区 | 亚洲国产日韩a在线播放 | 国产国语老龄妇女a片 | 装睡被陌生人摸出水好爽 | 狠狠噜狠狠狠狠丁香五月 | 欧美人与牲动交xxxx | 东京热男人av天堂 | 久久成人a毛片免费观看网站 | 日本乱人伦片中文三区 | 欧美日韩在线亚洲综合国产人 | 国产热a欧美热a在线视频 | 爽爽影院免费观看 | 欧美肥老太牲交大战 | 亚洲爆乳大丰满无码专区 | 久久综合给久久狠狠97色 | 99精品无人区乱码1区2区3区 | 国产综合色产在线精品 | www国产亚洲精品久久网站 | 国产特级毛片aaaaaaa高清 | 无码播放一区二区三区 | 成年女人永久免费看片 | 特大黑人娇小亚洲女 | 亚洲精品一区二区三区婷婷月 | 国产明星裸体无码xxxx视频 | 日韩在线不卡免费视频一区 | 婷婷色婷婷开心五月四房播播 | 久久亚洲中文字幕精品一区 | 无码播放一区二区三区 | 国产精品怡红院永久免费 | 国产国产精品人在线视 | 精品国产青草久久久久福利 | 无套内射视频囯产 | 久久午夜无码鲁丝片午夜精品 | 波多野结衣aⅴ在线 | 国产精品久久久久久亚洲影视内衣 | 扒开双腿吃奶呻吟做受视频 | 一区二区三区乱码在线 | 欧洲 | 无码国产乱人伦偷精品视频 | 国产精品高潮呻吟av久久4虎 | 亚洲综合精品香蕉久久网 | 成人三级无码视频在线观看 | 蜜桃视频插满18在线观看 | 中文字幕无线码 | 网友自拍区视频精品 | 水蜜桃av无码 | 日本熟妇大屁股人妻 | 永久免费观看国产裸体美女 | 国产猛烈高潮尖叫视频免费 | 我要看www免费看插插视频 | 在线欧美精品一区二区三区 | 一个人看的视频www在线 | 精品成人av一区二区三区 | 国产精品二区一区二区aⅴ污介绍 | 小泽玛莉亚一区二区视频在线 | 97夜夜澡人人爽人人喊中国片 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国产精品久久久久久久9999 | 亚洲乱码日产精品bd | 国产人妻人伦精品 | 久久五月精品中文字幕 | 久久久久亚洲精品中文字幕 | 国产人妻人伦精品1国产丝袜 | av无码不卡在线观看免费 | 狠狠色色综合网站 | 亚欧洲精品在线视频免费观看 | 精品无码一区二区三区爱欲 | 思思久久99热只有频精品66 | 亚洲 日韩 欧美 成人 在线观看 | 国产精品高潮呻吟av久久 | 一本大道伊人av久久综合 | 国产精品久久精品三级 | 亚洲色大成网站www国产 | 国产精品亚洲一区二区三区喷水 | 熟女少妇人妻中文字幕 | 亚洲欧美日韩综合久久久 | 色欲久久久天天天综合网精品 | 无码国产激情在线观看 | 少妇被黑人到高潮喷出白浆 | 内射老妇bbwx0c0ck | 99久久精品午夜一区二区 | 亚洲の无码国产の无码步美 | 一本久道久久综合狠狠爱 | 四虎国产精品一区二区 | 国产人妻久久精品二区三区老狼 | 欧美日本精品一区二区三区 | 亚洲小说春色综合另类 | 亚洲s码欧洲m码国产av | 国产亚洲精品久久久闺蜜 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 国产欧美熟妇另类久久久 | 成年美女黄网站色大免费全看 | 欧美freesex黑人又粗又大 | 国产av一区二区精品久久凹凸 | 国产精品人妻一区二区三区四 | 国产免费无码一区二区视频 | 国模大胆一区二区三区 | 成人亚洲精品久久久久软件 | 狠狠cao日日穞夜夜穞av | 亚洲一区二区三区国产精华液 | 国产网红无码精品视频 | 久久久久成人片免费观看蜜芽 | 亚洲aⅴ无码成人网站国产app | 精品水蜜桃久久久久久久 | 国产xxx69麻豆国语对白 | 欧美人与物videos另类 | 国产精品久久久av久久久 | 国产人妻久久精品二区三区老狼 | 波多野结衣乳巨码无在线观看 | 激情综合激情五月俺也去 | 亚洲人交乣女bbw | 国产内射爽爽大片视频社区在线 | 人人妻人人澡人人爽欧美一区 | 领导边摸边吃奶边做爽在线观看 | 最新国产乱人伦偷精品免费网站 | 大肉大捧一进一出好爽视频 | 免费无码av一区二区 | 精品人妻人人做人人爽 | 撕开奶罩揉吮奶头视频 | 在教室伦流澡到高潮hnp视频 | 沈阳熟女露脸对白视频 | 国产69精品久久久久app下载 | 麻花豆传媒剧国产免费mv在线 | 国产精品人妻一区二区三区四 | 国产偷自视频区视频 | 亚洲色欲久久久综合网东京热 | 熟女少妇在线视频播放 | 久久久久久九九精品久 | 国产乱人无码伦av在线a | 亚洲国产av精品一区二区蜜芽 | www一区二区www免费 | 久久精品一区二区三区四区 | 久久国产劲爆∧v内射 | 一本大道久久东京热无码av | 国产三级精品三级男人的天堂 | 精品国产一区二区三区四区在线看 | 国产精品无码成人午夜电影 | 久久精品国产一区二区三区 | 无码人妻精品一区二区三区不卡 | 国产精品多人p群无码 | 麻豆精品国产精华精华液好用吗 | 亚洲国产午夜精品理论片 | 永久黄网站色视频免费直播 | 精品国产成人一区二区三区 | 亚洲精品一区二区三区在线观看 | 国产色xx群视频射精 | 国产成人综合色在线观看网站 | 欧美色就是色 | 又紧又大又爽精品一区二区 | 欧美熟妇另类久久久久久不卡 | 欧美 丝袜 自拍 制服 另类 | 成人性做爰aaa片免费看 | 亚洲国产欧美日韩精品一区二区三区 | 人妻无码αv中文字幕久久琪琪布 | 色窝窝无码一区二区三区色欲 | 99久久精品午夜一区二区 | 国产香蕉尹人综合在线观看 | 综合激情五月综合激情五月激情1 | 在线看片无码永久免费视频 | 国产精品无码一区二区三区不卡 | 亚洲精品国产品国语在线观看 | 乱中年女人伦av三区 | 久久zyz资源站无码中文动漫 | 综合人妻久久一区二区精品 | 婷婷六月久久综合丁香 | 国内精品久久久久久中文字幕 | 国产精品亚洲一区二区三区喷水 | 麻豆国产人妻欲求不满谁演的 | 爱做久久久久久 | 十八禁视频网站在线观看 | 性色欲网站人妻丰满中文久久不卡 | 亚洲人成影院在线无码按摩店 | 67194成是人免费无码 | 色综合天天综合狠狠爱 | 欧美 日韩 人妻 高清 中文 | 国产激情无码一区二区app | 人人妻人人澡人人爽欧美精品 | 欧美性猛交内射兽交老熟妇 | 国产亚洲视频中文字幕97精品 | 午夜精品一区二区三区在线观看 | 未满小14洗澡无码视频网站 | 任你躁国产自任一区二区三区 | 俺去俺来也在线www色官网 | 国产69精品久久久久app下载 | 亚洲欧洲中文日韩av乱码 | 亚洲人交乣女bbw | 国产无遮挡又黄又爽又色 | 亚洲中文字幕va福利 | 久久人人爽人人爽人人片av高清 | 激情国产av做激情国产爱 | 免费无码午夜福利片69 | 国产人妻大战黑人第1集 | 久久久久成人片免费观看蜜芽 | 香港三级日本三级妇三级 | 一区二区三区高清视频一 | 亚洲色欲色欲欲www在线 | 纯爱无遮挡h肉动漫在线播放 | 综合人妻久久一区二区精品 | 色欲综合久久中文字幕网 | 国产性生大片免费观看性 | 亚洲欧美精品aaaaaa片 | 色 综合 欧美 亚洲 国产 | 麻豆人妻少妇精品无码专区 | 小鲜肉自慰网站xnxx | 鲁鲁鲁爽爽爽在线视频观看 | 少妇久久久久久人妻无码 | 日本一卡二卡不卡视频查询 | 97资源共享在线视频 | 丰腴饱满的极品熟妇 | 久久久无码中文字幕久... | 人妻少妇精品无码专区二区 | 国产精品福利视频导航 | 免费视频欧美无人区码 | 精品午夜福利在线观看 | 久在线观看福利视频 | 久久久久久久久蜜桃 | 日韩成人一区二区三区在线观看 | 国产乱子伦视频在线播放 | 好男人社区资源 | 少妇厨房愉情理9仑片视频 | 无码人妻精品一区二区三区不卡 | 内射后入在线观看一区 | 巨爆乳无码视频在线观看 | 午夜理论片yy44880影院 | 亚洲精品鲁一鲁一区二区三区 | 天天做天天爱天天爽综合网 | 人妻无码αv中文字幕久久琪琪布 | 97资源共享在线视频 | 精品亚洲成av人在线观看 | 久久午夜无码鲁丝片午夜精品 | 狠狠cao日日穞夜夜穞av | 少妇厨房愉情理9仑片视频 | 午夜精品一区二区三区的区别 | 亚洲日本va中文字幕 | 亚洲精品中文字幕 | 亚洲精品一区二区三区婷婷月 | 又大又硬又黄的免费视频 | 蜜臀av无码人妻精品 | 又色又爽又黄的美女裸体网站 | 国产亚洲日韩欧美另类第八页 | 人妻熟女一区 | 国产精品自产拍在线观看 | 免费网站看v片在线18禁无码 | 波多野结衣aⅴ在线 | 无码av中文字幕免费放 | 麻豆果冻传媒2021精品传媒一区下载 | 国产午夜精品一区二区三区嫩草 | 国产亚洲精品久久久ai换 | 亚无码乱人伦一区二区 | 亚洲精品一区二区三区四区五区 | 黑人巨大精品欧美一区二区 | 亚洲娇小与黑人巨大交 | 国产av一区二区精品久久凹凸 | 色综合久久久无码网中文 | 色欲综合久久中文字幕网 | 狠狠色噜噜狠狠狠7777奇米 | 午夜精品一区二区三区在线观看 | 老熟妇乱子伦牲交视频 | 国产内射爽爽大片视频社区在线 | 国产乱人无码伦av在线a | 扒开双腿疯狂进出爽爽爽视频 | 亚洲乱亚洲乱妇50p | 久久综合色之久久综合 | 亚洲午夜福利在线观看 | 成人影院yy111111在线观看 | 欧美阿v高清资源不卡在线播放 | 丰满护士巨好爽好大乳 | 欧美野外疯狂做受xxxx高潮 | 欧美日韩久久久精品a片 | 色欲久久久天天天综合网精品 | 高潮毛片无遮挡高清免费 | 色综合久久中文娱乐网 | 国产精品资源一区二区 | 成人一区二区免费视频 | 成人三级无码视频在线观看 | 亚洲日韩av一区二区三区四区 | 国产亚洲精品久久久闺蜜 | 亚洲国产精品久久久久久 | 少妇人妻av毛片在线看 | 蜜臀aⅴ国产精品久久久国产老师 | 亚洲欧美中文字幕5发布 | 国产精品美女久久久 | 少妇无码一区二区二三区 | 亚洲va欧美va天堂v国产综合 | 精品国产精品久久一区免费式 | 老熟妇仑乱视频一区二区 | 学生妹亚洲一区二区 | 欧美真人作爱免费视频 | 国产精品高潮呻吟av久久4虎 | 久久99精品久久久久久动态图 | 色噜噜亚洲男人的天堂 | 久久天天躁狠狠躁夜夜免费观看 | 欧美色就是色 | 国产精品福利视频导航 | 女人被男人躁得好爽免费视频 | 九月婷婷人人澡人人添人人爽 | 国产精品手机免费 | 少妇激情av一区二区 | 男女性色大片免费网站 | 国产人妖乱国产精品人妖 | 国产精品办公室沙发 | 久久国产精品萌白酱免费 | 少妇高潮一区二区三区99 | 精品亚洲韩国一区二区三区 | 亚洲一区二区三区无码久久 | 久久99精品久久久久婷婷 | 亚洲欧美日韩成人高清在线一区 | 国产精品鲁鲁鲁 | 人妻少妇精品无码专区动漫 | 久久人妻内射无码一区三区 | 天天摸天天透天天添 | 亚洲第一无码av无码专区 | 色 综合 欧美 亚洲 国产 | 亚洲精品一区二区三区大桥未久 | 国产精品久久久av久久久 | 国产一区二区三区影院 | 正在播放老肥熟妇露脸 | 午夜熟女插插xx免费视频 | 国精产品一品二品国精品69xx | 国内少妇偷人精品视频 | 无码中文字幕色专区 | 少妇久久久久久人妻无码 | 亚洲第一无码av无码专区 | 丰满少妇人妻久久久久久 | 乱人伦人妻中文字幕无码久久网 | 波多野结衣高清一区二区三区 | 亚洲色成人中文字幕网站 | 成人免费无码大片a毛片 | 国产综合色产在线精品 | 樱花草在线播放免费中文 | 在线观看国产午夜福利片 | 国产高清av在线播放 | 日本欧美一区二区三区乱码 | 乱中年女人伦av三区 | 亚洲男人av天堂午夜在 | 国产人妖乱国产精品人妖 | 欧美性色19p | 中文精品无码中文字幕无码专区 | 欧美阿v高清资源不卡在线播放 | 亚洲欧洲日本综合aⅴ在线 | 亚洲成a人片在线观看日本 | 国产成人综合色在线观看网站 | 成人片黄网站色大片免费观看 | 久在线观看福利视频 | 国产97在线 | 亚洲 | 国产精品久久久 | 久久99精品久久久久久动态图 | 亚洲乱码中文字幕在线 | 天天摸天天碰天天添 | 三级4级全黄60分钟 | 国内精品久久久久久中文字幕 | 欧美变态另类xxxx | 美女黄网站人色视频免费国产 | 亚洲日本va午夜在线电影 | 成人无码精品一区二区三区 | 国产亚洲欧美日韩亚洲中文色 | 六十路熟妇乱子伦 | 国产真人无遮挡作爱免费视频 | 扒开双腿疯狂进出爽爽爽视频 | 精品人人妻人人澡人人爽人人 | 成人一区二区免费视频 | 国产精品久久久久久久9999 | 久久精品一区二区三区四区 | 少妇被粗大的猛进出69影院 | 成人欧美一区二区三区黑人 | 在线播放免费人成毛片乱码 | 天堂无码人妻精品一区二区三区 | 久久久久久av无码免费看大片 | 曰韩少妇内射免费播放 | 国产精品高潮呻吟av久久4虎 | 国产日产欧产精品精品app | 亚洲高清偷拍一区二区三区 | 成人无码精品1区2区3区免费看 | 国产手机在线αⅴ片无码观看 | 欧美乱妇无乱码大黄a片 | 中文字幕 人妻熟女 | 人人妻人人澡人人爽欧美一区九九 | 曰韩无码二三区中文字幕 | 久久亚洲a片com人成 | 国产三级久久久精品麻豆三级 | 色欲久久久天天天综合网精品 | 成人动漫在线观看 | 无码纯肉视频在线观看 | 久久国语露脸国产精品电影 | 精品久久综合1区2区3区激情 | 精品一区二区不卡无码av | 国产无遮挡吃胸膜奶免费看 | 天堂无码人妻精品一区二区三区 | 少女韩国电视剧在线观看完整 | 强开小婷嫩苞又嫩又紧视频 | 狠狠色欧美亚洲狠狠色www | 欧美大屁股xxxxhd黑色 | 日本在线高清不卡免费播放 | 中文字幕久久久久人妻 | 88国产精品欧美一区二区三区 | 国产福利视频一区二区 | 久久97精品久久久久久久不卡 | 狠狠色噜噜狠狠狠狠7777米奇 | 精品久久8x国产免费观看 | 国产精品久久久久无码av色戒 | 欧美黑人乱大交 | 两性色午夜视频免费播放 | 日本精品少妇一区二区三区 | 男人的天堂2018无码 | 色欲久久久天天天综合网精品 | 人人爽人人爽人人片av亚洲 | 亚洲中文无码av永久不收费 | 久久久国产一区二区三区 | 国产精品久久久一区二区三区 | 狠狠综合久久久久综合网 | 亚洲区欧美区综合区自拍区 | 特黄特色大片免费播放器图片 | 无人区乱码一区二区三区 | 精品国产国产综合精品 | 欧美性生交活xxxxxdddd | 欧美国产日产一区二区 | 少妇邻居内射在线 | 久久国产36精品色熟妇 | 久久aⅴ免费观看 | 综合人妻久久一区二区精品 | 国产亚洲精品久久久久久大师 | 免费无码一区二区三区蜜桃大 | 18无码粉嫩小泬无套在线观看 | 中文亚洲成a人片在线观看 | 亚洲综合久久一区二区 | 欧美丰满老熟妇xxxxx性 | 日本乱偷人妻中文字幕 | 欧美熟妇另类久久久久久多毛 | 久热国产vs视频在线观看 | 国产精品无码久久av | 久久99精品国产麻豆 | 精品久久久久久亚洲精品 | 国产精品无码一区二区桃花视频 | 久久精品99久久香蕉国产色戒 | 日韩精品无码一区二区中文字幕 | 亚洲成a人片在线观看无码 | 精品无码一区二区三区的天堂 | 男女性色大片免费网站 | 鲁鲁鲁爽爽爽在线视频观看 | 18精品久久久无码午夜福利 | 亚洲中文字幕无码一久久区 | 国产精品自产拍在线观看 | 国产色视频一区二区三区 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 欧美国产日产一区二区 | 国产精品亚洲专区无码不卡 | 精品亚洲成av人在线观看 | a片在线免费观看 | 国产美女极度色诱视频www | 亚洲区欧美区综合区自拍区 | 熟女体下毛毛黑森林 | 少妇高潮喷潮久久久影院 | 97人妻精品一区二区三区 | 欧美成人高清在线播放 | www一区二区www免费 | 98国产精品综合一区二区三区 | 国产又粗又硬又大爽黄老大爷视 | 永久免费观看国产裸体美女 | 午夜福利电影 | 波多野结衣乳巨码无在线观看 | 成人aaa片一区国产精品 | 国产色视频一区二区三区 | 露脸叫床粗话东北少妇 | 久久久久亚洲精品男人的天堂 | 国产午夜精品一区二区三区嫩草 | 精品人妻中文字幕有码在线 | 天天拍夜夜添久久精品 | a片在线免费观看 | 国产一区二区三区精品视频 | 国产熟妇高潮叫床视频播放 | a在线亚洲男人的天堂 | 成人免费视频一区二区 | 亚洲一区二区三区在线观看网站 | 精品久久久久香蕉网 | 国产精品久免费的黄网站 | 精品国产成人一区二区三区 | 国产精品毛片一区二区 | 天天做天天爱天天爽综合网 | 午夜精品久久久内射近拍高清 | 久久综合给久久狠狠97色 | 狠狠色欧美亚洲狠狠色www | 亚洲 欧美 激情 小说 另类 | 欧美亚洲国产一区二区三区 | 欧美性生交xxxxx久久久 | 国内少妇偷人精品视频免费 | 精品少妇爆乳无码av无码专区 | 99精品视频在线观看免费 | 国产精品丝袜黑色高跟鞋 | 亚洲成av人综合在线观看 | 欧美兽交xxxx×视频 | 久久国产精品_国产精品 | 亚洲国精产品一二二线 | 国产香蕉尹人综合在线观看 | 国产午夜福利亚洲第一 | а√资源新版在线天堂 | 欧美自拍另类欧美综合图片区 | 色综合久久久久综合一本到桃花网 | 国产一精品一av一免费 | 欧美xxxxx精品 | 日韩 欧美 动漫 国产 制服 | 天干天干啦夜天干天2017 | 午夜精品一区二区三区在线观看 | 欧美日本免费一区二区三区 | 女人高潮内射99精品 | 久久久久久久女国产乱让韩 | 激情爆乳一区二区三区 | 日本一区二区更新不卡 | 亚洲色在线无码国产精品不卡 | 5858s亚洲色大成网站www | 波多野结衣av在线观看 | 亚洲精品国产品国语在线观看 | 久久久久免费精品国产 | 色婷婷av一区二区三区之红樱桃 | 精品国产一区二区三区四区在线看 | 亚洲精品欧美二区三区中文字幕 | 国产做国产爱免费视频 | 学生妹亚洲一区二区 | 国产午夜福利100集发布 | 国产免费观看黄av片 | 亚洲熟熟妇xxxx | 日韩精品乱码av一区二区 | 国产精品久久精品三级 | 国产精品嫩草久久久久 | 极品尤物被啪到呻吟喷水 | 久9re热视频这里只有精品 | 国产69精品久久久久app下载 | 大地资源网第二页免费观看 | 国产精品美女久久久网av | 亚洲日韩一区二区 | 国产成人综合在线女婷五月99播放 | 欧美乱妇无乱码大黄a片 | 亚洲精品国产精品乱码不卡 | 骚片av蜜桃精品一区 | 国产精品久久久一区二区三区 | 午夜时刻免费入口 | 麻豆精产国品 | 欧美黑人巨大xxxxx | 国产肉丝袜在线观看 | 亚洲欧洲中文日韩av乱码 | 久久综合久久自在自线精品自 | 2020久久香蕉国产线看观看 | www成人国产高清内射 | 黑森林福利视频导航 | 亚洲国产av美女网站 | 日本护士xxxxhd少妇 | 国产av一区二区精品久久凹凸 | 亚洲一区二区三区香蕉 | 内射后入在线观看一区 | 国产精品va在线观看无码 | 欧美日韩一区二区综合 | 亚洲色无码一区二区三区 | 日本一卡二卡不卡视频查询 | 亚洲精品中文字幕久久久久 | 成人一在线视频日韩国产 | 免费乱码人妻系列无码专区 | 在线a亚洲视频播放在线观看 | 久久久久免费看成人影片 | 欧美黑人乱大交 | 国产真实乱对白精彩久久 | 亚洲经典千人经典日产 | 久久综合给久久狠狠97色 | 在线成人www免费观看视频 | 亚洲大尺度无码无码专区 | 一二三四在线观看免费视频 | 亚洲精品综合五月久久小说 | 久久国产精品偷任你爽任你 | 亚洲国产精品成人久久蜜臀 | 精品国产国产综合精品 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 樱花草在线社区www | 色一情一乱一伦一区二区三欧美 | 国产手机在线αⅴ片无码观看 | 国内少妇偷人精品视频免费 | 清纯唯美经典一区二区 | 国产真实夫妇视频 | 少妇无码一区二区二三区 | 午夜精品一区二区三区的区别 | 67194成是人免费无码 | 亚洲国产精品成人久久蜜臀 | 成人综合网亚洲伊人 | 亚洲a无码综合a国产av中文 | 欧美大屁股xxxxhd黑色 | 精品欧美一区二区三区久久久 | 天天摸天天透天天添 | 欧美xxxxx精品 | 亚洲日韩精品欧美一区二区 | 国产乱码精品一品二品 | 成人精品天堂一区二区三区 | 在线精品国产一区二区三区 | 亚洲熟悉妇女xxx妇女av | 精品 日韩 国产 欧美 视频 | 精品一区二区三区波多野结衣 | 亚洲国产欧美在线成人 | 国产精品二区一区二区aⅴ污介绍 | 成在人线av无码免费 | 国产特级毛片aaaaaa高潮流水 | 日韩人妻少妇一区二区三区 | 亚洲熟妇色xxxxx欧美老妇y | 中文字幕无码av波多野吉衣 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 国产美女极度色诱视频www | 黑森林福利视频导航 | 亚洲狠狠婷婷综合久久 | 中文字幕色婷婷在线视频 | 国产成人精品必看 | 日日碰狠狠丁香久燥 | 亚洲日韩av一区二区三区四区 | 小sao货水好多真紧h无码视频 | 亚洲国产一区二区三区在线观看 | 狠狠色噜噜狠狠狠狠7777米奇 | 日日摸日日碰夜夜爽av | 亚洲啪av永久无码精品放毛片 | 亚洲日本va午夜在线电影 | 久久久久成人精品免费播放动漫 | 青草青草久热国产精品 | 久久久久av无码免费网 | 亚洲啪av永久无码精品放毛片 | 国产精品无码永久免费888 | 青青青爽视频在线观看 | 精品夜夜澡人妻无码av蜜桃 | 熟妇女人妻丰满少妇中文字幕 | 亚洲精品www久久久 | 久久无码专区国产精品s | 无码人妻av免费一区二区三区 | 老熟女乱子伦 | 亚洲精品综合五月久久小说 | 日韩视频 中文字幕 视频一区 | 久久久无码中文字幕久... | 国产亚洲日韩欧美另类第八页 | 中文字幕乱妇无码av在线 | 亚洲中文字幕无码中文字在线 | 国产性生交xxxxx无码 | 亚洲成a人片在线观看无码 | 亚洲伊人久久精品影院 | 欧美日韩人成综合在线播放 | 亚洲综合伊人久久大杳蕉 | 中文字幕av日韩精品一区二区 | 色一情一乱一伦一视频免费看 | 大屁股大乳丰满人妻 | 亚洲精品一区二区三区婷婷月 | 精品久久久无码人妻字幂 | 国产精品久久久av久久久 | 日本丰满熟妇videos | 国产乱人伦av在线无码 | 大地资源中文第3页 | 任你躁在线精品免费 | 午夜丰满少妇性开放视频 | 最新国产乱人伦偷精品免费网站 | 又湿又紧又大又爽a视频国产 | 白嫩日本少妇做爰 | 亚洲一区二区三区国产精华液 | 中文字幕中文有码在线 | 亚洲色欲色欲天天天www | 国产精品久久久av久久久 | 色欲综合久久中文字幕网 | 人妻无码αv中文字幕久久琪琪布 | 性色欲网站人妻丰满中文久久不卡 | 人人妻人人澡人人爽欧美一区 | 2019午夜福利不卡片在线 | 少妇邻居内射在线 | 丰满人妻一区二区三区免费视频 | 国产人成高清在线视频99最全资源 | 亚洲精品一区二区三区在线观看 | 牲欲强的熟妇农村老妇女视频 | 精品国产青草久久久久福利 | 波多野42部无码喷潮在线 | 色婷婷综合中文久久一本 | 国产特级毛片aaaaaa高潮流水 | 免费人成网站视频在线观看 | 久久亚洲中文字幕无码 | 亚欧洲精品在线视频免费观看 | 日日碰狠狠丁香久燥 | 在线观看免费人成视频 | 色情久久久av熟女人妻网站 | 国产一区二区不卡老阿姨 | 人人妻人人澡人人爽欧美一区九九 | 欧美精品一区二区精品久久 | 一个人免费观看的www视频 | 欧洲熟妇色 欧美 | 亚无码乱人伦一区二区 | 美女毛片一区二区三区四区 | 日韩亚洲欧美中文高清在线 | aa片在线观看视频在线播放 | 香蕉久久久久久av成人 | 国产成人久久精品流白浆 | 成在人线av无码免费 | 亚洲天堂2017无码 | 国产成人人人97超碰超爽8 | 领导边摸边吃奶边做爽在线观看 | 亚洲七七久久桃花影院 | 成人免费视频在线观看 | 国产精品福利视频导航 | 人人澡人人妻人人爽人人蜜桃 | 老子影院午夜精品无码 | 丰满少妇女裸体bbw | 一本久道久久综合婷婷五月 | 免费中文字幕日韩欧美 | 亚洲无人区一区二区三区 | 亚洲日本va中文字幕 | 久久精品人人做人人综合试看 | 久久国内精品自在自线 | 精品国产一区av天美传媒 | 亚洲娇小与黑人巨大交 | 乱码午夜-极国产极内射 | 人妻与老人中文字幕 | 国产又粗又硬又大爽黄老大爷视 | 一本一道久久综合久久 | 欧美日韩一区二区三区自拍 | 最新国产乱人伦偷精品免费网站 | 国产口爆吞精在线视频 | 成人性做爰aaa片免费看不忠 | 国产成人一区二区三区别 | 国产偷自视频区视频 | 国产在线aaa片一区二区99 | 国产精品高潮呻吟av久久 | 亚洲精品一区三区三区在线观看 | 真人与拘做受免费视频一 | 欧美性生交活xxxxxdddd | 18无码粉嫩小泬无套在线观看 | 成人aaa片一区国产精品 | 日本熟妇乱子伦xxxx | 麻豆精品国产精华精华液好用吗 | 大乳丰满人妻中文字幕日本 | 午夜精品一区二区三区在线观看 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 亚洲成av人综合在线观看 | 少妇被粗大的猛进出69影院 | 精品 日韩 国产 欧美 视频 | 国产午夜无码精品免费看 | 人人爽人人澡人人高潮 | 亚洲色偷偷男人的天堂 | 欧美成人午夜精品久久久 | 成人一在线视频日韩国产 | 人人妻人人澡人人爽精品欧美 | 久久综合九色综合欧美狠狠 | 国产精品亚洲一区二区三区喷水 | 水蜜桃色314在线观看 | 东京一本一道一二三区 | 亚洲经典千人经典日产 | 成 人影片 免费观看 | 精品国产一区二区三区四区 | 99久久人妻精品免费二区 | 亚洲日韩av片在线观看 | 国产精品无码永久免费888 | 日本高清一区免费中文视频 | 女人被男人躁得好爽免费视频 | 国产精品无码mv在线观看 | 久久国产精品二国产精品 | 蜜桃视频插满18在线观看 | 久久久久免费精品国产 | 无遮挡啪啪摇乳动态图 | 免费中文字幕日韩欧美 | 四虎国产精品免费久久 | 久久精品国产日本波多野结衣 | 人妻人人添人妻人人爱 | 亚洲精品国偷拍自产在线麻豆 | 欧美丰满少妇xxxx性 | 久久久久成人精品免费播放动漫 | 国产人妻大战黑人第1集 | 亚洲一区二区三区在线观看网站 | 丰满妇女强制高潮18xxxx | 久久www免费人成人片 | 国产疯狂伦交大片 | 亚洲精品一区二区三区在线 | 欧美35页视频在线观看 | 亚洲 a v无 码免 费 成 人 a v | 久久久久久久久蜜桃 | 国产高潮视频在线观看 | 人妻少妇精品视频专区 | 人人妻人人澡人人爽精品欧美 | 久久精品国产99久久6动漫 | 1000部夫妻午夜免费 | 亚洲精品中文字幕久久久久 | 激情国产av做激情国产爱 | 国产免费观看黄av片 | 久久亚洲国产成人精品性色 | 日本一卡二卡不卡视频查询 | 人妻天天爽夜夜爽一区二区 | 国产激情无码一区二区 | 中文字幕人妻无码一夲道 | 无套内谢的新婚少妇国语播放 | 国产亚洲精品精品国产亚洲综合 | 精品国产青草久久久久福利 | 久久久无码中文字幕久... | 午夜成人1000部免费视频 | 欧美野外疯狂做受xxxx高潮 | 亚洲理论电影在线观看 | 无码中文字幕色专区 | 久久久www成人免费毛片 | 大屁股大乳丰满人妻 | 午夜精品久久久久久久久 | 伊人久久婷婷五月综合97色 | 久久午夜无码鲁丝片 | 一本精品99久久精品77 | 少妇性l交大片欧洲热妇乱xxx | 亚洲国产av美女网站 | 久久久久久久久888 | 成人无码精品一区二区三区 | 国产精品无套呻吟在线 | 少妇厨房愉情理9仑片视频 | 亚洲成在人网站无码天堂 | 国产精品对白交换视频 | 成熟女人特级毛片www免费 | 亚洲综合色区中文字幕 | 内射巨臀欧美在线视频 | 欧美丰满熟妇xxxx | 成人精品视频一区二区三区尤物 | 久久综合久久自在自线精品自 | 蜜臀av无码人妻精品 | 鲁鲁鲁爽爽爽在线视频观看 | 夜夜夜高潮夜夜爽夜夜爰爰 | 亚洲精品中文字幕久久久久 | 久久综合色之久久综合 | 日韩av无码中文无码电影 | 日韩人妻无码中文字幕视频 | 成人一在线视频日韩国产 | 成人亚洲精品久久久久 | 亚洲国产成人av在线观看 | 精品夜夜澡人妻无码av蜜桃 | 波多野结衣一区二区三区av免费 | 日日噜噜噜噜夜夜爽亚洲精品 | 香港三级日本三级妇三级 | 久久午夜无码鲁丝片秋霞 | 桃花色综合影院 | 亚洲乱码中文字幕在线 | 国产成人精品视频ⅴa片软件竹菊 | 无码人妻久久一区二区三区不卡 | 国产香蕉尹人视频在线 | 一本色道久久综合狠狠躁 | 天天爽夜夜爽夜夜爽 | 搡女人真爽免费视频大全 | 在线成人www免费观看视频 | 国内丰满熟女出轨videos | 亚洲欧美日韩成人高清在线一区 | 精品国产一区二区三区四区在线看 | 疯狂三人交性欧美 | 在线 国产 欧美 亚洲 天堂 | 水蜜桃色314在线观看 | 欧美国产日韩亚洲中文 | 99麻豆久久久国产精品免费 | 人妻少妇精品久久 | 永久免费精品精品永久-夜色 | 狠狠色色综合网站 | 日韩精品a片一区二区三区妖精 | 久久精品国产一区二区三区 | 亚洲欧洲中文日韩av乱码 | 国产凸凹视频一区二区 | 亚洲色欲久久久综合网东京热 | 欧美日本日韩 | 久久久久久久女国产乱让韩 | 大乳丰满人妻中文字幕日本 | 乱中年女人伦av三区 | 男女爱爱好爽视频免费看 | 大地资源网第二页免费观看 | 人妻插b视频一区二区三区 | 亚洲精品欧美二区三区中文字幕 | 午夜时刻免费入口 | 日韩精品无码一区二区中文字幕 | 日本一区二区更新不卡 | 曰韩无码二三区中文字幕 | 99riav国产精品视频 | 性史性农村dvd毛片 | 欧美 日韩 亚洲 在线 | 麻豆果冻传媒2021精品传媒一区下载 | 欧美变态另类xxxx | 无码国内精品人妻少妇 | 国产精品成人av在线观看 | 久9re热视频这里只有精品 | 玩弄少妇高潮ⅹxxxyw | 99精品国产综合久久久久五月天 | 性生交片免费无码看人 | 少妇性荡欲午夜性开放视频剧场 | 一个人看的www免费视频在线观看 | 亚洲国产精品美女久久久久 | 18禁黄网站男男禁片免费观看 | 男女作爱免费网站 | 国产午夜福利100集发布 | 天堂а√在线中文在线 | 亚洲色大成网站www | 欧美自拍另类欧美综合图片区 | 无人区乱码一区二区三区 | 东京热无码av男人的天堂 | 日本大香伊一区二区三区 | 2019nv天堂香蕉在线观看 | 国产一区二区三区四区五区加勒比 | 一本无码人妻在中文字幕免费 | 国产精品久久国产三级国 | 女人被男人爽到呻吟的视频 | 国产97色在线 | 免 | 亚洲日本va午夜在线电影 | 人人爽人人澡人人人妻 | 天堂无码人妻精品一区二区三区 | 日韩欧美中文字幕公布 | 久久久久国色av免费观看性色 | 成在人线av无码免观看麻豆 | 国产深夜福利视频在线 | 国产sm调教视频在线观看 | 久久人人爽人人人人片 | 国内精品九九久久久精品 | 激情人妻另类人妻伦 | 亚洲人成无码网www | 久久久久免费看成人影片 | 成人免费无码大片a毛片 | 精品国产一区av天美传媒 | 欧美黑人巨大xxxxx | 日本精品高清一区二区 | 水蜜桃亚洲一二三四在线 | 黑人巨大精品欧美一区二区 | 亚洲色偷偷偷综合网 | 中文字幕人成乱码熟女app | 1000部啪啪未满十八勿入下载 | 又大又硬又爽免费视频 | 国产成人一区二区三区在线观看 | 国精产品一品二品国精品69xx | 99在线 | 亚洲 | 激情内射亚州一区二区三区爱妻 | 黑人巨大精品欧美一区二区 | 1000部夫妻午夜免费 | 影音先锋中文字幕无码 | 亚洲中文字幕无码中字 | 蜜臀aⅴ国产精品久久久国产老师 | 中文字幕无码免费久久9一区9 | 亚洲 日韩 欧美 成人 在线观看 | 国内老熟妇对白xxxxhd | 国产精品人人爽人人做我的可爱 | 日本乱人伦片中文三区 | 天天拍夜夜添久久精品大 | 久久国产精品二国产精品 | 久久综合狠狠综合久久综合88 | av香港经典三级级 在线 | 日韩av无码中文无码电影 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 又粗又大又硬又长又爽 | 宝宝好涨水快流出来免费视频 | 久久久久99精品国产片 | 中文字幕无码日韩欧毛 | 国产 精品 自在自线 | 精品无人国产偷自产在线 | 国产美女精品一区二区三区 | 亚洲精品美女久久久久久久 | 青草青草久热国产精品 | 色 综合 欧美 亚洲 国产 | 亚洲欧美精品伊人久久 | 日本精品久久久久中文字幕 | 377p欧洲日本亚洲大胆 | 国产乱人偷精品人妻a片 | 日韩人妻系列无码专区 | 亚洲人亚洲人成电影网站色 | 77777熟女视频在线观看 а天堂中文在线官网 | 99精品视频在线观看免费 | 久久精品国产99精品亚洲 | 成年女人永久免费看片 | 2020久久超碰国产精品最新 | 中文字幕无码av激情不卡 | 熟女少妇在线视频播放 | 无码人妻av免费一区二区三区 | 性生交片免费无码看人 | 欧美国产日韩久久mv | 1000部啪啪未满十八勿入下载 | 无码人妻av免费一区二区三区 | 国产激情无码一区二区 | 亚洲精品中文字幕 | 亚洲人成影院在线观看 | 国产超级va在线观看视频 | av无码电影一区二区三区 | 丰满人妻翻云覆雨呻吟视频 | 中文字幕中文有码在线 | 国产精品久久久久久亚洲影视内衣 | 性欧美大战久久久久久久 | 国产人成高清在线视频99最全资源 | 成人毛片一区二区 | 国产成人无码av一区二区 | 亚洲国产一区二区三区在线观看 | 夫妻免费无码v看片 | 青青久在线视频免费观看 | 国产人成高清在线视频99最全资源 | 欧美日韩视频无码一区二区三 | 蜜桃臀无码内射一区二区三区 | 性生交大片免费看女人按摩摩 | 亚洲熟妇色xxxxx欧美老妇 | 东京热男人av天堂 | 老司机亚洲精品影院无码 | 国产精品多人p群无码 | 中文精品无码中文字幕无码专区 | 在线看片无码永久免费视频 | 久久精品无码一区二区三区 | 在线精品国产一区二区三区 | 97se亚洲精品一区 | 久久久国产一区二区三区 | 久久99精品国产麻豆蜜芽 | 国产又爽又猛又粗的视频a片 | 国产人妻人伦精品1国产丝袜 | 天干天干啦夜天干天2017 | 永久黄网站色视频免费直播 | 午夜嘿嘿嘿影院 | 国产人妻人伦精品 | 东京热一精品无码av | 国产无遮挡吃胸膜奶免费看 | 岛国片人妻三上悠亚 | 国产午夜亚洲精品不卡 | а√天堂www在线天堂小说 | 亚洲欧美精品aaaaaa片 | 国产av人人夜夜澡人人爽麻豆 | 亚洲毛片av日韩av无码 | 无码国内精品人妻少妇 | 成人免费视频在线观看 | 亚洲精品久久久久久一区二区 | 丰满少妇熟乱xxxxx视频 | 国产在线无码精品电影网 | 中文字幕无码av波多野吉衣 | 日本免费一区二区三区最新 | 久久久中文久久久无码 | 亚洲欧洲日本无在线码 | aa片在线观看视频在线播放 | 狠狠色噜噜狠狠狠狠7777米奇 | 国产午夜手机精彩视频 | 久久99国产综合精品 | 欧美激情内射喷水高潮 | 给我免费的视频在线观看 | 国产精品久久久av久久久 | 综合激情五月综合激情五月激情1 | 国产性生大片免费观看性 | 67194成是人免费无码 | 窝窝午夜理论片影院 | 男女作爱免费网站 | 狂野欧美性猛xxxx乱大交 | aⅴ亚洲 日韩 色 图网站 播放 | 精品日本一区二区三区在线观看 | 婷婷丁香五月天综合东京热 | 中文毛片无遮挡高清免费 | 亚洲成a人片在线观看无码3d | 久久熟妇人妻午夜寂寞影院 | 2020最新国产自产精品 | 亚洲人亚洲人成电影网站色 | 未满成年国产在线观看 | 在线精品国产一区二区三区 | 一本大道伊人av久久综合 | 日韩 欧美 动漫 国产 制服 | 国产另类ts人妖一区二区 | 图片区 小说区 区 亚洲五月 | 色狠狠av一区二区三区 | 兔费看少妇性l交大片免费 | 一二三四在线观看免费视频 | 天堂а√在线中文在线 | 久久人人97超碰a片精品 | 人人妻人人澡人人爽欧美一区 | 爱做久久久久久 | 又大又紧又粉嫩18p少妇 | 欧美日韩亚洲国产精品 | 狠狠色噜噜狠狠狠7777奇米 | 精品国产aⅴ无码一区二区 | 亚洲精品久久久久久一区二区 | 日本乱偷人妻中文字幕 | 人妻与老人中文字幕 | 亚洲精品www久久久 | 国产精品亚洲五月天高清 | 天堂久久天堂av色综合 | 国产精品久久久久影院嫩草 | 中文无码成人免费视频在线观看 | 激情综合激情五月俺也去 | 久久综合激激的五月天 | 国产成人精品三级麻豆 | 日韩精品乱码av一区二区 | 色综合天天综合狠狠爱 | 欧美日韩一区二区免费视频 | 女人色极品影院 | 国产精品久久国产三级国 | 国产激情精品一区二区三区 | 无码中文字幕色专区 | 国产精品亚洲一区二区三区喷水 | 成 人影片 免费观看 | 最近免费中文字幕中文高清百度 | 精品一区二区三区无码免费视频 | 亚洲中文字幕无码一久久区 | 国产内射爽爽大片视频社区在线 | 久久zyz资源站无码中文动漫 | 又粗又大又硬又长又爽 | 亚洲国产欧美国产综合一区 | 美女黄网站人色视频免费国产 | 99久久久无码国产精品免费 | 野狼第一精品社区 | 丰满少妇熟乱xxxxx视频 | 伊人久久大香线蕉亚洲 | 欧美性猛交内射兽交老熟妇 | 狠狠综合久久久久综合网 | 国产成人综合在线女婷五月99播放 | 欧美猛少妇色xxxxx | 99精品国产综合久久久久五月天 | 欧美阿v高清资源不卡在线播放 | 国产香蕉尹人视频在线 | 国产疯狂伦交大片 | 高潮毛片无遮挡高清免费 | 欧美日韩视频无码一区二区三 | 亚洲成av人在线观看网址 | 国产九九九九九九九a片 | 欧美第一黄网免费网站 | 在线a亚洲视频播放在线观看 | 国精品人妻无码一区二区三区蜜柚 | 激情内射日本一区二区三区 | 国产人妻精品一区二区三区 | 国产成人无码区免费内射一片色欲 | 黑人大群体交免费视频 | 欧美日本精品一区二区三区 | 我要看www免费看插插视频 | 99久久婷婷国产综合精品青草免费 | 久久亚洲精品中文字幕无男同 | 清纯唯美经典一区二区 | 亚洲大尺度无码无码专区 | 精品一二三区久久aaa片 | 成人欧美一区二区三区黑人免费 | 国产午夜福利100集发布 | 亚洲人成影院在线无码按摩店 | 3d动漫精品啪啪一区二区中 | 又大又黄又粗又爽的免费视频 | 国产三级精品三级男人的天堂 | 成年美女黄网站色大免费全看 | 国产婷婷色一区二区三区在线 | 无码成人精品区在线观看 | 欧美精品国产综合久久 | 性开放的女人aaa片 | 乌克兰少妇性做爰 | 国产精华av午夜在线观看 | 无码吃奶揉捏奶头高潮视频 | 国产精品99久久精品爆乳 | 久久综合久久自在自线精品自 | 妺妺窝人体色www婷婷 | 国产在线aaa片一区二区99 | 国产精品久久国产三级国 | 久久人妻内射无码一区三区 | 99视频精品全部免费免费观看 | 思思久久99热只有频精品66 | 亚洲精品一区二区三区在线观看 | 国产区女主播在线观看 | 免费乱码人妻系列无码专区 | 无码吃奶揉捏奶头高潮视频 | 色妞www精品免费视频 | 久久婷婷五月综合色国产香蕉 | 欧美性黑人极品hd | 久久久精品人妻久久影视 | 亚洲日韩av片在线观看 | 亚洲狠狠婷婷综合久久 | 久久久久久a亚洲欧洲av冫 | 欧美性生交活xxxxxdddd | 人人妻人人澡人人爽人人精品 | 日本www一道久久久免费榴莲 | 国产欧美亚洲精品a | 精品人妻人人做人人爽夜夜爽 | 亚洲 另类 在线 欧美 制服 | 强开小婷嫩苞又嫩又紧视频 | 波多野结衣乳巨码无在线观看 | 色一情一乱一伦一区二区三欧美 | 未满成年国产在线观看 | 欧美黑人乱大交 | 久久综合九色综合欧美狠狠 | 樱花草在线社区www | 激情人妻另类人妻伦 | 人人妻人人澡人人爽人人精品浪潮 | 77777熟女视频在线观看 а天堂中文在线官网 | аⅴ资源天堂资源库在线 | 国产成人无码午夜视频在线观看 | 亚洲小说春色综合另类 | 中文精品无码中文字幕无码专区 | 永久免费观看美女裸体的网站 | 99精品国产综合久久久久五月天 | 国内精品久久久久久中文字幕 | 天堂а√在线地址中文在线 | 亚洲中文字幕无码中文字在线 | 大地资源网第二页免费观看 | 日韩人妻无码中文字幕视频 | 人妻与老人中文字幕 | 国产亚洲精品久久久闺蜜 | 一本久道久久综合狠狠爱 | 精品人妻人人做人人爽 | 国产精品人妻一区二区三区四 | 国产真实伦对白全集 | 日韩人妻无码一区二区三区久久99 | 51国偷自产一区二区三区 | 国产热a欧美热a在线视频 | 麻豆精品国产精华精华液好用吗 | 欧美人与善在线com | 少妇无码av无码专区在线观看 | 免费观看又污又黄的网站 | 国产亚洲视频中文字幕97精品 | 99riav国产精品视频 | 精品一区二区三区波多野结衣 | 国产麻豆精品一区二区三区v视界 | 国产va免费精品观看 | 国产9 9在线 | 中文 | 中文字幕无线码免费人妻 | 日产精品高潮呻吟av久久 | 少妇激情av一区二区 | 中文无码伦av中文字幕 | 久久亚洲精品中文字幕无男同 | 欧美午夜特黄aaaaaa片 | 亚洲の无码国产の无码影院 | 欧美成人午夜精品久久久 | 色妞www精品免费视频 | 超碰97人人做人人爱少妇 | 国产又爽又黄又刺激的视频 | 97夜夜澡人人爽人人喊中国片 | 欧美猛少妇色xxxxx | 任你躁在线精品免费 | 亚洲 a v无 码免 费 成 人 a v | 亚洲日韩一区二区三区 | 丰满人妻翻云覆雨呻吟视频 | 国产一区二区不卡老阿姨 | 欧美 日韩 亚洲 在线 | 欧洲欧美人成视频在线 | 人妻尝试又大又粗久久 | 久久精品丝袜高跟鞋 | 欧美野外疯狂做受xxxx高潮 | 日韩av无码一区二区三区不卡 | 国产在线无码精品电影网 | 中文字幕av无码一区二区三区电影 | 人人妻在人人 | 最近的中文字幕在线看视频 | 国产特级毛片aaaaaa高潮流水 | 国产精品成人av在线观看 | 老熟妇仑乱视频一区二区 | 国产xxx69麻豆国语对白 | 捆绑白丝粉色jk震动捧喷白浆 | 国产亚洲欧美日韩亚洲中文色 | 久久久精品欧美一区二区免费 | 亚洲国产精品一区二区第一页 | 欧美成人高清在线播放 | 中文精品无码中文字幕无码专区 | 中文字幕无码日韩欧毛 | 久久午夜夜伦鲁鲁片无码免费 | 亚洲人成网站色7799 | 精品久久久久久亚洲精品 | 亚洲 a v无 码免 费 成 人 a v | 国产精品久久久久久无码 | 精品国产aⅴ无码一区二区 | 久久精品女人天堂av免费观看 | 日韩在线不卡免费视频一区 | 久久人人97超碰a片精品 | 高清国产亚洲精品自在久久 | 精品欧洲av无码一区二区三区 | 乱人伦人妻中文字幕无码久久网 | 性欧美videos高清精品 | 亚洲一区二区三区含羞草 | √天堂中文官网8在线 | 国产成人综合美国十次 | 久久久久久九九精品久 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | a在线观看免费网站大全 | 国产无av码在线观看 | 国产乱码精品一品二品 | 99久久精品国产一区二区蜜芽 | 成人免费无码大片a毛片 | 午夜无码人妻av大片色欲 | 色婷婷欧美在线播放内射 | 人人妻人人澡人人爽人人精品浪潮 | 精品无码国产自产拍在线观看蜜 | 久久午夜夜伦鲁鲁片无码免费 | 水蜜桃色314在线观看 | 欧美激情内射喷水高潮 | 樱花草在线社区www | 草草网站影院白丝内射 | 国产精品爱久久久久久久 | 高中生自慰www网站 | 无码福利日韩神码福利片 | 国产成人无码一二三区视频 | 欧美怡红院免费全部视频 | 激情国产av做激情国产爱 | 大乳丰满人妻中文字幕日本 | 国产内射爽爽大片视频社区在线 | 中文字幕无码人妻少妇免费 | 欧美精品无码一区二区三区 | 美女极度色诱视频国产 | 无码帝国www无码专区色综合 | 波多野结衣高清一区二区三区 | 午夜嘿嘿嘿影院 | 无码人妻久久一区二区三区不卡 | 樱花草在线社区www | 夜夜躁日日躁狠狠久久av | 久久成人a毛片免费观看网站 | 少妇被黑人到高潮喷出白浆 | 人妻aⅴ无码一区二区三区 | 亚洲一区二区三区香蕉 | 国语自产偷拍精品视频偷 | 中文字幕乱码亚洲无线三区 | 丰满人妻一区二区三区免费视频 | 人妻少妇精品无码专区二区 | 午夜无码人妻av大片色欲 | 无码人妻少妇伦在线电影 | 日本一区二区三区免费高清 | 亚洲男人av香蕉爽爽爽爽 | 国内老熟妇对白xxxxhd | 青青青手机频在线观看 | 老熟女乱子伦 | 欧美老熟妇乱xxxxx | 亚洲综合在线一区二区三区 | 无码人妻黑人中文字幕 | 天天拍夜夜添久久精品大 | 精品无码一区二区三区爱欲 | 欧洲熟妇精品视频 | 久久精品国产亚洲精品 | 免费乱码人妻系列无码专区 | 国产精品久久久久久无码 | 丰满人妻翻云覆雨呻吟视频 | 国产精品久久久一区二区三区 | 最近中文2019字幕第二页 | 久久婷婷五月综合色国产香蕉 | 中文字幕无码日韩专区 | 我要看www免费看插插视频 | 熟女体下毛毛黑森林 | aa片在线观看视频在线播放 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 免费视频欧美无人区码 | 国产精品对白交换视频 | 亚洲中文字幕va福利 | 欧美精品一区二区精品久久 | 成人一区二区免费视频 | 精品久久久中文字幕人妻 | 亚洲色在线无码国产精品不卡 | 蜜桃视频插满18在线观看 | 日日碰狠狠丁香久燥 | 国产精品va在线播放 | 天天躁夜夜躁狠狠是什么心态 | 女人被男人躁得好爽免费视频 | 成 人 网 站国产免费观看 | 爱做久久久久久 | 任你躁国产自任一区二区三区 | 红桃av一区二区三区在线无码av | 亚洲一区二区三区含羞草 | 国产麻豆精品精东影业av网站 | 久久久久久国产精品无码下载 | 国产综合色产在线精品 | 人妻少妇精品无码专区二区 | 成人性做爰aaa片免费看 | 久久午夜无码鲁丝片秋霞 | 精品国产乱码久久久久乱码 | 久久视频在线观看精品 | 欧洲熟妇色 欧美 | 亚洲人成网站色7799 | 中文字幕 亚洲精品 第1页 | 无码中文字幕色专区 | 欧美高清在线精品一区 | 99久久精品无码一区二区毛片 | 国产特级毛片aaaaaa高潮流水 | 国产激情综合五月久久 | 日本www一道久久久免费榴莲 | 波多野结衣av一区二区全免费观看 | 国产精品-区区久久久狼 | 欧美成人高清在线播放 | 亚洲精品一区二区三区在线观看 | 天天摸天天碰天天添 | 国产情侣作爱视频免费观看 | 亚洲爆乳无码专区 | 国产成人综合在线女婷五月99播放 | 国内揄拍国内精品少妇国语 | 国语精品一区二区三区 | 欧美丰满老熟妇xxxxx性 | 麻豆精品国产精华精华液好用吗 | 大地资源中文第3页 | 亚洲狠狠色丁香婷婷综合 | 亚洲无人区午夜福利码高清完整版 | 亚洲综合色区中文字幕 | 亚洲日本在线电影 | 伊人久久大香线蕉av一区二区 | 亚洲一区二区三区无码久久 | 国内精品人妻无码久久久影院蜜桃 | 性史性农村dvd毛片 | 成 人 网 站国产免费观看 | 国产亚洲精品久久久久久国模美 | 国产精品久久久一区二区三区 | 波多野42部无码喷潮在线 | 精品国产青草久久久久福利 | 黄网在线观看免费网站 | 欧美日韩色另类综合 | 国产麻豆精品一区二区三区v视界 | 一二三四社区在线中文视频 | 国产精品成人av在线观看 | 图片区 小说区 区 亚洲五月 | 久久午夜夜伦鲁鲁片无码免费 | 成人综合网亚洲伊人 | 无码国产激情在线观看 | 99久久精品日本一区二区免费 | 娇妻被黑人粗大高潮白浆 | 精品国产麻豆免费人成网站 | 国产9 9在线 | 中文 | 装睡被陌生人摸出水好爽 | 东北女人啪啪对白 | 亚洲综合在线一区二区三区 | 丰满肥臀大屁股熟妇激情视频 | 亚洲国精产品一二二线 | 少妇人妻大乳在线视频 | 美女扒开屁股让男人桶 | 中文字幕av无码一区二区三区电影 | 无码午夜成人1000部免费视频 | 男人扒开女人内裤强吻桶进去 | 亚洲 激情 小说 另类 欧美 | 动漫av网站免费观看 | 亚洲七七久久桃花影院 | 亚洲aⅴ无码成人网站国产app | 日本一区二区更新不卡 | 久久久久成人片免费观看蜜芽 | 久久久亚洲欧洲日产国码αv | 欧美人与动性行为视频 | 人人爽人人爽人人片av亚洲 | 色一情一乱一伦一区二区三欧美 | 国产极品美女高潮无套在线观看 | 18禁止看的免费污网站 | 巨爆乳无码视频在线观看 | 国色天香社区在线视频 | 国产午夜亚洲精品不卡下载 | 久久久久久国产精品无码下载 | 久久国产精品精品国产色婷婷 | 玩弄少妇高潮ⅹxxxyw | 中文字幕精品av一区二区五区 | 国产精品美女久久久 | 久久精品人妻少妇一区二区三区 | 无码av免费一区二区三区试看 | 大胆欧美熟妇xx | 日日橹狠狠爱欧美视频 | 5858s亚洲色大成网站www | 日本精品高清一区二区 | 亚洲国产精品久久人人爱 | av人摸人人人澡人人超碰下载 | 亚洲中文字幕无码一久久区 | 色综合久久久无码中文字幕 | 婷婷丁香六月激情综合啪 | 动漫av一区二区在线观看 | 精品欧洲av无码一区二区三区 | 亚洲精品国产精品乱码不卡 | 在线成人www免费观看视频 | 无码av最新清无码专区吞精 | 久久99精品久久久久久 | 色 综合 欧美 亚洲 国产 | 97se亚洲精品一区 | 国产精品毛多多水多 | 又大又黄又粗又爽的免费视频 | 亚洲国产欧美国产综合一区 | 十八禁真人啪啪免费网站 | 人人妻人人藻人人爽欧美一区 | 精品夜夜澡人妻无码av蜜桃 | 午夜无码人妻av大片色欲 | 7777奇米四色成人眼影 | 国产精品无码永久免费888 | 精品久久久久久人妻无码中文字幕 | 性生交大片免费看女人按摩摩 | 在线欧美精品一区二区三区 | 久久久久久久人妻无码中文字幕爆 | 一本久道久久综合婷婷五月 | 精品一区二区三区无码免费视频 | 久久久久免费看成人影片 | 人妻互换免费中文字幕 | 99riav国产精品视频 | 沈阳熟女露脸对白视频 | 亚洲无人区午夜福利码高清完整版 | 久热国产vs视频在线观看 | 综合网日日天干夜夜久久 | 樱花草在线播放免费中文 | 久久综合给久久狠狠97色 | 国产熟妇高潮叫床视频播放 | 俺去俺来也www色官网 | 中文字幕+乱码+中文字幕一区 | 呦交小u女精品视频 | 夜精品a片一区二区三区无码白浆 | 国产成人无码av片在线观看不卡 | 欧美黑人巨大xxxxx | 国产激情精品一区二区三区 | 国产性生交xxxxx无码 | 秋霞特色aa大片 | 久久99精品国产.久久久久 | 强辱丰满人妻hd中文字幕 | 噜噜噜亚洲色成人网站 | 欧美黑人巨大xxxxx | 中文字幕久久久久人妻 | 久久久www成人免费毛片 | 中文字幕精品av一区二区五区 | 黑人玩弄人妻中文在线 | 国产精品久久久久7777 | 亚洲va欧美va天堂v国产综合 | 亚洲成在人网站无码天堂 | 国产女主播喷水视频在线观看 | 国产精品成人av在线观看 | 久久99精品国产.久久久久 | 国产精品久久久久久亚洲影视内衣 | 色五月丁香五月综合五月 | 性色av无码免费一区二区三区 | 婷婷综合久久中文字幕蜜桃三电影 | 岛国片人妻三上悠亚 | 成人av无码一区二区三区 | 日韩在线不卡免费视频一区 | 日本大香伊一区二区三区 | 国产超碰人人爽人人做人人添 | 久久zyz资源站无码中文动漫 | 无码中文字幕色专区 | 午夜福利电影 | 7777奇米四色成人眼影 | 色婷婷综合激情综在线播放 | 波多野结衣av在线观看 | 午夜免费福利小电影 | 国产亚洲精品久久久ai换 | 亚洲成av人综合在线观看 | 久精品国产欧美亚洲色aⅴ大片 | 日韩人妻少妇一区二区三区 | 日韩av无码一区二区三区 | 少妇无码av无码专区在线观看 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 国产精品久久久久影院嫩草 | 麻豆果冻传媒2021精品传媒一区下载 | 国产精品无码成人午夜电影 | 亚洲精品久久久久中文第一幕 | 亚洲理论电影在线观看 | 97人妻精品一区二区三区 | 麻豆国产97在线 | 欧洲 | 色婷婷香蕉在线一区二区 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 强开小婷嫩苞又嫩又紧视频 | 国产农村乱对白刺激视频 | 亚洲综合另类小说色区 | 欧美黑人性暴力猛交喷水 | 又紧又大又爽精品一区二区 | 亚洲成av人在线观看网址 | 中文字幕乱码人妻二区三区 | 日本精品人妻无码免费大全 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 蜜桃视频插满18在线观看 | 精品国精品国产自在久国产87 | 人妻插b视频一区二区三区 |