99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實戰(zhàn)洞察。

Java SE基礎(chǔ)語法核心解析:從編譯運(yùn)行到變量、方法、數(shù)組與字符串

Java SE基礎(chǔ)語法核心解析:從編譯運(yùn)行到變量、方法、數(shù)組與字符串 做Java培訓(xùn)這些年我見過太多人拿到Java SE教材翻開第一章就開始背關(guān)鍵字、抄代碼然后在循環(huán)和數(shù)組上卡到懷疑人生。也有另一撥人覺得“基礎(chǔ)語法嘛不就是變量、if、for”隨便翻翻就去做項目和框架結(jié)果一寫就報錯一行日志都看不懂。我想先給一個反直覺的結(jié)論基礎(chǔ)語法這個階段真正拉開差距的從來不是“記住了多少關(guān)鍵字”而是“能不能把語法背后的執(zhí)行邏輯講清楚”。這篇Javase基礎(chǔ)語法篇我準(zhǔn)備按一條我認(rèn)為最高效的路徑來梳理先看整張地圖搞清楚基礎(chǔ)語法在整個Java學(xué)習(xí)里的位置然后把編譯運(yùn)行機(jī)制、變量與類型系統(tǒng)、運(yùn)算符與流程控制、方法數(shù)組字符串這幾個核心板塊逐個拆開每一部分附上實際寫代碼時的易錯點和經(jīng)驗讓你不只是“看懂”而是能直接上手用。適合零基礎(chǔ)開始學(xué)Java的人也適合那些學(xué)了一半覺得根基不牢、想回過頭來補(bǔ)漏的同學(xué)。1. 先搞清楚Java SE基礎(chǔ)語法到底包含哪些東西1.1 Java SE是什么和Java EE、框架這些概念別混淆很多新手打開招聘網(wǎng)站一看Java開發(fā)、Spring Boot、微服務(wù)、分布式……瞬間覺得自己要學(xué)的東西多到頭皮發(fā)麻。但無論外面?zhèn)鞯枚嗝葱鮆ava世界的底座永遠(yuǎn)只有一個——Java SE也就是Java Standard Edition標(biāo)準(zhǔn)版。Java SE定義了Java語言本身、核心類庫比如集合、IO、網(wǎng)絡(luò)和虛擬機(jī)運(yùn)行機(jī)制。你后面學(xué)的Java EE企業(yè)版也好Spring全家桶也罷本質(zhì)上都是站在Java SE肩膀上蓋樓。我經(jīng)常跟學(xué)生打一個比方Java SE相當(dāng)于你學(xué)開車時的交規(guī)和基礎(chǔ)駕駛技術(shù)框架和中間件相當(dāng)于上路的導(dǎo)航和輔助駕駛。交規(guī)沒搞明白導(dǎo)航再好也照樣會出事故?;A(chǔ)語法又是Java SE中最前端的部分它覆蓋了從“編寫第一行可執(zhí)行代碼”到“面向?qū)ο笾啊钡娜空Z言要素。具體拆開看就是下面這六大塊環(huán)境與運(yùn)行機(jī)制JDK安裝、編譯命令、JVM基本概念變量與數(shù)據(jù)類型基本類型、引用類型、類型轉(zhuǎn)換運(yùn)算符與表達(dá)式賦值、算術(shù)、關(guān)系、邏輯、位運(yùn)算流程控制條件判斷、循環(huán)、跳轉(zhuǎn)語句方法定義、參數(shù)傳遞、重載數(shù)組與字符串聲明、初始化、常用操作別小看這份清單它就是你后面寫任何Java程序的“最小語言集”。1.2 熱詞搜索背后的真實需求大家都在拿Java和其他語言對比我看了一下最近的搜索熱詞很有意思Javase基礎(chǔ)語法、Python基礎(chǔ)語法、C基礎(chǔ)語法、前端三件套基礎(chǔ)語法同時出現(xiàn)在榜單上。這說明很多人在入門學(xué)語言時都會面臨一個選擇到底該學(xué)哪門語言的語法Java和其他語言相比基礎(chǔ)語法層最大的特點就是——嚴(yán)謹(jǐn)、顯式、規(guī)矩多。比如同樣是打印“Hello”Python一行print(Hello)搞定Java必須寫一個類、一個main方法還要帶上System.out.println。我第一次從Python轉(zhuǎn)過來寫Java時覺得這也太啰嗦了。但等你寫過10萬行Java代碼后再回頭看會發(fā)現(xiàn)這種“啰嗦”恰恰是工程化的基石它讓代碼的結(jié)構(gòu)強(qiáng)制可見讓團(tuán)隊協(xié)作時每個人寫的代碼長得都差不多讓編譯器能在早期幫你揪出大量低級錯誤。所以學(xué)Java基礎(chǔ)語法心態(tài)上要過一道坎不要嫌它“重”要接受它“嚴(yán)”。C的語法比Java更靈活也更復(fù)雜Python上手更輕快但Java在類型安全和跨平臺生態(tài)上的平衡點到目前為止仍然沒有哪個語言能完全取代。1.3 為什么同樣是學(xué)語法有人一周上手有人一個月還懵我?guī)н^的學(xué)員里學(xué)基礎(chǔ)語法快的和慢的差距不在智商而在方法。學(xué)得快的通常干了兩件事。第一件事動手頻率非常高。不是看視頻背語法而是每學(xué)一個知識點立刻在IDE里寫三到五段驗證代碼把“書上說的”變成“我跑出來的”。第二件事強(qiáng)迫自己講原理。學(xué)完一個語法點能用自己的話解釋這個語法是怎么執(zhí)行的比如“變量是內(nèi)存里的一個盒子賦值是往盒子里放東西”“for循環(huán)是先判斷條件還是先執(zhí)行循環(huán)體”。但凡原理含糊后面寫程序一定會翻車——區(qū)別只是早晚?;A(chǔ)語法階段學(xué)得慢的普遍有個毛病只看不寫眼高手低。語法這東西沒有任何玄學(xué)代碼量上去了肌肉記憶建立了自然就熟了。這也是為什么在這篇里我會在每個板塊后面都強(qiáng)調(diào)“動手驗證什么”你照著做就行。2. 拆解Hello World背后的編譯運(yùn)行機(jī)制2.1 JDK、JRE、JVM三者到底誰包含誰很多入門教程一上來就讓你裝JDK然后讓你背“JDK包含JREJRE包含JVM”這三個名詞背完就沒了。但我要說這三個概念值得你多花十分鐘因為后面排查環(huán)境問題全靠它。JVMJava Virtual Machine是Java程序的運(yùn)行容器。所有字節(jié)碼.class文件都在JVM里執(zhí)行它負(fù)責(zé)把字節(jié)碼翻譯成當(dāng)前操作系統(tǒng)能懂的機(jī)器指令。Java之所以跨平臺靠的就是JVM——不同操作系統(tǒng)裝不同的JVM但跑的是同一份class文件。JREJava Runtime Environment是Java運(yùn)行環(huán)境包含JVM和Java核心類庫。只要你想在別人機(jī)器上運(yùn)行Java程序裝一個JRE就夠了。日常用的那些Java桌面工具大多只帶JRE。JDKJava Development Kit是Java開發(fā)工具包包含JRE、編譯器javac、打包工具jar、文檔生成工具javadoc等一系列開發(fā)工具。你要寫Java代碼必須裝JDK。一句話記憶寫代碼用JDK跑代碼用JRE真正干活的是JVM。2.2 從Hello World代碼逐行拆解執(zhí)行鏈路來看Java入門公認(rèn)的第一段代碼public class HelloWorld { public static void main(String[] args) { System.out.println(Hello, Java!); } }這短短幾行信息量非常大。public class HelloWorld聲明了一個公開類類名必須和文件名一致。很多人不知道為什么原因是Java編譯器要求一個public類的名字必須和源文件名相同這樣JVM才能在茫茫文件系統(tǒng)里根據(jù)類名找到對應(yīng)的字節(jié)碼文件。public static void main(String[] args)是Java程序的入口。拆開看publicJVM要從外部調(diào)用main方法所以必須是公開的staticJVM在啟動時還沒有創(chuàng)建任何對象所以main方法必須屬于類本身而不是某個對象實例void入口方法沒有返回值程序結(jié)束就是結(jié)束String[] args用于接收命令行參數(shù)。比如你運(yùn)行java HelloWorld tomargs數(shù)組里就裝著字符串tomSystem.out.println是三段引用的疊加System是java.lang包下的一個工具類out是System類里的一個靜態(tài)打印流對象println是這個流對象的方法作用是把字符串輸出后換行。理解了每一部分你才算真正“讀”了這段代碼。2.3 javac和java兩條命令的實際執(zhí)行過程在IDE大行其道的今天我們通常點擊一下運(yùn)行按鈕就完事了。但I(xiàn)DE背后幫你執(zhí)行的仍然是下面這兩條命令javac HelloWorld.java java HelloWorldjavac是編譯命令它讀取.java源文件進(jìn)行語法檢查和類型檢查如果代碼有編譯錯誤這里就會直接暴露出來通過后生成.class字節(jié)碼文件。字節(jié)碼是JVM的指令集和操作系統(tǒng)無關(guān)。java是啟動命令它啟動一個JVM進(jìn)程讀取我們指定的HelloWorld類加載字節(jié)碼找到main方法并執(zhí)行。我在實際調(diào)試中給新手一個建議遇到環(huán)境問題先在命令行手動執(zhí)行一下這兩條命令看完整的報錯信息。IDE經(jīng)常會吞掉細(xì)節(jié)命令行能讓你看清是編譯期錯誤還是運(yùn)行時錯誤。如果javac報的是“找不到符號”“類、接口或枚舉期望”之類的話基本是語法寫錯了如果是java跑的時候拋異常那多半是運(yùn)行期間的邏輯出了問題。這套機(jī)制最實用的價值在于日后你去排查線上問題時看到堆棧信息里的ClassNotFoundException找不到類和NoClassDefFoundError類定義找不到的時候能立刻反應(yīng)過來是編譯產(chǎn)物或依賴出了問題而不至于一頭霧水。3. 變量、數(shù)據(jù)類型與類型轉(zhuǎn)換看似簡單細(xì)節(jié)密度極高3.1 八種基本數(shù)據(jù)類型與引用類型的邊界Java的類型體系可以粗略分成兩類基本類型和引用類型。這個區(qū)分極其重要因為它在內(nèi)存分配方式上就完全不同。八個基本類型是byte、short、int、long、float、double、char、boolean。它們的特點是變量里直接存的是值本身。比如int age 30意思是在內(nèi)存里劃了4個字節(jié)的空間里面存了數(shù)值30。引用類型則完全不同。任何用new創(chuàng)建出來的對象、數(shù)組、String以及接口和類類型都屬于引用類型。引用類型變量里存的不是對象本身而是對象在堆內(nèi)存中的地址。生活化一點講基本類型變量是你直接握著金額的現(xiàn)金引用類型變量是你手里的一張銀行卡卡里存著錢在銀行里的位置。兩者在賦值、傳參時的表現(xiàn)截然不同這一點我會在第5章重點展開?;绢愋妥止?jié)數(shù)默認(rèn)值取值范圍或說明byte10-128 ~ 127short20-32768 ~ 32767int40約正負(fù)21億long80L極大整數(shù)float40.0f單精度浮點需加f后綴double80.0雙精度浮點char2\u0000單個Unicode字符boolean不定falsetrue或false注意表格里boolean的字節(jié)數(shù)我寫的是“不定”這個不是我不確定而是Java規(guī)范里沒有強(qiáng)制規(guī)定boolean在JVM里占多大。實際HotSpot實現(xiàn)中通常按1字節(jié)處理但規(guī)范層面留了余地。這種細(xì)節(jié)一般面試問不到但說明一個道理基礎(chǔ)語法背參數(shù)遠(yuǎn)不如理解它在JVM層面的真實行為。3.2 變量聲明與初始化的輕重之分Java里變量必須先聲明再使用并且強(qiáng)烈建議在聲明時初始化。看兩行代碼int count; // 聲明但沒有初始化 int total 0; // 聲明并初始化未初始化的局部變量能不能用編譯都過不了。這是Java比C/C安全的地方編譯器在編譯階段就攔住了未初始化的使用根本不給它進(jìn)入運(yùn)行時。但有一個容易混淆的點成員變量有默認(rèn)值局部變量沒有。類里聲明的int類型字段即使不賦值默認(rèn)也是0而方法里聲明的局部變量不賦值就用直接編譯報錯。我見過不少新手在類成員和方法內(nèi)變量上栽跟頭明明類里可以偷懶以為方法里也可以結(jié)果編譯期就紅了。給變量命名也有規(guī)范類名用大駝峰HelloWorld方法名和變量名用小駝峰getAge、userName常量全大寫加下劃線MAX_SIZE。這些不是編譯器強(qiáng)制要求的但它是行業(yè)共識代碼是給人看的一門工程的代碼風(fēng)格統(tǒng)一維護(hù)成本才會低。3.3 自動類型轉(zhuǎn)換與強(qiáng)制類型轉(zhuǎn)換的實際案例類型轉(zhuǎn)換是筆試和面試的重災(zāi)區(qū)。先記住一條鐵律小范圍向大范圍轉(zhuǎn)是自動的大范圍向小范圍轉(zhuǎn)必須強(qiáng)轉(zhuǎn)強(qiáng)轉(zhuǎn)可能會丟失精度。int num 100; long bigNum num; // int自動升級為long安全 double d bigNum; // long自動升級為double安全 double price 99.99; int priceInt (int) price; // 強(qiáng)轉(zhuǎn)priceInt變成99小數(shù)位直接丟棄 int big 300; byte small (byte) big; // 強(qiáng)轉(zhuǎn)但300超出byte范圍(-128~127) System.out.println(small); // 輸出44數(shù)據(jù)已經(jīng)失真最后那個例子值得停下來說說300轉(zhuǎn)成byte為什么是44300的二進(jìn)制是100101100占9位byte只有8位強(qiáng)轉(zhuǎn)時直接截斷高位保留后8位00101100算出來就是44。所以強(qiáng)轉(zhuǎn)不是“四舍五入”而是二進(jìn)制層面的截斷。這種問題在網(wǎng)上刷題時經(jīng)常出現(xiàn)理解原理才能應(yīng)對變形。還有一種隱式類型轉(zhuǎn)換的坑藏在運(yùn)算里int a 5; int b 2; double result a / b; // result是2.0不是2.5兩個int做除法先按整數(shù)運(yùn)算得到2再轉(zhuǎn)成double賦給result。如果你想要2.5必須寫成(double) a / b或者a * 1.0 / b。這個坑我在改Bug時遇到過無數(shù)次。3.4 包裝類型與自動裝箱拆箱基礎(chǔ)語法后的第一個進(jìn)階點八個基本類型各自對應(yīng)一個包裝類Integer、Long、Double、Character等。為什么要引入包裝類因為Java是面向?qū)ο笳Z言集合框架比如List、Map只能存對象不能存基本類型。你想往List里放一堆int就必須把它們包裝成Integer對象。Java 5之后出現(xiàn)了自動裝箱和拆箱代碼寫起來很絲滑Integer x 10; // 自動裝箱int 10 → Integer.valueOf(10) int y x; // 自動拆箱x.intValue()但這里藏著一個非常經(jīng)典的面試題Integer的緩存機(jī)制??催@段代碼Integer a 100; Integer b 100; System.out.println(a b); // true Integer c 200; Integer d 200; System.out.println(c d); // false同樣是結(jié)果卻不同。原因在于Integer.valueOf()方法內(nèi)部對-128到127之間的數(shù)做了緩存在這個范圍內(nèi)的自動裝箱直接返回緩存對象所以a和b指向同一個對象超出這個范圍每次都會新建對象c和d是兩塊不同的內(nèi)存。這個知識點雖然嚴(yán)格來說算包裝類的范疇但它在基礎(chǔ)語法階段出現(xiàn)頻率極高我放在這里就是想提醒你越早理解“引用比較和值比較的區(qū)別”后面寫代碼越少踩坑。4. 運(yùn)算符與流程控制多數(shù)人學(xué)不好基礎(chǔ)語法問題就出在這一塊4.1 運(yùn)算符的分類與優(yōu)先級陷阱Java運(yùn)算符粗分六類算術(shù)、關(guān)系、邏輯、位、賦值、三元。大部分運(yùn)算符看一眼就會用難的是復(fù)合表達(dá)式中的優(yōu)先級。我自己的習(xí)慣是復(fù)雜表達(dá)式一律加括號絕不依賴優(yōu)先級記憶。這不丟人反而是在降低團(tuán)隊閱讀成本。舉個例子很多人會弄混i和i在賦值表達(dá)式中的位置int i 5; int a i; // a的值為5i變?yōu)? int b i; // i先變?yōu)?b的值為7口訣是在前先加后用在后先用后加。底層執(zhí)行上i相當(dāng)于先把原始值壓棧再自增最后把壓棧的原始值返回i則是在棧上直接自增后返回。這兩個操作在單行代碼里效果一樣一旦參與賦值、循環(huán)嵌套結(jié)果就千差萬別。4.2 短路運(yùn)算你每天在用但可能說不清楚的東西邏輯與、邏輯或||最大的特點是短路。a b中如果a為falseb根本不會執(zhí)行a || b中如果a為trueb也不會執(zhí)行。這不是效率優(yōu)化的小把戲而是寫程序時可以利用的語義if (list ! null list.size() 0) { // 安全訪問避免空指針 }如果不是短路的當(dāng)list為null時list.size()這行就直接報空指針了。正是短路保證了list ! null為false后后面的判斷不執(zhí)行從而安全。寫多條件判斷時把最可能提前結(jié)束的判斷放前面既能防空指針也能提升性能。單引號包裹字符雙引號包裹字符串這個在Java里是硬性規(guī)定不能混用。char c a沒問題char c a直接編譯報錯——字符串是引用類型字符才是基本類型。還有一點char可以參與算術(shù)運(yùn)算比如a 1得到98因為char在參與運(yùn)算時會自動轉(zhuǎn)成對應(yīng)的Unicode碼值。這也導(dǎo)致了一個經(jīng)典面試題System.out.println(a 1); // 98 System.out.println(a 1); // a1字符加數(shù)字變成數(shù)字字符串加數(shù)字變成拼接。背后是Java的“運(yùn)算符重載”當(dāng)兩側(cè)有字符串時被當(dāng)作字符串拼接符沒有字符串時是算術(shù)加法。這個規(guī)則不復(fù)雜但一旦在日志輸出時用錯就會出現(xiàn)線上數(shù)據(jù)對不上的奇怪問題。4.3 switch語句的穿透問題與循環(huán)結(jié)構(gòu)選擇switch是Java基礎(chǔ)語法里最容易被忽視的一塊但它在處理多分支判斷時可讀性比連環(huán)if-else好得多。Java 7之前switch只支持int和char等基本類型Java 7開始支持StringJava 14之后又引入了switch表達(dá)式支持箭頭語法可以不用寫break。傳統(tǒng)switch最大的坑是穿透int day 2; switch (day) { case 1: System.out.println(周一); break; case 2: System.out.println(周二); // 忘記寫break程序繼續(xù)往下跑 case 3: System.out.println(周三); break; default: System.out.println(未知); }這段代碼會同時輸出“周二”和“周三”。因為case匹配到2后如果沒有break代碼會繼續(xù)順序執(zhí)行后續(xù)的case分支直到遇到break或switch結(jié)束。早期的開發(fā)者甚至?xí)室饫么┩竵砗喜⒍鄠€case比如case 1、case 2共用一段邏輯但新手階段我強(qiáng)烈建議每個分支都寫break寧可多寫幾行也別讓邏輯失控。循環(huán)結(jié)構(gòu)上for、while、do-while各有場景。知道循環(huán)次數(shù)用for不知道次數(shù)但知道終止條件用while無論如何都希望循環(huán)體先執(zhí)行一次用do-while。先執(zhí)行再判斷的do-while實際業(yè)務(wù)中用的最少但千萬別忘了它的存在。需要注意循環(huán)變量作用域for (int i 0; i 10; i)里面定義的i在循環(huán)結(jié)束后就訪問不到了。這個特性常用于多線程場景下規(guī)避循環(huán)內(nèi)部使用外部變量的問題不過那是后話基礎(chǔ)語法階段先記住作用域邊界即可。5. 方法、數(shù)組和字符串基礎(chǔ)語法中真正用來寫業(yè)務(wù)的三板斧5.1 方法重載同一個方法名多種參數(shù)形態(tài)方法重載指在同一個類中可以定義多個同名方法但參數(shù)列表必須不同參數(shù)個數(shù)、順序或類型不同返回類型可以相同也可以不同。public int add(int a, int b) { return a b; } public double add(double a, double b) { return a b; } public int add(int a, int b, int c) { return a b c; }調(diào)用時編譯器根據(jù)實參的類型和個數(shù)自動匹配最合適的方法。如果找不到精確匹配還會嘗試自動類型轉(zhuǎn)換后匹配。比如調(diào)用add(1, 2)時三個方法里參數(shù)個數(shù)相同的只有前兩個前兩個中(int, int)完全匹配所以調(diào)用的是第一個。重載解決了什么問題本質(zhì)上是為了讓調(diào)用方代碼更統(tǒng)一、語義更清晰。如果沒有重載你要寫addInt、addDouble各種方法名調(diào)用方必須記住一堆名字。重載讓“加法”這個動作只有一個名字參數(shù)變了而已。5.2 值傳遞還是引用傳遞所有初學(xué)者都必須跨過的一道坎這是Java基礎(chǔ)語法階段最經(jīng)典、也最令人頭疼的一個概念。我先給結(jié)論Java只有值傳遞沒有引用傳遞。所有參數(shù)傳遞傳遞的都是變量中保存的“值”的副本。對基本類型這個值就是數(shù)據(jù)本身所以方法內(nèi)修改形參不影響實參public static void change(int num) { num 100; } int a 1; change(a); System.out.println(a); // 輸出1a沒有被改變對引用類型這個值就是“對象的地址”。傳遞地址副本后兩個變量指向同一個對象所以通過形參修改對象的屬性實參能看到變化但如果在方法內(nèi)重新給形參賦值指向了一個新對象實參依然指向原對象public static void change(StringBuilder sb) { sb.append( world); // 修改的是同一個對象外部能看到 sb new StringBuilder(new); // 重新賦值外部看不到 } StringBuilder builder new StringBuilder(hello); change(builder); System.out.println(builder.toString()); // 輸出 hello world一句話總結(jié)你拿到的是地址的復(fù)件不是地址本身。地址復(fù)件指向的對象是同一個所以改了對象的內(nèi)容外部能看到但你對“地址復(fù)件”本身重新賦值影響不到外面那個原始變量。這個道理想通之后再看那些所謂的“引用傳遞實現(xiàn)交換兩個數(shù)”的代碼就知道為什么在Java里行不通了。5.3 數(shù)組連續(xù)的內(nèi)存塊與邊界陷阱數(shù)組是Java中第一個真正意義上的“容器”。它的特點有三長度固定、存儲類型一致、內(nèi)存連續(xù)。聲明方式有兩種效果相同int[] nums new int[5]; // 方式一先聲明長度 int[] scores {90, 85, 78}; // 方式二直接初始化new出來的數(shù)組如果只指定長度不賦值元素會自動填充默認(rèn)值int數(shù)組全是0boolean數(shù)組全是false引用類型數(shù)組全是null。數(shù)組下標(biāo)從0開始長度通過length屬性獲取注意是屬性不是方法array.length()是錯的array.length才是對的。int[] nums {10, 20, 30}; System.out.println(nums[0]); // 10 System.out.println(nums[nums.length - 1]); // 30取最后一個元素數(shù)組最大的坑是下標(biāo)越界訪問nums[3]會拋ArrayIndexOutOfBoundsException。很多高級容器都在內(nèi)部使用數(shù)組比如ArrayList的核心就是一個Object數(shù)組所以搞懂?dāng)?shù)組是理解集合框架的第一步。增強(qiáng)for循環(huán)是遍歷數(shù)組最簡潔的方式for (int num : nums) { System.out.println(num); }注意增強(qiáng)for循環(huán)內(nèi)部不提供下標(biāo)如果你需要根據(jù)下標(biāo)修改數(shù)組元素老老實實用普通for。另外增強(qiáng)for循環(huán)在遍歷時不能對集合做結(jié)構(gòu)性修改比如刪除元素否則會拋ConcurrentModificationException。這屬于集合框架的內(nèi)容但基礎(chǔ)階段見過一次以后就不會被嚇到。5.4 字符串不可變性帶來的性能與比較問題字符串是Java中使用頻率最高的引用類型但它的底層機(jī)制非常特殊String對象是不可變的一旦創(chuàng)建內(nèi)容就不能改變。你看到的concat、replace、substring這些方法都不會修改原字符串而是返回一個新字符串。String s hello; String s2 s.toUpperCase(); System.out.println(s); // hello原字符串沒變 System.out.println(s2); // HELLO新字符串正因為不可變JVM才搞了一個字符串常量池相同的字符串字面量在代碼中重復(fù)出現(xiàn)時會直接復(fù)用池中已有的對象而不是每次新建。這就是為什么String a java; String b java; System.out.println(a b); // true指向常量池同一個對象 String c new String(java); System.out.println(a c); // falsenew出來的在堆里新開了一個對象這帶來了基礎(chǔ)語法階段最重要的比較陷阱字符串比較用 equals絕對不要用 。判斷兩個字符串內(nèi)容是否相等一律a.equals(b)。我用一個很直白的說法讓學(xué)生記比的是“是不是同一個盒子”equals比的是“盒子里的東西一樣不一樣”。再來看看String的拼接。循環(huán)里拼接字符串千萬不要用String result ; for (int i 0; i 10000; i) { result result i; // 每次都創(chuàng)建一個新String對象性能極差 }因為String不可變每次都會創(chuàng)建新的字符串對象循環(huán)一萬次就創(chuàng)建一萬個對象。正確做法是用StringBuilderStringBuilder sb new StringBuilder(); for (int i 0; i 10000; i) { sb.append(i); } String result sb.toString();這個優(yōu)化思路放到現(xiàn)在的版本依然有效也是面試?yán)锔哳l出現(xiàn)的話題。6. 我在基礎(chǔ)語法階段踩過的坑和后來回頭看才明白的學(xué)習(xí)建議6.1 新手最容易犯的六個語法錯誤先從我自己帶人時的觀察說起下面這幾個錯幾乎每個初學(xué)者都會踩至少一個。第一個是整數(shù)除法丟了小數(shù)位。這個問題我在3.3節(jié)提過但這里值得再說一次double r 3 / 2你以為能得到1.5實際得到1.0。因為3和2都是int先整數(shù)除得1再轉(zhuǎn)成double。寫成3.0 / 2或(double) 3 / 2才有小數(shù)。我在實際項目里見過報表金額這樣算出來少了一堆小數(shù)排查很久才發(fā)現(xiàn)是類型沒轉(zhuǎn)。第二個是switch忘寫break。這個在4.3節(jié)講過它的表現(xiàn)不是報錯而是輸出結(jié)果詭異——case下面的代碼全跑了。因為不報錯新手最容易懵只能挨個分支調(diào)試。我自己的習(xí)慣是傳統(tǒng)switch寫完之后再掃一眼每個case后面是不是都有break這句提醒能幫你省很多時間。第三個是字符串用比較。表現(xiàn)就是明明兩個字符串內(nèi)容一模一樣邏輯卻不進(jìn)入。尤其當(dāng)字符串來自new創(chuàng)建或者通過方法返回值拿到時用比較極大概率沒問題一旦遇到問題又很難從視覺上發(fā)現(xiàn)。記住對象比較內(nèi)容一律equals。第四個是數(shù)組下標(biāo)越界。它的異常信息很明確但新手往往不理解為什么。一個長度為5的數(shù)組下標(biāo)范圍是0到4你要取第5個元素寫下標(biāo)4不是5。寫成nums[5]就是越界。我見過不少同學(xué)平時這么寫沒問題一到循環(huán)里就糊涂了for (int i 0; i nums.length; i)看著挺對跑到最后一個就炸了。正確寫法是i nums.length。第五個是數(shù)據(jù)類型范圍溢出。比如int的極限大約21億計算日活、金額、時間戳?xí)r很容易超出。我見過有人拿int存時間戳的毫秒值直接溢出變成負(fù)數(shù)。日期的毫秒數(shù)現(xiàn)在是13位早就超出int范圍了必須用long。凡是有可能變大、不確定范圍的數(shù)字設(shè)計階段就該想好用long還是BigDecimal。第六個是方法內(nèi)改了形參以為能帶出去。這個問題對應(yīng)的就是值傳遞的本質(zhì)。想通過方法參數(shù)修改外部變量的值在Java里做不到除非傳的是可變對象的引用并去修改對象內(nèi)部狀態(tài)?;A(chǔ)語法階段如果理解不透學(xué)面向?qū)ο髸r會更加煎熬所以現(xiàn)在就要想清楚。6.2 基礎(chǔ)語法階段應(yīng)該怎么刻意練習(xí)最后聊點我的親身體會?;A(chǔ)語法看起來知識點零散實際上它是環(huán)環(huán)相扣的。我建議按下面這個順序練每一步都不要跳先練編譯運(yùn)行鏈路。不用IDE用記事本或者最基礎(chǔ)的文本編輯器寫代碼命令行里執(zhí)行javac和java把環(huán)境變量的原理搞清楚把英文報錯信息讀順。這一步雖然麻煩但能讓你看清Java程序從源碼到運(yùn)行的全過程這是IDE給不了你的。再練類型與運(yùn)算的邊界。把8種基本類型之間做各種轉(zhuǎn)換把運(yùn)算符的優(yōu)先級改成帶括號的版本把自增自減放到賦值、循環(huán)、方法調(diào)用各種場景里跑一遍。你在這一步寫的“沒什么用”的測試代碼恰恰是在花錢買保險。接著練流程控制。寫一個菜單程序輸入數(shù)字用switch分支執(zhí)行不同邏輯用for循環(huán)讓它反復(fù)運(yùn)行用break和continue控制流程。一步到位地覆蓋了條件、循環(huán)、跳轉(zhuǎn)三大控制結(jié)構(gòu)。然后練方法和遞歸。用方法實現(xiàn)一個簡化版的計算器支持加減乘除再用方法重載讓它在int和double下都能工作。遞歸可以嘗試寫一個斐波那契數(shù)列雖然基礎(chǔ)階段不要求性能但對理解調(diào)用棧非常有幫助。最后練數(shù)組與字符串。完成三個經(jīng)典小任務(wù)求數(shù)組最大值、數(shù)組反轉(zhuǎn)、統(tǒng)計字符串中每個字符出現(xiàn)次數(shù)。這三個任務(wù)幾乎覆蓋了數(shù)組和字符串的全部基礎(chǔ)API做完之后你對API的感覺會和之前完全不同。關(guān)于要不要背API我的態(tài)度是不用死背但要混個眼熟。String類里幾十個方法你不可能全部記住但只要知道“哦有這個功能到時候去查Java文檔就行”效率立刻不一樣。我直到現(xiàn)在寫代碼也經(jīng)常查API文檔這是正常行為不要有負(fù)擔(dān)。6.3 跨語言學(xué)習(xí)者的一個額外提醒如果你之前學(xué)過Python或者C現(xiàn)在來學(xué)Java基礎(chǔ)語法我多提醒一句盡快把頭一個月的“語感”轉(zhuǎn)換過來。Python的縮進(jìn)塊、C的指針操作在Java里都有完全不同的表達(dá)方式。尤其是從Python轉(zhuǎn)過來的人最容易嫌Java繁瑣。我的建議是第一周先逼自己接受Java的“顯式聲明”把所有類型都寫上不要因為看到Python可以不用聲明類型就覺得Java落后。等你寫了半個月你就會明白類型明確帶來的安全感和可維護(hù)性。這是Java社區(qū)用二十多年工程化實踐換來的取舍你要先融入它再評價它。這篇文章的定位是Javase基礎(chǔ)語法篇的第一部分我刻意沒有碰程序員視角之外的雜事也沒有展開面向?qū)ο竽遣糠謨?nèi)容?;A(chǔ)語法掌握好之后下一個關(guān)卡就是類與對象、繼承與多態(tài)。你如果在練習(xí)過程中遇到某個語法點怎么都繞不過去最好的做法不是繼續(xù)往下學(xué)而是停下來把那個點單獨拎出來寫測試代碼給它跑明白?;A(chǔ)語法階段的每一個模糊點都會在后面的學(xué)習(xí)中變成一座山?,F(xiàn)在多花十分鐘后面少加三天班。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
来吧亚洲综合网| 五月天久久婷| 中美日韩成人在线| 五月丁香无码| 丁香五月天天| 五月天色综合| 色婷婷五月影视| 亚洲av网站| 97干在线观看| www.91色| 99精品视频在线观看免费| 中文字幕在线不卡| 色之综合网| 激情六月综合| 天天色综合色| 欧美色必爱| 狠狠插狠狠| 夜夜嗨一区二区三区直播内容 | 97热视频| 欧美日本黄色| 五月天激情国产综合婷婷婷就去爱| 五月色婷婷中文字幕| 国内自拍97在线| 婷婷五月丁香激情色情| 婷婷日本在线| 生活片五区| 五月天天堂久久| 99九九精品视频| 婷婷九月综合| 嫩草AV久久伊人妇女超级A| 久久综合激情五月天| 五月天激情婷婷| 丁香六月婷婷久久综合八月| 欧美日韩91| www色婷婷久久综合久色 | 大香蕉伊人久久| 丁香五月天啪啪| 丁香色色色| 中文字幕永久免费| 激情久久五月网| 欧美成人五月天| 99色在线观看视频者| 五月天激情网开心网| 4399欧美另类视频| 激情综合网五月婷婷| 精品无码色| 超碰在线观看三级片| 五月宗合激情网| 亚洲AV免费国产电影| 成人精品人妻| 综合五月天天天天天五月| 婷婷五月天天| 91热在线| 五月天婷婷五月| 91精品久| 婷婷性爱| 99精吕视频在线观看了| 色很很96| 超级碰碰视频无码| 99热成人| 亚洲无码11| 婷婷丁香五月综合| 丁香婷婷久| 婷婷情色激情| 丁香六月激情综合| 91九色成人原创视频| 9热视频在线观看| 日本va欧美va精品发布视频| 欧日韩成人| 99热综合| 大香蕉网站,大香蕉综合| 秋霞性爱AV| 少妇大叫太大太粗太爽了A片| 玖玖资源站蜜臀| 熟女激情网| 中文av网站| 天天色月| 99热亚洲精品| 大香蕉天堂色| 艳妇野外情欲放荡HD| 天天澡天天狠天天天做| 丁香5月啪啪| 99re热在线视频观看| 五月天激情视频| 99热综合网| 五月伊人综合| 一起草aV| 色婷婷AV久久| 激情五月婷婷| 色色a| 人人看人人摸人人| 第四色婷婷日本| www.久久色.com| 丁香五月播播| 97操碰碰无码视频| 五月天天天天天天天天天天天天天天天婷婷婷 | 91传媒无码人妻精| 98国产精品综合一区二区三区| 久久欧洲久久| 国产avapp 网| 久久精品五月| 五月婷婷激情啪啪| 婷婷酒色网| 99ER热精品视频| 亚洲不卡| 99ri视频在线播放| 五月婷婷六月丁香在线| 五月婷在线播放| 激情精品久久| 性色播| 99人妻碰碰碰久久久久视| 国产精品久久久久久久久久免费| 国产亚洲色婷婷久久99精品91| 日本女人久久| 这里只有精品免费| 日日干天天爽| 久久久精品色色色| 99免费视频在线观看爱| 2025天天操| 亚洲五月天伊人| 欧美色图45678| 操逼巨乳91| 久热re视频在线观看网站| 99久久久99久久91熟女| 丁香婷婷性爱| 婷婷香五月天| 五月激情影视| www狠狠| 玖玖综合色| 色五月成人| 日本激情综合| 狠狠草狠狠草| 五月婷婷丁香五月| 91精品婷婷国产综合久久| 日本狠狠干| 99re思思热久久| 欧美色欲色欲天天天www| 激情桃色网| 久久色情| 色五月丁香总合网| 五月综合777| 亚州激情在线视频| 五月丁香六月综合激情网| 欧美性爱特黄一级aaaassss| 婷婷激情丁五月| 99热精品综合| 五月婷六月婷婷| 精品久久人妻热| 九九精品在线视频观看| 九九家庭影院| 婷婷丁香基地在线| 五月丁香啪啪伦理电影| 亚洲秘 无码一区二区三区妃光/1| 日本成人噜噜噜| 五月天婷婷成人| 婷婷丁香18| 久狠狠| 天天日天天舔| 丁香六月激情综合| 五月婷婷视频| 伊人玖玖网| 91岛国片| 午夜大香蕉| 亚洲成人色五月婷婷综合| 丁香五月婷婷啪啪| 色狠狠图片| 婷婷5月九九| 日本久久爱| 五月天六月色| 激情丁香五月天| 激情五月综合网| 香蕉久久国产AV一区二区| 婷婷六月激情| 五月丁香婷婷钟和色图| 九九热99视频在线| 婷婷丁香五月天综合网| 婷婷五月天激情综合深爱| www婷婷亚洲| 五月天欧美激情| 丁香五月亚洲| 天天综合精品| www色五月| 亚洲色久| 亚州激情九月| 九九热只有这里精品| 丁香五月AV综合激情| 成人五月天视频播放| 五月天成人综合| www色婷婷| 欧美大肥婆大肥BBBBB| 男女啪啪视频久 9| 开心五月激情网| 无码毛片992367| 婷婷五月花丁香| 天天操天天干天天日| 色婷婷影院| 少妇高潮呻吟A片免费看软件| 97超碰99热99| 五月天婷综合网站| 五月丁香六月婷婷成人电影| 午夜天堂一区人妻| 激情久久月| 中文字幕在线日亚洲9| 五月婷婷色丁香| 天天日夜夜曹| 欧美大片| 久久精典| 九九这里都是精品| 国产成人精品一区二三区熟女在线| 丁香五月亚洲综合| 五月婷婷内射网| 激情www| 99精彩视频| 婷婷六月偷拍| 色啪影院| 亚洲成人人人操| 99爱在线精品视频免费观看| 99热大| 久思思久视频| 五月丁香六月激情| 久草 tingting| 五月天激情综合首页| 日日夜夜爽| 91久久久久久| 99九九综合久久九九| 九九免费在线视频| 香蕉久久国产AV一区二区| 婷婷久久图片| 综合网五月天123| 婷婷五月天成人| 9色在线视频精品观看| 五月婷婷中字在线| 久久久婷| 九月婷婷色色| 九色色| 五月天 无码| 亚洲国产精品二二三三区| 五月婷婷综合影院| 欧美日韩AAAA| 99人人爽| 99热这里只有精品1998| 亚洲另类在线观看| av九九| 99热综合网| 婷婷色五月天在线观看| 久热这里只精品| 天天综合色丁香| 视频一区二区在线| 五月丁香色婷婷熟女| 99精品国产在热久久婷婷| 两性婷婷丁香五月| 综合网五月天123| 另类专区在线观看| 超碰人人干| 日日干日日| 久久丁香婷婷色情综合| 丁香六月无码播放| 天天综合色99| 久久婷婷综合五月趴| 国产一二区爆乳_1国产日韩一区二区三-成人AV| 婷婷色影院| 超碰资源在线| 久久婷婷国产| 99综合视频一体| 五月婷六月| 99热地址| 1999天天操夜夜操| 久久色五月天| 日韩啪| 色吧婷婷| 久久之人妻| 91爱操| 亚州操操| 精品久久99码| 99热精品在线播放观看| 国外亚洲成AV人片在线观看| 久久久久97| 人妻五月天激情开心网| 深夜婷婷 丁香| 天天撸夜夜爽| 色五月色综合| 五月天成人在线| 99色色网| 婷婷狠狠五月综合| 91人人看| 九九这里只有精品| 成人电影一区| 五月婷婷综合网| 五月天激情网址| 开心五月色婷婷综合开心网| 五月婷综合网| 丁香五月婷婷欧美成人色图| 五月婷婷偷拍| 怕怕視頻| 成人做爰A片免费看视频| 综合久久综合综合| 激情综合在线观看| xxxx五月| 99ri精品| 日韩五月天婷婷| 蜜乳av一级av| 玖玖热视频| 99ri视频在线播放| 激情综合网五月| 激情五月天综合网站网站网站| 中国丰满熟女A片免费观| 婷婷五月丁香伊人网| 国模狼狼| 丁香激情久久| 怡红院院久久| 99久热精品在线| 伊人激情综合网| 99热永久在线观看| www.9操| 日本一区二区三区精品视频| 99精品一二三四视频| 综合婷婷| tingtingcaobi| 亚洲色99| 五月婷婷六月丁香激情深爱| 91碰操| 超碰93在线观看| 激情综合啪啪啪| 五月婷婷六月激情网| 校园春色亚洲色| 九九热精品视频在线观看| 97人人干人人操| 国产AV一区二区三区日韩| 五月婷婷色激情| 色域五月婷婷丁香| 亚洲深喉aV| av人人干| 丁香婷婷少妇| 在线视频99| 国产激情视频在线观看| 婷婷六月天激情| 97干在线| 新激情五月天| 六月丁香av| 97久久久| 天天视频精品9| 女婷久久| 狠狠色综合久久| 91啪啪视频| 丁香婷婷狠狠97| 激情五月天啪啪| 久一这里有精品国产| 337久久| 超碰操网| 丁香五月在线| 手机看片日日做夜夜| 综合激情专区| 婷婷五月花| 秋霞AV淫| 这里精品| WWW、日本色丁香、co m| 91婷婷色 | 久久视频婷婷| 九色99视频| 久久99精品九九久久久婷婷| 婷婷伊人网| 影音先锋女人av鲁色资源网小说免费 | 丁香婷婷色五月| 在热视频精品| 五月天激日本色情在线| 伊人狠狠丁香婷婷综合尤物| txt五月激情四射网综合俺也来了 五月天婷婷丁香人人操91 | 丁香五月婷婷综合精品素人| 超碰天堂网| 狠狠色婷婷| 五月天最新网| 天天热夜夜操| 人妻系列久久久久久久久久久| 婷婷丁香综合| 久久婷婷五月综合网| 婷婷久久五月天| 久久精品亚洲热| 九九家庭影院| 亚洲精品视频在线| 日本三级中国三级99| 久热精彩视频98| 天天干天天爽| 丁香婷婷久久| www夜夜操| 色丁香五月天| 狠狠色性| 久久视屏这里只有久久| 99热伊人| 第四色色六月色综合| 五月丁香性爱| 东京热人妻一区二区三区在线| 天天撸夜夜爽| 激情综合网,婷婷| 欧美三日本三级少妇三99| 一本到不卡高清DVD| 亚洲va成人va成人va在线观看| 九玖欧洲亚洲| 五月婷婷激情色情网| 人人干天天舔| 五月天色播网| 婷婷丁香色五月天久久88| 婷婷五月花| 在线天堂9| 操逼巨乳91| 9热在线视频| 9色小视频在线观看| 国内熟女黄色系列| 亚洲成人精品三区| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 99在线免费观看| 男女99免费视频| 亚洲在线综合| 九九精品热| 大香蕉综合| 五月丁香婷婷久久| 色色色热| 国产美女无遮挡裸体毛片A片| 99精品成人无码A片观看金桔| 99九九久久| 狠狠干综合| 国产精品人成A片一区二区| 亚洲激情四射| 国产精品电| 人五月天婷婷喷水| 丁香花综合永久入口| 婷婷9月天| 天天久久婷婷| 婷婷五月色影视先锋| 欧洲亚洲午夜| 狠狠大香婷婷爱| 久热这里只有精品性色AV| 五月婷婷内射网| 丁香婷婷偷拍| 婷婷五月天精品| 最新日韩久热免费视频看看| 激情五月天的婷婷| 欧美久久网| 激情综合亚洲| 色色色.com| 五月成人天| 成人AV中文字幕| 91色在线/日韩| 日本啪啪天堂| 国产3p露脸普通话对白| 一起操 91N.com| 九九人人自拍| 久热这里这里有精品| 熟女五月天久久综合| 午夜九九电影| 野战毛片三一3| 超碰成人在线观看| 国产精品A成V人在线播放| 99久久婷婷国产综合精品| 久久区区一二三av| 99热永久在线观看| 一个色的综合| 狠狠色97| 少妇性BBB搡BBB爽爽爽电影| 五月天色色色色色| 秋霞电影一级黄| 色色网站免费观看| 99热综合在线| 96精品成人无码A片观看金桔| 人人操婷婷| 一级二级色大片| 9久久久久| 狠狠人人| 伊人五月综合网| 色婷网| 色综合色五月| 婷婷五月色播天| 98永久精品| 婷婷第六色| 99re热视频这里只精品| 激情综合五月| 日韩xx在线| 色综合激情| 久久人人人人妻| 伊人玖玖精品| 色婷婷丁香女女| 久久久99视频| 丁香五月婷婷色播艳门照| 色综合九九| 亚洲中文字幕av| 中文字幕人妻AV| 97成人丁香婷婷| 俺五月| 丁香五婷婷| 国产肥白大熟妇BBBB视频| 丁香五月婷婷Av| \\五月天婷婷激情| www.ppypp| 99精品在线| 九九在线91| 激情综合五月激情17| 丁香五月天激情免费在线观看AV777| 色五月色五天色情网| 任你爽在线视频| 亚洲AV免费在线| 亚洲色99| 久久99最新地址| 久久9久| 天天爽天天日天天舔| 9久热| 五月天色色婷婷| 婷婷六月天亚州| 99热超碰在线| 九九成年视频| 日逼免费视频| 丁香五月婷婷五月| 99久久综合| 能看的AV| 超级97碰碰| caopeng97日韩| 婷婷五月激情图片| 亚洲乱码在线观看| 天天插天天日| 婷婷丁香综合色AV| 丁香五月av在线| 99热啪啪| 激情五月黄色小说| 久久丁香五月天| 桃色激情五月天| 婷婷日日夜夜| 超碰2021| 婷婷五月偷拍| 国产精品电| 新99思思视频| 九色婷婷| 精品国产va久久久久| 色色丁香婷婷| 婷婷午夜丁香| 精品在线网站| 伊人婷婷综合| 深爱五月婷婷| 欧美久人人| www夜夜操com| 国产综合A片| 亚洲VA在线| www.97视频| 激情婷婷人妻| 欧美性爱五月天| 亚洲色色色色色色色色色| 婷久久| 欧美日韩国产一区| 色域五月婷婷丁香| 粉嫩av蜜桃av蜜臀av| 五月婷婷激情| 91尤物九色在线| 丁香五月天.com| 粉嫩AV久久一区二区三区| 亚洲天堂AV免费片| 欧美色图片88| 五月久久丁香| 在线99色| 日韩精品一区二区亚洲AV观看| 婷婷婷久久久| 五月丁香婷中文| 99自拍视频网站| 日韩欧美一级大黄网站| www,色综合| 伊人婷婷色| 激情四射婷婷| 久久玖玖综合| 婷婷色丁香五月| 丁香五月婷婷影院| 超碰91在线| 丁香五月手机在线| 丁香五月婷婷精品视频| 亚洲亚洲人成综合网络| 淫水导航| av最新在线| 六月丁香色色| 六月婷欧美| 97人人干人人操| 丁香五月网站| 丁香婷婷狠狠97| 激情99在线视频| 婷婷综合在线播放| 99爱视频在线观看| 开心五月激情五月丁香五月婷婷| 91亚洲免费片| 天天久久狠狠色综合| 天天日天天干天天爱| 色五月激情五月| www,av好吊操| 手机在线日韩视频中文字幕| 五月激情婷婷在线| 五月天综合区| 影音先锋男人av资源站| www.婷婷.com| 五月婷婷开心色伊人| 色色婷婷综合| 99干视频| 欧美色播综合在线观看| 9999热精品| 久99久在线| 亚洲九九九九| 亚洲超级碰| 激情久久久久久久久久| 婷婷成人在线| 色综合色婷色基地| www色色com| 五月草影视| 在线观看亚洲视频影院| 精品影院| 五月开心色| 91久久婷婷| www婷婷色| 熟女网站久久| 五月色婷婷AV| 婷婷综合亚洲| 熟女强人妻一区二区三区四区无| 丁香婷婷人妻综合网| 99人人操| 青青草视频免费观看| 激情影院丁香五月| 开心五月六月婷婷| 丁香五月婷婷综合激情啪啪啪啪啪啪啪| 午夜婷婷久久| 色丁香久综合在线久综合在线观看| 久久久久久久久久久月丁| 99热18| 青草五月天| 亚洲国产成人在线| 91蝌蚪窝视频在线| 色区久久| 丁香五月成人社区| 婷婷综合网在线| 色婷婷激情四射视频| 成人综合网站| 婷婷色影院| 人人爽亚洲| 欧美丁香婷婷天天操| 99免费青青蜜臀| 国产人妻777人伦精品HD| 久re热视频| 婷婷激情五月天亚洲综合| 一片AV片免费播放| 日本欧美成人片AAAA| 97狠狠色| 五月亭亭性| 五月丁香av在线| 高清视频一区| 狠狠色网| 色婷婷狠狠久久综合五月 | 黄网免费观看| www久久久久久久| 丁香五月激情综合| 久久激情五月| 西瓜美女a片| 97操碰| 日韩欧美老妇性视频91久久久| 天天色综网| 婷婷五月丁香六月| 超碰免费99| 五月婷婷免费在线观看视频| 密乳视频| 久久婷出差欧美色两性综合网| 色一情一乱一乱一区91| 日日躁夜夜躁狠狠久久AV| 久操热线| 色婷婷www| 99久久99热| 综合色99| 久久大香蕉同僚| 婷婷玖玖丁香| 人操人| 欧美日本国产| 日韩丁香涩| 成人做爰A片免费看网站找不到了| 婷婷久热| 综合久久97| RenRenSe在线视频网站| 色欲婷婷五月天| 久婷婷五月天影院| 97碰在线免费观看| 超碰免费观看| 欧美在线ee日韩| 日韩一区二区A片免费观看| 91性高潮久久久久久久久| 99热18| 色色色色热| 久草热视频在线观看| 思思久热| 日逼免费视频| 久热只有这里精品| 五月丁香六月婷婷视频| 丁香激情五月少妇| 亚州色色色| 欧州色色| 久久精品性爱| 五月激情在线| 天天综合五月| 色五月激情网| 婷色五月天| 久久婷综合| 色五月人妻| 六月丁香五月婷婷| 国产午夜精品AV一区二区麻豆| 婷婷五月成人| 操人妻AV| 欧类av怡春院| 日韩av一区二区在线/日产精品久久久| 亚洲综合成人网| 狠狠狠狠狠干| 亚洲狠狠爱婷婷| 人妻有码乱操| 人人妻人人澡人人爽| 9999热在线免费观看| 在线超碰91| A1片久久久| 婷婷五月成人| www婷婷亚洲| 五月激情网络| 狠狠五月天| 伊人久久大香网| 天天做天天爱| 久久中文网| www九月婷婷| 91九色小视频| 激情丁香婷婷六月天| 久热这里只有精品3| 五月天婷婷网站| 深爱1激情网| 婷婷五月综合啪| 国产精品色婷婷久久久精品| 五月婷综合| 香蕉97碰碰碰欧美| 丁香久久九九99| 97AV在线视频| 久久精品小视频| 色亚洲激情| 99ri在线| 五月丁香亭亭| 国产色香蕉精品五夜婷| 婷婷色中文字幕| 人妻videos人妻高清| 五月天综合在线观看| 久久精品婷婷| 亚洲亚洲人成综合网络| 五月天婷婷激情在线色图| 婷婷伊人75| 激情网五夜婷婷| 99热12| 亲子乱AV一区二区三区下载| 丁香五月激情五月| 97超碰99热99| 桃色五月婷婷| 激情亚洲网| 99热.com| 丁香亚洲色综合| 丁香六月婷婷开心婷婷网| 久热这里只有精品3| 婷婷.com| 久久丁香五月| www.久久色.com| 九九精品在线视频观看| 婷婷综合色播网| 性爱视频99| 极品嫩草| 婷婷偷拍网| 婷婷五月天激情网站| 99热97| 久久婷婷色综合老司机| 六月婷婷七月丁香| 久久这里只有精品网| 超碰色色综合| 亚洲一区二区色图-亚洲精品国产精品乱码-成人AV | 国产精品成人网址| 大香蕉手机视频| 可以看的AV网站| 超碰免费在线| 婷婷九月亚洲| 久久 视频这里只有精总| 97福利视频| 操操综合网婷婷| 婷婷伊人| 久久五月丁香| 亚洲五月六月婷婷| 色九九综合热99| 成人色情五月天婷婷丁香| 色婷婷超碰| 久久视9精| 99ri精品视频在线观看| 婷婷另类开心| 婷婷五月激情小说| 韩国中文字幕91| 亚州精品色情无码A片| 激情五月丁香亭亭| 欧洲色| 五月丁香福利| 九九激情| 99色人| 六月综和久久| 99视频这里只有精品10| 日韩一区二区A片免费观看| 婷婷综合在线| 91碰超| 丁香五月婷综合| 9久热这里只有精品视频| 五月丁香婷婷成人网| 婷婷天堂视频| 婷婷五月亚洲一本在线丁香| 尤物一区二区| 在线五月色播| 97啪啪| 中文字幕成人| 丁香婷婷啪啪啪| 久草热8精品视频在线观看| 91精品国产91久久久久青草| 无码色| 大香蕉福利导航| 五月丁香婷婷爱激情综合网| 九九99九九99偷拍视频免费看| www五月天com| 美女丁香五婷婷| 久久这里只有精品视频15 | 久99久视频免费观看| 五月丁香成人视频| 热婷婷av| 国产婷婷五月天| 婷婷五月色播放| 偷拍91九色| 九九性爱网| 婷婷综合av| 亚洲综合激情五月| 一区二区你懂的| 五月丁香六月婷婷综合网缴情| 激情婷婷丁香五月| 先锋资源 996| 91男同视频| 婷婷成人综合五月| 91性交在线播放| 六月天六月婷| 日本99视频| www,色婷婷| 99在线视频精品| 女同激情久久av久久| 婷婷伊人久久| 伊人久久婷婷| 女人天堂AV| 99国产小视频免费观看| 最近韩国日本免费高清观看| 欧美va精品va老师va| 综合AV在线| 狠狠爱综合网| 亚洲成人综合在线| 五月丁香婷婷久久| 公的粗大挺进了我的密道| 激情婷婷综合| 色色色色欧美| 免费视频这里只有精品| 欧美成人猛片AAAAAAA| www.人人操人人看人人想人人摸 人人人人操,COM| 国产精品大香蕉| 天天做天天爱天天摸| 专区无日本视频高清8| VA国产在线综合网站| 中文字幕丰满孑伦无码专区| 久久九九怡红院| 天天综合色| 丁香婷婷久久激情| 91久久国产自产拍夜夜91久久精品文字>91麻豆精品国产 | 午夜大香蕉| 婷婷激情五月天色| www.婷婷激情网.com| www色五月| 欧美超碰亚洲| 天天色图| 久久久久婷婷五月热综合| 午夜精品久久久久久久爽| 天天情色综合网| 日本在线wwww| 天天摸天天肏| 色婷婷婷婷成人网| 婷婷五月欧美AA片免费| 亚洲婷婷丁香| 91五月天| 嫩草AV久久伊人妇女超级A | 婷婷天天综合| 丁香花综合永久入口| 日本婷婷五月天| 婷婷五月天成人在线视频| 国产69久久久欧美黑人A片| 天干夜夜操| 91精品久久久久久| 欧美色综合天天久久综合精品| 激情五月天无码| 色月丁| 99九九视频| 丁香五月天激情综合网| 99热精品10| 亚洲操人| 夜夜撸天天操| 极品五月天| 成人日韩欧美| 丁香五月婷婷成人网| 色人久夂| 国产真人做爰视频免费| 五月婷婷综合丁香视频| 奇米影视777在线_在线观看午夜_h小视频在线观看_岛国大片 | 亚洲AV网址| 色国产五月| 狠狠综合区| 色播丁香| 婷婷六月视频| 久久激情五月| 超碰成人影视| 99热在线精品观看| 99国产这里只有精品| 亚洲操逼网| 狠狠干最新地址| 色婷婷六月天| 五月婷婷伊人久久| av激情在线| 欧美成人一区二区三区在线视频 | 五月丁香天天| 激情六月天婷婷| 国产在线网| 亚洲操操操| 丁香五月婷婷成人色区| 91精品国产99久久久久久天美| 女婷久久| 久久精品小视频| 婷婷激情九月| 深爱开心激情| 五月丁香婷婷俺| 人人草成人视频| 天天天天干| 14色综合婷婷| 久久这里只有欧美| 欧美色色色色色色色色色色影视| 另类 在线| 九久久九精品视频| 久99久视频| 9l视频自拍9l九色9l成人| 思思热思在线精品视频| 国产av基地| 波多野结衣成人作品在线| 大香蕉婷婷| 五月丁香久人妻中文| 开心五月色婷| 五月总合激情网| 99爱爱网| 亚洲精级| 在线观看免费视频| 亚洲旡码| 四月婷婷丁香五月| 久久开心五月婷婷| 婷婷AV丁香| 精品激情| 超碰2021| 99ER热精品视频| 天天干夜夜谢| 激情五月丁香社区| 亚洲免费婷婷| 在线可以看的av网址| 停停色综合伊人| 综合色影院| 99精品偷拍视频| 亚洲无码影音| 日本少妇裸体做爰高潮片| A久久| 九月丁香亭亭| 色九九九九| 婷婷五月激情五月激情| 五月婷婷五月天亚洲无码| 秋霞免费三级片| 97人妻碰碰碰久久香蕉| 吾爱AV导航| 五月婷婷综合网| 开心五月综合| 欧美噜一噜| 婷婷五月天色综合翘| AV无码免费| 日本九九网| 五月丁香最新| 五月天电影网| 天天做天天爱天天高潮| 五月激情在线| 丁香五月成人网| 国产超碰在线| 色五月丁香网| 五月婷av| 色婷婷导航| 亚洲精品久久久久久久久久吃药| www.超碰在线| 亚洲中文字幕在线观看| 亚洲中文字幕在线观看| 成人亚洲精品久久久久| 久婷婷视平| 99碰碰。| 婷婷色基地在线看| 久久久久久久久久久97| 99热亚洲精品| 久久99婷婷| 婷婷五月天激情网址| 丁香五月综合久久八| 天天 日综合| 一夜福利不卡| 日本精品。999| 五月丁香六月婷婷免费| 亚洲婷婷婷| 射久久丁香五月| 久久婷婷五月综合伊人| 五月婷婷免费在线视频| 日本色综合| 亚洲欧美一区二区三区四区爱爱动图| 婷婷色情六月| 天天做天天爱天天玩| 久99久精品视频| 激情五月天色色网| 久草A片| 亚洲日日日| 99色免费观看全部| 久久久五月天| 亚州在线中文字幕| 免费观看高清无码| 狠狠色大香蕉| 九九热中文| 九九家庭影院| 五月天玖玖狠狠色色| 另类激情五月天| 99爱视频| 色婷婷小说| 久久99精品久久只有精品| 91精品综合久久久久久五月丁香| 九九av| 丁香五月大香蕉在线99| 亚州欧美黄色电影| av在线免费网站 | 无码 av电影| 亚洲av无码影院| 欧美色99| AV天堂淫乩| 五月丁香欧美在线| www,com,五月色色| 久久草婷婷丁香网站| 国产精品热搜丁香五月婷婷| 婷婷五月,偷窥偷拍网| 人人综合久| 亚洲成人综合在线| 图片区 小说区 区 亚洲五月| 日本97在线观看| 激情婷婷丁香五月天| 亚洲激情无码久久| 99热这里只有免费精品| 五月综合色| 狠狠干,狠狠操| 操逼电影免费看| 操逼视频一区| 亚洲综合婷婷| 国产精自产拍久久久久久蜜| 九热视频免费观看| 五月激情五月丁香| 黄色AAAAA| 99热这里只有精| 婷婷五月天丁香久久| 亚洲操操| 狠狠插狠狠操| 91日韩在线| 色婷婷五月天av在线| 久操综合| 色婷婷色人人射| 五月婷婷色播| 狠狠CAO日日穞夜夜穞AV| 99碰网站| 久热这里只有精品在线观看 | 啪啪啪大香蕉| 五月天综合色| 狠狠婷婷爱| 99久在线精品99re8热| 五月天激情小说| 色婷久九| 久久这里只有国产视频| 97碰超级人人看| 五月天小说激情| 色婷婷综合久色AV五色最新| 激情五月天综合婷婷网| 国产精品久久久久久亚洲毛片| 色天堂在线| 婷婷激情5月| 中文av网站| 国产九九一区二区三区| 国产26uuu视频| 日韩九九| 丁香五月开心亚洲| 天天日天天操天天干| 99热这里只有精品在线观看| 日韩美女羞羞网站在线观看| 五月天成人网婷婷| 日日.c| 另类视在线| 人人人舔人人人操人人人摸人人人97 | 99ri国产精品| 色综合久久88色综合天天人守婷| 99re热在线视频| 人妻中文字幕精品| 高清无码一区二区三区四区| 99色免费观看全部| 色天堂在线| www.五月激情红色| 日日操天天操| 久热九九| 9月色婷婷| 亚洲视频另类| 天堂婷婷丁香六月网| 天天爽夜夜操| 五月婷婷激情综合| 色婷婷88| 婷婷性爱视频在线| VA婷婷亚洲| 激情婷婷丁香| 综合五月草| 六月 丁香 视频| 丁香五月婷婷激情尤物| 狠狠高潮精品亚洲1| 99在线看视频| 婷婷色五月色妇| 色偷偷AV亚洲男人的天堂| 开心久久xxx色| 99热8| 成人五月天丁香| 激情av在线| 啪啪色区| 26uuu精品一区二区| www,setingting| 亚洲婷婷丁香五月视频| 激情综合五月| 五月丁香91| 另类 在线| 五月天堂色色| 五月天久久www| 精品一二三区久久AAA片| 丁香六月婷婷综情欧美| 激情亚洲网| 色10月婷婷视频| 婷婷五月天精品| 九九久久五月天| 九色视频91| 九色视频91| 噜噜噜狠狠色综| www.91久久| 久久综合99| 色情五月天视频网| 色九九综合| 热99这里只是精品| 色色色色热| 天天爽夜夜爽夜夜爽精品| 色久综合| 色婷婷五月天激情久久| 成人无码精品1区2区3区免费看 | 婷婷的五月天另类视频| http:色情日本com| www.91有码.com| 丁香色婷婷色手机免费在线| 开心五月色婷婷综合开心网| av婷婷丁香| 日日夜夜狠狠操| 丁香五月激情综合婷综| 99re在线精品视频| 亚洲天堂爱爱| 激情婷婷五月| 欧美日韓成人亚洲精品另类| 国产精品日本一区二区在线播放| 新五月天婷婷激情电影| 狠狠色综合图片| 成年人丁香五月| 成人色图情色成人网 www.5b5b5bcom 五月天 | 欧美综合丁香网| 日本三级第一页| 婷婷六月天激情| 五月丁香网站| 欧美日韩成人在线免费| 99热20| 六月丁香成人网| 色综合久久综合| 色玖玖综合| 丁香六月啪啪| 国产做爰视频免费播放| 色综合天天天天做夜夜| 91chinese 在线| 东京热免费视频| 五月天成人在线精品| 日本美女97在线视频| 丁香美女五月天婷婷| 激情色播| 99国产在线精品视频| 丁香狠狠色婷婷久久无码视频| 在线观看亚洲视频影院| 久久五月天黄色五月天色网址| 丁香五月欧美激情| 五月婷婷黄| AV九九| 色噜噜,噜噜色| wwww.色婷婷| 久久伦乱| 男人天堂亚洲综合| 久草嫩草在线观看| 啊V视频在线观看| 久热这里只有精品在线观看 | 蜜桃婷婷丁香五月天狠狠久久综合| wwwav大香蕉| 丁香五月在线播放| 精品在线| 日本www免费九九| 91婷色| 午夜青草资源| 亚洲色综久久五月| 99成人| 五月婷视屏在线观看| 五月婷婷久久综合| 99婷五月| 98色花堂98t.R| 亚洲婷婷丁香五月亚洲| 人碰91| 深爱五月婷婷| 26uuu欧美日本| 天天操天天爱天天日| 亚洲AV成人一区二区在线观看| www.五月婷婷| 五月天久久www| 六月丁香综合| 日本综合99| 成人视频一区| 丁香五月激情综合啪啪| 久久精典| 日本性视频| www.99热这里只有精品| 丁香六月伊人| 欧美色图45678| 丁香五月婷婷高清| 99综合| 97丁香五月| 午夜爱爱爱成人| 婷婷涩五月| 99久久人人| 激情五月综合| 色婷婷激情| 婷婷六月中文字幕| 亚洲第一成人无码A片| 色呦呦在线| 色婷婷先锋| 99思思热只有在这里看| 天天做天天爱天天爽夜夜揉| 婷婷五月综合色中文字幕| 无码少妇高潮喷水A片免费| 五月丁香欧美综合| 国产婷婷五月天| 九九这里有精品视频| 成人一级片| 亚洲久久天堂| 五月婷婷啪啪| www.婷婷亚洲基地| 99热在线观看精品| 五月丁香婷婷激情久久| av在线中文| 丁香六月天婷婷| 少妇被躁爽到高潮无码文 | 欧美日本综合网| 色五月色图| 99在线小视频| 九九综合影音先锋| 人人摸人人| 玖玖综合色|