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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JAVA笔记(十四)

發布時間:2023/12/10 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA笔记(十四) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

線程狀態轉換圖(它有好幾條路徑)

線程組

?Java中使用ThreadGroup來表示線程組,它可以對一批線程進行分類管理,Java允許程序直接對線程組進行控制。

默認情況下,所有的線程都屬于主線程組。【main】

public final ThreadGroup getThreadGroup()

我們也可以給線程設置分組

Thread(ThreadGroup?group, Runnable?target, String?name)

??可能產生死鎖的代碼

??

package cn.itcast_02;public class MyLock {// 創建兩把鎖對象public static final Object objA = new Object();public static final Object objB = new Object();}ackage cn.itcast_02;public class DieLock extends Thread {private boolean flag;public DieLock(boolean flag) {this.flag = flag;}@Overridepublic void run() {if (flag) {synchronized (MyLock.objA) {System.out.println("if objA");synchronized (MyLock.objB) {System.out.println("if objB");}}} else {synchronized (MyLock.objB) {System.out.println("else objB");synchronized (MyLock.objA) {System.out.println("else objA");}}}}}

  

package cn.itcast_02;/** 同步的弊端:* A:效率低* B:容易產生死鎖* 死鎖:* 兩個或兩個以上的線程在爭奪資源的過程中,發生的一種相互等待的現象。** 舉例:* 中國人,美國人吃飯案例。* 正常情況:* 中國人:筷子兩支* 美國人:刀和叉* 現在:* 中國人:筷子1支,刀一把* 美國人:筷子1支,叉一把*/public class DieLockDemo {public static void main(String[] args) {DieLock dl1 = new DieLock(true);DieLock dl2 = new DieLock(false);dl1.start();dl2.start();}} 等待喚醒機制代碼package cn.itcast_05;public class Student {String name;int age;boolean flag; // 默認情況是沒有數據,如果是true,說明有數據}package cn.itcast_05;public class SetThread implements Runnable {private Student s;private int x = 0;public SetThread(Student s) {this.s = s;}@Overridepublic void run() {while (true) {synchronized (s) {//判斷有沒有if(s.flag){try {s.wait(); //t1等著,釋放鎖} catch (InterruptedException e) {e.printStackTrace();}}if (x % 2 == 0) {s.name = "林青霞";s.age = 27;} else {s.name = "劉意";s.age = 30;}x++; //x=1//修改標記s.flag = true;//喚醒線程s.notify(); //喚醒t2,喚醒并不表示你立馬可以執行,必須還得搶CPU的執行權。}//t1有,或者t2有}}}package cn.itcast_05;public class GetThread implements Runnable {private Student s;public GetThread(Student s) {this.s = s;}@Overridepublic void run() {while (true) {synchronized (s) {if(!s.flag){try {s.wait(); //t2就等待了。立即釋放鎖。將來醒過來的時候,是從這里醒過來的時候} catch (InterruptedException e) {e.printStackTrace();}}System.out.println(s.name + "---" + s.age);//林青霞---27//劉意---30//修改標記s.flag = false;//喚醒線程s.notify(); //喚醒t1}}}}package cn.itcast_05;/** 分析:* 資源類:Student* 設置學生數據:SetThread(生產者)* 獲取學生數據:GetThread(消費者)* 測試類:StudentDemo* 問題1:按照思路寫代碼,發現數據每次都是:null---0* 原因:我們在每個線程中都創建了新的資源,而我們要求的時候設置和獲取線程的資源應該是同一個* 如何實現呢?* 在外界把這個數據創建出來,通過構造方法傳遞給其他的類。* 問題2:為了數據的效果好一些,我加入了循環和判斷,給出不同的值,這個時候產生了新的問題* A:同一個數據出現多次* B:姓名和年齡不匹配* 原因:* A:同一個數據出現多次* CPU的一點點時間片的執行權,就足夠你執行很多次。* B:姓名和年齡不匹配* 線程運行的隨機性* 線程安全問題:* A:是否是多線程環境 是* B:是否有共享數據 是* C:是否有多條語句操作共享數據 是* 解決方案:* 加鎖。* 注意:* A:不同種類的線程都要加鎖。* B:不同種類的線程加的鎖必須是同一把。* 問題3:雖然數據安全了,但是呢,一次一大片不好看,我就想依次的一次一個輸出。* 如何實現呢?* 通過Java提供的等待喚醒機制解決。* 等待喚醒:* Object類中提供了三個方法:* wait():等待* notify():喚醒單個線程* notifyAll():喚醒所有線程* 為什么這些方法不定義在Thread類中呢?* 這些方法的調用必須通過鎖對象調用,而我們剛才使用的鎖對象是任意鎖對象。* 所以,這些方法必須定義在Object類中。*/public class StudentDemo {public static void main(String[] args) {//創建資源Student s = new Student();//設置和獲取的類SetThread st = new SetThread(s);GetThread gt = new GetThread(s);//線程類Thread t1 = new Thread(st);Thread t2 = new Thread(gt);//啟動線程t1.start();t2.start();}} 等待喚醒機制代碼金典版 package cn.itcast_07;public class Student {private String name;private int age;private boolean flag; // 默認情況是沒有數據,如果是true,說明有數據public synchronized void set(String name, int age) {// 如果有數據,就等待if (this.flag) {try {this.wait();} catch (InterruptedException e) {e.printStackTrace();}}// 設置數據this.name = name;this.age = age;// 修改標記this.flag = true;this.notify();}public synchronized void get() {// 如果沒有數據,就等待if (!this.flag) {try {this.wait();} catch (InterruptedException e) {e.printStackTrace();}}// 獲取數據System.out.println(this.name + "---" + this.age);// 修改標記this.flag = false;this.notify();}}package cn.itcast_07;public class SetThread implements Runnable {private Student s;private int x = 0;public SetThread(Student s) {this.s = s;}@Overridepublic void run() {while (true) {if (x % 2 == 0) {s.set("林青霞", 27);} else {s.set("劉意", 30);}x++;}}}ackage cn.itcast_07;public class GetThread implements Runnable {private Student s;public GetThread(Student s) {this.s = s;}@Overridepublic void run() {while (true) {s.get();}}}package cn.itcast_07;/** 分析:* 資源類:Student* 設置學生數據:SetThread(生產者)* 獲取學生數據:GetThread(消費者)* 測試類:StudentDemo問題1:按照思路寫代碼,發現數據每次都是:null---0* 原因:我們在每個線程中都創建了新的資源,而我們要求的時候設置和獲取線程的資源應該是同一個* 如何實現呢?* 在外界把這個數據創建出來,通過構造方法傳遞給其他的類。* 問題2:為了數據的效果好一些,我加入了循環和判斷,給出不同的值,這個時候產生了新的問題* A:同一個數據出現多次* B:姓名和年齡不匹配* 原因:* A:同一個數據出現多次* CPU的一點點時間片的執行權,就足夠你執行很多次。* B:姓名和年齡不匹配* 線程運行的隨機性* 線程安全問題:* A:是否是多線程環境 是* B:是否有共享數據 是* C:是否有多條語句操作共享數據 是* 解決方案:* 加鎖。* 注意:* A:不同種類的線程都要加鎖。* B:不同種類的線程加的鎖必須是同一把。** 問題3:雖然數據安全了,但是呢,一次一大片不好看,我就想依次的一次一個輸出。* 如何實現呢?* 通過Java提供的等待喚醒機制解決。* 等待喚醒:* Object類中提供了三個方法:* wait():等待* notify():喚醒單個線程* notifyAll():喚醒所有線程* 為什么這些方法不定義在Thread類中呢?* 這些方法的調用必須通過鎖對象調用,而我們剛才使用的鎖對象是任意鎖對象。* 所以,這些方法必須定義在Object類中。* 最終版代碼中:* 把Student的成員變量給私有的了。* 把設置和獲取的操作給封裝成了功能,并加了同步。* 設置或者獲取的線程里面只需要調用方法即可。*/public class StudentDemo {public static void main(String[] args) {//創建資源Student s = new Student();//設置和獲取的類SetThread st = new SetThread(s);GetThread gt = new GetThread(s);//線程類Thread t1 = new Thread(st);Thread t2 = new Thread(gt);//啟動線程t1.start();t2.start();}}

  

  • 線程池
  • ???? 程序啟動一個新線程成本是比較高的,因為它涉及到要與操作系統進行交互。而使用線程池可以很好的提高性能,尤其是當程序中要創建大量生存期很短的線程時,更應該考慮使用線程池。

    線程池里的每一個線程代碼結束后,并不會死亡,而是再次回到線程池中成為空閑狀態,等待下一個對象來使用。

    在JDK5之前,我們必須手動實現自己的線程池,從JDK5開始,Java內置支持線程池

    JDK5新增了一個Executors工廠類來產生線程池,有如下幾個方法

    public static ExecutorService newCachedThreadPool()public static ExecutorService newFixedThreadPool(int nThreads)public static ExecutorService newSingleThreadExecutor()

      

    這些方法的返回值是ExecutorService對象,該對象表示一個線程池,可以執行Runnable對象或者Callable對象代表的線程。它提供了如下方法

    Future<?> submit(Runnable task)

    <T> Future<T> submit(Callable<T> task)

    案例演示

    創建線程池對象

    創建Runnable實例

    提交Runnable實例

    關閉線程池

    (shutdown()方法)????

  • 實現callable泛型接口,重寫call()方法,也可以實現多線程,并且它有返回值(返回值類型跟方法的返回值類型一樣),但是它依賴于線程池的存在,所以有一定的局限性。??????
  • ??
  • ???? 實現Callable接口

    步驟和剛才演示線程池執行Runnable對象的差不多。

    但是還可以更好玩一些,求和案例演示

    好處:

    可以有返回值

    可以拋出異常

    弊端:

    代碼比較復雜,所以一般不用

    多線程求和代碼

    package cn.itcast_10;import java.util.concurrent.Callable;/** 線程求和案例*/public class MyCallable implements Callable<Integer> {private int number;public MyCallable(int number) {this.number = number;}@Overridepublic Integer call() throws Exception {int sum = 0;for (int x = 1; x <= number; x++) {sum += x;}return sum;}}package cn.itcast_10;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;/** 多線程實現的方式3:* A:創建一個線程池對象,控制要創建幾個線程對象。* public static ExecutorService newFixedThreadPool(int nThreads)* B:這種線程池的線程可以執行:* 可以執行Runnable對象或者Callable對象代表的線程* 做一個類實現Runnable接口。* C:調用如下方法即可* Future<?> submit(Runnable task)* <T> Future<T> submit(Callable<T> task)* D:我就要結束,可以嗎?* 可以。*/public class CallableDemo {public static void main(String[] args) throws InterruptedException, ExecutionException {// 創建線程池對象ExecutorService pool = Executors.newFixedThreadPool(2);// 可以執行Runnable對象或者Callable對象代表的線程Future<Integer> f1 = pool.submit(new MyCallable(100));Future<Integer> f2 = pool.submit(new MyCallable(200));// V get()Integer i1 = f1.get();Integer i2 = f2.get();System.out.println(i1);System.out.println(i2);// 結束pool.shutdown();}}定時器定時器是一個應用十分廣泛的線程工具,可用于調度多個定時任務以后臺線程的方式執行。在Java中,可以通過Timer和TimerTask類來實現定義調度的功能Timer定時public Timer()public void schedule(TimerTask task, long delay)public void schedule(TimerTask task,long delay,long period)TimerTask任務【該類是一個抽象類】public abstract void run()public boolean cancel()開發中Quartz是一個完全由java編寫的開源調度框架。 匿名內部類使用多線程 匿名內部類方式使用多線程new Thread(){代碼…}.start();New Thread(new Runnable(){代碼…}).start();package cn.itcast_11;/** 匿名內部類的格式:* new 類名或者接口名() {* 重寫方法;* };* 本質:是該類或者接口的子類對象。*/public class ThreadDemo {public static void main(String[] args) {// 繼承Thread類來實現多線程new Thread() {public void run() {for (int x = 0; x < 100; x++) {System.out.println(Thread.currentThread().getName() + ":"+ x);}}}.start();// 實現Runnable接口來實現多線程new Thread(new Runnable() {@Overridepublic void run() {for (int x = 0; x < 100; x++) {System.out.println(Thread.currentThread().getName() + ":"+ x);}}}) {}.start();// 更有難度的(兩個同時有的時候調用的是子類對象的,并不是Runnable的)new Thread(new Runnable() {@Overridepublic void run() {for (int x = 0; x < 100; x++) {System.out.println("hello" + ":" + x);}}}) {public void run() {for (int x = 0; x < 100; x++) {System.out.println("world" + ":" + x);}}}.start();}}

      

  • ??經典面試題(線程部分)
  • ?? 多線程有幾種實現方案,分別是哪幾種?

    ?????? 兩種。

    ?????? 繼承Thread類

    ?????? 實現Runnable接口

    擴展一種:實現Callable接口。這個得和線程池結合。

    2:同步有幾種方式,分別是什么?

    ?????? 兩種。

    ??????

    ?????? 同步代碼塊

    ?????? 同步方法

    3:啟動一個線程是run()還是start()?它們的區別?

    ?????? start();

    run():封裝了被線程執行的代碼,直接調用僅僅是普通方法的調用

    ?????? start():啟動線程,并由JVM自動調用run()方法

    4:sleep()和wait()方法的區別

    ?????? sleep():必須指時間;不釋放鎖。

    ?????? wait():可以不指定時間,也可以指定時間;等待的時候釋放鎖。

    5:為什么wait(),notify(),notifyAll()等方法都定義在Object類中

    ?????? 因為這些方法的調用是依賴于鎖對象的,而同步代碼塊的鎖對象是任意鎖。

    ?????? 而Object代表任意的對象,所以,定義在這里面。

    6:線程的生命周期圖

    ?????? 新建 -- 就緒 -- 運行 -- 死亡

    ?????? 新建 -- 就緒 -- 運行 -- 阻塞 -- 就緒 -- 運行 -- 死亡

    ?????? 建議:畫圖解釋。

  • ??定時器經典代碼
  • ??

    package cn.itcast_12;import java.io.File;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Timer;import java.util.TimerTask;/** 需求:在指定的時間刪除我們的指定目錄(我使用項目路徑下的demo)*/class DeleteFolder extends TimerTask {@Overridepublic void run() {File srcFolder = new File("demo");deleteFolder(srcFolder);}// 遞歸刪除目錄public void deleteFolder(File srcFolder) {File[] fileArray = srcFolder.listFiles();if (fileArray != null) {for (File file : fileArray) {if (file.isDirectory()) {deleteFolder(file);} else {System.out.println(file.getName() + ":" + file.delete());}}System.out.println(srcFolder.getName() + ":" + srcFolder.delete());}}}public class TimerTest {public static void main(String[] args) throws ParseException {Timer t = new Timer();String s = "2014-11-27 15:45:00";SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date d = sdf.parse(s);t.schedule(new DeleteFolder(), d);}} 定時器經典代碼2 package cn.itcast_12;import java.util.Timer;import java.util.TimerTask;/** 定時器:可以讓我們在指定的時間做某件事情,還可以重復的做某件事情。* 依賴Timer和TimerTask這兩個類:* Timer:定時* public Timer()* public void schedule(TimerTask task,long delay)* public void schedule(TimerTask task,long delay,long period)* public void cancel()* TimerTask:任務*/public class TimerDemo {public static void main(String[] args) {// 創建定時器對象Timer t = new Timer();// 3秒后執行爆炸任務// t.schedule(new MyTask(), 3000);//結束任務t.schedule(new MyTask(t), 3000);}}// 做一個任務class MyTask extends TimerTask {private Timer t;public MyTask(){}public MyTask(Timer t){this.t = t;}@Overridepublic void run() {System.out.println("beng,爆炸了");t.cancel();}}

      

  • ?設計模式不是一種方法或技術,而是一種思想。?????????
  • ??設計模式的分類
  • ?設計模式的分類

    創建型模式 對象的創建

    結構型模式 對象的組成(結構)

    行為型模式 對象的行為

    ?創建型模式:簡單工廠模式,工廠方法模式,抽象工廠模式,建造者模式,原型模式,單例模式。(6個)

    結構型模式:外觀模式、適配器模式、代理模式、裝飾模式、橋接模式、組合模式、享元模式。(7個)

    行為型模式:模版方法模式、觀察者模式、狀態模式、職責鏈模式、命令模式、訪問者模式、策略模式、備忘錄模式、迭代器模式、解釋器模式。(10個)

    簡單工廠模式

    簡單工廠模式概述

    又叫靜態工廠方法模式,它定義一個具體的工廠類負責創建一些類的實例

    優點

    客戶端不需要在負責對象的創建,從而明確了各個類的職責

    缺點

    這個靜態工廠類負責所有對象的創建,如果有新的對象增加,或者某些對象的創建方式不同,就需要不斷的修改工廠類,不利于后期的維護

    動物抽象類:public abstract Animal { public abstract void eat(); }

    具體狗類:public class Dog extends Animal {}

    具體貓類:public class Cat extends Animal {}

    開始,在測試類中每個具體的內容自己創建對象,但是,創建對象的工作如果比較麻煩,就需要有人專門做這個事情,所以就知道了一個專門的類來創建對象。

    public class AnimalFactory {private AnimalFactory(){}//public static Dog createDog() {return new Dog();}//public static Cat createCat() {return new Cat();}//改進public static Animal createAnimal(String animalName) {if(“dog”.equals(animalName)) {}else if(“cat”.equals(animaleName)) {}else {return null;}}}

      

  • 工廠方法模式
  • ?? 工廠方法模式概述

    工廠方法模式中抽象工廠類負責定義創建對象的接口,具體對象的創建工作由繼承抽象工廠的具體類實現。

    優點

    客戶端不需要在負責對象的創建,從而明確了各個類的職責,如果有新的對象增加,只需要增加一個具體的類和具體的工廠類即可,不影響已有的代碼,后期維護容易,增強了系統的擴展性

    缺點

    需要額外的編寫代碼,增加了工作量

    動物抽象類:public abstract Animal { public abstract void eat(); }

    工廠接口:public interface Factory {public abstract Animal createAnimal();}

    具體狗類:public class Dog extends Animal {}

    具體貓類:public class Cat extends Animal {}

    開始,在測試類中每個具體的內容自己創建對象,但是,創建對象的工作如果比較麻煩,就需要有人專門做這個事情,所以就知道了一個專門的類來創建對象。發現每次修改代碼太麻煩,用工廠方法改進,針對每一個具體的實現提供一個具體工廠。

    狗工廠:public class DogFactory implements Factory {

    ?????? public Animal createAnimal() {…}

    ??????? }

    貓工廠:public class CatFactory implements Factory {

    ?????? public Animal createAnimal() {…}

    ??????? }

    ?????

  • 單例模式:保證類在內存中只有一個對象 (餓漢式:類已加載就創建對象,懶漢式:用得時候才去創建對象。
  • ? 單例設計模式概述

    單例模式就是要確保類在內存中只有一個對象,該實例必須自動創建,并且對外提供。

    優點

    在系統內存中只存在一個對象,因此可以節約系統資源,對于一些需要頻繁創建和銷毀的對象單例模式無疑可以提高系統的性能。

    缺點

    沒有抽象層,因此擴展很難。

    職責過重,在一定程序上違背了單一職責????????

  • Runtime類就是按照單例設計模式的餓漢式設計的(它是一個可以操作系統命令(dos命令)的類)???????????????
  • ???單例設計模式餓漢式
  • ???? package cn.itcast_03;

    ?

    public class Student {

    ?????? // 構造私有

    ?????? private Student() {

    ?????? }

    ?

    ?????? // 自己造一個

    ?????? // 靜態方法只能訪問靜態成員變量,加靜態

    ?????? // 為了不讓外界直接訪問修改這個值,加private

    ?????? private static Student s = new Student();

    ?

    ?????? // 提供公共的訪問方式

    ?????? // 為了保證外界能夠直接使用該方法,加靜態

    ?????? public static Student getStudent() {

    ????????????? return s;

    ?????? }

    }

    package cn.itcast_03;

    ?

    /*

    ?* 單例模式:保證類在內存中只有一個對象。

    ?*

    ?* 如何保證類在內存中只有一個對象呢?

    ?* ????????????? A:把構造方法私有

    ?* ????????????? B:在成員位置自己創建一個對象

    ?* ????????????? C:通過一個公共的方法提供訪問

    ?*/

    public class StudentDemo {public static void main(String[] args) {// Student s1 = new Student();// Student s2 = new Student();// System.out.println(s1 == s2); // false// 通過單例如何得到對象呢?// Student.s = null;Student s1 = Student.getStudent();Student s2 = Student.getStudent();System.out.println(s1 == s2);System.out.println(s1); // null,cn.itcast_03.Student@175078bSystem.out.println(s2);// null,cn.itcast_03.Student@175078b}} 單例設計模式懶漢式 package cn.itcast_03;/** 單例模式:* 餓漢式:類一加載就創建對象* 懶漢式:用的時候,才去創建對象*/public class Teacher {private Teacher() {}private static Teacher t = null;public synchronized static Teacher getTeacher() {// t1,t2,t3if (t == null) {//t1,t2,t3t = new Teacher();}return t;}}package cn.itcast_03;public class TeacherDemo {public static void main(String[] args) {Teacher t1 = Teacher.getTeacher();Teacher t2 = Teacher.getTeacher();System.out.println(t1 == t2);System.out.println(t1); // cn.itcast_03.Teacher@175078bSystem.out.println(t2);// cn.itcast_03.Teacher@175078b}}

      

    ??????? ????

  • ?面試題關于單例設計模式
  • ???? 面試題:單例模式的思想是什么?請寫一個代碼體現。

    ?*

    ?* ??????????? 開發:餓漢式(是不會出問題的單例模式)

    ?* ??????????? 面試:懶漢式(可能會出問題的單例模式)

    ?* ?????????????????? A:懶加載(延遲加載)?

    ?* ?????????????????? B:線程安全問題

    ?* ????????????????????????? a:是否多線程環境(可能沒有)???? 是

    ?* ????????????????????????? b:是否有共享數據???? 是

    ?* ????????????????????????? c:是否有多條語句操作共享數據 ?? 是

    ?

  • Java為GUI提供的對象都存在java.Awt和javax.Swing兩個包中。?????????
  • java.awt:Abstract Window ToolKit (抽象窗口工具包),需要調用本地系統方法實現功能。屬重量級控件。
  • 24.javax.swing:在AWT的基礎上,建立的一套圖形界面系統,其中提供了更多的組件,而且完全由Java實現。增強了移植性,屬輕量級控件。(這里的輕重是指依賴當前系統的程度,越重依賴性越高,這樣就不方便移植)?????????

  • 圖形界面的單位默認是px,(比如1024*12,就是將一張紙分成1024*12份,每一份的大小就是一像素)窗體的默認位置是左上角。
  • 盡量將窗體的顯示放到后面,將什么都設置好后再讓其顯示,這樣最好,加入先讓其顯示在設置屬性,會有一個變化的過程,不符合實際需求。??
  • 父類實現了一個接口,那么子類就不需要在重寫該接口中的方法了,因為子類已經間接的重寫了(適配器模式)??????????
  • ??窗體的設置和關閉(關閉第二種用得是適配器的原理)
  • ?

    package cn.itcast_02;import java.awt.Frame;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;public class FrameDemo {public static void main(String[] args) {// 創建窗體對象Frame f = new Frame("窗體關閉案例");// 設置窗體屬性f.setBounds(400, 200, 400, 300);// 讓窗體關閉//事件源//事件:對窗體的處理//事件處理:關閉窗口(System.exit(0));//事件監聽// f.addWindowListener(new WindowListener() {// @Override// public void windowOpened(WindowEvent e) {// }// @Override// public void windowIconified(WindowEvent e) {// }// @Override// public void windowDeiconified(WindowEvent e) {// }// @Override// public void windowDeactivated(WindowEvent e) {// }// @Override// public void windowClosing(WindowEvent e) {// System.exit(0);// }// @Override// public void windowClosed(WindowEvent e) {// }// @Override// public void windowActivated(WindowEvent e) {// }// });//用適配器類改進f.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});// 設置窗體可見f.setVisible(true);}}

      

  • 匿名(局部)內部類訪問局部變量,該局部變量要設置成final.????????????
  • 數據轉移??
  • ?

    package cn.itcast_05;import java.awt.Button;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.TextArea;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class FrameDemo {public static void main(String[] args) {// 創建窗體對象Frame f = new Frame("數據轉移");// 設置窗體屬性和布局f.setBounds(400, 200, 400, 300);f.setLayout(new FlowLayout());// 創建文本框final TextField tf = new TextField(20);// 創建按鈕Button bu = new Button("數據轉移");// 創建文本域final TextArea ta = new TextArea(10, 40);// 把組件添加到窗體f.add(tf);f.add(bu);f.add(ta);// 設置窗體關閉f.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});// 對按鈕添加事件bu.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// 獲取文本框的值String tf_str = tf.getText().trim();// 清空數據tf.setText("");// 設置給文本域// ta.setText(tf_str);// 追加和換行ta.append(tf_str + "\r\n");//獲取光標tf.requestFocus();}});// 設置窗體顯示f.setVisible(true);}}

      

  • 改變顏色
  • ? ? ?

    package cn.itcast_06;import java.awt.Button;import java.awt.Color;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class FrameDemo {public static void main(String[] args) {// 創建窗體對象final Frame f = new Frame("更改背景色");// 設置窗體屬性和布局f.setBounds(400, 200, 400, 300);f.setLayout(new FlowLayout());// 創建四個按鈕Button redButton = new Button("紅色");Button greenButton = new Button("綠色");Button buleButton = new Button("藍色");// 添加按鈕f.add(redButton);f.add(greenButton);f.add(buleButton);// 設置窗體關閉f.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});// 對按鈕添加動作事件// redButton.addActionListener(new ActionListener() {// @Override// public void actionPerformed(ActionEvent e) {// f.setBackground(Color.RED);// }// });// 對按鈕添加鼠標點擊事件// redButton.addMouseListener(new MouseAdapter() {// @Override// public void mouseClicked(MouseEvent e) {// f.setBackground(Color.RED);// }// });// 對按鈕添加鼠標的進入事件redButton.addMouseListener(new MouseAdapter() {@Overridepublic void mouseEntered(MouseEvent e) {f.setBackground(Color.RED);}});redButton.addMouseListener(new MouseAdapter() {@Overridepublic void mouseExited(MouseEvent e) {f.setBackground(Color.WHITE);}});greenButton.addMouseListener(new MouseAdapter() {@Overridepublic void mouseEntered(MouseEvent e) {f.setBackground(Color.GREEN);}});greenButton.addMouseListener(new MouseAdapter() {@Overridepublic void mouseExited(MouseEvent e) {f.setBackground(Color.WHITE);}});buleButton.addMouseListener(new MouseAdapter() {@Overridepublic void mouseEntered(MouseEvent e) {f.setBackground(Color.BLUE);}});buleButton.addMouseListener(new MouseAdapter() {@Overridepublic void mouseExited(MouseEvent e) {f.setBackground(Color.WHITE);}});// 設置窗體顯示f.setVisible(true);}}

      

  • 只能輸入數字
  • ? ?

    package cn.itcast_07;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.Label;import java.awt.TextField;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;/** 你輸入的如果是非數字字符,就取消你鍵盤錄入的效果。*/public class FrameDemo {public static void main(String[] args) {// 創建窗體對象并設置屬性Frame f = new Frame("不能輸入非數字字符");f.setBounds(400, 200, 400, 300);f.setLayout(new FlowLayout());// 創建Label標簽對象Label label = new Label("請輸入你的QQ號碼,不能是非數字,不信你試試");TextField tf = new TextField(40);// 添加到窗體上f.add(label);f.add(tf);// 設置窗體關閉f.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});// 給文本框添加事件tf.addKeyListener(new KeyAdapter() {@Overridepublic void keyPressed(KeyEvent e) {// 如果你取得的字符不是數字字符就取消事件// 思路:先獲取字符,判斷字符,取消事件// char getKeyChar() char ch = e.getKeyChar();// System.out.println(ch);if(!(ch>='0' && ch<='9')){e.consume();}}});// 設置窗體可見f.setVisible(true);}} 多級菜單package cn.itcast_09;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.Menu;import java.awt.MenuBar;import java.awt.MenuItem;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.IOException;/** 多級菜單*/public class FrameDemo {public static void main(String[] args) {// 創建窗體對象并設置屬性final Frame f = new Frame("多級菜單");f.setBounds(400, 200, 400, 300);f.setLayout(new FlowLayout());final String name = f.getTitle();// 創建菜單欄MenuBar mb = new MenuBar();// 創建菜單Menu m1 = new Menu("文件");Menu m2 = new Menu("更改名稱");// 創建菜單項final MenuItem mi1 = new MenuItem("好好學習");final MenuItem mi2 = new MenuItem("天天向上");MenuItem mi3 = new MenuItem("恢復標題");MenuItem mi4 = new MenuItem("打開記事本");MenuItem mi5 = new MenuItem("退出系統");// 誰添加誰呢m2.add(mi1);m2.add(mi2);m2.add(mi3);m1.add(m2);m1.add(mi4);m1.add(mi5);mb.add(m1);// 設置菜單欄f.setMenuBar(mb);// 設置窗體關閉f.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});mi1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {f.setTitle(mi1.getLabel());}});mi2.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {f.setTitle(mi2.getLabel());}});mi3.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {f.setTitle(name);}});mi4.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {Runtime r = Runtime.getRuntime();try {r.exec("notepad");} catch (IOException e1) {e1.printStackTrace();}}});mi5.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.exit(0);}});// 設置窗體可見f.setVisible(true);}}

      

  • ?
  • ?? 如何讓Netbeans的東西Eclipse能訪問。

    ?????? 在Eclipse中創建項目,把Netbeans項目的src下的東西給拿過來即可。

    ?????? 注意:修改項目編碼為UTF-8

    ??????

  • ?菜單的使用順序
  • ??MenuBar,Menu,MenuItem

    先創建菜單條,再創建菜單,每一個菜單中建立菜單項。

    也可以菜單添加到菜單中,作為子菜單。

    通過setMenuBar()方法,將菜單添加到Frame中。

    ???

  • ??端口可以區分 不同的應用程序。網絡編程三要素:ip地址:這是要找到目的地。端口:這是找到目的地之后,找到不同的應用程序。協議:雙方通信的規則。???????
  • ??網絡地址的分類以及一些私有地址
  • A:所謂IP地址就是給每個連接在Internet上的主機分配的一個32bit地址。按照TCP/IP規定,IP地址用二進制來表示,每個IP地址長32bit,比特換算成字節,就是4個字節。例如一個采用二進制形式的IP地址是“00001010000000000000000000000001”,這么長的地址,人們處理起來也太費勁了。為了方便人們的使用,IP地址經常被寫成十進制的形式,中間使用符號“.”分開不同的字節。于是,上面的IP地址可以表示為“10.0.0.1”。IP地址的這種表示法叫做“點分十進制表示法”,這顯然比1和0容易記憶得多。

    B:IP地址的組成

    IP地址 = 網絡號碼+主機地址

    A類IP地址:第一段號碼為網絡號碼,剩下的三段號碼為本地計算機的號碼

    B類IP地址:前二段號碼為網絡號碼,剩下的二段號碼為本地計算機的號碼

    C類IP地址:前三段號碼為網絡號碼,剩下的一段號碼為本地計算機的號碼

    特殊地址:

    127.0.0.1 回環地址,可用于測試本機的網絡是否有問題. ping 127.0.0.1??

    DOS命令 ipconfig:查看本機IP地址

    xxx.xxx.xxx.0 網絡地址

    xxx.xxx.xxx.255 廣播地址

    A類????? 1.0.0.1---127.255.255.254???

    (1)10.X.X.X是私有地址(私有地址就是在互聯網上不使用,而被用在局域網絡中的地址)??????????????????????????????????????????

    (2)127.X.X.X是保留地址,用做循環測試用的。

    B類????? 128.0.0.1---191.255.255.254?????

    172.16.0.0---172.31.255.255是私有地址。169.254.X.X是保留地址。

    C類????? 192.0.0.1---223.255.255.254?????

    192.168.X.X是私有地址

    D類???? 224.0.0.1---239.255.255.254 ???

    E類????? 240.0.0.1---247.255.255.254?????

    為了方便我們對IP地址的獲取和操作,java提供了一個類InetAddress 供我們使用。

  • ?兩種協議的優缺點
  • ? UDP

    ????????????? 將數據源和目的封裝成數據包中,不需要建立連接;每個數據報的大小在限制在64k;因無連接,是不可靠協議;不需要建立連接,速度快

    TCP

    ????????????? 建立連接,形成傳輸數據的通道;在連接中進行大數據量傳輸;通過三次握手完成連接,是可靠協議;必須建立連接,效率會稍低

    總結:

    udp:

    面向無連接。不可靠。速度快。將數據封包傳輸,數據包最大64k。

    舉例:

    聊天留言,在線視頻,視頻會議,發短信,郵局包裹。

    tcp:面向連接。安全可靠效率稍低。通過三次握手確保連接的建立。

    舉例:

    下載,打電話,QQ聊天(你在線嗎,在線,就回應下,就開始聊天了)

    ?

    ??????

  • Socket編程其實就是網絡編程
  • ? Socket套接字:

    網絡上具有唯一標識的IP地址和端口號組合在一起才能構成唯一能識別的標識符套接字。

    Socket原理機制:

    通信的兩端都有Socket。

    網絡通信其實就是Socket間的通信。

    數據在兩個Socket間通過IO傳輸。

    ???????

  • ?發送和接收數據(在實際開發中,應該是先寫接收端,在寫發送端,因為沒有接收端,發送端就沒有意義)
  • ? ?

    package cn.itcast_02;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;/** UDP協議發送數據:* A:創建發送端Socket對象* B:創建數據,并把數據打包* C:調用Socket對象的發送方法發送數據包* D:釋放資源*/public class SendDemo {public static void main(String[] args) throws IOException {// 創建發送端Socket對象// DatagramSocket()DatagramSocket ds = new DatagramSocket();// 創建數據,并把數據打包// DatagramPacket(byte[] buf, int length, InetAddress address, int port)// 創建數據byte[] bys = "hello,udp,我來了".getBytes();// 長度int length = bys.length;// IP地址對象InetAddress address = InetAddress.getByName("192.168.12.92");// 端口int port = 10086;DatagramPacket dp = new DatagramPacket(bys, length, address, port);// 調用Socket對象的發送方法發送數據包// public void send(DatagramPacket p)ds.send(dp);// 釋放資源ds.close();}}package cn.itcast_02;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;/** UDP協議接收數據:* A:創建接收端Socket對象* B:創建一個數據包(接收容器)* C:調用Socket對象的接收方法接收數據* D:解析數據包,并顯示在控制臺* E:釋放資源*/public class ReceiveDemo {public static void main(String[] args) throws IOException {// 創建接收端Socket對象// DatagramSocket(int port)DatagramSocket ds = new DatagramSocket(10086);// 創建一個數據包(接收容器)// DatagramPacket(byte[] buf, int length)byte[] bys = new byte[1024];int length = bys.length;DatagramPacket dp = new DatagramPacket(bys, length);// 調用Socket對象的接收方法接收數據// public void receive(DatagramPacket p)ds.receive(dp); // 阻塞式// 解析數據包,并顯示在控制臺// 獲取對方的ip// public InetAddress getAddress()InetAddress address = dp.getAddress();String ip = address.getHostAddress();// public byte[] getData():獲取數據緩沖區// public int getLength():獲取數據的實際長度byte[] bys2 = dp.getData();int len = dp.getLength();String s = new String(bys2, 0, len);System.out.println(ip + "傳遞的數據是:" + s);// 釋放資源ds.close();}}

      

    ? --------》待續

    ?

    ?

    ?

    轉載于:https://www.cnblogs.com/yc74/p/5493377.html

    總結

    以上是生活随笔為你收集整理的JAVA笔记(十四)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    99色 | 久久99久久99精品中文字幕 | 制服丝袜亚洲 | 午夜精品婷婷 | 亚洲永久精品一区 | 在线观看国产高清视频 | 啪啪激情网 | 草久草久| 国产精品久久久亚洲 | 精品在线亚洲视频 | 欧美日韩亚洲在线 | 国产精品久久久久久久久久白浆 | 久久久久色 | 成人在线免费观看网站 | h动漫中文字幕 | 97在线视频网站 | 91九色蝌蚪视频在线 | 久久综合九色综合欧美狠狠 | 五月天视频网站 | 日韩精品一区二区在线视频 | av在线播放快速免费阴 | 日韩免费高清在线 | 国产99久久久欧美黑人 | 久久精品精品电影网 | 91麻豆精品国产自产在线游戏 | www.天天干.com| 天天曰天天 | 日本系列中文字幕 | 丁香花在线观看视频在线 | 一区二区三区在线免费播放 | 久久艹国产 | 国产精品毛片一区视频 | 成年人在线看视频 | 久久久久久久久久电影 | 久久婷婷激情 | 亚洲欧美日韩国产一区二区三区 | 日韩精品91偷拍在线观看 | 日韩三级免费观看 | 亚洲精品观看 | 久久久久国产一区二区三区四区 | 视频在线一区二区三区 | 久久资源总站 | 麻豆传媒视频在线播放 | 国产视频日韩视频欧美视频 | 日韩精品视频在线观看网址 | 亚洲精品美女在线观看 | 在线视频福利 | 激情久久网 | 国产精品免费看久久久8精臀av | 青青色影院 | 日韩欧美在线一区二区 | 开心激情综合网 | 成人午夜精品福利免费 | 狠狠躁夜夜躁人人爽视频 | 国产精彩视频一区 | 中文字幕av一区二区三区四区 | 九九天堂 | 免费福利在线播放 | 日本精品中文字幕在线观看 | 国产一级二级三级在线观看 | 国产馆在线播放 | 婷婷综合久久 | 韩日精品视频 | www.大网伊人 | 国产一区二区免费在线观看 | 欧美极品裸体 | 天堂av高清 | 日韩区在线观看 | 欧美性色综合网站 | 精品国自产在线观看 | 成人免费网站视频 | 国产精品久久久久久久久费观看 | 日韩在线电影观看 | 日韩免费高清在线 | 伊人超碰在线 | 色婷婷中文 | 久久天天躁狠狠躁夜夜不卡公司 | 2019天天干夜夜操 | 五月激情五月激情 | 91色九色| 97超碰资源站 | 成人91视频 | 免费美女av | 精品伊人久久久 | 丁香花中文在线免费观看 | 中文字幕在线观看视频一区 | 中文字幕乱码在线播放 | 久久精品视频在线观看免费 | 婷婷电影在线观看 | 国产一区二区播放 | 久久国产三级 | 日韩电影中文,亚洲精品乱码 | 99视频在线观看免费 | 狂野欧美激情性xxxx欧美 | 精品自拍网 | 久草在线资源免费 | 丁香花在线观看免费完整版视频 | 视频在线观看91 | 激情综合五月 | 免费人成网 | 国产在线播放一区二区三区 | 久操视频在线观看 | 国产九九九九九 | 国产又粗又猛又爽又黄的视频先 | 久久人人97超碰国产公开结果 | 免费a一级 | 日韩国产欧美在线播放 | 在线观看一级视频 | 天堂av影院| 中文视频一区二区 | 免费试看一区 | 亚洲免费公开视频 | 国产超碰97 | 公与妇乱理三级xxx 在线观看视频在线观看 | 西西大胆免费视频 | 91影视成人| 又黄又爽又色无遮挡免费 | 色先锋av资源中文字幕 | 日本高清免费中文字幕 | 色婷婷狠狠五月综合天色拍 | 亚洲狠狠操 | 国产成人综 | 九九爱免费视频在线观看 | 1024久久| 中文字幕亚洲字幕 | 日韩a在线播放 | 国产婷婷精品av在线 | 天天色天天射天天操 | 天天色天天综合网 | 久久综合中文字幕 | 99久久久国产精品免费99 | 国产美女久久 | 日韩,中文字幕 | 五月婷婷视频在线 | 久草免费在线视频观看 | 丁香在线观看完整电影视频 | 国产91精品久久久久 | 奇人奇案qvod | 欧美日韩亚洲第一页 | 最新日韩视频在线观看 | 精品久操| 国产高清一级 | 日韩精品在线免费播放 | 中文字幕av最新更新 | 亚洲精品视频在线免费 | 久久一及片| 国产精品久久免费看 | 友田真希x88av | 日黄网站| 成人h在线| 国产精品久久久久久久久搜平片 | 国产伦精品一区二区三区无广告 | 久久www免费视频 | 四虎免费av | 丁香六月天婷婷 | 成年人在线电影 | 日韩免费大片 | 国产美女免费观看 | 国产中文字幕国产 | 欧美日韩中 | 香蕉久草在线 | 五月婷婷在线播放 | 日韩乱色精品一区二区 | 天天天干夜夜夜操 | 在线免费观看一区二区三区 | 天天干,天天射,天天操,天天摸 | 国产中文字幕在线观看 | 日韩一级理论片 | 国产精品一区二区三区四 | 在线观看亚洲国产精品 | 日韩免费电影一区二区三区 | 欧洲精品二区 | 国产在线观看xxx | 国产1区2区| 日韩精品一区二区三区免费观看视频 | 亚洲婷婷网 | 天天激情天天干 | 在线www色| 国产女做a爱免费视频 | 色狠狠综合天天综合综合 | 中文字幕永久在线 | 久久国产精品一国产精品 | 中文在线8新资源库 | 97超碰在线人人 | 美女黄频免费 | 九九视频在线观看视频6 | av电影免费在线看 | 国产精品毛片一区二区 | 精品一区二区综合 | 狠狠色伊人亚洲综合成人 | wwwwww国产 | 久久久亚洲影院 | 欧美特一级片 | 综合久色 | 天天色草 | 国产精品手机在线播放 | 亚洲成熟女人毛片在线 | 国产系列在线观看 | 成人91在线| 99热这里只有精品在线观看 | 免费精品在线视频 | 欧美综合国产 | 久久久久久久久久免费 | 91最新网址在线观看 | 国产在线中文 | 人人草在线视频 | 夜夜狠狠 | 久久99热国产 | 日日天天干 | www久久九 | 91精品国产欧美一区二区 | 欧美片一区二区三区 | 日本中文在线观看 | 在线观看免费一级片 | 久久人人爽人人爽人人片av免费 | 1024手机看片国产 | 中文区中文字幕免费看 | 综合影视| 国产成人综 | 久久婷婷一区二区三区 | 久久伦理 | 中文字幕在线观看网 | 中文字幕在线观看网站 | 91久色蝌蚪| 日韩电影在线观看中文字幕 | 热久久最新地址 | 欧洲激情综合 | 久久久久久国产精品免费 | 国产精品视频不卡 | 911av视频 | 丁香六月婷 | www.久草.com| 中文字幕av一区二区三区四区 | 久草在线免费新视频 | 国产不卡在线 | av在线一级 | 色婷婷免费视频 | 久久香蕉电影网 | 欧美一区二区在线 | 国产在线专区 | 中文在线www | 91福利在线导航 | 国产免费人成xvideos视频 | 中文字幕精品一区二区三区电影 | 91私密保健 | 丁香六月婷婷综合 | 欧美精彩视频 | 亚洲 欧美 变态 国产 另类 | 91丨九色丨国产在线 | 久久人人爽人人爽 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 午夜少妇av | 超碰国产在线 | 国产精品片 | 涩涩网站在线观看 | 五月天激情综合 | 最近中文字幕久久 | 亚洲日本在线一区 | 精品视频久久久久久 | 久操免费视频 | 中文字幕人成一区 | 国际精品久久久 | 亚洲视频在线播放 | 91丨九色丨勾搭 | 91资源在线 | 久久视频在线观看免费 | 综合网成人 | 91精彩视频 | 中文一区二区三区在线观看 | 狠狠狠狠狠狠天天爱 | 久久福利精品 | 在线观看黄色av | 国产91精品在线观看 | 不卡av免费在线观看 | 久久综合九色综合欧美就去吻 | 国产精品一区久久久久 | av中文字幕第一页 | 91av在线看| 亚州人成在线播放 | 欧美人体xx | 青青色影院 | 狠狠做深爱婷婷综合一区 | 综合亚洲视频 | 成年人免费av | 美女在线黄 | 亚洲欧美一区二区三区孕妇写真 | 一级黄色片毛片 | 精品国产伦一区二区三区免费 | 亚洲国产精品成人精品 | 亚洲欧美少妇 | 激情丁香综合五月 | 丁香综合网 | 亚洲欧美视频 | 免费男女羞羞的视频网站中文字幕 | 久久国产精品久久w女人spa | 亚洲三级在线播放 | 最新动作电影 | 91入口在线观看 | 美女视频黄的免费的 | 亚洲无线视频 | 深爱激情综合网 | 九九九热精品免费视频观看 | 国产黄色一级片在线 | 激情久久久久久久久久久久久久久久 | 九色福利视频 | 日本精品在线 | 欧美最猛性xxxxx免费 | 久久成视频 | 亚洲国内精品视频 | 国产福利午夜 | 亚洲 欧美 变态 国产 另类 | 91禁看片| 狠狠干 狠狠操 | 久久综合桃花 | 日本精品一区二区三区在线观看 | 国产福利中文字幕 | 国产精品黑丝在线观看 | 久久久在线免费观看 | 亚洲热久久 | 三级动图 | 欧美另类网站 | 免费美女av | 国产精品v a免费视频 | 天天干天天射天天操 | 最近中文字幕在线中文高清版 | 免费亚洲精品 | 亚洲精品在线免费观看视频 | 黄色小说在线免费观看 | 亚洲丁香久久久 | 色婷婷亚洲婷婷 | 丁香视频 | 国产91全国探花系列在线播放 | 久久精品日本啪啪涩涩 | 人人干网| 久久免费成人 | 一级免费片 | 日韩成人av在线 | 亚洲一区二区三区在线看 | 欧美一区二区三区四区夜夜大片 | 狠狠色丁香婷婷综合久久片 | 欧美日韩免费一区 | 亚洲一二区视频 | 免费av影视 | 97人人澡人人爽人人模亚洲 | 国产精品高潮在线观看 | 最新国产福利 | 日韩久久精品一区二区 | 911国产 | 国产一级久久 | 九九综合九九 | 亚洲精品在线一区二区 | 99爱精品视频| av一区在线播放 | 免费a v网站 | 91成品视频 | 日韩精品高清不卡 | 成人a v视频 | h动漫中文字幕 | 久久综合九色九九 | 日韩区欠美精品av视频 | 超碰公开97| 精品国产区在线 | 国产精品a久久久久 | 在线视频麻豆 | 久久精品视频中文字幕 | 亚洲jizzjizz日本少妇 | 久久午夜电影院 | 夜夜婷婷 | 久久久91精品国产一区二区精品 | 91av亚洲 | 国产精品久久久久久久99 | 国产二区免费视频 | 亚洲高清色综合 | 91av资源网 | 国产福利小视频在线 | 在线观看91久久久久久 | 午夜黄色一级片 | 国产精品国产三级国产不产一地 | 精品久久久久久国产 | 最近中文字幕完整视频高清1 | 成人综合免费 | 97视频亚洲 | 在线a视频| 精品国偷自产国产一区 | 国产一二三在线视频 | 伊人网av | 国产成人精品一区二区在线观看 | 九九九热精品免费视频观看 | 国内精品久久久久久久久 | 天天色草 | 中文字幕在线视频网站 | 国产1区2区3区精品美女 | 精品国产人成亚洲区 | 精品国内自产拍在线观看视频 | 欧美精品一二三 | 国产精品网在线观看 | 天堂资源在线观看视频 | 伊人一级 | 日韩电影久久 | 日韩日韩日韩日韩 | 国产一区免费 | 欧美精品国产精品 | 日本女人的性生活视频 | 97在线视频免费 | 久久综合九色欧美综合狠狠 | 美女视频是黄的免费观看 | 可以免费观看的av片 | 亚洲三级视频 | 欧美一级免费在线 | 日韩精品免费在线观看 | 欧美小视频在线观看 | 亚洲欧美日韩中文在线 | 久久av不卡 | 日韩久久激情 | 久久久精品欧美一区二区免费 | 久久久99精品免费观看 | 人人看人人爱 | 国产精品正在播放 | 91福利小视频 | 中文字幕日韩高清 | 亚洲精品视频在线免费播放 | 色综合久久综合中文综合网 | 久久观看免费视频 | 又爽又黄又刺激的视频 | 在线视频 精品 | 草久视频在线观看 | 人人干在线 | 操操日日 | 国产首页 | 日韩精品一区不卡 | 日韩av免费一区二区 | 手机在线看片日韩 | 成年人在线免费看视频 | 色综合久久网 | 日本久久久精品视频 | 亚洲精品国产精品国自产 | 91久久一区二区 | 激情丁香5月 | 亚洲精品黄色片 | 亚洲欧美国产日韩在线观看 | 中国一级片免费看 | 一级黄色电影网站 | 五月综合婷| 免费日韩 精品中文字幕视频在线 | 国产精品久久网站 | 麻豆视频在线播放 | 午夜精品福利影院 | 一区二区三区在线不卡 | 91成人精品一区在线播放 | 免费观看一级成人毛片 | 九九免费观看全部免费视频 | 久久精品在线视频 | 日韩中字在线观看 | 国产精品国产三级国产不产一地 | 国产一区二区中文字幕 | 97超碰人人澡人人爱 | 国产日产高清dvd碟片 | 国产经典 欧美精品 | 97超视频在线观看 | 欧美经典久久 | 欧美日韩精品电影 | 日韩有码欧美 | 国产精品乱码一区二三区 | 91精品国产91热久久久做人人 | 91av原创 | 日本中文在线观看 | 99精品免费网| 久草电影网 | 最新不卡av | 顶级欧美色妇4khd | 正在播放国产一区二区 | 91看片淫黄大片91 | 精品视频 | 国产精品电影一区二区 | 免费av在线播放 | 在线免费亚洲 | 久久久视屏 | 91夜夜夜 | av高清一区 | 国产又粗又猛又爽又黄的视频先 | 粉嫩av一区二区三区四区 | 欧美日韩视频在线一区 | 99久久er热在这里只有精品15 | 久久精品中文字幕一区二区三区 | 久久精品视频免费观看 | 国产高清在线永久 | 午夜电影一区 | 九九久久婷婷 | 最新国产中文字幕 | 婷婷激情五月综合 | 亚洲情感电影大片 | 激情开心网站 | 久久观看最新视频 | 国产一区二区三区四区大秀 | 国产精品3区 | 黄色一级大片在线免费看国产一 | 91视频网址入口 | 婷婷新五月 | 欧美 日韩 国产 成人 在线 | 亚洲精品中文字幕视频 | 欧美日本不卡 | 国产精品毛片一区二区在线看 | 五月花丁香婷婷 | 在线播放国产一区二区三区 | 天天艹天天| 99久久99久久免费精品蜜臀 | 美女网站久久 | 91激情视频在线观看 | 日韩在线观看视频免费 | 激情深爱 | 91麻豆精品国产91久久久久久久久 | 国内精品久久久久影院男同志 | 国产亚洲成av片在线观看 | 超碰伊人网 | 国产在线资源 | 波多野结衣视频一区 | 婷婷色综合网 | 国产精品美女久久久久aⅴ 干干夜夜 | 久久成人在线视频 | 一区三区视频在线观看 | 在线视频欧美日韩 | 久久国产精品网站 | 久久狠狠亚洲综合 | 久久综合久久综合这里只有精品 | 国产一区高清在线 | 99视频在线精品免费观看2 | 午夜在线看| 久久美女免费视频 | 国色天香第二季 | 日本激情视频中文字幕 | 日本午夜免费福利视频 | 久草在线最新免费 | 国产在线精品一区二区三区 | 另类老妇性bbwbbw高清 | 中中文字幕av在线 | 91精品国产乱码久久桃 | 粉嫩高清一区二区三区 | 美女在线观看av | 国产福利在线免费 | av在线电影播放 | 久久精品久久久久电影 | 四虎www | 国产一卡二卡在线 | 天堂网av在线 | 丁香五婷 | 国产精品乱码久久 | 丰满少妇在线观看网站 | 成+人+色综合 | 黄色在线网站噜噜噜 | 久草在线视频首页 | 国产精品国产三级在线专区 | 久久免费试看 | 91社区国产高清 | 久久综合九色综合久久久精品综合 | 毛片一区二区 | 中文字幕国产精品 | 成人在线免费观看视视频 | 久久亚洲综合国产精品99麻豆的功能介绍 | 国产黄视频在线观看 | 国产又粗又猛又色又黄视频 | 久草com| 国产精品久久久久久69 | 成人在线免费视频 | 国产一区福利在线 | 一色av| 日韩久久影院 | 欧美先锋影音 | 激情开心站 | 色天天 | 国产精品福利午夜在线观看 | 成人免费视频网址 | 少妇高潮流白浆在线观看 | 99精品在线免费观看 | 一区二区三区在线观看 | 国产精品刺激对白麻豆99 | 欧美精品久久99 | www天天干com | 国产喷水在线 | 国产精品你懂的在线观看 | 丁香九月激情综合 | 天天草天天操 | 久久免费精品国产 | 日韩激情在线视频 | 亚洲成人av电影在线 | 欧美一区二区三区在线看 | 色婷婷88av视频一二三区 | 黄色免费在线看 | 精品国产综合区久久久久久 | 成年人黄色av | 天天天色 | 久久久99国产精品免费 | 亚洲一级免费观看 | 国产午夜三级一二三区 | 亚洲国产片 | 综合国产在线观看 | 久久理论电影 | 色丁香久久 | 人人爽人人澡人人添人人人人 | 蜜桃视频成人在线观看 | 91激情视频在线观看 | 在线看国产视频 | 97狠狠操 | 久久国产福利 | 国产成人在线网站 | 2020天天干天天操 | 黄色片免费电影 | 国产又黄又硬又爽 | 精品国内自产拍在线观看视频 | 日本xxxx裸体xxxx17 | 一区二区三区电影大全 | 日韩三级在线 | 黄网在线免费观看 | 人人狠狠 | 精品在线视频一区 | 综合网色| 免费福利片2019潦草影视午夜 | 特级毛片网站 | www·22com天天操 | 亚洲乱亚洲乱妇 | 免费看片网页 | 天天色天天色 | 九色琪琪久久综合网天天 | 一级片视频在线 | 激情综合国产 | 午夜影院日本 | 国产精品一区一区三区 | 香蕉视频免费在线播放 | 国产成人精品一区二区 | 日韩精品免费在线观看视频 | 美女视频一区 | 亚州精品天堂中文字幕 | 国产一区视频在线播放 | 亚洲在线资源 | 丝袜美腿亚洲综合 | 三级av在线播放 | 国产精品中文字幕在线观看 | 亚洲性xxxx | 不卡视频一区二区三区 | 国产精品美女久久久久久久 | 亚洲成a人片在线www | 六月丁香在线观看 | 久久精品爱爱视频 | 中文字幕黄色网 | 黄色电影小说 | 91福利在线观看 | 午夜精品一区二区三区在线播放 | 最近中文字幕大全 | 国产 在线观看 | 国产一区二区在线观看免费 | 久久精品99久久 | 国产一区二区成人 | 国产精品麻豆果冻传媒在线播放 | 韩国av在线播放 | 婷婷国产v亚洲v欧美久久 | 国产一区在线免费观看视频 | 免费亚洲电影 | 首页av在线 | 久久久久久久久精 | 91激情视频在线播放 | 高清一区二区三区av | 色欧美成人精品a∨在线观看 | 欧美91精品国产自产 | 亚洲电影av在线 | 欧洲精品码一区二区三区免费看 | 久久精品久久精品久久精品 | 久久福利综合 | 国产精品免费在线视频 | 三上悠亚一区二区在线观看 | 久久精品久久99精品久久 | 麻豆视频免费 | 91精品在线视频观看 | 五月婷婷在线视频 | 日本久久久久久久久 | 午夜视频在线观看欧美 | 亚洲2019精品| 欧美激情第28页 | 久久久久久久久久久综合 | 黄污网站在线观看 | 免费看的av片 | 天天干天天操天天搞 | 国产精品视频久久久 | 免费看成人a | 国产麻豆精品在线观看 | 亚洲欧美精品一区 | 91精彩视频 | 韩国av电影网 | 91精品资源 | 黄色电影网站在线观看 | 天天鲁一鲁摸一摸爽一爽 | 国产高清永久免费 | 成人av电影在线播放 | 国产日韩精品一区二区三区 | 91精品国产99久久久久 | 久久综合色天天久久综合图片 | 久久99精品热在线观看 | 91免费试看 | 国产精品久久网站 | 亚洲成年片 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 欧美成人播放 | 国产精品一区在线播放 | 欧美激情片在线观看 | 99精品热视频只有精品10 | 中文字幕xxxx | 久久全国免费视频 | 天天天综合网 | 在线 国产 亚洲 欧美 | 日韩精品久久中文字幕 | 91在线视频一区 | 精品国产美女 | 精品国产欧美一区二区 | 免费观看国产精品视频 | 中文字幕高清有码 | 人人要人人澡人人爽人人dvd | 日韩精品一区二区久久 | 成 人 黄 色 免费播放 | 三级视频片 | 天天射天天操天天色 | 91黄视频在线观看 | 久久亚洲免费视频 | 久久爱影视i | 天天操夜夜看 | 天天弄天天干 | 伊人成人精品 | 99久久久久久 | 亚洲精品av中文字幕在线在线 | 91精品视频在线看 | 99久久电影 | 久草资源在线 | 综合网五月天 | 狠狠狠色丁香婷婷综合激情 | 中文字幕在线观看视频一区 | 色婷婷免费视频 | 色吊丝在线永久观看最新版本 | 99精品免费久久久久久久久日本 | 天天拍天天色 | 天天色中文 | 日韩一区二区三区在线看 | 欧美一级性生活 | 日韩电影中文字幕在线观看 | 国产精品国产亚洲精品看不卡15 | 99精品系列 | 亚洲美女视频网 | 久久国语露脸国产精品电影 | 亚洲精品国产精品国 | 麻豆手机在线 | 日韩中文字幕免费视频 | 激情黄色一级片 | 麻豆网站免费观看 | 成人影音av | 久草在线视频网 | 天天做日日做天天爽视频免费 | 美女国产 | 亚洲天堂社区 | 午夜精品久久久久久久99 | 亚洲精品66 | 精品国产黄色片 | 日本黄色免费电影网站 | 日韩精品免费一区 | 国产一区二区三区在线 | 免费观看特级毛片 | 日韩在线观看第一页 | 久久人人看 | 久久精品视频在线免费观看 | 欧美性大胆 | 亚洲永久精品国产 | 国产乱视频 | 精品中文字幕在线 | 成人毛片一区二区三区 | 亚洲专区路线二 | 91精品国产电影 | 99久免费精品视频在线观看 | 一区二区精品在线视频 | 天天射天天干天天爽 | 国产精品久久久久久久久久东京 | 欧美色图亚洲图片 | 日韩欧美一区二区在线 | 国产区免费在线 | 欧美在线视频第一页 | 五月婷婷在线视频观看 | 精品女同一区二区三区在线观看 | 免费观看91视频大全 | 国产综合婷婷 | 伊人宗合| 91精品在线观看视频 | 国产精品久久久久久av | 操久 | 狠狠色噜噜狠狠 | 日韩在线第一 | 国产精品久久久区三区天天噜 | 中文字幕日韩伦理 | 美女视频黄网站 | 久久久在线免费观看 | 日韩簧片在线观看 | 天天做天天爱天天综合网 | 一本一道久久a久久综合蜜桃 | 久久久久国产精品免费网站 | 成人免费观看视频大全 | 美女福利视频在线 | 日本精品视频免费观看 | 欧美色888 | 日韩在线观看视频一区二区三区 | 四虎在线观看 | 精品999 | 亚洲激情综合 | 粉嫩一二三区 | 亚洲一区美女视频在线观看免费 | 国产成人精品综合久久久 | 国产精品专区在线 | 一区二区三区电影 | 又大又硬又黄又爽视频在线观看 | 中文字幕在线播放第一页 | 成人三级网站在线观看 | 免费在线观看av网站 | 国产亚洲免费的视频看 | 美女网站一区 | 欧美一区二区在线免费看 | 在线观看亚洲国产精品 | 黄色一级性片 | 国产在线观看,日本 | 97在线影院 | 伊人婷婷久久 | 国产精品观看视频 | 国产手机视频 | 国产精品系列在线观看 | 日韩性片 | 久久综合影院 | 最新中文字幕 | 欧美精品v国产精品v日韩精品 | 亚洲 在线 | 天天草天天干天天射 | 午夜视频在线网站 | 久久人人97超碰com | 国产一及片 | 久久成视频| 久久理论电影网 | 久久综合桃花 | 特级毛片在线免费观看 | 日韩国产精品一区 | 国精产品999国精产品视频 | 久久99深爱久久99精品 | 黄色一级大片在线免费看产 | 麻豆成人精品视频 | 亚洲精品动漫成人3d无尽在线 | www.xxxx欧美| 亚洲精品视频在线观看免费视频 | 97av在线视频 | 日韩精品免费专区 | 99精品在线看| 国产黄大片 | 国产91在线免费视频 | 在线观看精品一区 | 精品专区一区二区 | 成人a在线观看高清电影 | 亚洲综合网站在线观看 | 国产免费三级在线观看 | 99精品视频在线播放观看 | 国产中文字幕视频 | 国产精品四虎 | 亚洲综合色激情五月 | 少妇性bbb搡bbb爽爽爽欧美 | 欧美孕交vivoestv另类 | 日韩精品一区二区三区在线播放 | 99草视频| 一区二区三区高清在线观看 | 国产精品高潮呻吟久久久久 | 色在线最新 | 99精品视频一区二区 | 麻花豆传媒mv在线观看网站 | 视频在线91 | 国产91aaa | 色在线视频 | 国产视频一级 | 91精品久久香蕉国产线看观看 | 日韩在线观看你懂的 | 久久开心激情 | 日日干天天操 | 欧美精品乱码久久久久久按摩 | 午夜婷婷在线播放 | 天天天天色射综合 | 久草在线观看视频免费 | 国产小视频在线免费观看 | 日韩h在线观看 | 天天干天天射天天操 | 青草视频在线看 | 亚洲欧美激情插 | 五月天久久久久 | 婷婷 中文字幕 | 成人毛片在线视频 | 久久国语露脸国产精品电影 | 成人免费在线播放 | 91人人爽人人爽人人精88v | 狠狠的干狠狠的操 | 久久的色 | 天天摸夜夜添 | 国产精品免费在线播放 | 91精品国产网站 | 国产69精品久久99不卡的观看体验 | 国产精品一区二区av麻豆 | 一区二区亚洲精品 | 亚州国产视频 | 午夜神马福利 | 蜜臀av性久久久久av蜜臀妖精 | 精品久久电影 | 久久精品免费观看 | 日日弄天天弄美女bbbb | 婷婷精品国产欧美精品亚洲人人爽 | 91久久久国产精品 | 蜜臀av夜夜澡人人爽人人 | 久久精品a| 五月激情久久久 | 欧美激情精品一区 | 国产正在播放 | 热久久电影| 欧美一级免费在线 | 国内一区二区视频 | 国产小视频在线免费观看 | 狠狠操操网 | 91中文字幕 | 日韩欧美国产激情在线播放 | 国产免费专区 | 日本中文字幕免费观看 | 国产99精品 | 亚洲精品国产精品国自产在线 | 天天爽夜夜爽精品视频婷婷 | 狠狠地操| 97超碰人人在线 | 香蕉久久国产 | 色91av| 高清不卡一区二区三区 | 国产精品久久久久永久免费观看 | av解说在线观看 | 国产精成人品免费观看 | 成人a在线观看高清电影 | 亚洲精品在线国产 | 黄色毛片在线观看 | 亚洲丝袜中文 | 久草视频中文 | 伊人天天干 | 国产精品麻豆视频 | 99久久99久久综合 | 九七视频在线 | 99se视频在线观看 | 亚洲国产午夜精品 | 蜜桃视频成人在线观看 | 91爱在线| 岛国精品一区二区 | 国产999精品久久久久久麻豆 | 亚洲精品一区二区三区新线路 | 91久久精品一区二区二区 | 99精品在线视频观看 | 欧美精品国产精品 | 99久久99视频只有精品 | 中文字幕成人在线 | 色婷婷电影 | 天天干天天操天天干 | 国产精品一区二区三区久久久 | 国产999精品久久久影片官网 | 国产69精品久久99的直播节目 | 久久精品一区二区 | 毛片网在线 | 免费十分钟 | 五月婷婷另类国产 | 久久精品—区二区三区 | 国产亲近乱来精品 | 中文字幕在线观看完整版电影 | 免费又黄又爽视频 | 看片网站黄 | 亚洲第一中文网 | 国产在线精品一区二区 | 人人添人人澡 | 美女视频黄频大全免费 | 91久久久久久久一区二区 | 国产精品入口麻豆www | 国产精品久久久久久久av电影 | 国产99色 | 日韩黄视频 | www.午夜色.com| 欧美激情综合色综合啪啪五月 | 国内精品在线一区 | 欧美,日韩 | 亚洲电影黄色 | 激情婷婷六月 | 久草热久草视频 | 国产精品免费成人 | 五月天婷亚洲天综合网鲁鲁鲁 | 国产一区免费在线 | 美女av在线免费 | 国产剧在线观看片 | 天天激情站 | 青青河边草观看完整版高清 | 午夜精品剧场 | 伊人开心激情 | 91精品视频播放 | 欧美激情精品久久久久久变态 | 日韩sese | 久久6精品 | 国产成人精品一区二区三区福利 |