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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java架构师成长之道之Java数据计算

發(fā)布時間:2024/4/15 java 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java架构师成长之道之Java数据计算 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Java架構(gòu)師成長之道之Java數(shù)據(jù)計(jì)算

Java架構(gòu)師成長之道

3.1 Java數(shù)據(jù)計(jì)算概述

計(jì)算機(jī)最主要的任務(wù)就是完成生產(chǎn)生活中的各種數(shù)據(jù)的運(yùn)算,在Java中提供了諸多的運(yùn)算符來完成相關(guān)數(shù)據(jù)的運(yùn)算,在日常程序開發(fā)中最常用的有算術(shù)運(yùn)算符、自增運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符以及三目運(yùn)算符,在JDK源碼中會使用到基于二進(jìn)制的位運(yùn)算符。

在了解具體運(yùn)算符的使用之前,先了解關(guān)于數(shù)據(jù)計(jì)算的幾個概念

package net.ittimeline.java.core.operator; import static java.lang.System.out; /*** 數(shù)據(jù)計(jì)算的相關(guān)概念* 運(yùn)算符:數(shù)據(jù)執(zhí)行的運(yùn)算類型,例如算術(shù)、邏輯、關(guān)系、位運(yùn)算* 操作數(shù):參與運(yùn)算的數(shù)據(jù),例如2,(3+2)都是操作數(shù)* 表達(dá)式:由操作數(shù)和運(yùn)算符組成,通常是完成某種業(yè)務(wù)數(shù)據(jù)計(jì)算而設(shè)計(jì)的,例如計(jì)算圓的面積* 優(yōu)先級:在各種運(yùn)算符參與運(yùn)算時,有不同的執(zhí)行順序,由它們的優(yōu)先級決定,可以使用()改變優(yōu)先級* 結(jié)合性:執(zhí)行運(yùn)算的方向,例如從左到右或者從右到左* @author liuguanglei 18601767221@163.com* @create 2019-07-30 11:51* @website www.ittimeline.net* @since JDK11.03*/ public class OperatorConceptTest {public static void main(String[] args) {// 3+5就是表達(dá)式,3,5就是操作數(shù)int result=3+5;System.out.println("result ="+result);/*** 算術(shù)運(yùn)算的優(yōu)先級是先乘除后加減* 可以使用()改變優(yōu)先級*/int precedence=(45+5)/5*10;out.println("precedence = "+precedence);} }
  • 運(yùn)算符:指定數(shù)據(jù)執(zhí)行的運(yùn)算類型,例如算術(shù),邏輯,關(guān)系,比較,位運(yùn)算等等

  • 操作數(shù):就是參與運(yùn)算的數(shù)據(jù),例如2,(3+2)都是一個操作數(shù)

  • 表達(dá)式:由操作數(shù)和運(yùn)算符組成,通常都是完成某種業(yè)務(wù)數(shù)據(jù)計(jì)算而設(shè)計(jì)的,例如計(jì)算圓的面積等等。

  • 優(yōu)先級:在各種運(yùn)算符參與運(yùn)算時,有不同的執(zhí)行順序,由它們的優(yōu)先級決定,可以使用()來改變執(zhí)行的順序

  • 結(jié)合性:執(zhí)行計(jì)算的方向,一般是從左到右,但是賦值運(yùn)算是從右到左。

3.2 算術(shù)運(yùn)算符

算術(shù)運(yùn)算就是數(shù)學(xué)意義上的加減乘除以及取模運(yùn)算,Java中支持的算術(shù)運(yùn)算符包含加法(+)、減法(-)、乘法(*)、除法(/)、和取模(/)

  • 算術(shù)運(yùn)算符的優(yōu)先級是先乘除,后加減。
  • 算術(shù)運(yùn)算符的結(jié)合性是從左到右
  • 算術(shù)運(yùn)算計(jì)算結(jié)果的類型是參與運(yùn)算的最大數(shù)據(jù)類型,例如整數(shù)和浮點(diǎn)數(shù)運(yùn)算的結(jié)果是浮點(diǎn)型
  • 賦值(=)時會進(jìn)行自動類型轉(zhuǎn)換

算術(shù)運(yùn)算案例

package net.ittimeline.java.core.operator.arithmetic;/*** 算術(shù)運(yùn)算符* Java中的算術(shù)運(yùn)算符支持?jǐn)?shù)學(xué)意義的+ - * /以及取模(%)運(yùn)算(求余數(shù))** @author liuguanglei 18601767221@163.com* @create 2019-07-28 09:40* @website www.ittimeline.net* @since JDK11.03*/ public class ArithmeticDivideTest {/*** 除法運(yùn)算* @param args*/public static void main(String[] args) {//算術(shù)計(jì)算的結(jié)果的數(shù)據(jù)類型是參與運(yùn)算的最大數(shù)據(jù)類型int source=12;int target=5;//int和int運(yùn)算的結(jié)果是intint result=source/target;System.out.println("result = "+result);//算術(shù)運(yùn)算符結(jié)合性是從左向右運(yùn)算result=source/target*target;//result=10System.out.println("result = "+result);//賦值時會執(zhí)行自動類型轉(zhuǎn)換double dblResult=source/target;//運(yùn)算結(jié)果是2.0System.out.println("dblResult ="+dblResult);//double和int運(yùn)算結(jié)果是double//通過強(qiáng)制類型轉(zhuǎn)換將int轉(zhuǎn)換為doubledblResult=(double) source/target;//獲取精確的運(yùn)行結(jié)果System.out.println("dblResult ="+dblResult);} }

取模運(yùn)算是求余數(shù),開發(fā)中通常用于判斷數(shù)據(jù)是否能夠整除。取模也會作為數(shù)據(jù)庫中間件MyCAT,ShardingJDBC實(shí)現(xiàn)取模算法。

  • 取模運(yùn)算結(jié)果的符號類型(正負(fù))和被模數(shù)一致
  • 整數(shù)和浮點(diǎn)數(shù)可以進(jìn)行取模運(yùn)算
package net.ittimeline.java.core.operator.arithmetic;/*** 取模(求余數(shù))運(yùn)算* 開發(fā)中經(jīng)常用取模運(yùn)算符(%)來判斷數(shù)據(jù)是否能夠整除的情況** @author liuguanglei 18601767221@163.com* @create 2019-07-28 09:49* @website www.ittimeline.net* @since JDK11.03*/ public class ArithmeticRemainderTest {/*** 求余數(shù)** @param args*/public static void main(String[] args) {int source = 12;int target = 5;int result = source % target;//12/5=2..2 即余數(shù)的結(jié)果就是2System.out.println("result = " + result);//運(yùn)算結(jié)果表明求余數(shù)結(jié)果的符號和被余數(shù)相同source = -12;result = source % target;System.out.println("result = " + result);source = 12;target = -5;result = source % target;System.out.println("result =" + result);double dblSource = 12.5;double dblTarget = 5.0;double dblResult = dblSource % dblTarget;//浮點(diǎn)數(shù)也可以取模System.out.println("dblResult = " + dblResult);} }

取模運(yùn)算應(yīng)用案例:將五位整數(shù)反轉(zhuǎn)

package net.ittimeline.java.core.operator.arithmetic;/*** 取模運(yùn)算案例* 將一個五位整數(shù)反轉(zhuǎn)* 例如12345變成54321* @author liuguanglei 18601767221@163.com* @create 2019-08-03 09:39* @website www.ittimeline.net* @since JDK11.03*/ public class ArithmeticRemainderApp {public static void main(String[] args) {int number=12345;System.out.println("反轉(zhuǎn)之前的五位整數(shù)是"+number);//首先使用取模運(yùn)算獲取各個位的數(shù)字//個位int theUnit=number/10000;//十位int decade=number/1000%10;//百位int hundreds=number/100%10;//千位int kilobit=number%100/10;//萬位int myriabit=number%100%10;int invert=myriabit*10000+kilobit*1000+hundreds*100+decade*10+theUnit;System.out.println("反轉(zhuǎn)之后的五位整數(shù)是"+invert);} }

使用基本數(shù)據(jù)類型的包裝類、字符串?dāng)?shù)組以及算術(shù)運(yùn)算根據(jù)距離和時間計(jì)算速度

package net.ittimeline.java.core.operator.arithmetic;/*** @author liuguanglei 18601767221@163.com* @create 2019-07-30 15:44* @website www.ittimeline.net* @since JDK11.03*/ public class Velocity {public static void main(String[] args) {//實(shí)例化數(shù)組args=new String[]{"1200","300"};//數(shù)組中需要兩個元素if(args.length<2){System.err.println("需要倆參數(shù)");//系統(tǒng)異常退出System.exit(1);}//使用包裝類將字符串轉(zhuǎn)換為floatfloat distance=Float.parseFloat(args[0]);//args[0]表示訪問數(shù)組的第一個元素//args[1]表示訪問數(shù)組的第二個元素float time=Float.parseFloat(args[1]);//float和float運(yùn)算的類型是floatSystem.out.print("Velocity = ");System.out.print(distance/time);} }

3.3 自增(自減)運(yùn)算符

自增運(yùn)算符主要用于變量自增1,用于變量自增1的運(yùn)算符是++,但是++可以放在變量前面,也可以放在變量后面,放在前面時,變量先自增1,然后再參與運(yùn)算,++放在變量的后面,變量先運(yùn)算,再自增1。

自減運(yùn)算符使用--表示,用于變量自減1,也可以放在變量的前面和后面,分別表示先減1,再參與運(yùn)算和先參與運(yùn)算,再減1。

  • 自增(自減)運(yùn)算符不會改變變量本身的數(shù)據(jù)類型,因此在運(yùn)算時需要考慮當(dāng)前數(shù)據(jù)類型的極限值
  • 自增(自減)運(yùn)算符如果是一條單獨(dú)的語句,前置++(--)和后置++(--)的效果是一樣的

自增運(yùn)算符案例

package net.ittimeline.java.core.operator.autoincrement;/*** 前置++,后置++* 作用是針對整型變量加1* 自增運(yùn)算不會改變變量本身的數(shù)據(jù)類型* @author liuguanglei 18601767221@163.com* @create 2019-07-28 10:32* @website www.ittimeline.net* @since JDK11.03*/ public class AutoincrementAddTest {public static void main(String[] args) {//自增運(yùn)算符是單獨(dú)的語句,前置++和后置++的結(jié)果是一樣的int tmp=10;tmp++;System.out.println("tmp = "+tmp);int val=10;++val;System.out.println("val = "+val);int num=10;//后置++,先運(yùn)算,后自增1int result=num++;//result=10System.out.println("result = "+result);//num=11System.out.println("num ="+num);int source=10;//前置++ 先自增1,后運(yùn)算result=++source;//result=11System.out.println("result ="+result);//source=11System.out.println("source ="+source);short shortVal=10;//shortVal的類型還是shortSystem.out.println(shortVal++);byte byteVal=10;//byteVal的數(shù)據(jù)類型還是byteSystem.out.println(byteVal++);} }

自減運(yùn)算符應(yīng)用案例

package net.ittimeline.java.core.operator.autoincrement;/*** 自減運(yùn)算符* @author liuguanglei 18601767221@163.com* @create 2019-07-28 10:42* @website www.ittimeline.net* @since JDK11.03*/ public class AutoincrementSubTest {/*** 自減運(yùn)算符* @param args*/public static void main(String[] args) {int num=10;//先運(yùn)算,后減1int result=num--;System.out.println("result = "+result);System.out.println("numb = "+num);int source=10;//先減1再運(yùn)算int target= --source;System.out.println("target = "+target);System.out.println("source = "+source);} }

自增(自減)運(yùn)算符的常用應(yīng)用場景就是在for循環(huán)中改變循環(huán)條件的值。

package net.ittimeline.java.core.operator.autoincrement;/*** 自增和自減運(yùn)算符的應(yīng)用場景** @author liuguanglei 18601767221@163.com* @create 2019-08-03 09:23* @website www.ittimeline.net* @since JDK11.03*/ public class AutoincrementApp {public static void main(String[] args) {System.out.println("自增運(yùn)算符的應(yīng)用場景");//自增運(yùn)算符的應(yīng)用場景//定義一個字符串String content="Java架構(gòu)師成長之道";//將字符串轉(zhuǎn)換為字符數(shù)組char[] contents=content.toCharArray();//循環(huán)遍歷字符數(shù)組 這里的c++表示將循環(huán)的初始條件自增1for (char c =0;c<content.length();c++){System.out.print(contents[c]+" ");}//自減運(yùn)算的應(yīng)用場景System.out.println("自減運(yùn)算的應(yīng)用場景");String car="法拉利拉法";char[] carDesc=car.toCharArray();for(int i=carDesc.length-1;i>=0;i--){System.out.print(carDesc[i]+"");}} }

自增自減運(yùn)算符復(fù)雜案例

package net.ittimeline.java.core.operator.autoincrement;/*** 自增運(yùn)算符復(fù)雜案例** @author liuguanglei 18601767221@163.com* @create 2019-08-03 09:40* @website www.ittimeline.net* @since JDK11.03*/ public class AutoIncrementComplexTest {public static void main(String[] args) {int i = 10;int j = 20;// i++ 等價于i+=1 等價于i=int k = i++;//k=10System.out.println("k = " + k);//i =11System.out.println("i = " + i);k = ++i;//k = 12System.out.println("k = " + k);//i =12System.out.println("i = " + i);k = j--;//k=20System.out.println("k =" + k);//j=19System.out.println("j = " + j);k=--j;//k=18System.out.println("k = " + k);//j=18System.out.println("j = " + j);}}

自增運(yùn)算符的本質(zhì):讓變量自增的三種方式

package net.ittimeline.java.core.operator.autoincrement;/*** 自增運(yùn)算的本質(zhì)** @author liuguanglei 18601767221@163.com* @create 2019-08-03 10:33* @website www.ittimeline.net* @since JDK11.03*/ public class AutoincrementEssence {public static void main(String[] args) {int number = 12;number++;System.out.println("number = " + number);//等價于number = 12;number += 1;System.out.println("number = " + number);//等價于number=12;number=number+1;System.out.println("number = " + number);} }

3.4 賦值運(yùn)算符

賦值通常是給變量賦值,Java中使用"="來表示賦值,而"=="表示相等,賦值是將=右邊的值或者表達(dá)式賦值給左邊的變量。

  • 當(dāng)賦值號(=)兩邊的數(shù)據(jù)類型不一致時,可以使用自動類型轉(zhuǎn)換或者強(qiáng)制類型轉(zhuǎn)換進(jìn)行處理
  • 支持連續(xù)賦值,即同時聲明并賦值多個變量
  • 賦值運(yùn)算不會改變變量本身的數(shù)據(jù)類型
package net.ittimeline.java.core.operator.assignment;/*** 賦值運(yùn)算符* =* 算術(shù)運(yùn)算和賦值運(yùn)算* += -= *= /= %=** 賦值運(yùn)算不會改變變量的數(shù)據(jù)類型** @author liuguanglei 18601767221@163.com* @create 2019-07-28 10:59* @website www.ittimeline.net* @since JDK11.03*/ public class AssignmentTest {public static void main(String[] args) {//聲明變量并賦值int i=10;int j=10;//連續(xù)賦值,同時聲明兩個變量k,l并賦值為10int k=10,l=10;System.out.println("i = "+i+ " j = "+j +" k = "+k+ " l = "+l);//賦值的左邊必須是變量,右邊可以是變量值,也可以是表達(dá)式//計(jì)算四個整數(shù)的和int result=i+j+k+l;System.out.println("result = "+result);int o,p,q;//同時賦值o=p=q=20;System.out.println("o = "+o+ " p = "+p +" q = "+q);//賦值不會改變變量的數(shù)據(jù)類型//通常情況下byte和int運(yùn)算的類型是intbyte byteVal=12;byteVal=(byte)(byteVal+1);System.out.println("byteVal = "+byteVal);//但是如果使用賦值運(yùn)算,不會改變變量的數(shù)據(jù)類型byteVal=12;byteVal+=1;System.out.println("byteVal = "+byteVal);} }

JDK提供了java.util.Random類用于生成隨機(jī)數(shù),詳細(xì)的使用說明可以查閱JDK API文檔,后續(xù)在編寫應(yīng)用案例時,可以使用它來生成測試數(shù)據(jù)。

package net.ittimeline.java.core.operator.assignment;import java.util.Random;/***產(chǎn)生0-99之間的隨機(jī)數(shù)* @author liuguanglei 18601767221@163.com* @create 2019-07-28 10:59* @website www.ittimeline.net* @since JDK11.03*/ public class RandomTest {public static void main(String[] args) {/*** 創(chuàng)建一個隨機(jī)數(shù)* 88表示初始種子,種子相同,每次產(chǎn)生的序列相同,種子不同,每次產(chǎn)生的序列不同* */Random random=new Random(88);//生成0-99之間的整數(shù)int left=random.nextInt(100);int right=random.nextInt(100);System.out.println("left = "+left+" right ="+right);}}

賦值運(yùn)算符還可以可算術(shù)運(yùn)算符結(jié)合使用,例如+= ,-=,*=,/=,%=。

package net.ittimeline.java.core.operator.assignment; import static java.lang.System.out;import java.util.Random;/*** 算術(shù)運(yùn)算與賦值運(yùn)算結(jié)合運(yùn)算** @author liuguanglei 18601767221@163.com* @create 2019-07-29 14:02* @website www.ittimeline.net* @since JDK11.03*/ public class MathOps {public static void main(String[] args) {//創(chuàng)建一個隨機(jī)數(shù)對象Random random=new Random(88);int i,j,k;//隨機(jī)產(chǎn)生一個1-100之間的整數(shù)j=random.nextInt(100)+1;k=random.nextInt(100)+1;out.println("j = "+j);out.println("k = "+k);i=j+k;out.println("j + k = "+i);i=j-k;out.println("j - k = "+i);i=j*k;out.println("j * k = "+i);i=j/k;out.println("j / k = "+i);i=j%k;out.println("j % k = "+i);j%=k;out.println("j %= k "+j);float u,v,w;v=random.nextFloat();w=random.nextFloat();out.println("v = "+v);out.println("w = "+w);u=v+w;out.println("v + w = "+u);u=v-w;out.println("v - w = "+u);u=v*w;out.println("v * w = "+u);u=v/w;out.println("v / w = "+u);u+=v;out.println("u+v = "+u);u-=v;out.println("u-v = "+u);u*=v;out.println("u*v = "+u);u/=v;out.println("u/v = "+u);} }

復(fù)雜的賦值運(yùn)算符

package net.ittimeline.java.core.operator.assignment;/*** 賦值運(yùn)算符的復(fù)雜案例* 開發(fā)中盡量將表達(dá)式寫的簡單明了,有利于程序的維護(hù)* @author liuguanglei 18601767221@163.com* @create 2019-08-03 11:24* @website www.ittimeline.net* @since JDK11.03*/ public class AssignmentComplex {public static void main(String[] args) {int m=2;int n=3;/*** 拆解表達(dá)式* n*=m++* n=n*m++* n=3*2* n=6* m=3*/n*=m++;System.out.println("n = "+n);System.out.println("m = "+m);n=4;/*** 拆解表達(dá)式* n+=(n++)+(++n);* n=n+(n++)+(++n)* n=4+4+6* n=14*/n+=(n++)+(++n);System.out.println("n = "+n);} }

3.5 JDK1.5新特性-靜態(tài)導(dǎo)入

  • 靜態(tài)導(dǎo)入是使用import static關(guān)鍵字加上類名[.變量名][.方法名],其中[.變量名]和[.方法名]是可選的,如果沒有,默認(rèn)就是導(dǎo)入類的所有變量和方法到當(dāng)前類中,這樣就可以直接在當(dāng)前類中使用。
package net.ittimeline.java.core.jdk.feature.jdk5; /*** import static關(guān)鍵字是直接導(dǎo)入某個類的所有變量和方法到本類中* 這樣就可以直接在當(dāng)前類中引用導(dǎo)入導(dǎo)入類的變量和方法** import static java.lang.System.*表示導(dǎo)入System的所有變量和方法*/import static java.lang.System.*;/*** JDK5新特性之靜態(tài)導(dǎo)入* @author liuguanglei 18601767221@163.com* @create 2019-08-03 11:38* @website www.ittimeline.net* @since JDK11.03*/ public class StaticImport {public static void main(String[] args) {//因?yàn)殪o態(tài)導(dǎo)入過System類,這樣可以在當(dāng)前類中調(diào)用System的成員變量out和err的println方法out.println("Hello World");err.println("Hello World Again");} }

使用靜態(tài)導(dǎo)入和SimpleDateFormat實(shí)現(xiàn)輸出當(dāng)前日期

package net.ittimeline.java.core.operator; import java.text.SimpleDateFormat; import java.util.Date;import static java.lang.System.out; /*** 靜態(tài)導(dǎo)入** @author liuguanglei 18601767221@163.com* @create 2019-07-29 13:48* @website www.ittimeline.net* @since JDK11.03*/ public class HelloDate {/*** 聲明日期格式*/public static final String PATTERN="yyyy-MM-dd HH:mm:ss";public static void main(String[] args) {//創(chuàng)建日期格式化對象SimpleDateFormat simpleDateFormat=new SimpleDateFormat(PATTERN);String now =simpleDateFormat.format(new Date());//顯示輸出當(dāng)前日期out.print(now);} }

3.6 關(guān)系運(yùn)算符

關(guān)系運(yùn)算符用于判斷數(shù)據(jù)的關(guān)系,Java中常用的關(guān)系運(yùn)算符有大于(>),小于(<),等于(==),不等于(!=),大于等于(>=),小于等于(<-=)。

  • 關(guān)系運(yùn)算符的運(yùn)算結(jié)果是boolean類型,也就是true或者false
  • 相等性用==表示,而不是=
  • >=表示大于或者等于,>=表示小于或則等于
  • >,>=,<,<=只能用在基本數(shù)據(jù)類型的數(shù)值類型之間進(jìn)行比較
  • ==可以使用在基本數(shù)據(jù)類型和引用類型之間相等性判斷

==和=的差別

package net.ittimeline.java.core.operator.relation;/*** ==和=的差別* @author liuguanglei 18601767221@163.com* @create 2019-08-03 11:36* @website www.ittimeline.net* @since JDK11.03*/ public class Equals {public static void main(String[] args) {int i=10;int j=20;//== 判斷相等性,運(yùn)算結(jié)果是falseSystem.out.println("i == j = "+(i==j));//=表示將右邊的值或者表達(dá)式賦值給左邊的變量System.out.println("i = j = "+(i=j));} }

在使用關(guān)系運(yùn)算符之前先對之前的輸出語句System.out.println()結(jié)合JDK5.0新特性之靜態(tài)導(dǎo)入
做一個更加"簡短"的輸出。

然后借助JDK的Random類生成兩個1-100以內(nèi)的隨機(jī)整數(shù),用關(guān)系運(yùn)算符運(yùn)算,并輸出運(yùn)算結(jié)果

package net.ittimeline.java.core.operator.relation;import java.util.Random;import static java.lang.System.out;/*** 關(guān)系運(yùn)算符** @author liuguanglei 18601767221@163.com* @create 2019-07-29 13:19* @website www.ittimeline.net* @since JDK11.03*/ public class Bool {public static void main(String[] args) {Random random = new Random(88);//產(chǎn)生兩個1-100之內(nèi)的隨機(jī)整數(shù)int i = random.nextInt(100)+1;int j = random.nextInt(100)+1;//輸出 i和 j的值out.println("i = " + i);out.println("j = " + j);//使用關(guān)系運(yùn)算符比較i和j的值out.println("i > j is " + (i > j));out.println("i < j is " + (i < j));out.println("i >= j is " + (i >= j));out.println("i <= j is " + (i <= j));out.println("i == j is " + (i == j));out.println("i != j is " + (i != j));}}

3.7 ==和equals()的區(qū)別

  • ==和equals都是比較的值是否相等,通常基本數(shù)據(jù)類型使用判斷,引用數(shù)據(jù)類型使用equals判斷,而如果使用判斷引用數(shù)據(jù)類型,比較的是對象的引用地址。

Java中所有的類(無論是JDK自帶的還是開發(fā)人員自己定義的)的直接或者間接父類都是java.lang.Object,該類有個成員方法equals,用于比較對象的相等性。

從Object的equals方法看的出來,默認(rèn)比較的是對象的引用地址

public boolean equals(Object obj) {return (this == obj);}

那么問題來了

EqualsMethod2類中,明明Value的成員變量i的值是100,理論上來說應(yīng)該是相等的。
但是使用equals判斷的時候是不相等,因?yàn)橹灰褂藐P(guān)鍵字new創(chuàng)建對象時,會開辟新的堆內(nèi)存空間存儲對象。

package net.ittimeline.java.core.operator.relation;/*** 相等性判斷** @author liuguanglei 18601767221@163.com* @create 2019-07-29 13:40* @website www.ittimeline.net* @since JDK11.03*/ public class EqualsMethod2 {public static void main(String[] args) {Value v1=new Value();Value v2=new Value();v1.i=v2.i=100;//沒有重寫equals時,默認(rèn)比較的是對象的地址//這里創(chuàng)建了兩個Value對象,因此equals()判斷為falseSystem.out.println("v1.equals(v2) = "+(v1.equals(v2)));}}class Value{int i;}

因?yàn)镺bject類的equals方法比較的是對象的地址是否相等,但是在實(shí)際開發(fā)中,經(jīng)常比較的是對象的成員變量是否相等,因此絕大多數(shù)類都重寫了equals方法。

這里以Integer類為例子,分別使用==和equals來判斷Integer對象的相等性。

當(dāng)創(chuàng)建Integer對象的值在-128-127之間時,無論是equals還是==都是相等的。
因?yàn)镮nteger類中有個內(nèi)部類IntegerCache,用于緩存Integer的值在-128-127之間的對象

private static class IntegerCache {static final int low = -128;static final int high;static final Integer cache[];static {// high value may be configured by propertyint h = 127;String integerCacheHighPropValue =VM.getSavedProperty("java.lang.Integer.IntegerCache.high");if (integerCacheHighPropValue != null) {try {int i = parseInt(integerCacheHighPropValue);i = Math.max(i, 127);// Maximum array size is Integer.MAX_VALUEh = Math.min(i, Integer.MAX_VALUE - (-low) -1);} catch( NumberFormatException nfe) {// If the property cannot be parsed into an int, ignore it.}}high = h;cache = new Integer[(high - low) + 1];int j = low;for(int k = 0; k < cache.length; k++)cache[k] = new Integer(j++);// range [-128, 127] must be interned (JLS7 5.1.7)assert IntegerCache.high >= 127;}private IntegerCache() {}}

而如果Integer的值超過了緩存的范圍,那么使用判斷對象相等時就不會相等了。
在開發(fā)過程中盡量使用equals方法來判斷,而不是使用
來判斷。

package net.ittimeline.java.core.operator.relation;/*** 相等性判斷** @author liuguanglei 18601767221@163.com* @create 2019-07-29 13:34* @website www.ittimeline.net* @since JDK11.03*/ public class EqualsMethod {public static void main(String[] args) {//因?yàn)镮nteger類緩存-128-127之間的實(shí)例Integer n1= Integer.valueOf(Byte.MAX_VALUE);Integer n2= Integer.valueOf(Byte.MAX_VALUE);//因此無論是equals還是==都是相等System.out.println("n1.equals(n2) = "+(n1.equals(n2)));System.out.println("n1==n2 = "+(n1==n2));//但是超過了緩存的范圍Integer n3=Integer.valueOf(300);Integer n4=Integer.valueOf(300);System.out.println("n3.equals(n4) = "+(n3.equals(n4)));//==就為false了,因?yàn)閷ο蟮牡刂凡煌?/span>System.out.println("n3==n4 = "+(n3==n4));} }

3.8 邏輯運(yùn)算符

邏輯運(yùn)算符用于布爾類型變量或者布爾表達(dá)式的邏輯運(yùn)算,Java支持的邏輯運(yùn)算符有如下幾種:

  • 邏輯與(&):&兩邊同時為true,結(jié)果為true
  • 短路與(&&):當(dāng)&&兩邊為true,結(jié)果為true,如果&&的一邊為false,將不再執(zhí)行剩余的表達(dá)式,也就是短路特性。
  • 邏輯或(|):當(dāng)|兩邊只要有一個為true,結(jié)果為true,否則結(jié)果為false
  • 短路或(||):當(dāng)||兩邊只要有一個為true,結(jié)果為true,否則結(jié)果為false,并且不再執(zhí)行剩余表達(dá)式,也就是短路特性。
  • 邏輯非(!):當(dāng)一個變量或者表達(dá)式的結(jié)果為true,!的結(jié)果為false,否則結(jié)果為true,邏輯非就是相反的結(jié)果
  • 邏輯亦或():當(dāng)兩邊結(jié)果同時為true或者false,結(jié)果為false,否則為true。

一般開發(fā)中使用短路與、短路或,不會使用邏輯與和邏輯或。

package net.ittimeline.java.core.operator.logic;import java.util.Random;/*** 邏輯運(yùn)算* @author liuguanglei 18601767221@163.com* @create 2019-08-03 13:02* @website www.ittimeline.net* @since JDK11.03*/ public class LogicTest {public static void main(String[] args) {Random random=new Random(88);//創(chuàng)建兩個隨1-100之內(nèi)的隨機(jī)數(shù)int left=random.nextInt(100)+1;int right=random.nextInt(100+1);System.out.println("left ="+left);System.out.println("right ="+right);//判斷兩個數(shù)都是大于100boolean result=left>100&&right>100;System.out.println("left>100&&right>100 = "+result);//判斷左邊的數(shù)加上100大于100或者右邊的數(shù)大于100result=left+100>100||right>100;System.out.println("left+100>100||right>100 = "+result);//邏輯非result=!result;System.out.println("!result = "+result);//邏輯亦或//^左右兩邊都為true或者false,結(jié)果為falseresult =left>10^right>10;System.out.println("left>10^right>10 = "+result);result=left>50^right>50;//^左右兩邊結(jié)果不同結(jié)果為trueSystem.out.println("left>50^right>50 = "+result);} }

邏輯與和短路與的區(qū)別

package net.ittimeline.java.core.operator.logic;/*** 邏輯與與短路與* 邏輯與&左右兩邊都是true,結(jié)果為true,不具備短路特性* 短路與&&左右兩邊都是true,結(jié)果為true,具備短路特性:明確整體的計(jì)算結(jié)果,不在計(jì)算剩余的表達(dá)式* @author liuguanglei 18601767221@163.com* @create 2019-08-03 13:02* @website www.ittimeline.net* @since JDK11.03*/ public class LogicAndShowCircuitTest {public static void main(String[] args) {boolean flag=false;int num=10;//邏輯與不具備短路特性,雖然&左邊已經(jīng)是falseboolean logicAnd=flag&num++>0;//但是從輸出結(jié)果看出num依然自增1System.out.println("num = "+num);//而 短路與&&具備短路特性num=10;// &&左邊已經(jīng)為false,右邊的num沒有自增1boolean logicAndCircuit=flag&&num++>0;//輸出結(jié)果依然為10System.out.println("num = "+num);} }

邏輯與的短路特性

package net.ittimeline.java.core.operator.logic;import static java.lang.System.out; /*** 邏輯運(yùn)算的短路現(xiàn)象** @author liuguanglei 18601767221@163.com* @create 2019-07-29 19:41* @website www.ittimeline.net* @since JDK11.03*/ public class ShowCircuit {static boolean test1(int val){out.println("test1("+val+")");out.println("result: "+(val<1));return val<1;}static boolean test2(int val){out.println("test1("+val+")");out.println("result: "+(val<2));return val<2;}static boolean test3(int val){out.println("test1("+val+")");out.println("result: "+(val<3));return val<3;}public static void main(String[] args) {/*** 邏輯與的短路特性* 當(dāng)執(zhí)行到test1方法時,2<2的結(jié)果為false,整體表達(dá)式的結(jié)果為false,因此不會再執(zhí)行test3方法*/boolean flag=test1(0)&&test1(2)&&test3(2);out.println("expression is "+flag);} }

邏輯或的短路特性

package net.ittimeline.java.core.operator.logic;import static java.lang.System.out; /*** 邏輯運(yùn)算的短路現(xiàn)象** @author liuguanglei 18601767221@163.com* @create 2019-07-29 19:41* @website www.ittimeline.net* @since JDK11.03*/ public class LogicOrCircuit {static boolean test1(int val){out.println("test1("+val+")");out.println("result: "+(val<1));return val<1;}static boolean test2(int val){out.println("test1("+val+")");out.println("result: "+(val<2));return val<2;}static boolean test3(int val){out.println("test1("+val+")");out.println("result: "+(val<3));return val<3;}public static void main(String[] args) {/*** 邏輯或的短路特性* 當(dāng)執(zhí)行到test1方法時,0<2的結(jié)果為true,整體表達(dá)式的結(jié)果為false,因此不會再執(zhí)行tes2和test3方法*/boolean flag=test1(0)||test2(2)||test3(2);out.println("expression is "+flag);} }

邏輯與、短路與和邏輯或、短路或的應(yīng)用案例

package net.ittimeline.java.core.operator.logic;/*** 邏輯運(yùn)算符的復(fù)雜案例* 結(jié)合自增運(yùn)算、if(true){}* @author liuguanglei 18601767221@163.com* @create 2019-08-03 15:55* @website www.ittimeline.net* @since JDK11.03*/ public class LogicComplex {public static void main(String[] args) {int x = 1;int y = 1;//x++=1 y++=1 if (x++ == 2 & y++ == 2) {x = 7;}//x=2 y=2System.out.println("x = " + x + " y = " + y);x = 1;y = 1;// ++x=2 ++y =2 if trueif (++x == 2 && ++y == 2) {x = 7;}//x=7 y=2System.out.println("x = " + x + " y = " + y);x = 1;y = 1;//x++ =1 ++y=2 if trueif (x++ == 1 | ++y == 1) {x = 7;}//x=7 y=2System.out.println("x = " + x + " y = " + y);x = 1;y = 1;// x++=1 // x=7 y=1if (x++ == 1 || ++y == 1) {x = 7;}//x=7 y=1System.out.println("x = " + x + " y = " + y);}}

3.9 三元運(yùn)算符

三元運(yùn)算符用于布爾變量或者布爾表達(dá)式判斷,需要三個操作數(shù),等價于if/else,其表現(xiàn)形式為
bool-exp?value0:value1,如果布爾表達(dá)式的結(jié)果為true,三目運(yùn)算的結(jié)果為value0,否則為value1。

使用三目運(yùn)算符模擬扔硬幣

package net.ittimeline.java.core.operator.ternary;import java.util.Random;/*** 使用三元運(yùn)算符模擬扔硬幣* @author liuguanglei 18601767221@163.com* @create 2019-07-30 16:07* @website www.ittimeline.net* @since JDK11.03*/ public class CoinFlipping {public static void main(String[] args) {Random random=new Random(88);boolean flip=random.nextBoolean();System.out.print("OUTCOME :");System.out.println(flip?"人頭":"字");} }

三目運(yùn)算符和if/else

package net.ittimeline.java.core.operator.ternary; import static java.lang.System.out; /*** 三目運(yùn)算符和if/else** @author liuguanglei 18601767221@163.com* @create 2019-07-30 10:21* @website www.ittimeline.net* @since JDK11.03*/ public class TernaryIfElese {/*** 三目運(yùn)算符* @param i* @return*/static int ternary(int i){return i<10?i*100:i*10;}/*** 標(biāo)準(zhǔn)的if/else* @param i* @return*/static int standardIfElse(int i){if(i<10){return i*100;}else{return i*10;}}public static void main(String[] args) {out.println(ternary(9));out.println(ternary(11));out.println(standardIfElse(9));out.println(standardIfElse(11));} }

使用嵌套if和三目運(yùn)算符求三個整數(shù)的最大值

package net.ittimeline.java.core.operator.ternary;/*** 求三個數(shù)中的最大值* 分別使用if/else if和三元運(yùn)算符* @author liuguanglei 18601767221@163.com* @create 2019-08-04 16:58* @website www.ittimeline.net* @since JDK11.03*/ public class GetMaxNumber {public static void main(String[] args) {int i=277;int j=20;int k=-99;int max=0;if(i>j){if(i>k){max=i;}else{max=k;}}System.out.println("使用if/else if實(shí)現(xiàn)求三個整數(shù)的最大值 max = "+max);max= i>j&&i>k?i:k;System.out.println("三個數(shù)中的最大值是"+max);} }

使用三元運(yùn)算符判斷用戶輸入的整數(shù)是基數(shù)還是偶數(shù)
如果想要用戶輸入數(shù)據(jù),需要使用Java提供的Scanner類實(shí)現(xiàn)

package net.ittimeline.java.core.operator.ternary;import java.util.Scanner;/*** 判斷用戶輸入的數(shù)字是基數(shù)還是偶數(shù)** @author liuguanglei 18601767221@163.com* @create 2019-08-04 17:32* @website www.ittimeline.net* @since JDK11.03*/ public class ParityCheck {public static void main(String[] args) {//創(chuàng)建一個虛擬鍵盤Scanner input = new Scanner(System.in);System.out.println("請輸入一個整數(shù)");int number = input.nextInt();String result = number % 2 == 0 ? "這是一個偶數(shù)" : "這個是一個奇數(shù)";System.out.println("你輸入的數(shù)字是" + number);System.out.println(result);} }

3.10 位運(yùn)算符

位運(yùn)算符是直接對整數(shù)的二進(jìn)制進(jìn)行運(yùn)算,在JDK的原碼中大量使用了位運(yùn)算,
以下是截取Integer類的numberofLeadingZeros方法

@HotSpotIntrinsicCandidatepublic static int numberOfLeadingZeros(int i) {// HD, Count leading 0'sif (i <= 0)return i == 0 ? 32 : 0;int n = 31;if (i >= 1 << 16) { n -= 16; i >>>= 16; }if (i >= 1 << 8) { n -= 8; i >>>= 8; }if (i >= 1 << 4) { n -= 4; i >>>= 4; }if (i >= 1 << 2) { n -= 2; i >>>= 2; }return n - (i >>> 1);}

位運(yùn)算符操作的都是整數(shù)類型,因?yàn)槭腔诙M(jìn)制運(yùn)算,其運(yùn)行效率高。
在日常開發(fā)中幾乎不會使用到位運(yùn)算,但是后期會閱讀大量JDK源碼,了解底層實(shí)現(xiàn)機(jī)制,因此必須掌握位運(yùn)算符的基本使用。

Java中支持的位運(yùn)算符有如下幾種:

  • 左移(<<): 左移N位相當(dāng)于乘以2的n次方,空位補(bǔ)0,被移除的高位丟棄,空缺位補(bǔ)0

  • 右移(>>):右移N位相當(dāng)于除以2的n次方,被移位的二進(jìn)制最高位是0,右移后,空缺位補(bǔ)0,最高位是1,最高位補(bǔ)1

  • 無符號右移(>>>):不管最高位的符號位,右移N位相當(dāng)于除以2的N次方,被移位的二進(jìn)制最高位無論是0還是1,空缺位都補(bǔ)0

  • 按位與(&):只有&兩邊都是1,結(jié)果是1,否則就是0

  • 按位或(|):只要|兩邊都是0,結(jié)果是0,否則就是1

  • 按位亦或(^):相同的二進(jìn)制位進(jìn)行亦或運(yùn)算,結(jié)果是0,不相同的二進(jìn)制位運(yùn)算結(jié)果是1

  • 取反運(yùn)算(~):無論正負(fù)數(shù)取反運(yùn)算,各二進(jìn)制位按照補(bǔ)碼取反

  • &,|,在操作布爾類型的時候表示為邏輯與、邏輯或、邏輯亦或,&、|、在操作整數(shù)的時候表示為按位與與按位或、按位亦或。

左移運(yùn)算

package net.ittimeline.java.core.operator.bit;/*** 左移運(yùn)算** @author liuguanglei 18601767221@163.com* @create 2019-08-03 16:26* @website www.ittimeline.net* @since JDK11.03*/ public class BitLeftMoveTest {public static void main(String[] args) {//8的二進(jìn)制表示為// 0000 0000 0000 0000 0000 0000 0000 1000int number=8;//因?yàn)?是正數(shù),左移動2位,右邊補(bǔ)上0,相當(dāng)于乘以2的兩次方 也就是乘以4// 0000 0000 0000 0000 0000 0000 0010 0000number=number<<2;System.out.println("8<<2 ="+number);/*** 在進(jìn)行移位運(yùn)算時需要考慮數(shù)據(jù)越界的問題*/int value=21;// 0000 0000 0000 0000 0000 0000 0101 0100//左邊移動26位//101 0100 0000 0000 0000 0000 0000 0000 0//最高位1 表示結(jié)果為負(fù)數(shù)System.out.println("21<<26 = "+(value<<26));} }

使用左移計(jì)算2*16的結(jié)果

package net.ittimeline.java.core.operator.bit;/*** 使用左移計(jì)算2*16** @author liuguanglei 18601767221@163.com* @create 2019-08-04 17:36* @website www.ittimeline.net* @since JDK11.03*/ public class BitLeftMoveArithmetic {public static void main(String[] args) {int number=2;//2 * 16 用左移就是2左移4位int result=number<<4;System.out.println("2*16="+result);} }

右移運(yùn)算

package net.ittimeline.java.core.operator.bit;/*** 右移運(yùn)算** @author liuguanglei 18601767221@163.com* @create 2019-08-03 16:45* @website www.ittimeline.net* @since JDK11.03*/ public class BitRightMoveTest {public static void main(String[] args) {//0000 0000 0000 0000 0000 0000 0001 0000int number=16;//右移N位,相當(dāng)于除以2的N次方 16/4 結(jié)果是4//00 0000 0000 0000 0000 0000 0000 0001 00number=number>>2;System.out.println("16 >> 2 = "+(number));number=-16;// -16/4 結(jié)果是-4number=number>>2;System.out.println("-16 >> 2 ="+(number));} }

按位與、按位或、按位亦或、按位非運(yùn)算

package net.ittimeline.java.core.operator.bit;/*** 按位運(yùn)算符* & 兩邊都是1,結(jié)果為1* |* ^* @author liuguanglei 18601767221@163.com* @create 2019-08-03 17:22* @website www.ittimeline.net* @since JDK11.03*/ public class BitAndOrXor {public static void main(String[] args) {/*** 5的二進(jìn)制表示方式為 0000 0000 0000 0000 0000 0000 0000 0101* 9的二進(jìn)制方式表示為 0000 0000 0000 0000 0000 0000 0000 1001** 0101&1001 =0001 因此 5&9的結(jié)果是1* 0101|1001 = 1101 因此 5|9的結(jié)果是13* 0101^1001 = 1100 因此 5^9的結(jié)果是12* 9 ->0000 0000 0000 0000 0000 0000 0000 1001* ~9 1111 1111 1111 1111 1111 1111 1111 0110 原碼* 1000 0000 0000 0000 0000 0000 0000 1001 反碼* 1000 0000 0000 0000 0000 0000 0000 1010 補(bǔ)碼* ~9 最終的結(jié)果是-10***/System.out.println("5&9 = "+(5&9));System.out.println("5|9 = "+(5|9));System.out.println("5^9 = "+(5^9));System.out.println("~9 = "+(~9));System.out.println(Integer.toBinaryString(-10));} }

有符號左移

package net.ittimeline.java.core.operator.bit;import static java.lang.System.out;/*** 有符號右移** @author liuguanglei 18601767221@163.com* @create 2019-07-30 16:23* @website www.ittimeline.net* @since JDK11.03*/ public class SignedRightShift {public static void main(String[] args) {int i = 0x80000000;out.println(Integer.toBinaryString(i));//等價于i=i>>1i >>= 1;out.println(Integer.toBinaryString(i));i >>= 1;out.println(Integer.toBinaryString(i));i >>= 1;out.println(Integer.toBinaryString(i));i >>= 1;out.println(Integer.toBinaryString(i));i >>= 1;out.println(Integer.toBinaryString(i));i >>= 1;out.println(Integer.toBinaryString(i));i >>= 1;out.println(Integer.toBinaryString(i));i >>= 1;out.println(Integer.toBinaryString(i));i >>= 1;out.println(Integer.toBinaryString(i));i >>= 1;out.println(Integer.toBinaryString(i));i >>= 1;out.println(Integer.toBinaryString(i));i >>= 1;out.println(Integer.toBinaryString(i));i >>= 1;out.println(Integer.toBinaryString(i));i >>= 1;out.println(Integer.toBinaryString(i));i >>= 1;out.println(Integer.toBinaryString(i));i >>= 1;out.println(Integer.toBinaryString(i));i >>= 1;out.println(Integer.toBinaryString(i));out.println(Integer.toBinaryString(i));out.println(Integer.toBinaryString(i));out.println(Integer.toBinaryString(i));out.println(Integer.toBinaryString(i));out.println(Integer.toBinaryString(i));out.println(Integer.toBinaryString(i));out.println(Integer.toBinaryString(i));out.println(Integer.toBinaryString(i));out.println(Integer.toBinaryString(i));out.println(Integer.toBinaryString(i));out.println(Integer.toBinaryString(i));out.println(Integer.toBinaryString(i));out.println(Integer.toBinaryString(i));out.println(Integer.toBinaryString(i));} }

無符號右移

package net.ittimeline.java.core.operator.bit;import static java.lang.System.out;/*** 無符號右移** @author liuguanglei 18601767221@163.com* @create 2019-07-30 16:33* @website www.ittimeline.net* @since JDK11.03*/ public class UnsignedRightShift {public static void main(String[] args) {int i = -1 << 1;out.println(Integer.toBinaryString(i));i >>>= 1;out.println(Integer.toBinaryString(i));i >>>= 1;out.println(Integer.toBinaryString(i));i >>>= 1;out.println(Integer.toBinaryString(i));i >>>= 1;out.println(Integer.toBinaryString(i));i >>>= 1;out.println(Integer.toBinaryString(i));i >>>= 1;out.println(Integer.toBinaryString(i));i >>>= 1;out.println(Integer.toBinaryString(i));i >>>= 1;out.println(Integer.toBinaryString(i));i >>>= 1;out.println(Integer.toBinaryString(i));i >>>= 1;out.println(Integer.toBinaryString(i));i >>>= 1;out.println(Integer.toBinaryString(i));i >>>= 1;out.println(Integer.toBinaryString(i));i >>>= 1;out.println(Integer.toBinaryString(i));i >>>= 1;out.println(Integer.toBinaryString(i));i >>>= 1;out.println(Integer.toBinaryString(i));i >>>= 1;out.println(Integer.toBinaryString(i));i >>>= 1;out.println(Integer.toBinaryString(i));i >>>= 1;out.println(Integer.toBinaryString(i));i >>>= 1;out.println(Integer.toBinaryString(i));i >>>= 1;out.println(Integer.toBinaryString(i));i >>>= 1;out.println(Integer.toBinaryString(i));i >>>= 1;out.println(Integer.toBinaryString(i));i >>>= 1;i >>>= 1;i >>>= 1;i >>>= 1;i >>>= 1;i >>>= 1;i >>>= 1;i >>>= 1;i >>>= 1;out.println(Integer.toBinaryString(i));out.println(Integer.toBinaryString(i));out.println(Integer.toBinaryString(i));out.println(Integer.toBinaryString(i));out.println(Integer.toBinaryString(i));out.println(Integer.toBinaryString(i));out.println(Integer.toBinaryString(i));out.println(Integer.toBinaryString(i));out.println(Integer.toBinaryString(i));} }

使用亦或運(yùn)算實(shí)現(xiàn)變量的交換

package net.ittimeline.java.core.operator.bit;/** 使用亦或因運(yùn)算實(shí)現(xiàn)變量交換* @author liuguanglei 18601767221@163.com* @create 2019-08-04 17:11* @website www.ittimeline.net* @since JDK11.03*/ public class BitXorVariableSwap {public static void main(String[] args) {int left=10;int right=20;System.out.println("變量交換之前 left = "+left+" right = "+right);left=left^right;right=left^right;left=left^right;System.out.println("變量交換之后 left = "+left+" right = "+right);} }

轉(zhuǎn)載于:https://www.cnblogs.com/ittimeline/p/11295963.html

總結(jié)

以上是生活随笔為你收集整理的Java架构师成长之道之Java数据计算的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

亚洲特级片 | 三上悠亚一区二区在线观看 | 色综合在 | 久久久精品高清 | 九九电影在线 | 99视频在线 | 国产手机精品视频 | 日韩免费在线观看视频 | 日本中文字幕系列 | 欧美日韩69 | 蜜臀精品久久久久久蜜臀 | 500部大龄熟乱视频使用方法 | 午夜精品成人一区二区三区 | 91亚洲国产成人久久精品网站 | 亚洲精品视频在线 | 永久免费的av电影 | 国产香蕉97碰碰久久人人 | 麻豆91小视频 | 国产亚洲精品日韩在线tv黄 | 国产亲近乱来精品 | 在线看片成人 | 国产精品免费一区二区 | 一区中文字幕在线观看 | 成人久久免费视频 | 九九久久精品视频 | 国产一区二区在线免费观看 | 91新人在线观看 | 亚洲久草在线视频 | 国产a级片免费观看 | 97超碰伊人 | 中午字幕在线 | 97色资源 | 欧美狠狠操 | 成人欧美亚洲 | 五月婷婷欧美 | 亚洲激情av| 一区二区三区动漫 | 国产一级片一区二区三区 | 最新色站 | 99久热 | 成人网中文字幕 | 成人在线视频一区 | 国产伦精品一区二区三区无广告 | 狠狠色丁香婷婷综合久小说久 | 一区二区视频网站 | 久艹视频在线免费观看 | 天堂av最新网址 | 久久96国产精品久久99漫画 | 国产成人一区二区三区免费看 | av在线永久免费观看 | 97精品国产97久久久久久粉红 | 亚洲国产欧美在线看片xxoo | 天天综合网 天天 | 久久不色 | 久久国产免费视频 | 免费黄色av | 制服丝袜在线 | 五月天色综合 | 久久免费视频4 | 亚洲欧洲av | av在线最新 | 欧美日韩高清一区二区 | 国产一区二区在线免费播放 | 亚洲欧洲精品一区 | 国产男女无遮挡猛进猛出在线观看 | 蜜臀精品久久久久久蜜臀 | 天天色中文 | 三级av免费看| av成人在线观看 | 丁香视频免费观看 | 亚洲精品国精品久久99热 | 日韩毛片在线播放 | ,午夜性刺激免费看视频 | 天天射天天操天天干 | 午夜av大片 | 免费男女羞羞的视频网站中文字幕 | 日韩高清二区 | 91精品国产福利 | 麻豆国产精品永久免费视频 | 国产韩国日本高清视频 | 日韩三级免费 | 日本一区二区不卡高清 | 国产成人精品在线观看 | 久久久国产网站 | 色在线网| 99999精品视频 | 91久久精品日日躁夜夜躁国产 | 天天操天天射天天添 | 又黄又网站| 91久久黄色 | 免费欧美 | 91视频链接 | 午夜精品一区二区三区在线播放 | 在线三级av | 亚洲精品欧美视频 | 欧美一区二区伦理片 | 中文字幕一区二区三区四区在线视频 | 日韩手机在线 | 又黄又爽又刺激的视频 | 亚洲一区二区三区精品在线观看 | 永久精品视频 | 不卡视频在线看 | 中文字幕av在线不卡 | 91社区国产高清 | 欧美午夜视频在线 | www黄色软件 | 久久伊人爱 | 久久久久久影视 | 久草在线免 | 国产黄色免费看 | 久久国内视频 | 久久艹欧美 | 成人午夜网 | 久草在线观看视频免费 | av在线免费播放网站 | av先锋中文字幕 | 99在线热播 | 午夜久久久久久久 | 99r在线播放 | 国产精品福利视频 | 超碰97在线资源 | 欧美午夜精品久久久久久孕妇 | 亚洲激情一区二区三区 | 天堂中文在线播放 | 992tv人人草| 91在线九色 | 亚洲免费av在线 | 色婷婷丁香 | 在线免费av电影 | 2023年中文无字幕文字 | 99久久激情视频 | 一本到在线 | 欧美男同网站 | 精品欧美乱码久久久久久 | 久久综合久久综合九色 | 波多野结依在线观看 | 久久99欧美 | 国产精品成人免费精品自在线观看 | 日日躁夜夜躁aaaaxxxx | 福利视频网站 | 日韩在线播放欧美字幕 | 久久综合加勒比 | 国产精国产精品 | 黄色一级在线视频 | 色偷偷88欧美精品久久久 | 91天堂在线观看 | 97色婷婷 | 国产精品福利av | 国产精品免费一区二区三区 | 婷婷色5月 | 国产精品久久久久久久7电影 | 在线观看视频在线 | 国产美女精品 | 免费日韩电影 | 久久伦理影院 | 成人国产精品久久久久久亚洲 | 999久久国产精品免费观看网站 | 国产精品对白一区二区三区 | 在线观看911视频 | 在线91视频 | 日韩特级黄色片 | 久久综合导航 | 久热色超碰 | 99久久日韩精品视频免费在线观看 | 国产亚洲va综合人人澡精品 | 国产精品久久久久9999 | 麻豆一级视频 | 国产成人av网址 | 麻豆国产精品一区二区三区 | 麻豆一区在线观看 | 五月婷婷在线观看视频 | 久久久国产精品一区二区中文 | 久久在线看 | 在线 高清 中文字幕 | 国产亚洲精品久久久久久 | 黄色的网站在线 | 日日碰狠狠添天天爽超碰97久久 | 在线国产激情视频 | 国产精品综合久久久久 | 久久这里只精品 | 麻豆久久久 | 国产一级视频在线 | 亚洲国产人午在线一二区 | 国产无套精品久久久久久 | 天天射天天干天天 | 成人啪啪18免费游戏链接 | 欧美精品在线一区 | 成人免费在线观看av | 狠狠精品| 99免费视频 | 婷婷色影院 | 色姑娘综合网 | 亚洲 成人 一区 | 97精品国产一二三产区 | 欧洲精品在线视频 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 欧美日韩中字 | 中文字幕色在线 | 综合天堂av久久久久久久 | av字幕在线 | 国产一区免费观看 | 在线免费黄色av | 久草视频首页 | 麻豆免费在线视频 | 五月婷香蕉久色在线看 | 91在线观看欧美日韩 | 天天操天天干天天综合网 | 国产精品久久久久久久久费观看 | 日本性久久 | 国产精品视频不卡 | 成人黄色在线 | a级国产乱理论片在线观看 特级毛片在线观看 | 右手影院亚洲欧美 | 999热视频 | 91资源在线观看 | 在线观看国产 | 九九九九精品九九九九 | 久久伊人婷婷 | 激情亚洲综合在线 | 久久精彩免费视频 | 在线观看视频精品 | 亚洲影音先锋 | 毛片网免费 | 96亚洲精品久久 | 亚洲网久久 | 美女性爽视频国产免费app | 成人国产网站 | 久久视频这里有精品 | 成人av.com| 中文字幕一区二区三区在线视频 | 热九九精品 | 婷婷久久一区二区三区 | 亚洲黄色免费观看 | 国产18精品乱码免费看 | 91成人精品国产刺激国语对白 | 色综合久久久久 | 久草在线免费资源 | 91精品在线视频 | 欧美国产亚洲精品久久久8v | 婷婷久久国产 | 久99久在线视频 | 日本精品一区二区 | 欧美一区二视频在线免费观看 | 亚洲成人精品久久 | 99久久综合精品五月天 | 欧美精品被 | 免费观看特级毛片 | 国产在线视频导航 | 久久国产精品一区二区三区 | 久久久综合电影 | 黄色aa久久 | 91av大全| 国产亚洲综合在线 | 人人狠狠综合久久亚洲婷 | 少妇激情久久 | 国产精品门事件 | 狠狠的日| 久久久久亚洲国产精品 | 激情五月看片 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 2019免费中文字幕 | 在线观看韩日电影免费 | 天天伊人网| 一二三区av | 九色自拍视频 | 中文字幕av一区二区三区四区 | 国产高清视频在线免费观看 | 久久黄色片子 | 在线亚洲天堂网 | 国产在线999 | 亚洲精品视频久久 | 天天操天天综合网 | 久久久久国产精品免费网站 | 国产无遮挡又黄又爽馒头漫画 | av在线电影播放 | 日韩在线国产 | 欧美孕妇与黑人孕交 | 国产精品毛片久久久久久久久久99999999 | 久久亚洲私人国产精品 | 免费观看性生活大片 | 成人中文字幕+乱码+中文字幕 | 亚洲精品久久久久久久蜜桃 | 婷婷99| 天天干天天插 | 精品伊人久久久 | 久久久91精品国产一区二区三区 | 一区 二区 精品 | 精品国产一区二区三区噜噜噜 | av大全在线播放 | 国产精品av免费 | 99久久精品国产一区二区三区 | 色橹橹欧美在线观看视频高清 | 国产欧美久久久精品影院 | 中文字幕资源站 | 亚洲国产视频直播 | 97超碰超碰 | 美女国内精品自产拍在线播放 | 丁香花在线视频观看免费 | 中文字幕资源网 国产 | 亚洲人毛片 | 中文乱码视频在线观看 | 毛片网站在线 | 亚洲欧美乱综合图片区小说区 | 在线国产视频一区 | 久久精品电影 | 久久久久婷 | 欧美大片在线看免费观看 | 黄p在线播放 | 国产精品美女网站 | 日韩成人高清在线 | 久久这里只有精品首页 | 一区二区不卡高清 | 久久久久亚洲精品国产 | 欧美日本国产在线观看 | 亚洲精品网址在线观看 | 激情中文在线 | 黄色视屏免费在线观看 | 亚洲乱码一区 | 日日夜夜天天久久 | 免费一级特黄毛大片 | 亚洲精品欧美视频 | 亚洲第一区精品 | 国产精品久久久久久av | 97在线精品国自产拍中文 | 视频在线日韩 | 国产精品午夜免费福利视频 | 欧美成人tv | 免费av大片 | 五月婷婷一区 | 国产精品久久久久久久久久不蜜月 | 国产精品18毛片一区二区 | 麻豆视频免费入口 | 国产成人精品一区二区三区网站观看 | 国产精品久久久久久久久久了 | 国产裸体视频bbbbb | 女人18片毛片90分钟 | 亚洲少妇激情 | 久久婷综合 | 伊人国产在线播放 | 日韩视频欧美视频 | 日韩中字在线观看 | 久久久久国产精品视频 | 日日夜夜艹 | 亚洲五月花 | 九九视频免费观看视频精品 | 久久99久久99精品免视看婷婷 | 手机av永久免费 | 国产视频 亚洲视频 | 国产亚洲视频中文字幕视频 | 国产黑丝一区二区三区 | 色婷婷a| 久久一本综合 | 国产又粗又硬又爽视频 | 成人福利在线观看 | 九九在线免费视频 | 91色蜜桃 | 亚州视频在线 | 国产黄色美女 | 狠狠干狠狠色 | 1024在线看片| 一级黄色视屏 | 亚洲.www| 亚洲日日日 | 精品国内自产拍在线观看视频 | 欧美日韩亚洲精品在线 | 久久精品黄 | 日韩v在线 | 蜜臀av夜夜澡人人爽人人桃色 | 久久99久久精品 | av一级二级| 97超视频在线观看 | 日本精品一区二区三区在线播放视频 | 波多野结衣一区二区 | 免费男女网站 | 日狠狠| 国产精品理论在线观看 | 亚洲另类xxxx | 97成人资源站 | 探花视频在线观看 | 国产视频在线观看一区二区 | 天天射综合网视频 | 丁香在线 | 国产成人在线一区 | 国产精品一区二区久久久 | 99久久影院 | 成年人三级网站 | 欧美日在线 | 中文字幕 国产精品 | 97在线观看免费高清 | 国产小视频在线免费观看视频 | 欧美精品在线观看 | 五月天国产精品 | av中文字幕av| 久久综合久久综合久久综合 | 日韩视频一区二区三区在线播放免费观看 | 黄色av网站在线免费观看 | 天天操夜夜操天天射 | 日韩精品一区电影 | 国产精品va在线观看入 | 精品一区欧美 | 亚洲视频电影在线 | 国产精品毛片久久久久久久久久99999999 | a级免费观看 | 亚洲情影院 | 看片网站黄 | 91麻豆精品国产91 | 欧美999| 国产麻豆视频在线观看 | 国产午夜精品一区二区三区 | 天天插天天干天天操 | 国产精品九九热 | 午夜12点 | 激情综合网在线观看 | 99色亚洲| 伊人开心激情 | 热久久视久久精品18亚洲精品 | 久久综合色婷婷 | 日韩av一区二区在线影视 | 99免费看片 | 91九色porn在线资源 | 免费黄色网止 | 国产在线观看高清视频 | 亚洲精品97| 欧美午夜久久 | 婷婷色影院 | 久久伊人综合 | 精品在线二区 | 久草网首页| 久操久| 久久久视屏 | 麻豆传媒一区二区 | 黄色毛片在线观看 | 国产精品久久久一区二区 | 亚洲欧美色婷婷 | 日韩在线资源 | 日韩欧美xxxx | 9999在线 | 欧美a视频 | 日韩精品免费一线在线观看 | 亚洲日韩精品欧美一区二区 | 全黄网站| 日p视频在线观看 | 99视频免费观看 | 日日干网| 99精品免费在线观看 | 免费精品在线 | 欧美一性一交一乱 | 最新av免费| 欧美一二三区在线观看 | 午夜免费电影院 | 久久久久久久久久久电影 | 国产精品嫩草影院9 | 天天爱天天色 | 高潮久久久久久 | 国产精品乱码高清在线看 | 91中文字幕永久在线 | 99精品欧美一区二区三区 | 日韩视频区 | 国产精品美女久久久免费 | 韩国av免费看 | 国产日产精品一区二区三区四区 | 韩国精品一区二区三区六区色诱 | 欧美性网站 | 久久精品—区二区三区 | 国产白浆在线观看 | 国产视频精品久久 | 久久亚洲人| 国产免费成人av | 国产精美视频 | 日日碰狠狠躁久久躁综合网 | 日韩毛片在线免费观看 | 久久久久久久免费 | 黄色av高清 | 最新av在线播放 | 91精品国产欧美一区二区成人 | 午夜视频黄 | 在线视频免费观看 | 欧美日韩在线播放一区 | 久久久久久久福利 | av免费在线观 | 日本久久成人中文字幕电影 | 97超碰人人干 | 亚洲美女视频网 | 免费看黄的| 久久99热久久99精品 | 91视频91蝌蚪| 国产69精品久久99的直播节目 | 欧美午夜激情网 | www.国产精品 | ,午夜性刺激免费看视频 | 五月婷婷中文字幕 | 精品免费久久久久 | 亚洲欧美色婷婷 | 久久久久国产一区二区三区四区 | 欧美一区中文字幕 | 日韩精品免费在线观看视频 | 成人在线观看影院 | 国产最新福利 | 99re在线视频观看 | 91av中文| 久久激情综合 | 亚洲视频2 | 五月婷婷黄色 | 国产精品视频免费 | 精品国产一区二区三区久久久久久 | 91在线网址 | 中文字幕在线视频一区二区 | 久久精品五月 | 国产中文字幕视频在线观看 | 精品国产一区二区三区不卡 | 天天曰夜夜操 | 中国一级特黄毛片大片久久 | 日本久久久久久久久 | 国产精品99久久久久久有的能看 | 国产香蕉视频在线播放 | 免费福利视频导航 | 美女视频免费精品 | 久久久久久久福利 | av成人亚洲| 美女久久网站 | 亚洲精品mv在线观看 | 色婷婷综合久久久 | 国产成人精品av | 国产又粗又猛又色又黄网站 | 免费一级特黄毛大片 | 99久久婷婷国产精品综合 | 麻豆网站免费观看 | 99re视频在线观看 | 日日夜夜骑 | 精品视频在线免费 | 国产福利资源 | 三级av中文字幕 | 青草视频网 | 久久九精品| 青青看片 | 国产偷国产偷亚洲清高 | 人人爽人人澡人人添人人人人 | 激情欧美丁香 | 97精品伊人| 亚洲综合导航 | 美女精品网站 | 国产馆在线播放 | 日韩在线观看视频网站 | 国产女v资源在线观看 | 日本中文不卡 | 亚洲黄色激情小说 | 久久久久久国产精品亚洲78 | 久久久电影网站 | 久久精品成人欧美大片古装 | 久久国产精品免费视频 | 免费视频一二三区 | 国产日韩精品一区二区在线观看播放 | 黄色av一区二区 | 九九九九精品九九九九 | 亚洲精品动漫成人3d无尽在线 | 亚洲在线视频观看 | 国产精品粉嫩 | 久久www免费视频 | 综合网色 | 丁香九月激情综合 | 五月开心激情网 | 免费精品视频在线 | 久久久精品久久 | 夜夜摸夜夜爽 | 欧美日韩一区二区三区视频 | 五月天天天操 | 人人讲| 特级xxxxx欧美 | 99精品欧美一区二区三区 | 欧美国产视频在线 | aaa免费毛片| 五月婷婷六月综合 | 中文在线a天堂 | 97在线精品国自产拍中文 | 欧美999| 九色精品免费永久在线 | 亚洲精品午夜国产va久久成人 | 国产福利一区二区三区视频 | 在线免费观看黄网站 | 免费美女久久99 | 日韩女同一区二区三区在线观看 | 国产一区在线观看免费 | 久久久久久伊人 | 日本公乱妇视频 | 韩日电影在线观看 | 亚洲激精日韩激精欧美精品 | 国产在线黄色 | 亚洲综合国产精品 | www.色婷婷.com| 欧美一区二区在线免费观看 | 少妇性bbb搡bbb爽爽爽欧美 | 黄色在线看网站 | 国产九九精品视频 | 亚洲japanese制服美女 | 超碰97国产| 国产精品高潮呻吟久久久久 | 久久福利综合 | 97手机电影网 | 久久久在线免费观看 | 亚洲va欧美va | 中文在线8新资源库 | 九九免费精品视频在线观看 | 五月婷婷狠狠 | 亚洲视频中文 | 国产在线精品二区 | 国产成人777777 | 国产99在线免费 | 成人h动漫精品一区二 | 亚洲欧洲中文日韩久久av乱码 | 在线观看亚洲电影 | 亚洲成人软件 | 国产精品亚洲成人 | 久久欧美在线电影 | 中文字幕刺激在线 | 国产精品手机在线 | a级国产乱理论片在线观看 伊人宗合网 | 精品久久久久久久久久久院品网 | 免费观看一级 | 在线观看中文字幕亚洲 | 成人av在线网| 91久久精品一区二区二区 | 国产成人一区二区三区久久精品 | 日韩中文字幕亚洲一区二区va在线 | 五月婷婷开心中文字幕 | 午夜手机电影 | 日韩av电影手机在线观看 | 日韩av男人的天堂 | 操操操人人人 | 一区二区三区在线播放 | 808电影免费观看三年 | 久久毛片高清国产 | 久久国产精品免费一区 | 欧美性黄网官网 | 久久久久北条麻妃免费看 | 久久无码av一区二区三区电影网 | 亚洲狠狠婷婷 | 国产午夜精品一区二区三区 | 麻豆视频免费播放 | 久久久影片| 日韩精品在线观看视频 | 操操操夜夜操 | 天天看天天干天天操 | 久久国语露脸国产精品电影 | 99精品国产在热久久下载 | 黄色毛片在线观看 | 中文乱幕日产无线码1区 | 久久婷婷国产 | 在线观看视频91 | 色99在线| 亚洲精品免费在线播放 | 91电影福利 | 色吊丝av中文字幕 | 美女国产在线 | 国产情侣一区 | 午夜精品久久久久久99热明星 | 久久久69| av电影在线免费观看 | 国产麻豆剧果冻传媒视频播放量 | 手机在线看片日韩 | 成人看片 | 色婷婷激情电影 | 成年人免费av| 天天色 天天 | www.久草.com| 91精品免费在线 | 看片一区二区三区 | 米奇狠狠狠888 | 成年人在线观看视频免费 | 久久综合九色 | 91九色视频国产 | 狠狠干天天色 | 在线观看视频在线观看 | 9999精品| 国产又粗又硬又爽的视频 | 日本在线观看一区二区三区 | 4hu视频| 五月花婷婷 | 91人人在线 | 在线国产一区二区三区 | 精品免费久久久久久 | 久久久蜜桃 | 日本黄色免费电影网站 | 国产精品美女久久久久久2018 | 97电院网手机版 | 人人插人人看 | 久久久久久久久毛片 | 久久婷婷丁香 | 久久久久久久久久久电影 | 少妇自拍av| 婷婷午夜激情 | 久久久久北条麻妃免费看 | 超碰国产在线播放 | 久久欧美在线电影 | 亚洲另类视频在线 | 亚洲a色| 91精品国产麻豆国产自产影视 | 激情www| 国产无限资源在线观看 | 一区三区在线欧 | 毛片永久免费 | 欧美国产大片 | 日一日操一操 | 久久国产经典视频 | 麻豆视频一区二区 | 国产视频观看 | 成人网色| 狠狠操狠狠插 | 日本三级久久久 | 国产一区二区精品久久91 | 免费在线观看污 | 久久欧美精品 | 国产字幕av | 在线韩国电影免费观影完整版 | 91天天操 | 午夜三级理论 | 国产精品久久久久久久久婷婷 | 日韩精品中文字幕在线观看 | 手机看片99| 亚洲成人黄色 | 日韩在线播放欧美字幕 | 中文字幕av影院 | 黄视频网站大全 | 国产成人精品电影久久久 | 国产精品高潮呻吟久久久久 | 日韩三级视频在线观看 | 国产在线观看一区 | 国产成人一区二区三区 | 亚洲一级影院 | 操操操操网 | 日韩城人在线 | av日韩不卡 | 特黄免费av | www黄色软件 | 国产精品一区二区62 | a在线观看免费视频 | 99在线播放| 日韩中文字幕亚洲一区二区va在线 | 99视频播放| 国产日韩欧美自拍 | 中文字幕免费播放 | 奇米影视777四色米奇影院 | 国产一二三精品 | av在线电影网站 | 亚洲爱爱视频 | 国产精品久久久久久久久久了 | 亚洲人成人99网站 | 欧美久久久久久久久中文字幕 | 黄污在线看 | 日韩免费观看高清 | 国产日韩av在线 | 五月天久久婷 | 久久精彩免费视频 | 色视频在线免费观看 | 超黄视频网站 | 亚洲婷婷在线视频 | av黄网站| 9在线观看免费高清完整 | jizzjizzjizz亚洲| 在线播放91 | 欧美一级免费黄色片 | 国产免费亚洲 | 亚洲码国产日韩欧美高潮在线播放 | www.伊人色.com | 国产在线不卡视频 | 精品国产亚洲一区二区麻豆 | 不卡的一区二区三区 | 久久黄色小说 | a级免费观看| 在线激情网 | 国产一区二区精品在线 | 欧美成人在线免费观看 | 亚洲日本va在线观看 | 国产成人精品一区一区一区 | 麻豆国产网站入口 | 国产91精品在线播放 | 婷婷精品在线视频 | 精品不卡视频 | 精品久久五月天 | 国产精品亚 | 国产一级二级视频 | 久久久综合色 | 免费av黄色| 天天插天天狠 | 操处女逼| 亚洲最大色 | 日日干美女 | 不卡国产在线 | 国产一级片视频 | 麻豆视频免费网站 | 91超级碰| 国产在线播放一区二区三区 | 午夜精品久久久久久中宇69 | 日本久久中文 | 欧美五月婷婷 | 中文字幕免费高清在线观看 | 91精品高清| 精品国产一区二区三区四区vr | 97超级碰碰碰碰久久久久 | 天天干天天操天天搞 | 在线99热 | 久久99免费视频 | 婷婷五月情 | 8x成人免费视频 | 一级片视频在线 | 国产视频日韩 | 手机在线观看国产精品 | 看毛片网站 | 在线观看亚洲专区 | 久久久久高清 | 九九久久精品视频 | 久久欧美精品 | 久久色中文字幕 | 免费黄色网址大全 | 麻豆国产视频下载 | 中国一级片免费看 | 成年人国产精品 | 久久综合视频网 | 99国产一区二区三精品乱码 | 国产精品理论在线观看 | 午夜a区 | 日本午夜在线亚洲.国产 | 久久视频在线视频 | 香蕉视频在线播放 | 亚洲va欧美va人人爽 | 成年人在线 | 国产在线毛片 | 在线免费观看黄色 | 久久美女电影 | 一区免费在线 | 中国老女人日b | 国产精品一区二区av日韩在线 | 久草在线手机视频 | 五月婷婷综合在线观看 | 免费在线观看一区 | 亚洲精品在线视频 | 97视频免费在线看 | 国产正在播放 | 午夜国产在线 | 一区二区三区 中文字幕 | 少妇av片 | 精品国产视频在线 | av资源免费在线观看 | 久久精品一区二区三区视频 | 久久99精品久久久久久秒播蜜臀 | 免费日韩在线 | 欧美一区二区三区在线播放 | 亚洲电影图片小说 | 在线免费黄| 丁香电影小说免费视频观看 | 国产一区二区高清 | 91精品国产综合久久久久久久 | 欧美人人 | 96av视频 | 亚洲aⅴ乱码精品成人区 | 色婷婷狠| 狠狠插天天干 | 最近免费中文字幕mv在线视频3 | 天天操天天操 | 玖玖在线资源 | 国产精品九九九 | 在线亚洲人成电影网站色www | 久久图 | 欧美性猛片 | 国产精品激情在线观看 | 精品久久久久一区二区国产 | 开心丁香婷婷深爱五月 | 国产精品99久久久久久人免费 | 日韩理论在线 | 五月婷丁香网 | 国产精品久久久久久久久久久杏吧 | 天堂久色 | 日韩免费电影一区二区 | 精品国产aⅴ一区二区三区 在线直播av | 亚洲高清在线精品 | 日韩av中文字幕在线 | 亚洲日本中文字幕在线观看 | 久久久久日本精品一区二区三区 | 黄色毛片一级片 | 亚洲高清在线精品 | 九九热在线视频免费观看 | 99色网站| 久久精品这里精品 | 中文字幕4 | 国产精品porn | 天天干天天看 | 日韩91在线 | 伊人成人久久 | 五月天视频网站 | 久久字幕精品一区 | 免费观看一级成人毛片 | 色综合天天色综合 | 天天操狠狠操 | 国产精品mv在线观看 | 国产裸体bbb视频 | 麻豆视频免费在线 | 日韩久久一区二区 | 亚洲免费小视频 | 免费看国产一级片 | 欧美日韩超碰 | 日韩无在线 | 97精品超碰一区二区三区 | 国产精品白浆 | 久久久国产一区二区三区 | 男女视频国产 | 日韩精品资源 | 欧美午夜a | 日韩av网址在线 | 91精品视频网站 | 日本mv大片欧洲mv大片 | 亚洲欧洲精品一区 | 成人免费观看视频网站 | 午夜国产福利在线观看 | 激情丁香5月 | 欧美日韩国产伦理 | 国产区免费 | 国产成人三级在线播放 | 五月婷婷一区二区三区 | 久久 亚洲视频 | 色婷婷导航 | 麻花天美星空视频 | 日日干激情五月 | 中文字幕传媒 | 成人亚洲精品久久久久 | 蜜臀久久99精品久久久久久网站 | 中文字幕在线观看日本 | 成人av电影免费 | 成人在线观看影院 | 国产精品美女在线 | 探花视频免费在线观看 | 国产精品毛片久久久久久久久久99999999 | 91色偷偷| www久久精品 | 国产视频精品网 | 中文字幕在线视频一区二区 | 久久精品久久久久电影 | 777久久久 | 日韩精品高清不卡 | 国产精品9999久久久久仙踪林 | 久久国产精品99久久人人澡 | 日韩欧美一区二区三区在线 | 超碰精品在线 | 亚洲精品456在线播放 | 国产精品一区二区三区久久 | 久久国产精品偷 | 久久九九久久精品 | 婷婷免费视频 | 午夜视频一区二区 | 成人av片在线观看 | 成人丁香花 | 婷婷亚洲综合五月天小说 | 日本3级在线观看 | 国产精品18久久久久久不卡孕妇 | 日本女人的性生活视频 | 人九九精品 | 欧美综合色在线图区 | 91人人人| 在线激情影院一区 | 日韩电影在线观看一区二区 | 天天综合人人 | 五月天九九 | 日韩一区二区三区高清免费看看 | 在线视频精品播放 | 精品国产伦一区二区三区观看方式 | 性色av免费在线观看 | 中文字幕av免费观看 | 玖玖在线资源 | 二区视频在线 | 麻豆一区二区 | 青青五月天 | 婷婷丁香久久五月婷婷 | 99久久激情 | 香蕉视频国产在线观看 | 亚洲天堂网在线视频观看 | 欧美激情精品 | 国内精品久久久久影院日本资源 | 日韩亚洲在线观看 | 成人久久网 | 永久免费观看视频 | 天海翼一区二区三区免费 | 91少妇精拍在线播放 | 91人人爽人人爽人人精88v | 久久久www成人免费毛片 | 天天色天天干天天 | av三级在线免费观看 | 99热高清| 2024av在线播放| 久久精品国产成人 | 一区二区三区不卡在线 | 亚洲精品xxx| 高潮毛片无遮挡高清免费 | 日本护士撒尿xxxx18 | 五月婷婷六月丁香在线观看 | 香蕉视频国产在线观看 | 国产91精品一区二区麻豆亚洲 | 国产视频在线观看一区二区 | 午夜久久福利影院 | 久草视频在 | 2019中文 |