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

歡迎訪問 生活随笔!

生活随笔

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

java

Java核心技术 卷1

發布時間:2023/12/9 java 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java核心技术 卷1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java核心技術 卷1

Java程序概述

關鍵術語

  • 簡單性
  • 面向對象:將重點放在數據(即對象)和對象的接口上
  • 網絡技能
  • 健壯性:能檢測許多在其他語言僅在運行時刻才能夠檢測出來的問題
  • 安全性:能防范運行時堆棧溢出,在自己的處理空間之外破壞內存,未經授權讀寫文件
  • 體系結構中立
  • 可移植性
  • 解釋型:java解釋器可以在任何移植了解釋器的機器上運行java字節碼
  • 高性能
  • 多線程:只要操作系統支持,Java中的線程就可以利用多個處理器
  • 動態性

Java applet 與 Internet

在網頁上運行Java程序稱為applet

為了使用applet,需要啟動java的web瀏覽器執行字節碼。由于Sun公司負責發放Java源代碼的許可證,并堅持不允許對語言和基本類庫的結構做出任何修改。因此,Java的applet應該可以運行在任何啟動Java瀏覽器上,并且無論何時訪問包含applet的網頁,都會得到程序的最終版本。

配置環境

  • JDK安裝
  • 將jdk/bin目錄添加到執行路徑中,所謂執行路徑是操作系統搜索本地可執行文件的目錄列表
  • 安裝庫源文件和文檔
  • 導航Java目錄

    bin 編譯器和工具

    docs HTML格式的類庫文件

    include 用于編譯本地方法的文件

    jre java運行環境文件

    lib 類庫文件

    src 類庫源文件

    Java的基本程序設計結構

    public class FirstSample{public static void main(String[] args){System.out.println("We will not use ‘Hello,World!’");} }

    關鍵字public稱為訪問修飾符,它用于控制程序的其他部分對這段代碼的訪問規則。

    關鍵字class表明Java程序中的全部內容都包含在類中,這里只需要將類作為一個加載程序邏輯的容器。

    數據類型

    在Java中,一共有8種基本類型,其中有4種整型、2種浮點類型、1種用于表示Unicode編碼的字符單元的字符類型char和1種用于表示真值的boolean類型

    整型

    類型存儲需求
    int4字節
    short2字節
    long8字節
    byte1字節

    長整型數值有一個后綴L,十六進制有一個前綴0x,從Java7開始,加上前綴0b就可以寫二進制數。同樣是從Java7開始,還可以為數字字面量加下劃線,這些下劃線只是為了讓人更易讀,Java編譯器會去除這些下劃線

    浮點類型

    浮點類型用于表示有小數部分的數值。在Java中有兩種浮點類型

    類型存儲需求
    float4字節
    double8字節

    double表示這種類型的數值精度是float類型的兩倍。絕大部分應用程序都采用double類型。在很多情況下,float類型的精度很難滿足需求。只有很少的情況適合使用float類型,float類型的數值有一個后綴F,沒有后綴F的默認為double類型,也可以在浮點數值后面加后綴D。

    char類型

    char類型用于表示單個字符,通常用來表示字符常量。

    轉義序列名稱Unicode值
    \b退格\u0008
    \f制表\u0009
    \n換行\u000a
    \f回車\u000d
    \ "雙引號\n0022
    \ ’單引號\u0027
    \ \反斜杠\u005c

    Unicode打破了傳統字符編碼方法的限制。

    Unicode-16采用不同長度的編碼表示所有Unicode代碼點(是指與一個編碼表中的某個字符對應的代碼值)。在Java中,char類型用UTF-16編碼描述一個代碼單元

    boolean類型

    整型值和布爾值之間不能相互轉換

    變量

    在Java中,每一個變量屬于一種類型。在聲明變量時,變量所屬的類位于變量名之前。

    在Java中,利用關鍵字final指示常量、關鍵字final表示這個變量只能被賦值一次,一旦被賦值之后,就不能再更改了。習慣上,變量名使用全大寫。

    在Java中,經常希望某個常量可以在一個類中的多個方法中使用,通常將這些變量稱為類常量??梢允褂藐P鍵字static final設置一個類常量。

    運算符

    當參與除運算的兩個操作數都是整數時,表示整數除法,否則表示浮點除法。

    位運算符

    在處理整型數值時,可以直接對組成整型數值的各個位進行操作。這意味著可以使用屏蔽技術獲得整數中的各個位。

    >><< 運算符將二進制進行右移和左移操作,當需要建立位模式屏蔽某些位時,使用這兩個運算符十分方便。 >>>運算符將用0填充高位,>>運算符用符號位填充高位,沒有<<<運算符

    數值類型之間的轉換

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-OZr3nm1Y-1619158617756)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210405155256593.png)]

    圖中有6個實心箭頭,表示無消息丟失的轉換。有3個虛箭頭,表示可能有精度損失的轉換。

    枚舉類型

    有時候,變量的取值只在一個有限的集合內。針對這種情況,可以自定義枚舉類型。枚舉類型包括有限個命名的值。

    字符串

    當將一個字符串與一個非字符串的值進行拼接時,后者被轉換成字符串。

    各種字符串放在公共的存儲池中,字符串變量指向存儲池中的相應為止,如果復制一個字符串變量,原始字符串與復制的字符串共享相同的字符‘、

    //構建字符串 StringBuilder builder = new StringBuilder();//構造一個空字符串 //每次需要添加一部分的內容,就調用append方法 builder.append(ch);//appends a single character bulider.append(str);//append a string

    輸入輸出

    //構造一個Scanner對象,并于標準輸入流 System.in 關聯 Scanner in = new Scanner(System.in); String name = in.nextLine();//使用nextLine()方法是因為在輸入行中可能包含空格,如果讀取單詞就用next()方法,讀取整數用nextInt()方法

    用于printf的轉換符

    轉換符類型
    d十進制整數
    x十六進制整數
    o八進制整數
    f定點浮點數
    e指數浮點數
    g通用浮點數
    a十六進制浮點數
    s字符串
    c字符
    b布爾
    h散列碼
    tx日期時間
    %百分號
    n與平臺有關的行分割符

    用于printf的標志

    標志目的
    +打印正數和負數的符號
    空格在正數之前添加空格
    0數字前面補0
    -左對齊
    (將負數括在括號里
    .添加分組分隔符
    #(對于f格式)包含小數點
    #(對于x或0格式)添加前綴0x或0
    $給定被格式化的參數索引
    <格式化前面說明的數值

    文件輸入與輸出

    //需要用File對象構造一個Scanner對象 Scanner in = new Scanner.get(Paths.get("myfile.txt")); //寫入文件,如果文件不存在,則創建該文件 PrintWrite out = new PrintWriter("myfile.txt")

    帶標簽的break語句

    標簽必須放在希望跳出的最外層循環之前,并且必須緊跟一個冒號

    read_data(); {{{break read_data;} }}

    控制流程

    塊作用域:塊是指一對花括號括起來的若干條簡單的Java語句。塊確定了變量的作用域。一個塊可以嵌套在另一個塊中

    大數值

    如果基本的整數和浮點數精度不能夠滿足需求,那么可以使用java.math包中的兩個很有用的類:BigInteger和BigDecimal

    這兩個類可以處理包含任意長度數字序列的數值。BigInteger類實現了任意精度的整數運算,BigDecimal實現了任意精度的浮點數運算。

    數組

    for each循環:Java有一種功能很強的循環結構,可以用來依次處理數組中的每個元素(其他類型的元素集合亦可)而不必為指定下標值而分心。

    語句格式為:

    for (variable : collection) statement

    打印數組中所有值可以利用Arrays類的toString方法,返回一個包含數組元素的字符串,這些元素被放置在括號內,并用逗號分隔。

    快速打印二維數組的數據元素列表可以調用:

    System.out.println(Arrays.deepToString(a));

    對象與類

    面向對象的程序是由對象組成的,每個對象包含對用戶公開的特定功能部分和隱藏的實現部分。

    類是構造對象的模板或藍圖。由類構造對象的過程稱為創建類的實例

    封裝從形式上看,封裝不過是將數據和行為組合在一個包中,并對對象的使用者隱藏了數據的實現方法。對象中的數據稱為實例域,操縱數據的過程稱為方法。對于每個特定的類實例都有一組特定的實例閾值。這些值的集合就是這個對象的當前狀態。

    實現封裝的關鍵在于絕對不能讓類中的方法直接地訪問其他類的實例域。

    對象

    對象的三個特性:

    • 對象的行為——可以對對象施加哪些操作,或可以對對象施加哪些方法
    • 對象的狀態——當施加那些方法時,對象如何響應
    • 對象標識——如何辨別具有相同行為與狀態的不同對象

    類之間的關系:

    • 依賴:一個類的方法操縱另一個類的對象,我們就說一個類依賴于另一個類
    • 聚合:類A的對象包含類B的對象
    • 繼承

    javac EmployeeTest.java

    當Java編譯器發現EmplyeeTest.java使用了Employee類時會查找名為Employee.class的文件。如果沒有找到這個文件,就會自動地搜索Employee.java,然后對它進行編譯。更重要的是:如果Employee.java版本較已有的Employee.class文件版本新,Java編譯器就會自動地重新編譯這個文件。

    構造器

    構造器與類同名,在構造類的對象時,構造器會運行,以便將實例域初始化為所希望的狀態。

    構造器與其他的方法有一個重要的不同,構造器總是伴隨著new操作符的執行被調用,而不能對一個已經存在的對象調用構造器來達到重新設置實例域的目的。

    隱式參數與顯式參數

    方法用于操作對象以及存取它們的實例域

    public void raiseSalary(double byPercent){double raise = salary * byPercent / 100;salary += raise; }

    將調用這個方法的對象的salary實例域設置為新值??纯聪旅孢@個調用:

    number007.raiseSalary(5);

    它的結果將number007.salary域的值增加5%,具體地說,這個調用將執行下列指令:

    double raise = number007.salary * 5 / 100; number007.salary += raise;

    raiseSalary方法有兩個參數。第一個參數稱為隱式參數,是出現在方法名前的Employee類對象。第二個參數位于方法名后面括號中的數值,這是一個顯式參數。

    在每一個方法中,關鍵字this表示隱式參數,采用下面的方式可以將實例域與局部變量明顯地區分開來。

    public void raiseSalary(double byPercent){double raise = this.salary * byPercent / 100;this.salary += raise; }

    在Java程序設計語言中,所有的方法都必須在類的內部定義,但并不表示它們是內聯方法。是否將某個方法設置為內聯方法是Java虛擬機的任務。即時編譯器會監視調用那些簡潔、經常被調用、沒有被重載以及可優化的方法。

    封裝的優點:

    getxxx方法是典型的訪問器方法,由于它們只返回實例域值,因此又稱為域訪問器。一旦在構造器中設置完成,就沒有任何一個方法可以對它進行修改,這樣確保域不會受到外界的破壞。

    在有時候需要獲得或設置實例域的值,因此,應該提供下面三項內容:

    • 一個私有的數據域
    • 一個共有的域訪問器方法
    • 一個公用的域更改器方法

    基于類的訪問權限

    一個方法可以訪問所屬類的所有對象的私有數據

    私有方法

    只要方法是私有的,類的設計者就可以確信,它不會被外部的其他類操作調用,可以將其刪去。如果方法是公有的,就不能將其刪去,因為其他的代碼很可能依賴它。

    final實例域

    可以將實例域定位為final。構建對象時必須初始化這樣的域。final修飾符大都應用于基本類型域或不可變域

    靜態域與靜態方法

    靜態域

    如果將域定義為static,每個類中只有一個這樣的域,而每一個對象對所有的實例域卻都有自己的一份拷貝。

    靜態常量

    靜態變量使用得比較少,但靜態常量卻使用得比較多。如果關鍵字static被省略,PI就變成了Math類的一個實例域,需要通過Math類的對象訪問PI,并且每一個Math對象都有它自己的一份PI拷貝。

    靜態方法

    靜態方法是一種不能向對象實施操作的方法。可以認為靜態方法是沒有this參數的方法

    因為靜態方法不能操作對象,所以不能在靜態方法中訪問實例域,但是,靜態方法可以訪問自身類中的靜態域。

    工廠方法

    靜態方法還有一種常見的用途。NumberFormat類使用工程方法產生不同風格的格式對象。

    方法參數

    按值調用表示方法接收的是調用者提供的值。

    而按引用調用表示方法接收的是調用者提供的變量地址。

    方法參數共有兩種類型:基本數據類型、對象引用

    對象構造

    重載

    如果多個方法有相同的名字,不同的參數,便產生了重載。編譯器必須挑選除具體執行哪個方法,它通過用各個方法給出的參數類型與特定方法調用所實驗的值類型進行匹配來挑選出相應的方法。如果編譯器找不到匹配的參數,或者找出多個可能的匹配,就會產生編譯時錯誤。(這個過程被稱為重載解析)

    如果在構造器沒有顯式地給域賦予初值,那么就會被自動地賦為默認值:數值為0、布爾值為false、對象引用為null

    如果在編寫一個類的時候沒有編寫構造器,那么系統就會提供一個無參數構造器。這個構造器將所有的實例域設置為默認值。

    顯式域初始化

    由于類的構造器方法可以重載,所有可以采用多種形式設置類的實例域的初始狀態。確保不管怎么樣調用構造器,每個實例域都可以被設置為一個有意義的初值。

    在執行構造器之前,先執行賦值操作。當一個類的所有構造器都希望把相同的值賦予某個特定的實例域時,這種方法特別有用。

    參數名

    還有一種常用的技巧,它基于這樣的事實:參數變量用同樣的名字將實例域屏蔽起來。

    public Employee(String name, double salary){this.name = name;this.salary = salary; }

    如果將參數命名為salary,salary將引用這個參數,而不是實例域。但是,可以采用this.salary的形式訪問實例域。

    調用另一個構造器

    public Employee(double s){this("Employee #" + nextId, s);nextId++; }

    如果構造器的第一個語句為this(…),這個構造器將調用同一個類的另一個構造器。

    初始化塊

    調用構造器的具體處理步驟:

  • 所有數據域被初始化為默認值
  • 按照在類聲明中出現的次序,依次執行所有域初始化語句和初始化塊
  • 如果構造器第一行調用了第二個構造器,則執行第二個構造器主體
  • 執行這個構造器的主體
  • 可以通過一個初始化值,或者使用一個靜態的初始化塊對靜態域進行初始化。

    對象析構與finalize方法

    可以為任何一個方法添加finalize方法。finalize方法將在垃圾回收器清楚對象之前調用,在實際應用中,不要依賴于使用finalize方法回收任何短缺的資源,這是因為很難知道這個方法什么時候調用。

    如果某個資源需要在使用完畢后立即被關閉,那么就需要人工來管理。對象用完時,可以應用一個close方法來完成相應的清理操作。

    Java允許使用包(package)將類組織起來。使用包的主要原因是確保類名的唯一性。

    一個類可以使用所屬的包中的所有類,以及其他包中的公有類。

    靜態導入

    import可以導入靜態方法和靜態域的功能

    包作用域

    如果沒有指定Public和private,這個部分可以被同一個包的所有方法訪問。

    類設計技巧

    • 一定要保證數據私有
    • 一定要對數據初始化
    • 不要在類中使用過多的基本類型
    • 不是所有的域都需要獨立的域訪問器和域更改器
    • 將職責過多的類進行分解
    • 類名和方法名要能夠體現它們的職責

    繼承

    類、超類和子類

    關鍵字extends表明正在構造的新類派生于一個已存在的類。已存在的類稱為超類、基類或父類;新類稱為子類、派生類或孩子類。

    在通過擴展超類定義子類的時候,僅需要指出子類與超類的不同之處。因此在設計類的時候,應該將通用的方法放在超類中,而將具有特殊用途的方法放在子類中。

    繼承層次

    由一個公共超類派生出來的所有類的集合被稱為繼承層次。在繼承層次中,從某個特定的類到其祖先的路徑被稱為該類的繼承鏈。

    多態

    有一個用來判斷是否應該設計為繼承關系的簡單規則,這就是"is-a"規則,它表明子類的每個對象也是超類的對象。另一種表述法是置換規則,它表明程序中出現超類對象的任何地方都可以用子類對象置換。

    例如:可以將一個子類的對象賦給超類變量

    Employee e; e = new Employee(...)//Employee object expected e = new Manager(...)//OK, Manager can be used as well

    在JAVA中,對象變量是多態的。一個Employee變量既可以引用以惡搞Employee類對象,也可以引入一個Employee類的任何一個子類的對象

    動態綁定

  • 編譯器查看對象的聲明類型和方法名。假設調用x.f(param),且隱式參數x聲明為C類的對象。需要注意的是可能存在多個名字為f,但參數類型不一樣的方法,編譯器將會一一列舉所有C類中名為f的方法和其超類中訪問屬性是public且名為f的方法(超類的私有方法不可調用)
  • 接下來,編譯器將查看調用方法時提供的參數類型。如果在所有名為f的方法中存在一個與提供的參數類型完全匹配,就選擇這個方法。這個過程被稱為"參數解析"。由于允許類型轉換,所以這個過程可能很復雜,如果編譯器沒有找到與參數類型完全匹配的方法,或者經過類型轉換后有多個方法與之匹配,就會報告一個錯誤
  • 如果是private方法、static方法、final方法或者構造器,那么編譯器可以準確地知道應該調用哪個方法,我們將這種調用方式稱為靜態綁定。與此對應的是,調用的方法依賴于隱式參數的實際類型,并且在運行時實現動態綁定。
  • 當程序運行,并且采用動態綁定調用方法時,虛擬機一定調用與x所引用對象的實際類型最合適的哪個類的方法。假設x的實際類型是D,它是C的子類,如果D類定義了方法f(String),就直接調用它,否則將在D類的超類中尋找f(String),以此類推
  • 每次調用方法都需要進行搜索,時間開銷相當大,因此虛擬機預先為每個類創建了一個方法表,其中列出了所有方法的簽名和實際調用的方法,這樣一來,在真正調用方法的時候,虛擬機僅查找這個表就行了。

    阻止繼承

    不允許擴展的類被稱為final類,如果在定義類的時候使用了final修飾符就表明這個類是final類。

    將方法或類聲明為final主要目的是:確保它們不會在子類中改變語義。

    強制類型轉換

    進行類型轉換的唯一原因是:在暫時忽略對象的實際類型之后,使用對象的全部功能

    抽象類

    如果自下而上在類的繼承層次結構中上移,位于上層的類更具有通用性,甚至可能更加抽象。從某種角度看,祖先類更加通用,人們只將它作為派生其他類的基類,而不作為想使用的特定的實例類。

    抽象類充當著占位的角色,它們的具體體現在子類中。擴展抽象類可以有兩種選擇,一種是在子類中定義部分抽象方法或抽象方法也不定義,這樣就必須將子類也標記為抽象類;另一種是定義全部的方法,這樣一來,子類就不是抽象的了。

    類即使不含抽象方法,也可以將類聲明為抽象類

    抽象類不能被實例化,也就是說,如果將一個類聲明為abstract,就不能創建這個類的對象。可以定義一個抽象類的對象變量,但是它只能引用非抽象子類的對象

    Person p = new Student("Yutou", "Econmoics");

    這里的p是一個抽象類的Person的變量,Person引用了一個非抽象子類Student的實例。

    受保護訪問

    有些時候,人們希望超類中的某些方法允許被子類訪問,或允許子類的方法訪問超類的某個域,需要將這些方法聲明為protected

    受保護的方法更具有實際意義。如果需要限制某個方法的使用,就可以將它聲明為protected

    java用于控制可見性的4個訪問修飾符:

  • 僅對本類可見——private
  • 對所有類可見——public
  • 對本包和所有子類可見——protected
  • 對本包可見——默認,不需要修飾符
  • Object

    Object類是Java中所有類的始祖。

    可以使用Object類型的變量引用任何類型的對象,在java中,只有基本類型不是對象

    equals方法

    Java語言規范要求equals方法具有下面的特性:

  • 自反性:對于任何非空引用x,x.euqals(x)應該返回true
  • 對稱性:對于任何引用x和y,當且僅當y.equals(x)返回true,x.equals(y)也應該返回true
  • 傳遞性:對于任何引用x、y和z,如果x.equals(y)返回true,y.equals(x)返回true,那x.equals(z)也應該返回true
  • 一致性:如果x和y的引用對象沒有發生變化,反復調用x.equals(y)應該返回同樣的結果
  • 對于任意非空引用,x.equals(null)應該返回false
  • 如果子類能夠擁有自己的相等概念,則對稱性需求將強制采用getClass進行檢測

    如果由超類決定相等的概念,那么就可以使用Instanceof進行檢測,這樣可以在不同子類的對象之間進行相等的比較。

    hasCode方法

    散列碼(hash code)是由對象導出的一個整型值。散列碼是沒有規律的。如果x和y是兩個不同的對象,x.hashCode()與y.hashCode()基本上不會相同

    toString方法

    在Object中還有一個重要的方法,就說toString方法,它用于返回表示對象值的字符串。

    Object類定義了toString方法,用來打印輸出對象所屬的類名和散列碼,數組繼承了object類的toString方法,數組類型將按照舊的格式打印,修正的方式是調用靜態方法Arrays.toString

    泛型數組列表

    ArrayList是一個采用類型參數的泛型類,為了指定數組列表保存的元素對象類型,需要用一對尖括號將類名括起來加在后面。

    下面聲明和構造一個保存Employee對象的數組列表:

    ArrayList<Employee> staff = new ArrayList<Employee>();

    兩邊都使用類型參數Employee,有些繁瑣,在Java7中,可以省去右邊的類型參數:

    ArrayList<Employee> staff = new ArrayList<>();

    這被稱為菱形語法,因為<>是菱形,可以結合New操作符使用菱形語法。編譯器會檢查新值是什么。如果賦值給一個變量,或傳遞到某個方法,或者從某個方法返回,編譯器會檢查這個變量、參數或方法的泛型類型,然后將這個類型放在<>中。

    訪問數組列表元素

    既可以靈活地擴展數組,又可以方便地訪問數組元素

    ArrayList<X> list = new ArrayList<>; while(...){x=...;list.add(x); } X[] a = new X[list.size()]; list.toArray(a);

    類型化與原始數組列表的兼容性

    編譯器對類型轉換進行檢查之后,如果沒有發現違反規則的現象,就將所有的類型化數組列表轉換成原始ArrayList對象。在程序運行時,所有的數組列表都是一樣的,即沒有虛擬機的類型參數。

    對象包裝器與自動裝箱

    有時,需要將int這樣的基本類型轉換為對象。所有的基本類型都有一個與之對應的類。例如,Integer類對應基本類型int。通常,這些類稱為包裝器(wrapper)

    這些對象包裝器類擁有很鮮明的名字:Integer、Long、Flaot、Double、Short、Byte、Character、Void和Boolean(前6個類派生于公共的超類Number)對象包裝器類是不可變的,即一旦構造了包裝器,就不允許更改包裝在其中的值。同樣,對象包裝器類還是final,因此不能定義它們的子類。

    假設想定義一個整型數組列表,而尖括號的數據參數不允許是基本類型。這里就用到了Integer對象包裝類

    JavaSE 5.0 的另一個改進之處是更加便于添加或獲得數組元素,下面這個調用

    list.add(3); //將自動變換成 list.add(Integer.valueOf(3));

    相反地,當將一個Integer對象賦給一個Int值時,將會自動地拆箱,也就是說,編譯器將下列語句:

    int n = list.get(i); //翻譯成 int n = list.get(i).intValue();

    裝箱和拆箱是編譯器認可的,而不是虛擬機。編譯器在生成類的字節碼時,插入必要的方法調用。虛擬機只是執行這些字節碼。

    參數數量可變的方法

    現在的版本提供了可以用可變的參數數量調用的方法(有時稱為"變參"方法)

    public class PrintStream{public PrintStream printf(String fmt,Object ... args){return format(fmt, args);} }

    這里的省略號…是java代碼的一部分,它表明這個方法可以接收任意數量的對象(除fmt參數之外)

    用戶自己也可以定義可變參數的方法,并將參數指定為任意類型,甚至是基本類型

    枚舉類

    比較兩個枚舉類型的值時,永遠不需要調用equals,而直接使用"=="就可以了

    public enum Size{SMALL("S"), MEDIUM("M"), LARGE("L"), EXTRA_LARGE("XL");private String abbreviation;private Size(String abbreviation){this.abbreviation = abbreviation}public String getAbbreviation(){return abbreviation;} }

    所有枚舉類型都是Enum類的子類,它們繼承了這個類的許多方法,其中最有用的一個是toString,這個方法能夠返回枚舉常量名。

    toString的逆方法是靜態方法valueOf

    每個枚舉類型都有一個靜態的values方法,它將返回一個包含全部枚舉值的數組。

    反射

    能夠分析類的能力的程序稱為反射。

    Class類

    在程序運行期間,Java運行時系統始終為所有的對象維護一個被稱為運行時的類型標識。這個消息跟蹤著每個對象所屬的類。

    可以通過專門的Java類訪問這些信息,保存這些信息的類被稱為Class。Object類中的getClass()方法將會返回一個Class類型的實例

    如果類在一個包里,包的名字也作為類名的一部分,還可以調用靜態方法forName獲得類名對應的Class對象

    虛擬機為每個類型管理一個Class對象,因此,可以利用==運算符實現兩個類對象比較的操作

    捕獲異常

    當程序運行過程中發送錯誤時,就會拋出異常。

    異常有兩種類型:未檢查異常和已檢查異常。對于已檢查異常,編譯器將會檢查是否提供了處理器,然而,有很多常見的異常。編譯器不會查看是否為這些錯誤提供了處理器。

    利用反射分析類的能力

    在java.lang.reflect包中有三個類Field、Method和Constructor分別用于描述類的域、方法和構造器。這三個類都有一個叫做getName的方法,用來返回項目的名稱。Filed類有一個getType方法,用來返回描述域所屬類型的Class對象。Method和Constructor類有能夠報告參數類型的方,Method類還有一個可以報告返回類型的方法。

    這三個類還有一個叫做getModifiers的方法,它將返回一個整型數值,用不同的位開關描述public和static這樣的修飾符使用狀況。

    另外還可以利用java.lang.reflect包中的Modifier類靜態方法分析getModifiers返回的整型數值。

    在運行時使用反射分析對象

    查看對象域的關鍵方法是Filed類中的get方法。如果f是一個Field類型的對象,obj是某個包含f域的類的對象,f.get(obj)將返回一個對象,其值為obj域的當前值。

    反射機制的默認行為受限于java的訪問控制。然而,如果一個Java程序沒有受到安全管理器的控制,就可以覆蓋訪問控制。

    繼承設計的技巧

  • 將公共操作和域放在超類
  • 不要使用受保護的域
  • 使用繼承實現"is-a"關系
  • 除非所有繼承的方法都有意義,否則不要使用繼承
  • 在覆蓋方法時,不要改變預期的行為
  • 使用多態,而非類型信息
  • 不要過多的使用反射
  • 接口與內部類

    接口技術,主要用來描述類具有功能,而并不給出每個功能的具體實現。一個類可以實現一個或多個接口,并且需要接口的地方,隨時使用實現了相應接口的對象。

    內部類定義在另一個類的內部,其中的方法可以訪問包含它們的外部類的域,這是一項比較復雜的技術。內部類技術主要用于設計具有相互協作關系的類集合。

    接口

    在java程序設計語言中,接口不是類,而是對類的一組需求描述,這個類要遵從接口描述的統一格式進行定義。

    接口中的所有方法自動地屬于public,因此,在接口中聲明方法時,不必提供關鍵字public。

    接口絕不能含有實例域,也不能在接口中實現方法。提供實例域和方法實現的任務應該由實現接口那個類來完成。因此,可以將接口看成是沒有實例域的抽象類。但是這個兩個概念還是有一定區別的。

    為了讓類實現一個接口,通常需要下面兩個步驟:

  • 將類聲明為實現給定的接口
  • 對接口中的所有方法進行定義
  • 接口的特性

    接口不是類,尤其不能用new運算符實例化一個接口

    然而,盡管不能構造接口的對象,卻能聲明接口的變量

    接口變量必須引用實現了接口的類對象

    接口與抽象類

    使用抽象類表示通用屬性存在這樣一個問題:每個類只能擴展于一個類。

    對象克隆

    當拷貝一個變量時,原始變量與拷貝變量引用同一個對象,這就是說,改變一個變量所引用的對象將會對另一個變量產生影響。

    如果在對象中包含了子對象的引用,拷貝的結構會使得兩個域引用同一個子對象,因此原始對象與克隆對象共享這部分信息。

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-CVZEfKTs-1619158617760)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210417212230194.png)]

    接口與回調

    回調是一種常見的程序設計模式。在這種模式,可以指出某個特定事件發送時應該采取動作。

    內部類

    內部類是定義在另一個類中的類。使用內部類的原因:

    • 內部類方法可以訪問該類定義所在的作用域中的數據,包括私有的數據。
    • 內部類可以對同一個包中的其他類隱藏起來
    • 當想要定義一個回調函數且不想編寫大量代碼時,使用匿名內部類比較便捷

    從傳統意義上講,一個方法可以引用調用這個方法的對象數據域。內部類既可以訪問自身的數據域,也可以訪問創建它的外圍類對象的數據域。

    局部內部類

    public void start(){class TimePrinter implements ActionListner{public void actionPerformed(ActionEvent event){Date now = new Date();System.out.println("At the tone, the time is " + now);if(beep) Tookit.getDefaultToolkit().beep();}}ActionListener listener = new TimePrinter();Timer t = new Timer(interval, listner);t.start(); }

    局部類不能用public或private訪問說明符進行聲明。它的作用域被限定在聲明這個局部類的塊中。

    局部類有一個優勢,即對外部世界可以完全地隱藏起來。即使TakingClock類中的其他代碼也不能訪問它。除start方法之外,沒有任何方法知道TImePrinter類的存在。

    由外部方法訪問final變量

    與其他內部類相比較,局部類還有一個優點。它們不僅能夠訪問包含它們的外部類,還可以訪問局部變量。不過,那些局部變量必須被聲明為final。

    匿名內部類

    將局部內部類的使用再深入一步。假如只創建這個類的一個對象,就不必命名了。這種類被稱為匿名內部類。

    靜態內部類

    使用內部類只是為了把一個類隱藏在另外一個類的內部,并不需要內部類引用外圍類對象。為此,可以將內部類聲明為static,以便取消產生的引用。

    代理

    利用代理可以在運行時創建一個實現了一組給定接口的新類。這種功能只有在編譯時無法確定需要實現哪個接口時才有必要使用。

    假設有一個表示接口的Class對象,它的確切類型在編譯時無法知道。

    異常、斷言、日志和調試

    Java使用一種稱為異常處理的錯誤捕獲機制處理。

    使用斷言

    在一個具有自我保護能力的程序中,斷言很常用。假設確信某個屬性符合要求,并且代碼的執行依賴于這個屬性。

    斷言機制運行在測試期間向代碼中插入一些檢查語句,當代碼發布時,這些插入的檢測語句將會自動地移走。

    assert 條件;assert 條件:表達式

    這兩種形式都會對條件進行檢測,如果結構為false,則拋出一個AssertionError異常。在第二種形式中,表達式將被傳入AssertionError的構造器,并轉換一個消息字符串。

    啟動和禁用斷言

    在默認情況下,斷言被禁用??梢栽谶\行程序時用下面代碼啟用它:

    java -enableassertions MyApp

    需要注意的是,在啟用或禁用斷言時不必重新編譯程序。啟用或禁用是類加載器的功能。當斷言被禁用時,類加載器將跳過斷言代碼。因此,不會降低程序運行的速度。

    使用斷言完成參數檢查

    在java語言中,給出了3種處理系統錯誤的機制:

    • 拋出一個異常
    • 日志
    • 使用斷言

    什么時候應該選擇使用斷言?

    • 斷言失敗是致命的,不可恢復的錯誤
    • 斷言檢查只用于開發和測試階段

    記錄日志

    記錄日志API優點:

    • 可以很容易地取消全部日志記錄,或者僅僅取消某個級別的日志,而且打開和關閉這個操作也很容易
    • 可以很簡單地禁止日志記錄的輸出,因此,將這些日志代碼留在程序中的開銷很小。
    • 日志記錄可以被定向到不同的處理器,用于在控制臺中顯示,用于存儲在文件中等。
    • 日志記錄器和處理器都可以對記錄進行過濾。過濾器可以根據過濾實現器指定的標準丟棄那些無用的記錄項。
    • 日志記錄可以采用不同的方式格式化
    • 應用程序可以使用多個日志記錄器,它們使用類似包名的這種具有層次結構的名字。
    • 在默認情況下,日志系統的配置由配置文件控制。如果需要的話,應用程序可以替換這個配置。

    基本日志

    可以使用System.out替換它,并調用Info方法記錄日志信息

    泛型程序設計

    為什么要使用泛型程序設計

    泛型程序設計意味著編寫的代碼可以被很多不同類型的對象所重用。

    定義簡單泛型類

    一個泛型類就是具有一個或多個類型變量的類

    public class Pair<T>{private T first;private T second;public Pair(){first = null;second = null;}public T getFirst(){return first;}public T getSecond(){return second;}public void setFirst(T newValue){first = newValue;}public void setSecond(T newValue){second = newValue;} }

    Pair類引入了一個類型變量T,用尖括號括起來,放在類名的后面。泛型類可以有多個類型變量。

    類型變量使用大寫形式,且比較短。在Java庫中,使用變量E表示集合的元素類型,K和V分別表示表的關鍵字與直的類型。T(需要時話可以用臨近的U和S)表示"任意類型"

    泛型方法

    clasS ArrayAlg{public static <T> T getMiddle(T... a){return a[a.length/2];} }

    這個方法在普通類中定義的,而不是在泛型類中定義的。然而,這是一個泛型方法。泛型方法可以定義在普通類中,也可以定義在泛型類中。

    當調用一個泛型方法時,在方法名前的尖括號中放入具體的類型:

    String middle = ArrayAlg.<String>getMiddle("John","Q.","Public");

    在這種情況下,方法調用中可以省略類型參數

    泛型代碼和虛擬機

    虛擬機沒有泛型類型對象——所有對象都屬于普通類。

    無論何時定義一個泛型類型,都自動提供了一個相應的原始類型。原始類型的名字就是刪去類型參數后的泛型類型名,擦除類型變量,并轉換為限定類型(無限定的變量用Object)

    約束和局限性

    不能用類型參數代替基本類型。

    因此沒有Pair,只有Pair。

    運行時類型查詢只適用于原始類型

    虛擬機的對象總有一個特定的非泛型類型。因此,所有的類型查詢只產生原始類型。

    不能創建參數化類型的數組

    不能實例化參數化類型的數組

    不能實例化類型變量

    泛型類的靜態上下文中類型變量無效

    不能在靜態域或方法中引用類型變量

    不能拋出或捕獲泛型類的實例

    通配符類型

    Pair<? extends Employee>

    表示任何泛型Pair類型,它的類型參數是Employee的子類

    通配符的超類型限定

    超類型限定:? super Manager 這個通配符限制為Manager的所有超類型

    無限定通配符

    Pair<?>和Pair的本質不同在于:可以用任意Object對象調用原始的Pair類的setObject方法

    通配符捕獲

    通配符捕獲只有在有許多限制的情況下才是合法的。編譯器必須要能夠確信通配符表達的是單個、確定的類型。

    反射和泛型

    Class類是泛型的。例如,String.class實際上是一個Class類的對象

    虛擬機中的泛型類型信息、

    Java泛型的卓越特性之一是在虛擬機中泛型類型的擦除。

    集合

    集合接口

    將集合的接口與實現分離

    Java集合類庫將接口與實現(implementation)分離。

    Java類庫中的集合接口和迭代器接口

    在java類庫中,集合類的基本接口是Collector接口,這個接口有兩個基本方法:

    public interface Collection<E>{boolean add(E element);Iterator<E> iteractor(); }

    add方法用于向集合中增加元素。如果添加元素確實改變了集合就返回true,如果集合沒有發生變化就返回false。

    iterator方法用于放回一個實現了Iterator接口的對象,可以使用這個迭代器對象依次訪問集合中的元素。

    Collection接口擴展了Iterator接口。因此,對于標準類庫中的任何集合都可以使用for each循環。

    元素被訪問的順序取決集合類型。如果對ArrayList進行迭代,迭代器將從索引0開始,每迭代一次,索引值加1.然而如果訪問HashSet中的元素,每個元素將會按照某種隨機的次序出現。

    由于Collection與Iterator都是泛型接口,可以編寫操作任何集合類型的實用方法。

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-eiA54w82-1619158617763)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210420171035312.png)]

    散列表

    散列表為每個對象計算一個整數,稱為散列碼。散列碼是由對象的實例域產生的一個整數。在Java中,散列表用鏈表數組實現。每個列表被稱為桶。要想查找表中對象的位置,就要先計算它的散列表,然后與桶的總數取余,所得到的結果就是保存這個元素的桶的索引。

    如果散列表太滿,就需要再散列。如果要對散列表再散列,就需要創建一個桶數更多的表,并把所有元素插入這個新表中,然后丟棄原來的表。裝填因子決定何時對散列表進行再散列。

    散列表可以用于實現幾個重要的數據結構。其中最簡單的是set類型。set是沒有重復元素的元素集合。

    樹集

    樹集是一個有序集合。可以以任何順序將元素插入到集合中。在對集合進行遍歷時,每個值將自動地按照排序后的順序呈現。將一個元素添加到樹中要比添加到散列表中慢,但是,與將元素添加到數組或鏈表的正確位置上相比還是快很多的。

    映射表

    映射表是用來存放鍵/值對。如果提供了鍵,就能夠找到值。

    java類庫為映射表提供了兩個通用的實現:HashMap和TreeMap,這兩個類都實現了Map接口。

    散列映射表對鍵進行散列,樹映射表用鍵的整體順序對元素進行排序,并將其組織成搜索樹。散列或比較函數只能作用于鍵,與鍵關聯的值不能進行散列或比較。

    多線程

    每一個任務稱為一個線程,它是線程控制的簡稱??梢酝瑫r運行一個以上線程的程序稱為多線程程序。

    中斷線程

    當對一個線程調用interrupt方法時,線程的終端狀態將被置位。這是每一個線程都具有的Boolean標志。每個線程都應該不時地檢查這個標志,以判斷線程是否被中斷。

    線程狀態

    線程可以有如下6種狀態:

    • New 新創建
    • Runable 可運行
    • Blocked 被阻塞
    • Waiting 等待
    • Timed waiting 計時等待
    • Terminated 被終止

    線程屬性

    線程優先級

    每個線程都有一個優先級,WINDOWS有7個優先級別,在Linux提供的Java虛擬機,線程的優先級被忽略——所有線程具有相同的優先級。

    守護線程的唯一用途是為其他線程提供服務。

    執行器

    構建一個新的線程是有一定代價的,因為涉及與操作系統的交互。如果程序中創建了大量的生命期很短的線程,應該使用線程池。一個線程池中包含許多準備運行的空閑線程,將Runnable對象交給線程池,就會有一個線程調用run方法。當run方法退出時,線程不會死亡,而是在池中準備為下一個請求提供服務。

    執行器類有許多靜態工廠方法用來構建線程池。

    交換器

    當兩個線程在同一個數據緩沖區的兩個實例上工作的時候,就可以使用交換器。

    總結

    以上是生活随笔為你收集整理的Java核心技术 卷1的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    一区二区三区在线不卡 | 欧美精品久久久久久久 | 亚洲一区二区精品 | 日本黄色免费在线观看 | 激情一区二区三区欧美 | 精品亚洲一区二区三区 | 欧美性色黄 | 日韩精品一区二区三区免费观看视频 | 免费看片日韩 | 在线视频国产区 | 五月天中文在线 | 国产成人在线网站 | 天天射天天拍 | 激情综合色播五月 | 亚洲欧美成人网 | 色爱区综合激月婷婷 | 九九九九热精品免费视频点播观看 | 91精品办公室少妇高潮对白 | 免费在线观看av | 精品毛片一区二区免费看 | 国产成人61精品免费看片 | 久操伊人 | 99久久99久久精品免费 | 国产视频一二区 | 日韩三级免费观看 | 最新中文字幕在线播放 | 91人人爽人人爽人人精88v | 日本黄色免费网站 | 黄视频网站大全 | 91免费黄视频 | 亚洲成人av电影 | 精品成人在线 | 国产成人333kkk| 色婷婷精品| 精品久久久久久久久久久久 | 久久免费在线 | 久久99精品热在线观看 | 中文字幕人成不卡一区 | 中文字幕av在线不卡 | 黄色三级av | 一区中文字幕电影 | 日本中文字幕在线一区 | 日韩字幕在线 | 久久久久久久久久久久久久免费看 | 国产伦理一区二区三区 | 国产精品白丝jk白祙 | 性色视频在线 | 国产免费av一区二区三区 | 日韩av进入 | 日本精品视频在线播放 | 午夜精品影院 | 免费裸体视频网 | 久久综合九色综合久99 | 日韩免费电影网站 | 日韩va亚洲va欧美va久久 | 色综合亚洲精品激情狠狠 | 香蕉影视| 91自拍视频在线 | 国产99亚洲 | 绯色av一区 | 久久午夜剧场 | 国产黄色网 | 国产视频一区二区三区在线 | 欧美性精品 | 成人av高清 | 999一区二区三区 | 麻豆国产网站入口 | 在线看片成人 | 99免费在线播放99久久免费 | 亚洲成人黄 | 日韩视频免费 | 国产高清av免费在线观看 | 免费的国产精品 | 国产精品久久久久一区二区 | 色视频国产直接看 | ww亚洲ww亚在线观看 | 国产一区在线不卡 | 91精品在线免费观看 | 国产亚洲资源 | 丁香五月亚洲综合在线 | 97精品国产aⅴ | 天天看天天干 | 亚洲成人免费在线 | 国产美腿白丝袜足在线av | 中文字幕日韩有码 | 久久婷五月 | 一本到视频在线观看 | 日韩免费视频播放 | 成人精品国产免费网站 | 国产69久久久欧美一级 | 亚洲精品中文在线观看 | 69av国产| 9久久精品| 在线免费av电影 | 久久久香蕉视频 | 成年人免费观看在线视频 | 最近最新中文字幕 | 最新国产福利 | 久久免费视频国产 | 一本一本久久a久久 | av中文字幕在线观看网站 | 精品国产1区二区 | 欧美日韩国产伦理 | 毛片播放网站 | 国产色 在线 | 日韩av电影网站在线观看 | 伊人五月天 | a极黄色片 | 免费成人av | 国产一级免费观看视频 | 狠狠综合久久 | 亚洲婷婷免费 | 中日韩欧美精彩视频 | 91精品国产91久久久久 | 日韩色在线 | 日韩在线观看免费 | 九九久久免费 | 99热官网 | 天天艹天天 | 在线观看www91 | www.久久久| 日本最新中文字幕 | 麻花豆传媒mv在线观看网站 | 久久久96| 国产成人精品在线播放 | 手机在线欧美 | 日韩一二三 | 久久国产精品99久久久久久老狼 | 国内精品久久久久久久久久久 | 一区二区在线不卡 | 亚洲最新在线视频 | 婷婷久久久久 | 亚洲三级黄 | 国产高清精 | 在线国产中文字幕 | 九九热视频在线播放 | 有没有在线观看av | 亚洲最大激情中文字幕 | 国产精品9999久久久久仙踪林 | 欧日韩在线视频 | 九色琪琪久久综合网天天 | 俺要去色综合狠狠 | 国产精品久久久久久爽爽爽 | 免费瑟瑟网站 | 久久涩视频 | 黄色三级av| 午夜国产在线观看 | 久久久久久久久久电影 | 欧美久久久久久久久久久 | 国产伦精品一区二区三区… | 中文成人字幕 | 婷婷色综合网 | 午夜精品婷婷 | 综合久久精品 | 黄色毛片在线观看 | 夜夜操天天干 | 激情综合五月天 | 五月天电影免费在线观看一区 | 中文字幕在线免费看线人 | 天堂av高清| 在线免费观看视频一区 | 免费观看一级成人毛片 | 国产一级片久久 | 久久久久99精品成人片三人毛片 | 99精品视频在线观看免费 | 伊甸园永久入口www 99热 精品在线 | 黄色片网站 | 欧美日韩中文另类 | 欧美成人精品欧美一级乱 | 一区二区三区四区影院 | 又色又爽又黄高潮的免费视频 | 免费看av片网站 | 天天综合区| 99久久精品免费视频 | 亚洲自拍偷拍色图 | 久草干 | 久久免费视频这里只有精品 | www天天干com | 91重口视频 | 99操视频| 天天插天天狠 | 视频三区在线 | 欧美精品乱码99久久影院 | 亚洲欧美精品在线 | 中文字幕精品三区 | 欧美日韩三级在线观看 | 亚洲资源在线网 | 黄色免费av| 四虎影视久久久 | 二区精品视频 | 国产主播99 | 日韩久久精品一区二区三区 | 不卡的av在线 | 免费观看一级 | 免费看黄色大全 | 国偷自产中文字幕亚洲手机在线 | 国产黄色大全 | 草久久av| 国产精品99久久免费黑人 | 99久久婷婷国产一区二区三区 | 99999精品视频 | 在线观看 亚洲 | 国产成人精品一区二区三区网站观看 | 中文字幕一区在线 | 狠狠色伊人亚洲综合网站色 | 97电影手机 | 一级性av | 草免费视频 | 99久久精品国产亚洲 | 丝袜美腿一区 | 免费a视频| 久久官网 | 欧美在线视频精品 | 国产原厂视频在线观看 | 色视频在线观看免费 | 亚洲免费精品视频 | 久久久精品国产一区二区 | 国产一级做a | 国内视频 | 在线观看日韩国产 | 亚洲综合欧美日韩狠狠色 | 五月婷婷av | 国产毛片久久久 | 日韩精品中字 | 久久99在线 | 免费看污污视频的网站 | 97超碰国产精品 | 欧美日韩不卡在线视频 | 日韩精品综合在线 | 夜夜操狠狠操 | 日本中文字幕影院 | 蜜臀久久99精品久久久无需会员 | 欧洲高潮三级做爰 | 久久99在线观看 | 国产福利91精品一区二区三区 | 九七视频在线 | 亚洲午夜久久久久久久久 | 一区二区三区在线免费观看 | 国产 日韩 在线 亚洲 字幕 中文 | 久久av网址| 国产精品videoxxxx | 在线av资源 | 高清久久久 | 精品一区二三区 | 亚洲国产精品视频 | 亚洲在线精品视频 | 国产麻豆精品传媒av国产下载 | 97在线观看免费观看高清 | 三级黄色在线观看 | 国产精品视频内 | 在线看片一区 | 国产视频在线观看一区 | 日韩av一区二区三区 | 欧美精品国产综合久久 | 欧美日韩在线精品一区二区 | 亚洲视频h | 精品国产一区二区三区噜噜噜 | 国内成人综合 | 日本在线观看中文字幕无线观看 | 国产麻豆视频免费观看 | 欧美日韩精品在线 | 久久久久久毛片精品免费不卡 | 日韩精品中文字幕一区二区 | 2019av在线视频 | 中文字幕有码在线观看 | 欧美性视频网站 | 丁香五月亚洲综合在线 | 一区二区三区在线免费播放 | 久草在线视频免费资源观看 | 成年人在线免费看视频 | 免费在线日韩 | 亚洲一区美女视频在线观看免费 | 久久久久久久久黄色 | 综合精品久久 | 国产一区二区不卡视频 | 91在线中文字幕 | 久久尤物电影视频在线观看 | 日韩高清黄色 | 欧美日韩免费一区二区三区 | 天天干天天做天天操 | 亚洲人毛片 | 青草视频免费观看 | 免费看的黄色网 | 国产精品18久久久久白浆 | 亚洲专区免费观看 | 国产超碰97| 免费看黄的视频 | 狠狠色丁香婷婷综合欧美 | 中文字幕精品三级久久久 | 麻豆视频在线 | 成年人免费在线播放 | 亚洲一区二区精品3399 | 在线日韩亚洲 | 玖玖爱国产在线 | 91免费试看 | 午夜在线免费观看 | 国产精品久久久久久妇 | 日韩一级片网址 | 四虎免费av | 99在线精品免费视频九九视 | 激情综合站 | 国产日韩精品一区二区三区 | 日韩av电影中文字幕在线观看 | 久草在线费播放视频 | 五月天激情视频 | 中文字幕欧美激情 | 丁香六月婷婷开心婷婷网 | 丁香视频 | 日韩av视屏 | 日韩中文字幕电影 | 亚洲一区二区三区在线看 | 国产精品久久久久免费 | 高潮久久久 | 成年人视频在线 | 色就干| 久久在草| 欧美成人按摩 | 国产精品久久久久四虎 | av在线成人 | 亚洲天堂自拍视频 | 69精品在线| 五月婷婷天堂 | 精品久久一区二区 | 久精品在线观看 | 91av视频在线观看免费 | 狠狠狠干 | 五月开心婷婷网 | 丁香婷婷激情 | 亚洲精品91天天久久人人 | 色播五月激情五月 | 日韩欧美亚洲 | 日韩免费看的电影 | 349k.cc看片app| 日韩精品视频免费专区在线播放 | 亚洲人毛片 | 亚洲精品在线免费播放 | 亚洲综合欧美日韩狠狠色 | 精品久久国产一区 | 五月婷婷在线观看视频 | 又黄又爽又无遮挡免费的网站 | 日韩美女久久 | 69av免费视频 | 夜色资源站wwwcom | www.色就是色 | 欧美日韩免费一区二区 | 四虎永久免费网站 | 精品国内| 91在线视频免费91 | 久草视频2| 色综合久久88色综合天天免费 | 黄色日视频 | 国产日产精品一区二区三区四区 | 91丨九色丨丝袜 | 国产亚洲精品日韩在线tv黄 | 亚洲日韩中文字幕在线播放 | 精品久久久久国产免费第一页 | 久久免费视频在线观看 | 国产视频亚洲视频 | 天天舔天天射天天操 | 四川bbb搡bbb爽爽视频 | 久久久久久久久久久久久久av | 国产日韩精品一区二区 | 99热在线精品观看 | 五月天天av | 国产精品一区免费在线观看 | 日韩a在线观看 | 九九久久精品 | 免费亚洲视频 | 精品96久久久久久中文字幕无 | 久久综合色婷婷 | 国产精品一区二区在线看 | 精品国产a | 免费在线观看一区二区三区 | 一区二区精品在线 | 亚洲天堂网视频 | 久久精精品视频 | 成人在线你懂得 | 精品一区二区三区在线播放 | 久久精品999| 91精品视频在线看 | 黄色官网在线观看 | 亚洲激情在线观看 | av网站有哪些 | 久久精品欧美 | 中文字幕最新精品 | 国产中文字幕在线 | 色综合久久久久综合体 | 色综合天天狠天天透天天伊人 | 日韩精品亚洲专区在线观看 | 欧美性脚交 | 综合色婷婷 | 精品国产乱码一区二区三区在线 | 国产永久免费 | 五月丁香 | 免费成人在线观看视频 | 亚洲国产精品va在线 | 国产福利免费看 | 丁香婷婷基地 | 日韩av高清 | 最新国产在线观看 | 麻豆极品 | 国产精品久久久久久久久久白浆 | 国产黄色高清 | 中文字幕 国产精品 | 国产成人久久精品亚洲 | 国产精品久久艹 | 欧美亚洲专区 | 久久久久久久久久久高潮一区二区 | 亚洲专区在线视频 | 亚洲码国产日韩欧美高潮在线播放 | 黄色成年片 | 69久久99精品久久久久婷婷 | 女人高潮特级毛片 | 欧美日韩国产精品一区二区亚洲 | 婷婷综合久久 | 久久久久久久久久久综合 | a视频在线看 | 欧美日韩国产一区二区三区 | 高清av网站 | 精品久久久免费视频 | 88av色 | 五月婷婷影院 | 国产精品免费久久久久久久久久中文 | 天天射天天射天天射 | 久草观看视频 | 超碰97网站| 综合亚洲视频 | 99久久99久久精品国产片果冰 | 日日夜夜草 | 福利视频区| 在线观看成人福利 | 亚洲成aⅴ人在线观看 | 在线观看911视频 | 国产91精品一区二区绿帽 | 99久久99久久精品国产片果冰 | 欧美日韩国产在线精品 | 四虎在线观看精品视频 | 波多野结衣在线视频免费观看 | 亚洲男女精品 | 91人人揉日日捏人人看 | 人人爱在线视频 | 97人人澡人人添人人爽超碰 | 夜夜夜夜夜夜操 | 99精品国自产在线 | 久久免费播放视频 | 日本中文字幕电影在线免费观看 | 香蕉视频在线看 | 国产一级不卡毛片 | 久久国产欧美日韩精品 | 啪啪免费试看 | 亚洲在线黄色 | 九九久久视频 | 久久久99精品免费观看乱色 | 国产在线精品区 | 国产精品一区二区无线 | 九精品 | 日韩免费观看视频 | 免费91麻豆精品国产自产在线观看 | 免费看的黄网站 | 激情综合啪 | 久久xxxx| 国产精品久久久久久久久久尿 | 色综合夜色一区 | 毛片网在线播放 | 99精品区| 亚洲人成免费网站 | 在线观看黄色小视频 | 蜜桃视频日本 | 911免费视频 | 免费观看成人网 | 国产精品video爽爽爽爽 | 色狠狠综合天天综合综合 | 五月婷婷欧美 | 久久精品国产免费看久久精品 | 国产中文字幕免费 | 在线成人观看 | 亚洲最大av | 亚洲精品ww | 中国一级片视频 | 黄色一二级片 | 黄av免费 | 久久这里只有精品视频99 | 综合网伊人| 亚洲五月六月 | av理论电影 | 欧美激情综合五月色丁香 | av中文字幕av | www黄色com | 日本在线成人 | 中文字幕在线观看完整版 | 亚洲国产精品久久久久婷婷884 | 在线免费中文字幕 | 久草免费看 | 久久视频在线 | av免费网站观看 | 免费观看黄 | 超级碰碰碰碰 | www.亚洲精品 | 欧美激情va永久在线播放 | 黄色成人毛片 | 亚洲精品视频在 | 香蕉在线视频播放网站 | 日韩乱理 | 激情婷婷综合 | 久久人视频 | 久久激情视频 | 免费男女羞羞的视频网站中文字幕 | 五月色丁香 | 免费色黄 | 日本3级在线观看 | 精品视频在线免费 | 在线观看精品一区 | 国产在线自 | 欧美日韩亚洲第一 | 深夜国产在线 | 五月天天av| 911精品美国片911久久久 | 中文字幕在线人 | 国产色在线视频 | 国产成人三级一区二区在线观看一 | 91在线观看黄 | 特级西西人体444是什么意思 | adn—256中文在线观看 | 西西444www大胆高清图片 | 亚洲精欧美一区二区精品 | 久久久蜜桃一区二区 | 日韩艹| 99视频这里有精品 | 久草视频一区 | 国产精品久久久久久久久久不蜜月 | av不卡免费看 | 日韩午夜电影网 | 成人va天堂 | 国产一区二区在线观看视频 | 99久久精品日本一区二区免费 | 国产精品一区二区av麻豆 | 国产男女爽爽爽免费视频 | 中文字幕视频网站 | 色香com.| 在线电影a | 在线 国产一区 | 成人免费观看网址 | 婷婷久久网站 | 在线观看免费黄色 | 亚洲国产资源 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 欧美日韩不卡一区二区三区 | 精品电影一区 | 精品国产91亚洲一区二区三区www | 九九九九九精品 | 国产中文字幕在线观看 | 91看片淫黄大片一级在线观看 | 天天天天天天天天操 | 日韩一区二区三区在线观看 | 97超碰人人网 | 在线观看一级 | 亚洲国产资源 | 亚洲成人资源在线 | 欧美最爽乱淫视频播放 | 99久久99视频只有精品 | 日韩精品一区二区三区水蜜桃 | 免费看三级 | 欧美一级片在线观看视频 | 99热99| 视频成人永久免费视频 | a成人v在线 | 国产精品嫩草69影院 | 欧美-第1页-屁屁影院 | 特级免费毛片 | 天天色综合天天 | 欧美色黄 | 天天干天天综合 | 久久免费黄色大片 | 日韩视 | 亚洲人成免费网站 | 国产三级午夜理伦三级 | 黄色国产高清 | 精品国产一区二区三区蜜臀 | 91欧美日韩国产 | 亚洲色图激情文学 | 国产精品久久久久久久久久久不卡 | 丁香六月五月婷婷 | 午夜视频在线观看一区 | 国产成人精品电影久久久 | 久久久久高清毛片一级 | 久久久国产一区二区三区四区小说 | 一区 二区 精品 | 高清av免费一区中文字幕 | 成人a视频片观看免费 | av在线一级 | 欧美一级在线观看视频 | 五月花激情 | 久久国产精品一区二区 | 97视频精品 | 欧美大片aaa | 亚洲精品乱码久久久一二三 | 欧美日韩久久久 | 日韩在线观看一区二区 | 人人搞人人搞 | 国产一级免费在线观看 | 免费h精品视频在线播放 | 日韩va欧美va亚洲va久久 | 久久综合视频网 | 婷婷六月综合网 | 久要激情网| 亚洲三级黄 | 九九视频在线观看视频6 | 久久久久草 | 久久国产电影院 | 狠狠激情中文字幕 | 亚洲日本色 | 欧美一区二区在线刺激视频 | 国产精品亚洲片夜色在线 | 成人在线免费观看网站 | 久草在线一免费新视频 | 成人app在线播放 | 久久久免费观看完整版 | 成人在线视频论坛 | 99热这里有 | 成人网页在线免费观看 | www.日本色| 奇米网网址 | 久久国产亚洲 | 99精品国产一区二区三区不卡 | 三级视频日韩 | 国产精品一区久久久久 | 亚洲精品视频在线播放 | 国产小视频精品 | 91热精品| 天堂av观看 | 黄色一级大片免费看 | 久久久黄视频 | 国产亚洲精品久久久久动 | 国产成人精品一区二区 | 9久久精品 | 激情伊人五月天久久综合 | 国产伦精品一区二区三区四区视频 | 91九色视频网站 | 黄在线免费看 | 97热视频 | 免费男女羞羞的视频网站中文字幕 | 精品免费一区二区三区 | 亚洲视频免费 | 久久久久99999 | 最新国产精品拍自在线播放 | 麻豆 videos| 99久久毛片| 九九欧美视频 | 免费视频黄 | 黄色在线观看免费网站 | 久久麻豆精品 | 久久免费av电影 | 日韩美在线观看 | 亚洲乱码久久久 | 亚洲国内精品视频 | 91精品免费在线观看 | 又黄又色又爽 | 婷婷在线五月 | 久久久免费观看视频 | 精品视频在线观看 | 黄色三级视频片 | 亚洲成人在线免费 | 日本aa在线 | 色综合婷婷久久 | 人人草人人做 | 国产精品久久久久高潮 | 91在线麻豆| 亚洲精品永久免费视频 | 999久久国产 | 欧美日韩国产一区二区在线观看 | 韩日av在线 | 99免费观看视频 | 精品国产_亚洲人成在线 | 日韩视频一区二区在线观看 | 亚洲黄色高清 | 国产中文字幕视频在线 | 99久久精品免费看国产一区二区三区 | 亚洲视频在线免费看 | 三级黄色片在线观看 | 天天操天天谢 | 欧美日韩中 | 日本三级大片 | 五月天堂网 | 97干com| 五月天丁香| 99视频这里只有 | 欧美日韩久久久 | av导航福利| 国产一区 在线播放 | 手机av电影在线观看 | 国产精品手机看片 | 91黄色在线视频 | 成人高清av在线 | 五月天综合在线 | aaa毛片视频| 久久久三级视频 | 国产午夜精品在线 | 国产中文字幕第一页 | 亚洲国产免费av | 色多多视频在线 | 99视频播放 | 久久av高清 | 欧美成人精品欧美一级乱黄 | 久久九九影视网 | 亚洲精品国偷拍自产在线观看蜜桃 | 麻豆视频一区二区 | 久久中文字幕在线视频 | 丁香六月婷婷开心 | 亚洲午夜精品久久久久久久久久久久 | 麻豆传媒视频在线播放 | 久久字幕精品一区 | 久久久久久久久久久网站 | 韩国一区二区三区在线观看 | 亚洲在线日韩 | 久久国产精品网站 | 欧美精品色 | 久久综合九色综合久久久精品综合 | 天天操天天干天天摸 | 国产成人免费网站 | av丝袜在线 | 国产成人久久精品亚洲 | 成人动漫精品一区二区 | av三级av | 麻豆国产在线播放 | 亚洲爽爽网 | 在线性视频日韩欧美 | 久久精品视频18 | 中文字幕乱在线伦视频中文字幕乱码在线 | 中文字幕av免费 | 日本护士三级少妇三级999 | 国产精品久久久久久久久久三级 | 亚洲成人资源在线观看 | 亚洲欧洲在线视频 | 日狠狠| av免费电影网站 | www.成人精品 | 免费激情在线电影 | 免费福利影院 | 91亚色免费视频 | 免费亚洲精品 | 成人黄色一级视频 | 最近乱久中文字幕 | 黄色成人91 | 天天激情在线 | 欧美一级片在线 | 999久久久欧美日韩黑人 | 天天激情综合网 | 国产精品爽爽久久久久久蜜臀 | 三级黄免费看 | 亚洲精品成人网 | av资源在线看 | 日本中文字幕在线观看 | 亚洲天堂网站视频 | 91视频在线免费下载 | 最近中文字幕视频完整版 | 午夜久久电影网 | 六月激情婷婷 | 精品国内| 黄色一级免费网站 | 久草在线视频看看 | 91污在线观看 | 国产精品男女视频 | sm免费xx网站 | 久久久网址 | 国产麻豆传媒 | 日韩国产精品一区 | 亚洲2019精品 | 国产特黄色片 | 狠狠操天天干 | 香蕉在线视频观看 | 国产精品自产拍 | 天天摸天天操天天爽 | 亚洲成人av电影在线 | 97超碰人人澡人人爱学生 | 国产中文字幕在线免费观看 | 精品人人人 | 色婷婷啪啪免费在线电影观看 | 久久免费黄色网址 | 亚洲老妇xxxxxx| 国内精品免费久久影院 | www.com久久久 | 日韩精品视频在线观看免费 | 国产精品国产亚洲精品看不卡 | 婷婷六月网 | 免费在线黄网 | 国产精品一二 | 国产一区在线免费观看 | 日本女人在线观看 | 97高清视频 | 特级毛片在线免费观看 | 国产一区二区三区在线免费观看 | 精品亚洲欧美无人区乱码 | 久久综合中文字幕 | 欧美黄色成人 | 日韩av成人在线 | 久久亚洲专区 | 狠狠色噜噜狠狠狠合久 | 制服丝袜天堂 | 欧美日韩p片 | 欧美伊人网 | 国产亚洲精品久久久久久电影 | 四虎永久国产精品 | 欧美精彩视频在线观看 | 日韩欧美在线免费观看 | 久久伦理电影网 | 综合色婷婷 | 日韩免费观看一区二区 | 99久久99精品| 国产精品区一区 | av一级网站 | 日韩成人黄色av | 国产精品久久久久久吹潮天美传媒 | 麻豆视频免费看 | 婷婷六月丁香激情 | 欧美精品成人在线 | 欧美最猛性xxxxx亚洲精品 | 五月丁色 | 99r在线| 日韩欧美在线视频一区二区三区 | 国产一区欧美日韩 | 九九99靖品 | 在线观看一区 | 国产精品久免费的黄网站 | 成人在线视频在线观看 | 五月天.com | 午夜精品久久久久久久久久 | 国产1区2区3区在线 亚洲自拍偷拍色图 | 欧美日韩高清免费 | 国产麻豆精品久久一二三 | 91av精品 | 久久精品999 | 天天操天天谢 | 91九色视频在线播放 | 国产一区国产二区在线观看 | 丁香婷婷综合网 | 国产精成人品免费观看 | 亚洲欧洲成人精品av97 | 国产精品大尺度 | 午夜久久久久久久 | 国产专区在线播放 | 久久夜色精品国产欧美乱极品 | 精品国产一区二区三区蜜臀 | 日产乱码一二三区别免费 | 一区二区三区在线免费播放 | 久久影视一区二区 | 丁香婷婷综合激情五月色 | 日日夜夜天天操 | 日韩精品久久久久久久电影竹菊 | 免费十分钟 | 综合久久久久 | 成人91免费视频 | 国产啊v在线观看 | 91av手机在线 | 欧美人人 | 亚洲午夜av久久乱码 | 在线观看日韩视频 | 久久精品免费播放 | 久久一视频 | 玖玖在线播放 | 91女子私密保健养生少妇 | 国产精品成人a免费观看 | 97超碰人人澡 | 婷婷丁香自拍 | 干干干操操操 | 免费福利视频网站 | 国产理伦在线 | 欧美激情精品久久久久 | 日本中文字幕免费观看 | 日韩欧美高清一区二区 | 久久精品导航 | av在线一| 香蕉网在线播放 | 色婷五月| 久久这里只有精品9 | 91片黄在线观看动漫 | 一区二区三区四区免费视频 | 久久久亚洲影院 | 久久特级毛片 | 国产精品久久久久久久久久东京 | 日韩欧美在线国产 | 久久免费看a级毛毛片 | 久久久久亚洲a | 国产精品资源网 | 天天射天天干天天操 | 最近高清中文字幕在线国语5 | 99re8这里有精品热视频免费 | 亚洲精品美女久久17c | 韩日成人av | 免费a v观看| 香蕉久久久久久久 | 中文字幕二区在线观看 | 91成人网在线观看 | 麻豆国产视频下载 | 狠狠搞,com | 色综合久久88色综合天天 | 亚洲精品久久久蜜桃直播 | 国产系列在线观看 | 国产精品av一区二区 | 成av在线 | 日韩精选在线 | 最近日韩中文字幕中文 | 亚洲视频资源在线 | 西西444www大胆无视频 | 国产成人99久久亚洲综合精品 | 九九热免费在线观看 | 亚洲天天在线日亚洲洲精 | 久久国产亚洲精品 | 2019中文字幕网站 | 国产美女视频免费观看的网站 | 日韩高清二区 | 五月天综合色激情 | 亚洲精品久久久久中文字幕m男 | 91色吧| 亚洲国产精品资源 | 亚洲永久精品在线观看 | 国产自偷自拍 | 狠狠色丁香婷婷综合久小说久 | 天天色天天操天天爽 | 美女网站在线观看 | 日韩理论 | 麻豆国产网站 | 国产亚洲精品电影 | 在线观看欧美成人 | 久久专区| 五月天综合激情网 | 久久亚洲精品国产亚洲老地址 | 国产一二区免费视频 | 亚洲成人999 | 日韩av免费一区 | 中文字幕无吗 | 成人黄色av免费在线观看 | 手机av在线网站 | 一区二区三区动漫 | 人人爱人人爽 | 曰韩在线 | 国产精品久久久久影院 | 在线视频观看国产 | 国产精品久久久 | 亚洲精品小区久久久久久 | 99久久精品国产观看 | 中文字幕 影院 | 天堂久色 | 日日夜夜精品免费 | av日韩国产 | 中文字幕第一页在线vr | 在线有码中文字幕 | 波多野结衣精品视频 | 五月天久久婷 | 亚洲高清在线视频 | 午夜影院一级片 | 亚洲精品成人在线 | 99免费在线观看 | 久久国产欧美日韩精品 | 亚洲黄色高清 | 亚洲精品乱码久久久久v最新版 | 欧美大片aaa| 国产 色| 日本少妇高清做爰视频 | 四虎亚洲精品 | 久久曰视频 | 中文字幕xxxx | 国产精品视频地址 | 91亚·色| 国产美女免费观看 | 精品国产aⅴ麻豆 | 日韩美一区二区三区 | 天堂av在线免费观看 | 在线免费观看黄色 | 久草在线观 | 日韩午夜在线 | 国产精品av久久久久久无 | 久久另类小说 | 国产精彩视频一区二区 | 国产精品成人久久久久久久 | 国产福利在线免费观看 | 婷婷久草| 日韩欧美在线高清 | 国内精品久久久久影院一蜜桃 | 国产婷婷精品av在线 | 91av短视频 | 国产精品一区免费在线观看 | 天天操夜夜操天天射 | 麻豆精品传媒视频 | 91精品专区| 久草在线视频网站 | 欧美一区二区三区四区夜夜大片 | 国产精品久久久一区二区 | 日韩av一区二区三区在线观看 | 网址你懂的在线观看 | 96久久久| 天堂av在线网址 | 在线观看自拍 | 亚洲黄色av一区 | 国产精品一区二区麻豆 | 丁香六月婷 | 摸bbb搡bbb搡bbbb | 国产美女免费观看 | 亚洲免费精彩视频 |