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

歡迎訪問 生活随笔!

生活随笔

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

java

后端学习 - Java基础

發布時間:2023/12/4 java 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 后端学习 - Java基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一 基礎概念
    • 1 有關Java
    • 2 JVM / JDK / JRE
    • 3 與C++的聯系和區別
  • 二 Java語法
    • 1 各類型數據占用空間大小
    • 2 可變長參數
    • 3 靜態方法與實例方法
    • 4 重載和重寫
    • 5 泛型
    • 6 == 和 equals() 的區別
    • 7 hashCode() 方法
    • 8 包裝類型
    • 9 final 關鍵字
    • 10 Java的參數傳遞機制
    • 11 String 的內存情況
    • 12 lambda 表達式
  • 三 Java的面向對象
    • 1 面向過程與面向對象
    • 2 對象與對象引用
    • 3 構造方法
    • 4 封裝、繼承、多態
    • 5 StringBuffer 與 StringBuilder
    • 6 引用拷貝、淺拷貝與深拷貝
    • 7 代理模式
    • 8 匿名類
    • 9 內部類
  • 四 異常
    • 1 異常分類
    • 2 try - catch - finally 結構
    • 3 不執行 finally 的特殊情況
    • 4 使用 try-with-resources 代替 try-catch-finally
  • 五 I/O流
    • 1 transient 關鍵字
    • 2 通過鍵盤獲取輸入的兩種方法
    • 3 I/O流分類
    • 4 為什么使用字節流
  • 六 反射
    • 1 動態語言
    • 2 什么是反射
    • 3 反射的常用API
    • 4 反射的實例
    • 5 反射與封裝性并不矛盾
    • 6 Class 類
    • 7 newInstance()
    • 8 反射的應用:動態代理模式

一 基礎概念

1 有關Java

  • 編譯型語言會通過編譯器將源代碼一次性翻譯成可被該平臺執行的機器碼。一般情況下,編譯語言的執行速度比較快,開發效率比較低。
  • 解釋型語言會通過解釋器一句一句的將代碼解釋(interpret)為機器代碼后再執行。解釋型語言開發效率比較快,執行速度比較慢。
  • Java是編譯與解釋并存的語言。由 Java 編寫的程序需要先經過編譯步驟,生成字節碼(.class 文件),這種字節碼必須由 Java 解釋器來解釋執行。字節碼對應.class文件,它是面向JVM而非特定系統的,具有良好的可移植性。

2 JVM / JDK / JRE

  • JVM(Java virtual machine):運行 Java 字節碼(.class格式文件)的虛擬機,針對不同系統有不同的實現。JVM是一種規范,滿足規范的虛擬機都可稱為JVM。
  • JDK(Java development kit):功能齊全的 Java SDK。擁有 JRE 所擁有的一切,還有編譯器(javac)和工具(如 javadoc 和 jdb)。它能夠創建和編譯程序。
  • JRE(Java runtime environment):Java 運行時環境。它是運行已編譯 Java 程序所需的所有內容的集合,包括 Java 虛擬機(JVM),Java 類庫,java 命令和其他的一些基礎構件。但是不能用于創建新程序。

總之,JDK 包含 JRE 包含 JVM。

3 與C++的聯系和區別

  • 都是面向對象的語言,支持封裝、繼承、多態;
  • Java 不提供指針來直接訪問內存,程序內存更加安全;
  • Java 的類是單繼承的(接口支持多重繼承),C++ 支持多重繼承;
  • Java 有自動內存管理垃圾回收機制;
  • C ++同時支持方法重載和操作符重載,但是 Java 只支持方法重載。

二 Java語法

1 各類型數據占用空間大小

Java中比較特殊的是char類型占用2字節(16bits)

2 可變長參數

下面的方法可以接受0或多個參數,可變長的形式參數只能放在參數列表的末尾,在實現時會被視為數組。

public static void printVariable(String... args) {for (String s : args) {System.out.println(s);} }

3 靜態方法與實例方法

  • 靜態方法屬于類,因此靜態方法可以不創建實例使用。最好使用 類名.方法名 的方式調用。
  • 同樣的,靜態方法只能訪問別的靜態方法與靜態成員變量,不能訪問非靜態成員。
  • static 方法不能被重寫(不能稱之為重寫)。

4 重載和重寫

  • 重載:相同的方法名,不同的參數列表??梢园l生在一個類中,也可以發生在父類和子類間。重載就是同一個類中多個同名方法根據不同的傳參來執行不同的邏輯處理。重載發生在編譯時。
  • 重寫:相同的方法名,相同的參數列表。發生在父類和子類間,本質上是子類覆蓋了父類的方法。重寫發生在運行時。

重寫要實現的目的是,父類方法能完成的事,子類重寫后不能完成得更差。具體指的是:拋出異常的類型更小或相等,訪問權限更大或相等,返回值的類型更小或相等(如果方法的返回類型是 void 和基本數據類型,則返回值重寫時不可修改。但是如果方法的返回值是引用類型,重寫時可以返回該引用類型的子類)。
另外,static 方法不能被重寫(不能稱之為重寫)。

5 泛型

  • 泛型的本質是參數化類型,即數據類型被指定為一個參數。
  • 如果實例化泛型類時,沒有指定具體的類型,則認為此泛型的類型為 Object(不推薦)。
  • 繼承泛型類時,只需在 extends 后的父類后指明泛型類型即可(public class SubOrder extends Order<String>)。如果不指明,則當前類仍然沿用泛型(public class ArrayList<E> extends AbstractList<E>)。
  • 泛型類的構造器在聲明時不需要加泛型符號,但調用構造器時需要指明類型。
  • 顯然,靜態方法中不能使用類的泛型。
  • 不能使用 new T[capacity] 創建泛型數組,因為在編譯時 T 不是一個具體的類,無法通過編譯。要先創建 Object 數組再強轉:(T[]) new Object[capacity]。
  • 泛型方法并不是“使用”了泛型的方法,而是“定義”了新泛型的方法。泛型方法可以用 static 修飾。
public void add(E e) // 不是泛型方法 public <T> T[] toArrray(T[] a) // 是泛型方法,新定義了泛型標識
  • 類A是類B的父類,但G<A> 和G<B>二者不具備子父類關系,二者是并列關系,共同的父類是 G<?>;類A是類B的父類,A<G> 是 B<G> 的父類。(子父類的判斷不看泛型,只看括號外的類型)。
  • 通配符的限制符號:G<? extends A> 可以放A和A的子類;G<? super A>可以放A和A的父類。
  • Java 的泛型是偽泛型,因為 Java 在運行期間,所有的泛型信息都會被擦掉(類型擦除) 。

HashMap 中泛型的使用(泛型嵌套):

public void test3(){//Map<String,Integer> map = new HashMap<String,Integer>();//jdk7新特性:類型推斷Map<String,Integer> map = new HashMap<>();map.put("Tom",87);map.put("Jerry",87);map.put("Jack",67);//map.put(123,"ABC");//泛型的嵌套Set<Map.Entry<String,Integer>> entry = map.entrySet();Iterator<Map.Entry<String, Integer>> iterator = entry.iterator();while(iterator.hasNext()){Map.Entry<String, Integer> e = iterator.next(); // Entry是Map的內部類String key = e.getKey();Integer value = e.getValue();System.out.println(key + "----" + value);}}

6 == 和 equals() 的區別

  • 對于基本數據類型,只能用 == 比較。
  • 對于引用數據類型, == 用于比較內存地址; equals() 如果未被重寫,也是比較內存地址,重寫后按照指定規則判斷兩個對象是否相等。

7 hashCode() 方法

  • 重寫 equals() 方法時,必須同時重寫 hashCode() 方法。
  • 兩個對象的 hashCode 值相等并不代表兩個對象就相等(哈希碰撞)。兩個對象相等則 hashCode 必相等。
  • 兩個對象的比較,首先比較 hashCode() 的返回值是否相等,如果不相等直接認為兩個對象不相等,如果相等則繼續調用 equals() 方法,返回 True 時視為兩個對象相等。
  • 如果重寫 equals() 時沒有重寫 hashCode() 方法的話,可能會導致 equals 方法判斷是相等的兩個對象,hashCode 值卻不相等。
  • hashCode() 存在的意義是,減少 equals() 的調用,提高執行速度。

8 包裝類型

  • 包裝類型的比較必須用 equals() 。
  • 包裝類型不賦值就是 Null ,而基本類型有默認值且不是 Null。
  • 基本數據類型直接存放在 Java 虛擬機棧中的局部變量表中,而包裝類型屬于對象類型,存在于堆中。相比于對象類型, 基本數據類型占用的空間非常小。 補充:局部變量表主要存放了編譯期可知的基本數據類型 、對象引用(reference 類型,它不同于對象本身,可能是一個指向對象起始地址的引用指針,也可能是指向一個代表對象的句柄或其他與此對象相關的位置)。
  • Java 基本類型的包裝類的大部分都實現了常量池技術。 Byte,Short,Integer,Long 這 4 種包裝類默認創建了數值 [-128,127] 的相應類型的緩存數據,Character 創建了數值在 [0,127] 范圍的緩存數據,Boolean 直接返回 True or False。Float,Double 并沒有實現常量池技術。
  • 裝箱與拆箱:裝箱其實就是調用了 包裝類的valueOf()方法,拆箱其實就是調用了 xxxValue()方法。
Integer i = 10; //裝箱,等價于 Integer i = Integer.valueOf(10) int n = i; //拆箱,int n = i.intValue()

9 final 關鍵字

被 final 關鍵字修飾的類不能被繼承,修飾的方法不能被重寫,修飾的變量是基本數據類型則值不能改變,修飾的變量是引用類型則不能再指向其他對象。

10 Java的參數傳遞機制

Java只存在值傳遞,如果向方法傳遞引用類型,則在方法中產生引用類型的堆中的地址的拷貝。

public class Person {private String name;// 省略構造函數、Getter&Setter方法 }public static void main(String[] args) {Person xiaoZhang = new Person("小張");Person xiaoLi = new Person("小李");swap(xiaoZhang, xiaoLi);System.out.println("xiaoZhang:" + xiaoZhang.getName());System.out.println("xiaoLi:" + xiaoLi.getName()); }public static void swap(Person person1, Person person2) {Person temp = person1;person1 = person2;person2 = temp;System.out.println("person1:" + person1.getName());System.out.println("person2:" + person2.getName()); }輸出: person1:小李 person2:小張 xiaoZhang:小張 xiaoLi:小李

是因為 swap 方法的參數 person1 和 person2 只是拷貝的實參 xiaoZhang 和 xiaoLi 的地址。因此, person1 和 person2 的互換只是拷貝的兩個地址的互換,不會影響到實參 xiaoZhang 和 xiaoLi 。
另附自己驗證的代碼:

public class Main {public static void change(Person p) {//p = new Person("更改后"); // main打印結果是更改前,先得到新的地址,然后賦給p,跟輸入的p沒有任何關系p.name = "更改后"; // main打印結果是更改后,直接更改了輸入內存地址里的內容}public static void main(String[] args) {Person p_in = new Person("更改前");change(p_in);System.out.println(p_in.name);} }class Person {public String name;public Person(String name) {this.name = name;} }

11 String 的內存情況

  • String 不同實例化方式的內存對比
  • 字符串拼接的內存情況
    str_instance.intern() 將字符串 str 放到常量池中
  • 12 lambda 表達式

    JDK 1.8 之后的特性。本質是函數式接口(僅包含一個方法的接口,接口上使用 @FunctionalInterface 注解)的實例。

    三 Java的面向對象

    1 面向過程與面向對象

    • 面向過程 :面向過程性能比面向對象高。 因為類調用時需要實例化,開銷比較大,比較消耗資源,所以當性能是最重要的考量因素的時候,比如單片機、嵌入式開發、Linux/Unix 等一般采用面向過程開發。但是,面向過程沒有面向對象易維護、易復用、易擴展。
    • 面向對象 :面向對象易維護、易復用、易擴展。 因為面向對象有封裝、繼承、多態性的特性,所以可以設計出低耦合的系統,使系統更加靈活、更加易于維護。但是,面向對象性能比面向過程低。

    2 對象與對象引用

    • 使用 new 創建對象實例(對象實例在堆內存中),對象引用指向對象實例(對象引用存放在棧內存中)。
    • 對象的相等,比的是內存中存放的內容是否相等。而引用相等,比較的是他們指向的內存地址是否相等。

    3 構造方法

    • 一個類即使沒有聲明構造方法也會有默認的不帶參數的構造方法。如果我們自己添加了類的構造方法(無論是否有參),Java 就不會再添加默認的無參數的構造方法了。
    • 如果重載了有參的構造方法,要把無參的構造方法也寫出來(無論是否用到),可以幫助我們在創建對象的時候少踩坑。
    • 構造方法不能重寫,但是可以重載。
    • 如果子類構造方法沒有顯式地調用 super 構造器,則默認調用 super()。
    • 通過子類構造器創建對象時,一定會直接或間接地調用父類的構造器,如此直到調用了 Object 類的構造器。但實際上只創建了一個子類的對象。

    4 封裝、繼承、多態

    • 封裝:封裝是指把一個對象的狀態信息(也就是屬性)隱藏在對象內部,不允許外部對象直接訪問對象的內部信息。但是可以提供一些可以被外界訪問的方法來操作屬性。
    • 繼承:繼承是使用已存在的類的定義作為基礎建立新類的技術,新類的定義可以增加新的數據或新的功能,也可以用父類的功能,但不能選擇性地繼承父類。子類擁有父類對象所有的屬性和方法(包括私有屬性和私有方法),但是父類中的私有屬性和方法子類是無法訪問,只是擁有。
    • 多態:編譯時類型和運行時類型不一致(編譯時看左邊,運行時看右邊),具體表現為父類的引用指向子類的實例。引用類型變量發出的方法調用的到底是哪個類中的方法,必須在程序運行期間才能確定;多態不能調用“只在子類存在但在父類不存在”的方法,盡管內存中加載了子類特有的屬性和方法,想要調用需要向下轉型。多態情況下,父類的方法稱為虛(擬)方法,調用方法的過程稱為動態綁定。

    5 StringBuffer 與 StringBuilder

    • StringBuilder 與 StringBuffer 都繼承自 AbstractStringBuilder 類。
    • StringBuffer 對方法加了同步鎖或者對調用的方法加了同步鎖,所以是線程安全的。StringBuilder 并沒有對方法進行加同步鎖,所以是非線程安全的。
    • 性能:StringBuilder > StringBuffer > String;安全性:String > StringBuffer > StringBuilder
    • 選擇:操作少量的數據適用 String;單線程操作字符串緩沖區下操作大量數據適用 StringBuilder;多線程操作字符串緩沖區下操作大量數據適用 StringBuffer。

    6 引用拷貝、淺拷貝與深拷貝

    • 引用拷貝:創建新的對象引用,指向原來的對象。
    • 淺拷貝:淺拷貝會在堆上創建一個新的對象(區別于引用拷貝的一點),不過,如果原對象內部的屬性是引用類型的話,淺拷貝會直接復制內部對象的引用地址,也就是說拷貝對象和原對象共用同一個內部對象。
    • 深拷貝 :深拷貝會完全復制整個對象,包括這個對象所包含的內部對象。

    7 代理模式

    靜態代理

    • 靜態代理在編譯時就將接口、實現類、代理類這些都變成了一個個實際的 class 文件。通過代理類屏蔽對目標對象的訪問,并且可以在目標方法執行前后做一些自己想做的事情。
    • 靜態代理的實現步驟:定義一個接口及其實現類; 創建一個代理類同樣實現這個接口,將目標對象注入進代理類(使其成為代理類的成員變量);然后在代理類的對應方法調用目標類中的對應方法。
    • 靜態代理中,對目標對象的每個方法的增強都是手動完成的,非常不靈活(比如接口一旦新增加方法,目標對象和代理對象都要進行修改且麻煩(需要對每個目標類都單獨寫一個代理類)。

    JDK動態代理(反射的應用)

    • 動態代理在運行時動態生成類字節碼,并加載到 JVM 中的。
    • 動態代理更加靈活,不需要必須實現接口,可以直接代理實現類,并且可以不需要針對每個目標類都創建一個代理類。“一個代理類,完成全部的代理功能”。

    使用實例:

  • 接口與接口的實現
  • interface Human{String getBelief();void eat(String food); }class SuperMan implements Human{@Overridepublic String getBelief() {return "I believe I can fly!";}@Overridepublic void eat(String food) {System.out.println("我喜歡吃" + food);} }
  • 動態代理類:動態代理對象調用原生方法的時候,最終實際上調用到的是 invoke() 方法,然后 invoke() 方法調用了被代理對象的原生方法。
  • import java.lang.reflect.InvocationHandler; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method;public class DebugInvocationHandler implements InvocationHandler {// 代理類中的真實對象private final Object target;public DebugInvocationHandler(Object target) {this.target = target;}/*** 動態代理的核心部分!!!* proxy :動態生成的代理類* method : 與代理類對象調用的方法相對應* args : 當前 method 方法的參數**/public Object invoke(Object proxy, Method method, Object[] args) throws InvocationTargetException, IllegalAccessException {//額外操作...Object result = method.invoke(self.target, args); //調用的是method的invoke方法//額外操作...return result;} }
  • 獲取代理對象的工廠類:輸入需要被代理的對象,輸出其代理。即:根據對象實例建立代理實例。
  • public class JdkProxyFactory {public static Object getProxy(Object target) {return Proxy.newProxyInstance(target.getClass().getClassLoader(), // 目標類的類加載target.getClass().getInterfaces(), // 代理需要實現的接口,可指定多個new DebugInvocationHandler(target) // 代理對象對應的自定義 InvocationHandler);} }
  • 實際使用:一個代理,到處使用
  • public static void main(String[] args) {//被代理的類型1SuperMan superMan = new SuperMan();Human proxyInstance = (Human) ProxyFactory.getProxyInstance(superMan); // 強轉為對應接口的類型// invoke() 方法: 當我們的動態代理對象調用原生方法的時候,最終實際上調用到的是 invoke() 方法,然后 invoke() 方法代替我們去調用了被代理對象的原生方法。String belief = proxyInstance.getBelief();proxyInstance.eat("四川麻辣燙");//被代理的類型2NikeClothFactory nikeClothFactory = new NikeClothFactory();ClothFactory proxyClothFactory = (ClothFactory); ProxyFactory.getProxyInstance(nikeClothFactory);proxyClothFactory.produceCloth();}

    8 匿名類

    9 內部類

    內部類的分類、成員內部類的使用:

    /** 類的內部成員之五:內部類* 1. Java中允許將一個類A聲明在另一個類B中,則類A就是內部類,類B稱為外部類* * 2.內部類的分類:成員內部類(靜態、非靜態) vs 局部內部類(方法內、代碼塊內、構造器內)* * 3.成員內部類:* 一方面,作為外部類的成員:* >調用外部類的結構* >可以被static修飾* >可以被4種不同的權限修飾* * 另一方面,作為一個類:* > 類內可以定義屬性、方法、構造器等* > 可以被final修飾,表示此類不能被繼承。言外之意,不使用final,就可以被繼承* > 可以被abstract修飾*/ public class InnerClassTest {public static void main(String[] args) {//創建Dog實例(靜態的成員內部類):Person.Dog dog = new Person.Dog();dog.show();//創建Bird實例(非靜態的成員內部類): // Person.Bird bird = new Person.Bird();//錯誤Person p = new Person();Person.Bird bird = p.new Bird();bird.sing();System.out.println();bird.display("黃鸝");} }class Person{String name = "小明";int age;public void eat(){System.out.println("人:吃飯");}// 靜態成員內部類static class Dog{String name;int age;public void show(){System.out.println("卡拉是條狗");//eat(); 錯誤,只能調用靜態方法}}// 非靜態成員內部類class Bird{String name = "杜鵑";public Bird(){}public void sing(){System.out.println("我是一只小小鳥");Person.this.eat(); // 調用外部類的非靜態屬性,需要加 Person.thisSystem.out.println(age);}public void display(String name){System.out.println(name); // 方法的形參System.out.println(this.name); // 內部類的屬性System.out.println(Person.this.name); // 外部類的屬性,需要加 Person.this}}public void method(){//局部內部類 - 成員方法內定義class AA{}}{//局部內部類 - 代碼塊內定義class BB{}}public Person(){//局部內部類 - 構造方法內定義class CC{}} }

    局部內部類的使用:

    package com.atguigu.java2;public class InnerClassTest1 { //返回一個實現了Comparable接口的類的對象public Comparable getComparable(){//創建一個實現了Comparable接口的類:局部內部類//方式一,使用內部類:class MyComparable implements Comparable{@Overridepublic int compareTo(Object o) {return 0;}}return new MyComparable();//方式二,使用匿名類:return new Comparable(){@Overridepublic int compareTo(Object o) {return 0;}};} }

    四 異常

    1 異常分類

    • Checked exception 必須處理,Unchecked exception可以不處理。
    • 在編譯過程中,如果受檢查異常沒有被 catch/throw 處理的話,就沒辦法通過編譯 。
    • 除了 RuntimeException 及其子類以外,其他的Exception類及其子類都屬于受檢查異常 。

    2 try - catch - finally 結構

    • try: 用于捕獲異常。其后可接零個或多個 catch 塊,如果沒有 catch 塊,則必須跟一個 finally 塊。
    • catch塊: 用于處理 try 捕獲到的異常。
    • finally 塊: 無論是否捕獲或處理異常,finally 塊里的語句都會被執行。當在 try 塊或 catch 塊中遇到 return 語句時,finally 語句塊將在方法返回之前被執行。當 try 語句和 finally 語句中都有 return 語句時,在方法返回之前,finally 語句的內容將被執行,并且 finally 語句的返回值將會覆蓋原始的返回值。

    3 不執行 finally 的特殊情況

    • 在 try 或 finally塊中用了 System.exit(int)退出程序。但如果 System.exit(int) 在異常語句之后,finally 還是會被執行。
    • 程序所在的線程死亡。
    • 關閉 CPU。

    4 使用 try-with-resources 代替 try-catch-finally

    具體的做法是,在 try 關鍵字后增加括號,在其中創建資源對象(任何實現 java.lang.AutoCloseable或者 java.io.Closeable 的對象),這樣使得 catch 或 finally 塊必須在資源關閉后執行,而不必顯式關閉。

    try (BufferedInputStream bin = new BufferedInputStream(new FileInputStream(new File("test.txt")));BufferedOutputStream bout = new BufferedOutputStream(new FileOutputStream(new File("out.txt")))) {int b;while ((b = bin.read()) != -1) {bout.write(b);}}catch (IOException e) {e.printStackTrace();}

    五 I/O流

    1 transient 關鍵字

    • 作用是阻止實例中那些用此關鍵字修飾的的變量序列化;當對象被反序列化時,被 transient 修飾的變量值不會被持久化和恢復。
    • transient 只能修飾變量,不能修飾類和方法。
    • transient 修飾的變量,在反序列化后變量值將會被置成類型的默認值。例如,如果是修飾 int 類型,那么反序列后結果就是 0。
    • static 變量因為不屬于任何對象(Object),所以無論有沒有 transient 關鍵字修飾,均不會被序列化。

    2 通過鍵盤獲取輸入的兩種方法

    • Scanner
    Scanner input = new Scanner(System.in); String s = input.nextLine();
    • BufferedReader
    BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); String s = input.readLine();

    3 I/O流分類

    • 按照流的流向分,可以分為輸入流和輸出流;
    • 按照操作單元劃分,可以劃分為字節流(1byte=8bit)和字符流(2byte=16bit,因為Java的字符占兩個字節);
    • 按照流的角色劃分為節點流和處理流。

    4 為什么使用字節流

    字符流是由 Java 虛擬機將字節轉換得到的,這個過程還算是非常耗時。并且,如果不知道編碼類型,很容易出現亂碼問題。

    六 反射

    1 動態語言

    • 動態語言指運行時可以改變其結構的語言:例如新的函數、對象、甚至代碼可以被引進,已有的函數可以被刪除或是其他結構上的變化。通俗點說就是在運行時代碼可以根據某些條件改變自身結構。
    • 反射機制使得Java成為了“準動態語言”。加載完類之后,在堆內存的方法區中就產生了一個Class類型的對象(一個類只有一個Class對象),這個對象就包含了完整的類的結構信息。

    2 什么是反射

    • Java反射就是在運行狀態中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調用它的任意方法和屬性;并且能改變它的屬性。
    • 反射機制允許程序在運行時取得任何一個已知名稱的class的內部信息,包括包括其modifiers(修飾符),fields(屬性),methods(方法)等,并可于運行時改變fields內容或調用methods。
    • 編譯時無法確定實例化哪個類的對象,使用反射。

    3 反射的常用API

    • java.lang.Class: 代表一個類(區別于關鍵字 class)
    • java.lang.reflect.Method: 代表類的方法
    • java.lang.reflect.Field: 代表類的成員變量
    • java.lang.reflect.Constructor: 代表類的構造器

    4 反射的實例

    對于類:

    package com.ys.reflex; public class Person {//私有屬性private String name = "Tom";//公有屬性public int age = 18;//構造方法public Person() {}//私有方法private void say(){System.out.println("private say()...");}//公有方法public void work(){System.out.println("public work()...");} }

    獲取類名的三種方式:
    Class 的實例就對應著一個運行時類,獲取 Class 實例不能使用 new,而應該通過具體的實例獲得!

    //1、通過對象調用 getClass() 方法來獲取,通常應用在:比如你傳過來一個 Object // 類型的對象,而我不知道你具體是什么類,用這種方法Person p1 = new Person();Class c1 = p1.getClass();//2、直接通過 類名.class 的方式得到,該方法最為安全可靠,程序性能更高 // 這說明任何一個類都有一個隱含的靜態成員變量 classClass c2 = Person.class;//3、通過 Class 對象的 forName() 靜態方法來獲取,用的最多, // 但可能拋出 ClassNotFoundException 異常Class c3 = Class.forName("com.ys.reflex.Person");

    Class 類具有如下的方法:

    • getName():獲得類的完整名字。
    • getFields():獲得類的public類型的屬性。
    • getDeclaredFields():獲得類的所有屬性。包括private 聲明的和繼承類
    • getMethods():獲得類的public類型的方法。
    • getDeclaredMethods():獲得類的所有方法。包括private 聲明的和繼承類
    • getMethod(String name, Class[] parameterTypes):獲得類的特定方法,name參數指定方法的名字,parameterTypes 參數指定方法的參數類型。
    • getConstructors():獲得類的public類型的構造方法。
    • getConstructor(Class[] parameterTypes):獲得類的特定構造方法,parameterTypes 參數指定構造方法的參數類型。
    • newInstance():通過類的不帶參數的構造方法創建這個類的一個對象。

    調用以上方法:

    public void test2() throws Exception{Class clazz = Person.class;//1.通過反射,創建Person類的對象Constructor cons = clazz.getConstructor(String.class,int.class);Object obj = cons.newInstance("Tom", 12);Person p = (Person) obj;System.out.println(p.toString());//2.通過反射,調用對象指定的屬性、方法//調用屬性Field age = clazz.getDeclaredField("age");age.set(p,10);//調用方法// 參數1 :指明獲取的方法的名稱 參數2:指明獲取的方法的形參列表Method show = clazz.getDeclaredMethod("show"); // 參數1:方法的調用者 參數2:給方法形參賦值的實參 返回值:對應類中調用的方法的返回值show.invoke(p); //調用私有的構造器Constructor cons1 = clazz.getDeclaredConstructor(String.class);cons1.setAccessible(true);Person p1 = (Person) cons1.newInstance("Jerry");//調用私有的屬性Field name = clazz.getDeclaredField("name");name.setAccessible(true);name.set(p1,"HanMeimei");//調用私有的方法Method showNation = clazz.getDeclaredMethod("showNation", String.class);showNation.setAccessible(true);String nation = (String) showNation.invoke(p1,"中國");//相當于String nation = p1.showNation("中國")// 調用靜態方法// private static void showDesc()Method showDesc = clazz.getDeclaredMethod("showDesc");showDesc.setAccessible(true);//Object returnVal = showDesc.invoke(Person.class); // 調用者為類,但這么寫多余,因為在獲取 showDesc 時已經知道是靜態方法Object returnVal = showDesc.invoke(null); // 可以}

    5 反射與封裝性并不矛盾

    • 封裝性:建議調用權限可達的方法;
    • 反射:忽略封裝性的建議,能調用封裝性不推薦的方法。

    6 Class 類

    • Class 的實例就對應著一個運行時類!獲取 Class 實例不能使用 new,而應該通過具體的實例獲得。

    對應關系:

    Class類
    Class實例實例運行時類
    實例
    public static void main(String[] args) {// 同一個類的不同實例,對應的 Class 實例 是同一個Person p1 = new Person("1號");Person p2 = new Person("2號");Class c1 = p1.getClass();Class c2 = p2.getClass();Class c3 = Person.class;System.out.println(c1 == c2); // trueSystem.out.println(c1 == c3); // true// 數組的元素類型與維度(一維數組,二維數組等)一樣,對應的 Class 實例 是同一個Class c4 = new String[10].getClass();Class c5 = new String[8].getClass();Class c6 = new int[10].getClass();Class c7 = String[].class;System.out.println(c4 == c5); // trueSystem.out.println(c4 == c6); // falseSystem.out.println(c4 == c7); // true}

    7 newInstance()

    • newInstance():調用此方法,創建對應的運行時類的對象。內部調用了運行時類的空參的構造器。帶參的構造器不夠“動態”!
    • 要想此方法正常的創建運行時類的對象,要求:
      - 運行時類必須提供空參的構造器;
      - 空參的構造器的訪問權限得夠。通常,設置為 public 。
    • 在 javabean 中要求提供一個 public 的空參構造器。原因:
      - 便于通過反射,創建運行時類的對象;
      - 便于子類繼承此運行時類時,默認調用 super() 時,保證父類有此構造器。

    8 反射的應用:動態代理模式

    使用實例:

  • 接口與接口的實現
  • interface Human{String getBelief();void eat(String food); }class SuperMan implements Human{@Overridepublic String getBelief() {return "I believe I can fly!";}@Overridepublic void eat(String food) {System.out.println("我喜歡吃" + food);} }
  • 動態代理類:動態代理對象調用原生方法的時候,最終實際上調用到的是 invoke() 方法,然后 invoke() 方法調用了被代理對象的原生方法。
  • import java.lang.reflect.InvocationHandler; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method;public class DebugInvocationHandler implements InvocationHandler {// 代理類中的真實對象private final Object target;public DebugInvocationHandler(Object target) {this.target = target;}/*** 動態代理的核心部分!!!* proxy :動態生成的代理類* method : 與代理類對象調用的方法相對應* args : 當前 method 方法的參數**/public Object invoke(Object proxy, Method method, Object[] args) throws InvocationTargetException, IllegalAccessException {//額外操作...Object result = method.invoke(self.target, args); //調用的是method的invoke方法//額外操作...return result;} }
  • 獲取代理對象的工廠類:輸入需要被代理的對象,輸出其代理。即:根據對象實例建立代理實例。
  • public class JdkProxyFactory {public static Object getProxy(Object target) {return Proxy.newProxyInstance(target.getClass().getClassLoader(), // 目標類的類加載target.getClass().getInterfaces(), // 代理需要實現的接口,可指定多個new DebugInvocationHandler(target) // 代理對象對應的自定義 InvocationHandler);} }
  • 實際使用:一個代理,到處使用
  • public static void main(String[] args) {//被代理的類型1SuperMan superMan = new SuperMan();Human proxyInstance = (Human) ProxyFactory.getProxyInstance(superMan); // 強轉為對應接口的類型// invoke() 方法: 當我們的動態代理對象調用原生方法的時候,最終實際上調用到的是 invoke() 方法,然后 invoke() 方法代替我們去調用了被代理對象的原生方法。String belief = proxyInstance.getBelief();proxyInstance.eat("四川麻辣燙");//被代理的類型2NikeClothFactory nikeClothFactory = new NikeClothFactory();ClothFactory proxyClothFactory = (ClothFactory); ProxyFactory.getProxyInstance(nikeClothFactory);proxyClothFactory.produceCloth();}

    總結

    以上是生活随笔為你收集整理的后端学习 - Java基础的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    亚洲黑丝少妇 | 婷婷久久国产 | 天堂久色 | www.av在线.com | 97人人爽人人 | 在线观看韩国av | 夜夜操狠狠操 | 97精品国产一二三产区 | 久久一线| 欧亚日韩精品一区二区在线 | 91成人在线网站 | 99精品福利视频 | 视频在线观看国产 | 一区二区三区国产欧美 | 在线观看免费日韩 | 久久你懂的 | 亚洲精品乱码久久久久久蜜桃动漫 | 天天插狠狠插 | 麻豆视频在线免费观看 | 国产手机在线播放 | 狠狠色丁香婷婷综合最新地址 | 91桃色免费观看 | 久久99国产精品 | 综合国产视频 | 国产高清在线永久 | 黄色高清视频在线观看 | 香蕉视频免费看 | 欧美日韩性视频 | 天天操天天干天天玩 | 伊人中文在线 | 五月婷婷综合久久 | 国产精品视频资源 | 97天天干| 99久久精品免费看国产四区 | 美女久久久久久久 | 成人免费影院 | 中文字幕资源网在线观看 | 成人久久18免费网站麻豆 | 人人爽夜夜爽 | 欧美美女一级片 | 91麻豆免费版 | 国产一区二区精品 | 久草视频在线观 | 亚洲日本精品视频 | 久久综合给合久久狠狠色 | 亚洲最新av在线网站 | 97人人澡人人添人人爽超碰 | 中文字幕在线播放日韩 | 黄色毛片视频免费观看中文 | 午夜久久福利视频 | 精品久久久久久久久久久院品网 | 久久蜜臀一区二区三区av | 亚洲成av人影片在线观看 | 婷婷久月| 国产一级免费播放 | 亚洲精品国产免费 | 色婷婷激情| 日韩在线视频精品 | 福利片免费看 | 国产 视频 久久 | 久草在线看片 | 国产 视频 高清 免费 | 午夜美女福利 | 久久免费大片 | 网址你懂的在线观看 | 日本韩国精品一区二区在线观看 | 欧洲亚洲国产视频 | 色多多污污在线观看 | 久久字幕 | 91大神视频网站 | 精品成人a区在线观看 | 国产亚洲精品日韩在线tv黄 | av片在线观看 | 久免费 | 免费视频三区 | 日本三级香港三级人妇99 | 久草网视频 | 国产精品人人做人人爽人人添 | 91精品一 | 久久精品三级 | 一区二区久久 | 成人黄在线观看 | 一区二区三区在线观看免费视频 | av一级网站 | 日韩电影黄色 | 免费特级黄毛片 | 又黄又色又爽 | 91麻豆精品国产91久久久久 | 天天射色综合 | 婷婷激情网站 | 婷婷在线播放 | 97视频亚洲 | 天天天在线综合网 | 91av在线播放 | 免费看的黄色的网站 | 91av资源在线 | 亚洲黄a | 91精品国产91p65 | 婷婷播播网 | 国产色女 | 精品亚洲一区二区三区 | 国产精品福利av | 丰满少妇在线观看资源站 | 狠狠插狠狠操 | 在线免费高清视频 | 在线视频日韩 | 日韩在线精品 | 国产精品久久久免费 | 欧美日韩午夜爽爽 | 一区二区视频在线播放 | 91久久国产综合精品女同国语 | 国产爽视频| 亚洲毛片一区二区三区 | 亚洲精品国偷自产在线91正片 | 狠狠色丁香久久婷婷综合丁香 | 色网免费观看 | 一级a性色生活片久久毛片波多野 | 黄色网址中文字幕 | 中文字幕国产在线 | 亚洲人精品午夜 | 久久在现视频 | 精品国产亚洲日本 | www.国产在线视频 | 97av视频在线观看 | 欧美精品亚洲二区 | 夜色资源站wwwcom | 久久艹艹| h久久| 超碰人人在线 | 国产不卡av在线播放 | av免费网站 | 日本三级香港三级人妇99 | 婷婷久久综合九色综合 | 精品视频一区在线 | 丁香六月国产 | 一区二区三区久久 | 日韩在线播放av | 五月婷婷久草 | 婷婷激情综合五月天 | 91女子私密保健养生少妇 | 久久伊人精品一区二区三区 | 97超碰精品 | 久久人人97超碰国产公开结果 | 97电院网手机版 | 五月婷婷狠狠 | 久久96国产精品久久99漫画 | 久久伊人免费视频 | 欧美日韩性视频 | 在线91观看 | 成人一区不卡 | 欧美特一级 | 91丨九色丨首页 | 国内精品久久久久久 | h动漫中文字幕 | 99精品视频一区 | 久久久久久久久久久久亚洲 | 国产在线传媒 | 日韩视频中文字幕在线观看 | 久久国产区 | 91丨九色丨国产丨porny精品 | 精品久久久久久久久久久院品网 | 性色av一区二区三区在线观看 | 久久久久久久国产精品影院 | 国产精品一区二区精品视频免费看 | 国产伦精品一区二区三区在线 | 国产精品久久久久久久久久免费 | 色婷婷狠狠18 | 国产精品理论片 | 色妞久久福利网 | 性色大片在线观看 | 精品国内自产拍在线观看视频 | 中文字幕观看av | 国产黄色免费电影 | 久久久五月婷婷 | 丁香六月久久综合狠狠色 | 国产拍揄自揄精品视频麻豆 | 九色在线视频 | 久久精品视频观看 | 久久久久久久久久久网站 | 久久久久久久国产精品影院 | 日韩理论在线观看 | 日本二区三区在线 | 日本精品中文字幕 | 亚洲高清在线观看视频 | 国产成人精品久久二区二区 | 亚洲成人精品在线 | 午夜视频一区二区三区 | 日本爱爱免费 | 成人网看片 | 久久精品毛片 | 99日精品 | 亚洲精品一区二区网址 | 在线有码中文字幕 | 免费观看av | 江苏妇搡bbbb搡bbbb | 美女视频黄免费的久久 | 在线观看成年人 | 一区二区不卡在线观看 | 色综合久久久久综合体桃花网 | 久草视频在线新免费 | 亚洲精品久久久久久久不卡四虎 | 中文字幕在线观看完整版 | 97国产一区二区 | 国产精品欧美日韩在线观看 | 色综合久久久久综合体 | 色婷婷综合久久久久中文字幕1 | 国产在线观看一 | 国内精品久久久久 | 日本中文字幕在线看 | 久久久久99精品成人片三人毛片 | 99热在线国产 | 91久久影院 | 国产成人一区二区精品非洲 | 日韩精品首页 | 日韩av偷拍| 久久久久国产精品免费网站 | 亚洲精品视频在 | www.久久精品视频 | 日本不卡123区 | 韩国精品视频在线观看 | 91精品秘密在线观看 | 欧美日韩另类视频 | 精品成人网 | 成年人免费电影在线观看 | 悠悠av资源片 | 久久精品国产一区二区电影 | 国产久视频| 成人免费视频视频在线观看 免费 | 国产中文字幕网 | 久久99精品久久久久蜜臀 | 日韩精品一区二区三区免费观看 | 日韩精品一区在线观看 | 国产高清中文字幕 | 久久精品国产成人 | 人人看人人爱 | 久久国产经典 | 在线观看亚洲精品视频 | 91精品婷婷国产综合久久蝌蚪 | 91pony九色丨交换 | 成人动漫精品一区二区 | 日韩精品2区 | 亚洲精品视频在线观看网站 | 亚洲一级片 | 日韩经典一区二区三区 | 久久精品首页 | av国产网站 | 亚洲视频 中文字幕 | 在线观看日韩 | 国产午夜在线观看 | 99视频偷窥在线精品国自产拍 | 国产精品女人久久久久久 | 人人干人人做 | 免费观看9x视频网站在线观看 | 免费高清无人区完整版 | 激情五月婷婷综合 | 免费观看特级毛片 | 2019天天干天天色 | 一级α片免费看 | www.天堂av| 在线观看网站av | 久久女同性恋中文字幕 | 人人澡人人模 | 黄色在线看网站 | 最新av在线网站 | 久久久久国产精品一区二区 | 免费av电影网站 | 偷拍精偷拍精品欧洲亚洲网站 | www.av免费 | 高清av不卡| 97夜夜澡人人爽人人免费 | 免费福利在线观看 | 日韩精品久久久久久久电影竹菊 | 在线播放精品一区二区三区 | 日韩欧美在线中文字幕 | 日韩av在线小说 | 99久久日韩精品视频免费在线观看 | 国产成人综 | 亚洲国产精品免费 | 欧美日韩一区二区在线 | 日韩在线免费视频 | 亚洲精品网站在线 | 黄色毛片电影 | 国产视频18| 精一区二区| 国产麻豆视频免费观看 | 久香蕉 | 天天射夜夜爽 | 国产欧美最新羞羞视频在线观看 | 91欧美国产| 五月综合婷 | 欧美性色黄大片在线观看 | 在线观看视频国产一区 | 久草久草在线 | 超碰在97| 人成午夜视频 | 久久久久久亚洲精品 | 国产免码va在线观看免费 | 91欧美日韩国产 | 日本中文不卡 | 日韩av在线看 | 99久久久久久久久 | 狠狠干综合 | 久艹视频免费观看 | 国产一级91| 九九久久国产精品 | 久久人人爽人人爽 | 亚洲综合成人婷婷小说 | 婷婷视频在线观看 | 亚洲精品一区二区三区四区高清 | 欧美一级网站 | 国产一区二区免费看 | 国产中文伊人 | 日本午夜在线观看 | a黄色片在线观看 | 午夜在线日韩 | jizz999| 亚洲国产片 | 久久综合九色欧美综合狠狠 | 欧美91精品国产自产 | 日韩中文字幕免费视频 | 91亚洲精品视频 | 亚洲视频在线免费看 | 在线免费观看的av网站 | 在线观看黄色大片 | 日韩精品最新在线观看 | 久久精品99国产 | 久久狠狠干 | 丁香国产视频 | 国产在线观看免费av | 有码视频在线观看 | 中文字幕国内精品 | 在线 日韩 av | 亚洲理论电影 | 丁香六月五月婷婷 | 国产护士hd高朝护士1 | 亚洲精品自拍视频在线观看 | 久久在线精品 | 久久久久久国产精品美女 | 天天操天天玩 | 欧美午夜精品久久久久久浪潮 | 国产精品黄色在线观看 | 国产精品不卡视频 | 激情在线网站 | 最近最新中文字幕 | 国产亚洲精品久久网站 | 九色精品免费永久在线 | 国产精品久久久久久久久久久杏吧 | 久久夜色网 | 偷拍视频一区 | 国精产品999国精产品岳 | 国产免费久久久久 | 91精品毛片 | 色播六月天 | 久久久久久99精品 | 天天干夜夜夜操天 | 国产黄色免费观看 | 狂野欧美激情性xxxx欧美 | 国产婷婷 | 国产一区精品在线观看 | 国产三级午夜理伦三级 | 国产视频中文字幕在线观看 | 最新三级在线 | 国产啊v在线观看 | 国产99久久久国产精品成人免费 | 久久久精品一区二区 | 超碰在线人 | 国产区网址 | 91污污| 一区二区三区精品在线 | 99久久婷婷国产精品综合 | 九九综合九九综合 | 国产精品99久久99久久久二8 | 亚洲精品久久久蜜桃直播 | 天天干,天天射,天天操,天天摸 | 天天综合网在线 | 性色va| 久久免费av电影 | 五月婷婷丁香 | 精品国产综合区久久久久久 | 在线看成人 | 97看片| 免费在线国产视频 | av在线网站大全 | 日韩三级视频在线观看 | 久久这里只有精品23 | 欧美91精品久久久久国产性生爱 | 国产中文字幕第一页 | 九九视频免费在线观看 | 日韩av快播电影网 | 九九九九精品九九九九 | 国产美女精品视频免费观看 | 看片一区二区三区 | 日韩av中文在线观看 | 日韩欧美在线国产 | 久久视频中文字幕 | 亚洲黑丝少妇 | 天天干天天摸天天操 | 亚洲美女精品区人人人人 | 日p在线观看 | 亚洲一区二区天堂 | 国产一级电影在线 | 免费看的黄色片 | 日韩久久一区二区 | 国际精品久久久久 | 欧美精品小视频 | 久久综合色天天久久综合图片 | 欧日韩在线 | 欧美极度另类性三渗透 | 亚洲日本一区二区在线 | 欧美性生活久久 | 婷婷天天色 | 91av99 | 日韩精品在线免费观看 | 国产高清在线一区 | 国产日女人 | 在线亚洲精品 | 亚洲aⅴ在线观看 | 中文一区二区三区在线观看 | 18女毛片 | 91精品久久久久 | a级片网站 | 永久免费看av| 久久手机免费观看 | 天天躁日日躁狠狠躁av麻豆 | 久久躁日日躁aaaaxxxx | 亚洲精品男人天堂 | 豆豆色资源网xfplay | 国产一级电影在线 | 91麻豆精品国产91久久久久久久久 | 337p欧美 | 午夜精品久久一牛影视 | 久久福利在线 | 中文字幕一区二区三区四区久久 | 日韩视频在线观看免费 | 特级片免费看 | 香蕉影视app | 午夜影院一级 | 99久久精品国产一区 | 91视频免费网址 | 欧美一级片免费观看 | 在线a亚洲视频播放在线观看 | 午夜视频在线观看网站 | 午夜精品久久久久久久99婷婷 | 曰本三级在线 | 日日躁你夜夜躁你av蜜 | 国产精品一区二区三区在线看 | 99久久成人 | 九九国产精品视频 | 97国产精品久久 | 久久精品伊人 | 视频精品一区二区三区 | 97理论片 | 国产亚洲精品久久网站 | 天天射天 | 99热精品国产| 91网站在线视频 | 久久成人在线视频 | 久久久久国产一区二区 | 97超碰人| 国产久视频 | 91在线国内视频 | 国产成人精品一区二区三区网站观看 | 国产91aaa | 在线视频 你懂得 | 亚洲欧美日韩中文在线 | 久久五月天综合 | 欧洲视频一区 | 婷婷亚洲综合五月天小说 | 欧美一区二视频在线免费观看 | 久久综合狠狠综合久久综合88 | 在线午夜电影神马影院 | 毛片网在线观看 | 色美女在线 | 色欧美88888久久久久久影院 | a天堂中文在线 | 区一区二区三在线观看 | 国产精品爽爽爽 | 亚洲精品黄色 | 欧美成人基地 | 人人干人人上 | 在线中文字幕一区二区 | 九九综合九九综合 | 久久人人添人人爽添人人88v | 国产精品麻豆果冻传媒在线播放 | 日韩一区视频在线 | 国产精品嫩草影院123 | 欧美日韩在线第一页 | 日日干夜夜操视频 | 久久激情网站 | 97精品欧美91久久久久久 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 五月天激情在线 | 亚洲精选在线观看 | 国产精品都在这里 | 免费在线播放 | 久久99久久99精品免观看软件 | 视频在线观看入口黄最新永久免费国产 | 久久久久久久久久久高潮一区二区 | 91免费视频黄 | 91精品婷婷国产综合久久蝌蚪 | 久久视频国产精品免费视频在线 | 在线电影 一区 | 手机看片 | 国产高清成人av | 国产日韩精品一区二区三区在线 | 色5月婷婷 | 免费色视频网址 | 日韩欧美国产激情在线播放 | 久久综合九色综合97_ 久久久 | 中文在线免费观看 | 国产在线国偷精品产拍 | 国产69精品久久99不卡的观看体验 | 99热超碰| 西西www4444大胆在线 | www·22com天天操 | 国产亚洲免费观看 | av在线h | av日韩国产| 日韩黄色中文字幕 | 国产91欧美 | 日韩久久精品一区二区三区 | av短片在线观看 | 成人黄大片 | 免费看一级片 | 久久精品久久久精品美女 | 色999精品| 欧美一二区视频 | 国产成人免费高清 | 91成熟丰满女人少妇 | 亚洲欧美综合 | 精品中文字幕在线播放 | 亚洲免费国产视频 | 日韩免费观看一区二区三区 | 亚洲国产午夜视频 | 国产伦理久久精品久久久久_ | 国产乱对白刺激视频不卡 | 国产91电影在线观看 | 在线99 | 国产精品美女久久久免费 | 欧美日韩国产高清视频 | 性色大片在线观看 | 成人在线一区二区 | 福利网址在线观看 | 曰韩精品 | 成人午夜剧场在线观看 | 在线电影91 | 免费av片在线 | 亚洲国产成人高清精品 | 久久国产露脸精品国产 | 91免费黄视频 | 国产精品美女久久久久久久 | 在线国产片 | 久久艹精品 | 人人艹人人 | 国产 亚洲 欧美 在线 | 999视频在线播放 | 亚洲在线资源 | 久久久久久久久久电影 | av中文资源在线 | 国产欧美最新羞羞视频在线观看 | 亚洲五月花| 国产成人精品av | 国产成人精品一区二区在线观看 | 一区二区不卡在线观看 | 黄色精品久久 | 午夜精品福利一区二区 | 国产精品成人一区二区 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 免费a网址| 国产精品手机看片 | 最近中文字幕大全 | 国产精品涩涩屋www在线观看 | 在线有码中文字幕 | 中文字幕资源网 国产 | 天堂激情网 | 日韩免费三区 | 五月天婷婷免费视频 | 国产二区电影 | 久久草草热国产精品直播 | 精品久久福利 | 久久综合给合久久狠狠色 | 国产在线精品福利 | 婷婷色站| 久久久久久久久久久久久9999 | av网站大全免费 | 久99久中文字幕在线 | 免费观看www小视频的软件 | 欧美日韩亚洲国产一区 | 久久人网 | 国产精品久久久久久久久久 | 日韩欧美在线观看一区二区 | 国产成人久久77777精品 | 韩国av电影在线观看 | 91丨九色丨91啦蝌蚪老版 | 亚洲国产日韩欧美在线 | 天天射天天搞 | 久久精品久久综合 | 亚洲www天堂com | 欧美性爽爽 | 国产精品一区二区美女视频免费看 | 久久热亚洲 | 午夜在线免费观看 | 亚洲欧美国产视频 | 亚洲视频 一区 | 911免费视频 | 亚洲国产精品电影在线观看 | 国产精品av免费 | 色在线视频网 | aaa毛片视频 | 久久久视频在线 | 中文有码在线视频 | 人人舔人人舔 | 久久久免费观看 | 精品一区二区三区在线播放 | 香蕉蜜桃视频 | 91精品欧美| 成人午夜精品久久久久久久3d | 中文字幕之中文字幕 | av手机在线播放 | 久久久国内精品 | 国产成人免费高清 | 亚洲欧洲久久久 | 天天色天天干天天 | 色精品视频 | 国产精品影音先锋 | 久久久久中文 | 成人毛片网 | 99久久精品国产系列 | 三级av小说| 国产日韩欧美综合在线 | 日韩一级精品 | 精品久久久久久久久久 | 91成人精品国产刺激国语对白 | 天天爽夜夜爽精品视频婷婷 | 综合色久 | 亚洲欧洲日韩在线观看 | 久久精品国产亚洲精品 | 亚洲一区二区麻豆 | 欧美在线一二 | 久久只有精品 | 国产视频中文字幕在线观看 | 国产精品岛国久久久久久久久红粉 | 欧美日韩亚洲在线观看 | 91最新在线视频 | 日本 在线 视频 中文 有码 | 97国产一区二区 | 天天综合导航 | 久草资源在线观看 | 亚洲免费视频观看 | 色悠悠久久综合 | 免费网站黄 | 国产精品久久久久久久久毛片 | www.超碰97.com| 激情电影影院 | 国产在线 一区二区三区 | 精品欧美小视频在线观看 | 欧美日韩不卡一区二区 | 国产一区精品在线观看 | 婷婷久久丁香 | 成人免费视频观看 | 国产一区二三区好的 | 天天射综合 | 日本在线观看一区二区三区 | 亚洲电影图片小说 | 日日干天天 | 新版资源中文在线观看 | 狠狠躁日日躁夜夜躁av | 欧美日韩一区二区三区在线观看视频 | 九草视频在线 | 色九九视频| 日韩欧美xxxx | 狠狠操操操 | 久草网站在线观看 | 国产精品福利在线播放 | 中文字幕高清av | 国产一区二区在线免费播放 | 国产一区二区综合 | 69精品视频在线观看 | 中文字幕在线免费看 | 69国产在线观看 | 国产一区二区在线观看视频 | 伊人午夜 | 91污在线| 成人av影视在线 | 成人国产一区 | 久久不见久久见免费影院 | 婷婷色中文字幕 | 免费日韩av电影 | 亚洲女人天堂成人av在线 | 成人h动漫精品一区二 | 91在线产啪 | 最近日本韩国中文字幕 | 综合天堂av久久久久久久 | 99免费在线| 成人黄色电影在线 | 国产不卡一区二区视频 | 亚洲国产精品视频在线观看 | 麻豆视频免费播放 | 国产高清视频免费观看 | 91色网址| 国产免费大片 | 日日夜夜精品 | 免费在线观看不卡av | 午夜精品久久久久久久久久久 | 精品久久久久久久久久久久 | 久久久久久久影院 | 韩国一区二区三区视频 | 国产精品视频在线观看 | 欧美少妇影院 | 精品超碰 | 欧美一级看片 | 4hu视频| 国产精品毛片一区 | 狠狠五月婷婷 | 色先锋资源网 | 日韩三区在线 | 久久男人中文字幕资源站 | 精品久久99 | 最近日本韩国中文字幕 | 日韩午夜av | 99国内精品| 国内少妇自拍视频一区 | 久久伊人婷婷 | 国产精品久久久久久久久久不蜜月 | 色综合 久久精品 | 毛片网免费 | 91在线麻豆 | 成人欧美一区二区三区在线观看 | 国产综合福利在线 | 日韩av影视在线观看 | 黄毛片在线观看 | 精品中文字幕在线播放 | 亚洲午夜精品久久久久久久久久久久 | 欧美男女爱爱视频 | 天天躁日日躁狠狠躁av麻豆 | 91亚洲精品在线观看 | www.天天草 | 在线观看视频免费大全 | 在线v片免费观看视频 | 天天操天天吃 | 成人丝袜| 国产一区电影在线观看 | 久久精品欧美视频 | 九色福利视频 | 国产精品免费在线观看视频 | 久久神马影院 | 天天操天天添 | va视频在线 | 中日韩在线视频 | 国产精品久久99精品毛片三a | 免费看污的网站 | 久久久国产精品一区二区三区 | 日韩中文字幕一区 | 精品国产一区二区三区日日嗨 | 日韩乱码中文字幕 | 一区二区三区免费在线 | 日韩欧美国产精品 | 精品在线观看国产 | 有没有在线观看av | 天天色天天上天天操 | 成人app在线播放 | 国产91精品久久久久久 | 三级黄免费看 | 一级c片 | 亚洲国产午夜视频 | 国产精品久久久久久电影 | 日韩中文字幕免费视频 | 91精彩在线视频 | 狠狠操夜夜| 天天干夜夜操视频 | 东方av在| 国产在线2020 | 成人av网站在线观看 | 天天躁日日躁狠狠躁av中文 | 免费av网站在线看 | 国产在线精品一区二区不卡了 | 国产一级一片免费播放放 | 欧美在线视频一区二区三区 | 麻豆视屏 | 国产精品美女久久久免费 | 亚洲国产精品久久久久久 | 久久久久久免费毛片精品 | 日韩高清av | 免费日韩电影 | 精品亚洲一区二区 | 国产97碰免费视频 | 国产福利91精品张津瑜 | 欧美成年网站 | 天天综合天天综合 | 婷婷久月| av中文字幕网 | 色婷婷激情综合 | 久久久久久久久久久久久久免费看 | 97在线免费观看 | 久一网站 | 国产精品自产拍在线观看网站 | 国产一区二区精 | 国产视频精品在线 | 黄色成人在线 | 亚洲国产精品视频在线观看 | 国产精品久久久久久久久久免费 | 国产精品夜夜夜一区二区三区尤 | 国产欧美久久久精品影院 | 91视频高清 | 日韩xxxx视频 | 免费亚洲一区二区 | 91porny九色91啦中文 | 国产成人综合精品 | 西西大胆免费视频 | 波多野结衣精品 | 青草视频在线看 | 国产精品四虎 | 久久色在线观看 | 亚洲午夜av电影 | 97精品国产91久久久久久久 | 五月综合在线观看 | 中文欧美字幕免费 | 成人黄色在线视频 | 在线免费观看黄色 | 97精品国产97久久久久久 | 中文字幕在线不卡国产视频 | 日韩一级电影网站 | 亚洲精品tv久久久久久久久久 | 在线亚州| 久久人人爽 | 麻豆国产精品视频 | 91丨九色丨91啦蝌蚪老版 | 成人观看视频 | 在线激情影院一区 | 亚洲视频免费在线观看 | 国产精品91一区 | 国产精品入口a级 | 成人在线视频观看 | 色婷婷狠狠五月综合天色拍 | 天天色天天射天天干 | 91九色网站 | 国产香蕉97碰碰久久人人 | 精品国产黄色片 | 免费一级毛毛片 | 亚洲精品在线免费播放 | 久久精国产 | 国产高清免费视频 | 中文字幕在线日亚洲9 | 国产精品涩涩屋www在线观看 | 99九九视频 | 久草视频99 | 国产高清在线免费视频 | 一二三区高清 | 99在线精品免费视频九九视 | 久草网免费 | 久久观看免费视频 | 五月开心婷婷 | 亚洲黄色在线播放 | www国产亚洲精品久久网站 | 精精国产xxxx视频在线播放 | 久久99国产精品久久99 | 欧美日韩久久久 | 天天操天天射天天添 | 久草爱视频 | 亚洲精品乱码久久久久久9色 | 久久国语露脸国产精品电影 | 超碰99在线 | 日韩精品一区二区三区中文字幕 | 国产精品每日更新 | 天天操天天摸天天射 | 国产一级在线免费观看 | 国产99精品| 日韩免费高清在线 | 久草网站在线观看 | 中文字幕黄色网址 | 国产区免费在线 | 国产日产精品一区二区三区四区 | 色天天久久 | 国产精品门事件 | 99草视频| 日韩一区二区免费视频 | 91色偷偷 | 中文字幕二区在线观看 | 国产精品久久久久影视 | 狠狠操狠狠干天天操 | 国产五月| 亚洲专区免费观看 | 免费特级黄色片 | 中文字幕免费观看全部电影 | 国产黄视频在线观看 | 日韩aⅴ视频 | 日韩视频1| 欧美成人精品欧美一级乱 | 高清免费在线视频 | 粉嫩av一区二区三区四区在线观看 | 国产精品18久久久久久久网站 | 九九在线精品视频 | 国产在线精品一区二区三区 | 99色免费视频 | 国产精品久久久久久爽爽爽 | 亚洲在线综合 | 69国产成人综合久久精品欧美 | 午夜精品一区二区三区在线观看 | 亚洲精品在线看 | 国产真实精品久久二三区 | 日韩久久久久久久 | 91看国产| 99久久精品免费看国产 | 成人a在线观看 | av一区二区三区在线播放 | 天天色宗合 | 成人全视频免费观看在线看 | 狠狠色噜噜狠狠狠 | 亚洲国产精品成人av | 天天摸天天操天天舔 | 五月天欧美精品 | 久久久网页 | 91麻豆福利 | 日韩 在线a| 成人在线超碰 | 九九久久婷婷 | 亚洲专区路线二 | 日韩av电影中文字幕 | 免费黄色在线 | 久草视频免费播放 | 亚洲www天堂com | 99中文视频在线 | 在线观看视频你懂得 | 成人黄色免费观看 | 欧美激情视频三区 | 国产 日韩 欧美 中文 在线播放 | 国产传媒一区在线 | 国产亚洲日本 | 日韩精品一区电影 | 午夜美女wwww | 国产中出在线观看 | 欧美午夜a | 成 人 a v天堂| 欧美视频国产视频 | 欧美一区免费在线观看 | 国产高清中文字幕 | 国产三级香港三韩国三级 | 色婷婷激情综合 | 欧美99精品| a视频免费看| 国产精品成人久久久久久久 | 97在线精品国自产拍中文 | 91视频啪| 91精品999| 久久9999久久免费精品国产 | 久久久国产精品成人免费 | 黄色片免费在线 | av中文电影 | 亚洲日日日 | 日韩电影中文字幕 | 99国产精品视频免费观看一公开 | 色婷婷成人 | 香蕉视频在线网站 | 色婷婷亚洲综合 | 在线婷婷 | 色午夜影院 | 欧美一级日韩免费不卡 | 国产精品女人久久久久久 | 91精品视频免费看 | 日韩久久精品一区二区三区下载 | 在线观看国产麻豆 | 久久久国产一区二区三区四区小说 | 黄色的片子| 在线中文字幕电影 | 国产精品va最新国产精品视频 | 亚洲成人黄色在线 | 成人网大片 | 日韩av成人在线观看 | 久久精品三级 | 免费亚洲精品 | 免费午夜视频在线观看 | 欧美精品色 | 深爱婷婷网 | 免费十分钟 | 久久久久久久久久久免费 | 欧美日韩国产二区三区 | 国产精品毛片一区二区 | 久久久久久久亚洲精品 | 中文字幕成人网 | 国产亚洲久久 | wwwav视频 | 国产va精品免费观看 | 久久久久国产精品厨房 | 国产成人三级三级三级97 | 在线看国产日韩 | 激情五月播播久久久精品 | 最新色视频 | 在线看国产视频 | 中文字幕日韩国产 | 久草在线视频资源 | 91福利视频网站 | 亚洲国产一区二区精品专区 | 九九久久久久久久久激情 | 91成人精品一区在线播放69 | 天天曰夜夜操 | 在线a亚洲视频播放在线观看 | 黄色大片免费网站 | 日韩在观看线 |