日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

Java基礎(chǔ)全覆蓋:語(yǔ)法、集合、JVM與多線程面試實(shí)戰(zhàn)指南

Java基礎(chǔ)全覆蓋:語(yǔ)法、集合、JVM與多線程面試實(shí)戰(zhàn)指南 提到Java基礎(chǔ)很多人第一反應(yīng)是“語(yǔ)法簡(jiǎn)單、背一背就行”但真到了面試和寫(xiě)項(xiàng)目的時(shí)候才發(fā)現(xiàn)自己連環(huán)境變量為什么要配都沒(méi)搞明白。這篇文章就是寫(xiě)給準(zhǔn)備系統(tǒng)學(xué)Java、準(zhǔn)備校招社招、或者工作中需要補(bǔ)基礎(chǔ)的人。我把這些年從零帶新人、自己面試和被面試的經(jīng)驗(yàn)都揉進(jìn)來(lái)不僅講語(yǔ)法更講“為什么”盡量讓每個(gè)知識(shí)點(diǎn)都能落到實(shí)際開(kāi)發(fā)和面試?yán)铩?. 從零開(kāi)始先搞懂Java到底是什么1.1 為什么是Java而不是直接上框架新同學(xué)最喜歡問(wèn)的一句話是現(xiàn)在都SpringBoot了我直接學(xué)SpringCloud不行嗎我的回答一向是不行??蚣苁荍ava生態(tài)的一部分但框架解決的是“怎么組織代碼”Java解決的是“計(jì)算機(jī)怎么執(zhí)行你的指令”。你連JVM內(nèi)存區(qū)域都說(shuō)不清楚排查線上OOM就只能靠重啟連集合擴(kuò)容機(jī)制都不懂寫(xiě)出來(lái)的接口可能數(shù)據(jù)量一上來(lái)就卡死。Java能活這么多年核心優(yōu)勢(shì)是三點(diǎn)第一跨平臺(tái)靠JVM屏蔽操作系統(tǒng)差異第二生態(tài)龐大從后端到大數(shù)據(jù)到安卓到處都是Java的痕跡第三靜態(tài)強(qiáng)類型編譯期就能發(fā)現(xiàn)一大批低級(jí)錯(cuò)誤。這些優(yōu)勢(shì)都是建立在扎實(shí)的語(yǔ)言基礎(chǔ)之上的。基礎(chǔ)這層不打牢后面學(xué)多線程、JVM調(diào)優(yōu)、分布式全都是空中樓閣。1.2 環(huán)境搭建JDK安裝和環(huán)境變量最好不要跳過(guò)去很多教程讓你直接下載JDK然后一路下一步連環(huán)境變量都不解釋。結(jié)果到IDEA里能跑命令行一敲java -version就報(bào)錯(cuò)。原因很簡(jiǎn)單操作系統(tǒng)不知道去哪里找java.exe。安裝JDK本身不復(fù)雜關(guān)鍵在于理解三個(gè)環(huán)境變量JAVA_HOMEJDK的安裝根目錄很多框架和工具比如Maven、Tomcat、IDEA都靠它定位JDK。PATH把%JAVA_HOME%\bin追加進(jìn)去這樣操作系統(tǒng)能在任意目錄下找到j(luò)ava、javac這些命令。CLASSPATH老版本需要手動(dòng)配置JDK 5以后其實(shí)可以不管但面試偶爾會(huì)問(wèn)。它的作用是告訴JVM去哪里找類文件設(shè)置為.表示當(dāng)前目錄。配置完成后打開(kāi)新終端輸入java -version能看到類似“openjdk version 17.0.8”的輸出就說(shuō)明成功了。這里有個(gè)坑Windows配置完環(huán)境變量必須重新打開(kāi)命令行窗口才能生效不是配置完立刻就能用。順帶說(shuō)一個(gè)高頻報(bào)錯(cuò)錯(cuò)誤: 源發(fā)行版 17 需要目標(biāo)發(fā)行版 17。這個(gè)問(wèn)題的本質(zhì)是編譯版本和運(yùn)行版本不一致。通常發(fā)生在你用JDK 17寫(xiě)的代碼但I(xiàn)DEA里Project Structure的SDK設(shè)成了JDK 8或者M(jìn)aven的maven.compiler.source/target沒(méi)配對(duì)。解決辦法是統(tǒng)一三處File - Project Structure - Project SDK、Settings - Build Tools - Maven - Runner - JRE、pom.xml里的java.version三處都改成同一個(gè)版本。2. 語(yǔ)法地基面向?qū)ο蠛蛿?shù)據(jù)類型2.1 基本類型和引用類型內(nèi)存里的差別很大Java有8種基本類型byte、short、int、long、float、double、char、boolean。它們直接存值存在棧上用完就彈棧效率高。而String、數(shù)組、對(duì)象這些引用類型變量名存的是地址真正的內(nèi)容在堆里。很多新手搞不清“基本類型變量怎么傳、對(duì)象怎么傳”面試題里經(jīng)典的“值傳遞還是引用傳遞”就是從這來(lái)的。一定要記住Java只有值傳遞。傳基本類型傳的是值的副本方法里改了不影響外面?zhèn)鲗?duì)象傳的是引用地址的副本方法里通過(guò)這個(gè)地址改對(duì)象內(nèi)容外面會(huì)看到變化。但如果方法里把這個(gè)引用重新指向一個(gè)新對(duì)象外面的引用不會(huì)變。這題在面試?yán)镏辽儆幸话肴舜疱e(cuò)。舉例說(shuō)明public class PassTest { public static void main(String[] args) { StringBuilder sb new StringBuilder(hello); change(sb); System.out.println(sb.toString()); // hello world } static void change(StringBuilder s) { s.append( world); s new StringBuilder(modified); } }輸出是hello world因?yàn)閟 new StringBuilder(...)只改了方法內(nèi)復(fù)制出來(lái)的引用原來(lái)的sb還是指向原來(lái)的對(duì)象。2.2 面向?qū)ο笕追庋b、繼承、多態(tài)面向?qū)ο笫荍ava面試八股文里繞不開(kāi)的題目。封裝的核心就是“隱藏內(nèi)部細(xì)節(jié)對(duì)外暴露受控的方法”比如類的字段設(shè)成private通過(guò)getter/setter訪問(wèn)。繼承解決的是“類與類之間的共性抽取”用extends實(shí)現(xiàn)。多態(tài)則要滿足三個(gè)條件有繼承、有重寫(xiě)、父類引用指向子類對(duì)象。多態(tài)最典型的例子Animal a new Dog(); a.speak(); // 執(zhí)行的是Dog重寫(xiě)后的speak很多人不理解為什么非要這樣寫(xiě)。實(shí)際開(kāi)發(fā)里多態(tài)的意義在于“面向接口編程”你可以寫(xiě)一個(gè)方法接收Animal然后傳入任意子類方法不用改。比如支付場(chǎng)景里定義Payment接口AliPay和WeChatPay各實(shí)現(xiàn)一遍后續(xù)加新支付方式核心業(yè)務(wù)代碼不用動(dòng)。還有個(gè)高頻考點(diǎn)是static方法能不能重寫(xiě)。答案是不能。方法重寫(xiě)是運(yùn)行時(shí)動(dòng)態(tài)綁定的而static方法屬于類編譯期就綁定好了。如果你在子類寫(xiě)一個(gè)和父類同名的靜態(tài)方法那叫“隱藏”不是重寫(xiě)。調(diào)用時(shí)看引用類型而不是對(duì)象類型。2.3 字符串、equals和hashCode的坑Java開(kāi)發(fā)中String是最常用的類但也是坑最多的。先記住字符串常量池。用String s1 abc這種方式創(chuàng)建JVM會(huì)先去常量池找找到就復(fù)用用new String(abc)則是強(qiáng)制在堆里創(chuàng)建一個(gè)新對(duì)象。String a abc; String b abc; String c new String(abc); System.out.println(a b); // true同一個(gè)常量池對(duì)象 System.out.println(a c); // false堆上新建對(duì)象 System.out.println(a.equals(c)); // true比較內(nèi)容所以字符串比較必須用equals判空用isEmpty()或isBlank()之前先判斷是否為null否則空指針。equals和hashCode的約定也是面試必問(wèn)兩個(gè)對(duì)象用equals比較相等它們的hashCode必須相等。反過(guò)來(lái)說(shuō)hashCode相等equals不一定相等。為什么因?yàn)镠ashMap這類集合先用hashCode定位桶再用equals找具體元素。如果你重寫(xiě)了equals不重寫(xiě)hashCode同一個(gè)對(duì)象放進(jìn)HashSet可能被當(dāng)成兩個(gè)元素這就是線上詭異Bug的來(lái)源。金額計(jì)算同樣不能忽視。用double直接做加減乘除0.10.2會(huì)出現(xiàn)一長(zhǎng)串小數(shù)因?yàn)槎M(jìn)制無(wú)法精確表示部分十進(jìn)制小數(shù)。正確做法是使用BigDecimal構(gòu)造時(shí)用new BigDecimal(0.1)不要用new BigDecimal(0.1)后者其實(shí)也是個(gè)不精確的近似值。3. 核心API與進(jìn)階概念3.1 集合框架面試重災(zāi)區(qū)也是開(kāi)發(fā)高頻區(qū)Java集合框架的核心接口是Collection和Map。List、Set、Queue都繼承了CollectionMap是獨(dú)立的鍵值對(duì)體系。面試必考的包括ArrayListvsLinkedListArrayList底層是數(shù)組查詢快、增刪慢尾插很快LinkedList底層是雙向鏈表頭部插入刪除快但隨機(jī)訪問(wèn)要遍歷反而慢。HashMap的原理數(shù)組鏈表紅黑樹(shù)。默認(rèn)容量16負(fù)載因子0.75擴(kuò)容閾值12。當(dāng)鏈表長(zhǎng)度大于等于8且數(shù)組長(zhǎng)度大于等于64時(shí)鏈表轉(zhuǎn)紅黑樹(shù)。put流程是先算hash(key)定位桶如果桶空直接放否則遍歷鏈表找相同key找到就替換值找不到就尾插最后判斷是否超過(guò)閾值超過(guò)就擴(kuò)容。JDK 8以后改成尾插法就是為了避免并發(fā)擴(kuò)容時(shí)鏈表成環(huán)。ConcurrentHashMapJDK 8以后用CASsynchronized鎖桶頭節(jié)點(diǎn)把鎖粒度從整張表降到單個(gè)桶并發(fā)度大幅提升。HashSet底層其實(shí)就是HashMapvalue統(tǒng)一用一個(gè)固定的Object占位。開(kāi)發(fā)中選集合的原則很簡(jiǎn)單單列數(shù)據(jù)用ArrayList需要去重用HashSet需要鍵值對(duì)應(yīng)用HashMap需要線程安全再用CopyOnWriteArrayList或ConcurrentHashMap。別一上來(lái)就上Vector和Hashtable這兩個(gè)雖然線程安全但性能差屬于被淘汰的類。這里補(bǔ)充一個(gè)容易被問(wèn)到的點(diǎn)為什么重寫(xiě)equals必須重寫(xiě)hashCode。還是用HashMap的get流程來(lái)說(shuō)它先算key的hash找到桶再用equals比較如果兩個(gè)對(duì)象內(nèi)容相同但hashCode不同它們就落在不同桶里get的時(shí)候根本找不到邏輯就錯(cuò)了。3.2 異常體系別用try-catch兜底所有問(wèn)題Java的異常分為受檢異常checked和運(yùn)行時(shí)異常unchecked。Exception類下除了RuntimeException之外的都是受檢異常比如IOException、SQLException編譯器強(qiáng)制你處理。RuntimeException及其子類如NullPointerException、ArrayIndexOutOfBoundsException是運(yùn)行時(shí)異常編譯器不強(qiáng)制但程序運(yùn)行時(shí)就可能炸。正確的異常處理姿勢(shì)有三個(gè)原則能精確捕獲就精確捕獲不要只catch一個(gè)Exception不然日志里看不到真實(shí)問(wèn)題。使用finally或try-with-resources釋放資源。JDK 7以后推薦try-with-resourcesAutoCloseable的類可以自動(dòng)關(guān)閉代碼少且不會(huì)漏關(guān)。記錄日志時(shí)用log.error(操作失敗userId{}, userId, e)一定要把異常對(duì)象e傳進(jìn)去否則打不出堆棧。不要在循環(huán)里catch異常。如果循環(huán)體里的代碼會(huì)拋異常盡量在循環(huán)內(nèi)處理完繼續(xù)或者收集異常結(jié)果到列表里統(tǒng)一處理。否則一個(gè)數(shù)據(jù)出錯(cuò)整個(gè)批量任務(wù)就中斷了。3.3 泛型、枚舉和注解寫(xiě)優(yōu)雅代碼的基礎(chǔ)泛型沒(méi)有很多人想的那么神秘它本質(zhì)上是“類型參數(shù)化”。寫(xiě)成ListString編譯器在編譯期就幫你限定類型不用像以前那樣從List里取出來(lái)還要手動(dòng)強(qiáng)轉(zhuǎn)。通配符? extends T和? super T是面試點(diǎn)extends規(guī)定了上界只能讀super規(guī)定了下界只能寫(xiě)。這個(gè)規(guī)則一句話概括就是PECS生產(chǎn)者用extends消費(fèi)者用super。枚舉用得好代碼能清爽很多。Java的enum不只是常量列表它可以帶字段、帶方法、帶構(gòu)造器。比如狀態(tài)機(jī)里定義訂單狀態(tài)public enum OrderStatus { CREATED(1, 已創(chuàng)建), PAID(2, 已支付), SHIPPED(3, 已發(fā)貨), COMPLETED(4, 已完成); private final int code; private final String desc; OrderStatus(int code, String desc) { this.code code; this.desc desc; } public int getCode() { return code; } public String getDesc() { return desc; } }需要用狀態(tài)碼反查枚舉時(shí)可以加一個(gè)static方法遍歷values()注意不要每次調(diào)用都遍歷整個(gè)枚舉可以初始化一個(gè)Map緩存性能更好。用枚舉替代魔法數(shù)字最大的好處是代碼可讀性強(qiáng)別人一看就知道狀態(tài)含義switch也不會(huì)寫(xiě)錯(cuò)case。注解則是一種元數(shù)據(jù)機(jī)制本身不改變程序行為但框架會(huì)讀取它做各種處理。最常見(jiàn)的Override是給編譯器看的Transactional是給Spring做事務(wù)增強(qiáng)的。自定義注解需要配合反射或AOP才有意義這一步學(xué)Spring的時(shí)候會(huì)理解得更深。4. JVM、并發(fā)與數(shù)據(jù)一致性4.1 JVM內(nèi)存分區(qū)排查OOM的第一步JVM的內(nèi)存區(qū)域是面試必問(wèn)也是排查線上問(wèn)題的前提。按規(guī)范分為程序計(jì)數(shù)器當(dāng)前線程執(zhí)行的字節(jié)碼行號(hào)線程私有。Java虛擬機(jī)棧每個(gè)方法對(duì)應(yīng)一個(gè)棧幀局部變量、操作數(shù)棧都在這里線程私有。棧深度不夠就拋StackOverflowError。本地方法棧為native方法服務(wù)。堆幾乎所有對(duì)象實(shí)例都在這里線程共享是GC的主要戰(zhàn)場(chǎng)。方法區(qū)存放類信息、常量、靜態(tài)變量、JIT編譯后的代碼。JDK 8以后方法區(qū)改名為元空間使用本地內(nèi)存。高頻面試題是“對(duì)象在堆里的分配過(guò)程”。簡(jiǎn)單說(shuō)對(duì)象優(yōu)先在Eden區(qū)分配Eden滿了觸發(fā)Minor GC存活的對(duì)象進(jìn)入Survivor的from區(qū)經(jīng)過(guò)多次GC還活著會(huì)晉升到老年代。大對(duì)象直接進(jìn)老年代為了避免Eden和Survivor之間復(fù)制大對(duì)象的開(kāi)銷。老年代滿了觸發(fā)Full GC如果Full GC之后還是放不下就拋OutOfMemoryError。再補(bǔ)充一個(gè)實(shí)戰(zhàn)思路線上應(yīng)用頻繁Full GC第一步不是改代碼而是先dump堆快照。用jmap -dump:formatb,fileheap.hprof pid導(dǎo)出再用MAT或VisualVM分析大對(duì)象都在哪。絕大多數(shù)情況是某張表數(shù)據(jù)被一次性全查出來(lái)或者緩存沒(méi)設(shè)過(guò)期時(shí)間導(dǎo)致內(nèi)存被占滿。4.2 多線程從線程安全到鎖的升級(jí)多線程是Java進(jìn)階的分水嶺。實(shí)現(xiàn)多線程的三種方式繼承Thread、實(shí)現(xiàn)Runnable、實(shí)現(xiàn)Callable。實(shí)際開(kāi)發(fā)中基本只用后兩種因?yàn)镴ava是單繼承繼承Thread就把唯一一次繼承機(jī)會(huì)浪費(fèi)了。Callable和Runnable的區(qū)別在于Callable能返回結(jié)果、能拋異常。線程安全的核心是“可見(jiàn)性、原子性、有序性”。volatile解決可見(jiàn)性和一定程度上禁止指令重排但不保證原子性。synchronized保證原子性和可見(jiàn)性JDK 6以后做了鎖升級(jí)偏向鎖-輕量級(jí)鎖-重量級(jí)鎖。ReentrantLock功能更豐富支持可中斷、可超時(shí)、公平鎖但需要手動(dòng)加鎖解鎖通常配try-finally使用。寫(xiě)并發(fā)代碼有個(gè)經(jīng)驗(yàn)優(yōu)先考慮java.util.concurrent包下的工具類而不是自己造輪子。比如用CountDownLatch等待多個(gè)線程執(zhí)行完用Semaphore做限流用BlockingQueue做生產(chǎn)者消費(fèi)者模型。自己用synchronizedwait/notify實(shí)現(xiàn)生產(chǎn)消費(fèi)很容易寫(xiě)錯(cuò)notify和wait的順序?qū)е滤梨i或假死。線程池也是一個(gè)必考點(diǎn)。Executors.newFixedThreadPool用起來(lái)方便但阿里規(guī)范明確不推薦因?yàn)長(zhǎng)inkedBlockingQueue默認(rèn)容量是Integer.MAX_VALUE任務(wù)積壓太多會(huì)占滿內(nèi)存。推薦直接用ThreadPoolExecutor構(gòu)造函數(shù)顯式指定核心線程數(shù)、最大線程數(shù)、空閑時(shí)間、隊(duì)列和拒絕策略。ThreadPoolExecutor pool new ThreadPoolExecutor( 4, 8, 60L, TimeUnit.SECONDS, new ArrayBlockingQueue(1000), new ThreadPoolExecutor.CallerRunsPolicy() );CPU密集型任務(wù)核心線程數(shù)設(shè)為CPU核數(shù)1IO密集型任務(wù)可以設(shè)成CPU核數(shù)*2具體要根據(jù)壓測(cè)結(jié)果調(diào)整。4.3 數(shù)據(jù)一致性事務(wù)、鎖和分布式單機(jī)環(huán)境下保證數(shù)據(jù)一致性靠的是數(shù)據(jù)庫(kù)事務(wù)的ACID特性。Spring里最常用的是Transactional但用不好會(huì)踩很多坑。第一個(gè)坑Transactional默認(rèn)只在RuntimeException回滾try-catch把異常吃了就永遠(yuǎn)不會(huì)回滾。正確的做法是讓異常繼續(xù)往外拋或者在catch里手動(dòng)TransactionAspectSupport.currentTransactionStatus().setRollbackOnly()。第二個(gè)坑Transactional失效。常見(jiàn)原因是方法被this調(diào)用而不是通過(guò)Spring代理對(duì)象調(diào)用。因?yàn)門ransactional是基于AOP動(dòng)態(tài)代理實(shí)現(xiàn)的this調(diào)用不會(huì)走代理。解決方法有兩種注入自身代理對(duì)象或者把需要事務(wù)的方法拆分到另一個(gè)Service里。第三個(gè)坑事務(wù)范圍過(guò)大。不要在事務(wù)里做RPC調(diào)用、文件上傳、發(fā)消息等耗時(shí)操作長(zhǎng)事務(wù)會(huì)長(zhǎng)時(shí)間占用數(shù)據(jù)庫(kù)連接和鎖拖垮并發(fā)性能。事務(wù)里只放數(shù)據(jù)庫(kù)操作其他事情放到事務(wù)外。到了分布式場(chǎng)景單機(jī)事務(wù)就不夠用了。分布式事務(wù)的常見(jiàn)方案有XA兩階段提交、TCC補(bǔ)償、MQ最終一致性、Seata的AT模式。面試問(wèn)“怎么保證數(shù)據(jù)一致性”先分清場(chǎng)景強(qiáng)一致性需求用XA或TCC最終一致性需求用消息隊(duì)列加本地消息表。不要一上來(lái)就說(shuō)分布式事務(wù)中間件先解釋清楚為什么不直接用數(shù)據(jù)庫(kù)事務(wù)。5. 框架、面試與實(shí)操Java后端完整成長(zhǎng)路線5.1 從零到能干活一條少走彎路的路線圖如果讓人推薦Java學(xué)習(xí)路線我傾向于分四步走第一階段是語(yǔ)言基礎(chǔ)也就是本文前面所有內(nèi)容大概需要一個(gè)月。包括基本語(yǔ)法、面向?qū)ο?、集合、異常、IO、反射。第二階段是數(shù)據(jù)庫(kù)和Web基礎(chǔ)。先學(xué)MySQL的SQL編寫(xiě)、索引原理、事務(wù)隔離級(jí)別再學(xué)HTTP協(xié)議、Servlet和JSP。JSP現(xiàn)在項(xiàng)目里用得少了但屬于Java的Web基礎(chǔ)理解一次有助于后續(xù)學(xué)SpringMVC。第三階段是主流框架。Spring、SpringMVC、MyBatis或MyBatis-Plus然后是SpringBoot。學(xué)框架不要只看用法要理解IOC容器和AOP思想。SpringBoot把大量配置自動(dòng)化了新人用起來(lái)舒服但出了問(wèn)題反而不知道從哪排查所以基礎(chǔ)的XML配置方式也要能看懂。第四階段是中間件和微服務(wù)。Redis、RabbitMQ或Kafka、Elasticsearch、SpringCloud Alibaba。學(xué)到這階段就可以開(kāi)始模仿一個(gè)電商項(xiàng)目或管理后臺(tái)把框架和中間件結(jié)合起來(lái)用。5.2 Java面試八股文與其背答案不如建立知識(shí)脈絡(luò)Java面試題被戲稱為“八股文”但真正有效的復(fù)習(xí)方式不是死記硬背而是把知識(shí)點(diǎn)串成脈絡(luò)。比如問(wèn)HashMap正常的回答應(yīng)該從數(shù)據(jù)結(jié)構(gòu)開(kāi)始數(shù)組加鏈表再講hash函數(shù)和擴(kuò)容再講紅黑樹(shù)化的條件最后講線程安全替代方案ConcurrentHashMap。這一條線講下來(lái)至少能聊五分鐘還能引出JVM、并發(fā)、集合等多個(gè)話題。可以做一個(gè)知識(shí)卡片式的自查表主題必會(huì)核心點(diǎn)集合框架HashMap底層結(jié)構(gòu)、擴(kuò)容機(jī)制、HashSet原理、ArrayList擴(kuò)容JVM內(nèi)存分區(qū)、垃圾回收算法、常見(jiàn)收集器、類加載過(guò)程并發(fā)synchronized與ReentrantLock區(qū)別、volatile語(yǔ)義、線程池參數(shù)SpringIOC、AOP、Bean生命周期、事務(wù)傳播機(jī)制MySQL索引結(jié)構(gòu)、最左前綴原則、事務(wù)隔離級(jí)別、MVCCRedis持久化機(jī)制、緩存穿透擊穿雪崩、分布式鎖網(wǎng)絡(luò)TCP三次握手四次揮手、HTTP與HTTPS、Cookie與Session設(shè)計(jì)模式單例、工廠、策略、模板方法、代理準(zhǔn)備面試的時(shí)候挑至少兩個(gè)知識(shí)點(diǎn)能往深處展開(kāi)比如“你項(xiàng)目里遇到過(guò)哪些并發(fā)問(wèn)題”“Redis緩存一致性是怎么做的”。面試官想考察的不是你會(huì)背多少定義而是能不能把知識(shí)遷移到實(shí)際場(chǎng)景中。5.3 構(gòu)建工具和IDE基礎(chǔ)之外的工程化能力基礎(chǔ)語(yǔ)法之外工程化工具也算Java基建設(shè)施。Maven和Gradle是主流構(gòu)建工具M(jìn)aven的核心概念是坐標(biāo)、依賴、倉(cāng)庫(kù)、生命周期。本地倉(cāng)庫(kù)默認(rèn)在.m2目錄下依賴下載慢可以配置阿里云鏡像。Gradle更靈活構(gòu)建速度快但學(xué)習(xí)成本略高。IDEA是當(dāng)前最主流的IDE。一些提升效率的插件如Lombok、MyBatisX、Alibaba Java Coding Guidelines值得裝。不過(guò)Lombok雖然簡(jiǎn)化了代碼但也隱藏了equals/hashCode、構(gòu)造器等細(xì)節(jié)面試的時(shí)候建議能說(shuō)出Lombok的Data在編譯期做了什么事。工程化能力還包括學(xué)會(huì)用Git管理代碼學(xué)會(huì)用Maven打包學(xué)會(huì)看日志排查問(wèn)題學(xué)會(huì)用jstack看線程狀態(tài)、用jstat看GC情況。這些不是面試必考但入職后是日常必備。5.4 設(shè)計(jì)模式和代碼質(zhì)量基礎(chǔ)能力的試金石設(shè)計(jì)模式是Java進(jìn)階繞不開(kāi)的一塊面試??嫉挠袉卫J健⒐S模式、策略模式、模板方法模式和動(dòng)態(tài)代理。單例模式的推薦寫(xiě)法是枚舉或靜態(tài)內(nèi)部類雙重檢查鎖要加上volatile防止指令重排。策略模式則適合處理多種if-else分支比如根據(jù)支付方式選擇不同的支付實(shí)現(xiàn)。public interface PayStrategy { void pay(BigDecimal amount); } Component(alipay) public class AliPayStrategy implements PayStrategy { Override public void pay(BigDecimal amount) { // 支付寶支付 } } Component(wechatpay) public class WeChatPayStrategy implements PayStrategy { Override public void pay(BigDecimal amount) { // 微信支付 } }如果配合Spring可以注入一個(gè)MapString, PayStrategykey就是Bean名稱這樣將來(lái)新增支付方式只需要新增實(shí)現(xiàn)類不用改核心邏輯。這就是策略模式的實(shí)戰(zhàn)價(jià)值。代碼質(zhì)量方面推薦遵循阿里巴巴開(kāi)發(fā)手冊(cè)類名大駝峰、方法名小駝峰、常量全大寫(xiě)、equals常量放前面避免空指針、集合轉(zhuǎn)數(shù)組用list.toArray(new String[0])。規(guī)范的代碼不是給機(jī)器看的是給三個(gè)月后的自己看的。6. 避坑總結(jié)別在這些常見(jiàn)問(wèn)題上翻車6.1 環(huán)境層面的高頻故障JDK版本選擇是個(gè)老生常談但總有人踩的坑。現(xiàn)在很多公司用JDK 8新項(xiàng)目有上JDK 17的但不同版本的行為有差異。比如JDK 8的String內(nèi)部是char[]JDK 9以后改成了byte[]并引入COMPACT_STRINGS。寫(xiě)代碼時(shí)盡量別依賴具體JDK版本特性保證代碼可移植性。還有一個(gè)隱藏問(wèn)題Windows系統(tǒng)同時(shí)裝了JDK 8和JDK 17的話JAVA_HOME改了但PATH里如果還留著舊版本的bin路徑命令行執(zhí)行的還是舊版本。排查時(shí)用where java看實(shí)際路徑比反復(fù)改環(huán)境變量高效得多。6.2 代碼層面的經(jīng)典Bug字符串判空、金額計(jì)算、集合刪除這三個(gè)是新手最容易寫(xiě)錯(cuò)的點(diǎn)。集合在遍歷時(shí)刪除元素直接list.remove(i)會(huì)拋ConcurrentModificationException。正確的是用Iterator的remove或者用JDK 8的removeIf。日期時(shí)間處理也值得單獨(dú)說(shuō)。JDK 8之前用SimpleDateFormat它是線程不安全的多線程環(huán)境下同一個(gè)實(shí)例執(zhí)行format會(huì)產(chǎn)生臟數(shù)據(jù)。新代碼應(yīng)該用LocalDate、LocalDateTime和DateTimeFormatter后者是線程安全的。如果和老代碼交互可以用Date.toInstant()轉(zhuǎn)成新API。對(duì)象深拷貝的問(wèn)題在面試?yán)镆步?jīng)常出現(xiàn)。Object.clone()是淺拷貝BeanUtils.copyProperties也是淺拷貝如果對(duì)象里有List或者可變對(duì)象淺拷貝會(huì)共享內(nèi)存。要實(shí)現(xiàn)深拷貝可以序列化后反序列化或者手動(dòng)為每個(gè)字段創(chuàng)建新對(duì)象。實(shí)際項(xiàng)目中像訂單這種業(yè)務(wù)對(duì)象我一般直接新建對(duì)象再賦值最簡(jiǎn)單也最可控。6.3 學(xué)習(xí)方法和心態(tài)調(diào)整最后聊點(diǎn)學(xué)習(xí)上的經(jīng)驗(yàn)。學(xué)Java基礎(chǔ)最忌諱的是“只看不練”。視頻課或者書(shū)看一遍覺(jué)得都會(huì)了打開(kāi)IDEA寫(xiě)代碼才發(fā)現(xiàn)連import都不知道在哪。建議每學(xué)一個(gè)知識(shí)點(diǎn)就寫(xiě)一個(gè)十幾行的小Demo驗(yàn)證。比如學(xué)完HashMap自己寫(xiě)一個(gè)統(tǒng)計(jì)單詞頻率的程序順便練練文件讀寫(xiě)學(xué)完多線程寫(xiě)一個(gè)簡(jiǎn)單的生產(chǎn)者消費(fèi)者Demo把BlockingQueue用起來(lái)。另一個(gè)親測(cè)有效的方法是費(fèi)曼學(xué)習(xí)法。每個(gè)技術(shù)點(diǎn)用自己的話講給同事或?qū)戇M(jìn)個(gè)人博客。你能把一個(gè)概念講得讓小白聽(tīng)懂說(shuō)明你是真懂了。這也是我這些年堅(jiān)持寫(xiě)文章、整理筆記的原因輸出倒逼輸入效率遠(yuǎn)高于單純看資料。根據(jù)我個(gè)人的實(shí)際體會(huì)Java基礎(chǔ)的學(xué)習(xí)不需要一次追求完美第一次學(xué)能寫(xiě)CRUD就夠了第二次學(xué)能理解Spring底層第三次學(xué)能定位復(fù)雜問(wèn)題。每輪學(xué)習(xí)都帶著新的實(shí)踐問(wèn)題回頭翻基礎(chǔ)每次都有新收獲。這就是Java這個(gè)語(yǔ)言的特點(diǎn)同時(shí)也是它真正值錢的地方——基礎(chǔ)知識(shí)學(xué)得越扎實(shí)后面的并發(fā)、分布式、調(diào)優(yōu)之路才能走得越穩(wěn)。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久久神马影院| 日韩中文字幕精品一二三事国产精品 | 激情五月综合网| 激情小说日韩无码| 欧洲综合色| 精品97精品97| 色男人色天堂东京热| 97人人草| 91碰碰碰| 五月丁香婷婷综合网| 中文字幕在线免费观看2| 亚洲玖玖爱| 中国小夫妻勾搭露脸淫荡对白| www.天天干| 久久久精品视频免费观看| 久久精品人人做人人看| 日少妇视频| 91男人综合| 极品后入免费视频| 国产精品白虎| 亚洲色鬼| 啊啊啊啊嗯嗯嗯用力好爽 | 91在线色| 丝袜美女诱惑 91 视频| 欧美精品系列| 极品白嫩美少妇在地板上位骑射淫水泛滥| 欧美97免费| 精品久久九| 91撸色网 玖玖网 欧美| 丰满少妇高潮无码| 青久操| 久久国产精品91| 精品久久人妻成人网| 粉嫩粉嫩一区性色AV片| 国产自产自拍| 欧美日韩性爱视屏免费看了| 丁香五月婷婷啪啪| 天天摸天天插天天日| 欧美久久九九| 97国产色综合| 亚洲日韩乱码中文无码蜜桃臀网站 | 99re69综合| 天天做天天爱天天高潮| 蜜臀久久99精品久久综合| 一区二区三区 丝袜 高跟 美腿| 久久久久久久人妻| 天堂资源欧美| 91 国产丝袜在线播放-百度| 亚洲九九视频| 日本乱人伦片中文三区| 免费操逼视频下载| 色色色综合| 97中文天堂| 九九英色视频| AV天堂因数| 99热一区二区三区四区| 国产91影院| 色就色综合| 伊人女女资源在线观看| 日日干夜夜干| 日韩综合第八区国产精品| 色妇综合网| 麻豆久久精品亚洲精品88| 欧美偷拍区| 国产树林里野战在线看| 乱人伦 国语对白:视频直接看| 激情接吻视频久久久久久| www.久久最新地址| 日韩成人大片在线观看| 蜜臀久久99精品久久综合| 男女激情中文字幕| 精品久久久久成人码免| 91亚洲欧洲| 在线a v| 操操碰| 久久伊人青青草| 久久久久久无码人妻中文字幕| 精品人妻一区二区三区在| 不卡av在线中文字幕| 日本色色色色色视频| 熟妇熟女视频一区二区三区| 日本黄页视频在线观看| 日本黄大片在线观看视频| 亚洲精品无码少妇久久| 69久久久久久久久久久久久| 97超碰站| 热久久91婷婷| 亚洲熟妇A V黑人| 久久久精品中文字幕爱豆| 丝袜大香蕉| 女生自91网站| 大色综合| 五月天偷拍| 亚精品无码毛片一区二区三区| 东京热双插| 强奸乱伦Av网| 女生自91网站| 男人女人18禁片免费看网站| 成人性爱av.com| 久久这里只精品免费福利| 国产a级午夜毛片| 91美女在线精品视频| 超碰视97中文| 国产精品毛片?v一区二区三区| 日韩操人| 亚洲情色 自拍| 福利操逼| 东京热不卡视频| av中亚| 9久久精品| 97视频免费在线| 日本护士高潮| 91操熟女视频| 人妻激情偷乱视频一区二区三区 | 亚洲人妻一区二区三区| 欧中美三级一区二区三区| 26uuu国产日韩综合在线观看| 蜜臀色乳| 蜜桃av综合网发布| 51一区二区三区| 中文字幕狠狠玩| 亚洲视频一二区| 欧美综合天堂| 人妻激情另类| 久久在线观看免费视频| 婷婷五月花| 丰满人妻一区二区三区免费 | 自拍视频一区在线观看| 91热色| 欧美黄片欧美黄片xxx| 91高潮喷水美女| 一区二区三区四区免费视频| 久久↗↗| 黄色网址久久精品欧美喷水| 国产美女高潮| B049AV在线播放| 操逼网免费无码视频| 插插综合网天天影视网| 大香蕉伊人网WWWn0n| 91视频精品| 伊人久久久日韩一区| 久久无码成人| 女人18精品一区二区三区| 婷婷在线视频| 午夜福利精品| 日韩一级欧美一级国产一级台湾| 久久、1234| 日韩黄色一区二区三区| 神马麻豆福利院| 免费人人搞97| 狠狠色婷婷7777久| 家庭乱伦国产精品| 天天综合网亚洲综合网| 色性荡荡荡荡视频| 久久久久成人亚洲国产| 中文字幕97| 天天舔天天日天天射| 丰满的三级少妇欧美久久久| 欧美精品宗合| 后入式五六区| 国产成人AV麻豆| 亚洲国产成人精品无码专区| 97超碰欧美中文字幕| 亚洲在高跟鞋自慰久久在色线| 很很热性爱视频| 啊啊啊爽爽| 人妻丝袜肏逼| 日本不卡码黄色| 亚洲AV成人无码一区二区三区在线观看 | 97在线亚洲| 九九十八精品| 狠狠干狠狠干| 久操大香蕉| 91影库| 久久ww| 碰碰97| 女人香蕉久久毛毛片精品| 爱爱动态试试看6 0秒| 亚洲经典啪啪| 在线强奷到舒服的无码视频| 黄色av一区二区在线| 伊人丁香五月婷婷| 天天综合~91| 丝袜足交视频| 日韩一级二级三级| 久操免费电影| 国产自产22区| 国产精品电| 色婷婷久久综合超碰| 操人妻少妇中文| 国产免费一区二区在线A片视频| av在线观看不卡网站| 国产91精品在线免费| 久久久天美| 久久人妻一区二区三区高清| 亚洲中文字幕久久无码精品| 国产精品诱惑| TS人妖另类精品视频系列| 国产精品网址| 啪啪啪综合网| 精品久久久久久无码| 97欧美视频| 深夜福利黄片| 婷婷久久五月综合激情| 大JI巴好深好爽又大又粗视频| 91爱啪| 亚洲精品九九九九九九| 99色在线| 天天躁日日躁狠狠狠躁| 国内偷拍精品一区二区| 日韩特级毛片免费观看全集| 久久这里只精品免费福利| 免费岛国一级片| 日日骚AV| 日本性交操一区二区不卡系列| 最新国产精品| 天天躁日日躁XXXXYY| 99热99色| 熟女一区二区| 日日嗷| 欧美 色 亚洲| 污色区网站| 沈阳熟女高潮对白视频| 日本三级一区二区 在线| 亚洲日韩美国人妻| 9久久精品| 男人的天堂成人的社区| 久久久久久久9最新免费视频观看| 超碰这里有精品| 超碰九九| 午夜120视频在线观看| 久久性爱大全| 一本一道人妻久久一区二区三区| 91最新综合| 91爱欧美| 久久精品国产亚洲5555| 在线不卡视频| 久久嫩草国产成人一区| 青草园大香蕉| 日韩福利综合一区| 大香蕉九九| 亚洲自拍另类丝袜综合| 亚洲欲色| 久久久网站| 久久精品免费| 久久久久久中文| 亚洲天天操| 亚洲激情综合| 欧亚第一综合网| 亚洲欧美日韩中文久久自慰| 国产精品久久久久久久久久梁医生| 一区二区 电影 亚洲| wwe 天天干.com| 国内操逼视频二区| 欧美色视频在线| av片在线观看免费播放| 污污污8888| 欧美综合综合| 国模艳艳啪啪一区| 精品国产99| 欧美色蜜桃97| 亚洲精品日韩国产欧美| 人妻少妇久久中文| 老熟女搡BBBB搡BBBB视频| 大香蕉丝袜一级片| 日韩 女同 综合| 999精品久久久久久久| 秋霞久久亚洲精品成人| 1769一区| 日韩三级天堂在线观看| 伦理弟一页| 人人操人人色网| 亚洲欧美成人在线| 涩亚洲欧洲| 嗯啊视频免费在线观看| 国产欧美伊人| 日本三级小说中文字幕| 欧美色爱综合| 日韩精品 视频一区二区| 蜜臀AV成人精品蜜臀| 91日韩| 精品人妻一区| 四月丁香婷婷| 日韩在线观看三级电影| 久久久9品一区二区三区| 亚洲天堂男| 秋霞一级视频在线观看免费| 偷拍新久久| 把腿张开老子CAO烂你| 大香蕉色欲AV| 亚洲精品第一| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 黄色大片视频在线免费看| 99热9| 欧美日韩小说| 国产原创自拍| 美国黄片aaa| 久久久久久久久久久999| 熟女精品一区二区在线观看| 少妇综合网| 亚洲天堂中文字幕无码男同| 欧美激情精品久久久久久| 欧美日韩国产高清在线一二三区| 色偷综合| 丁香婷婷大香蕉| 91综合网站| www.97在线| 久9re热视频这里只有精品| 丝袜制服字幕在线| 人妻黑丝袜电影| 天天综合网日韩7799| 蘋果手機免費看成人Av| 丁香五月激情综合国产| 亚洲全色网| 天天天肏屄欧美| 国产美女自拍AV| 亚洲啪啪啪啪视香蕉| 亚洲色图欧美视频| 999久久久免费精品国产牛牛| 人人澡综合涩| 性色av蜜臀av色欲aV| 男人的天堂在线2| 亚洲精品乱码线路中文字幕| 国产熟码AV| 婷婷丁香五月综合| 伊人黄色片| 精品二区三四区五电影 | 国产精品电影大全| 天天日老熟妇| 爱爱60秒免费视频| 九九九九九九九九九国产精品 | 天天欧美色| 国产成人自拍视频视频| 欧美丝袜亚洲| 美女毛片999| 不卡啪啪视频| 操操逼视频| 人妻少妇无码| 人人污日韩一区二区| 天天搞在线综合网| 超碰午夜| 骚货 中文字幕 av| 国产高清精品福利| 欧美激情1区| 久久超碰爱| 乱伦一区二区三区‘| 精品国产乱码久久久兰草影视| 91色久| 国产精品麻豆成人av| 玖色av| 亚洲人成色9999精品久久| 午夜舔阴达高潮视频免费看| 91狠狠狠| 久久AV色| 青青草色插素人| 白嫩嫩一区| 天天天天天干夜夜夜夜夜操| 97人妻免费中文字幕| 91综合色噜噜| 伊人天天久久动态图| 久久成人精品| 亚洲综合影片| www.狠狠| 无码少妇精品一区二区60岁老人| 日韩欧美综合激情| 国产人伦a片信息免费片| 国产熟女少妇一区| 黄色片一区二区三区四区五区| JuliaAnn丝袜熟女系列| 四季av一区二区凹凸精品小说| 精品无码一二三四区| 四虎影库国产精品免费| 大香蕉综合网| 色吧综合网| 一级啊性爱在线视频| 免费日韩黄片| 一级特黄aaa大片在线观看成人一级片在线观看| 麻豆成人影音在线| 亚洲网站一区二区在线| 国产视频三区四区| 日本成人电影资源网| 国产精品麻豆免费视频| 欧美日韩免费性爱| 操逼片国产| 国产高清无码一区三区二区| 欧美日韩亚洲一区二区在线观看| 色爱欲亚洲| 美日韩成人| 日本一区二区成人在线| 欧美东京热精品A∨| 在线性黄高清免费视频| 婬女免费一二三区A片| 午夜精品久久久久久久99蜜桃一| 天天精品| 激情深爱五月天| 欧洲天天在线| 亚洲淫乱骚妇AV| 少妇三P| 97精品视频网站| 国产精品国产| 国产精品扒开腿做爽爽爽视频| 97免费在线观看| 久96热在线观看视频| 情趣丝袜无码操逼视频| 亚洲 一区二区 自拍| 激情五月天社区| 青青在线视频日韩欧美| 欧美大片91| 一个色导综合| 国产精品三级视频网站| 色噜噜人妻av 中文字幕| 污污污8888| 超碰欧美97资源| 久久久久亚洲精品| 久久9久| 伊人久久亚洲色欲综合网站| 日韩 女同 综合| 欧洲综合色| 久久99国产精品| 97超碰色色| 都市久久精品激情亚洲| 丁香六月啪啪| 国产精品高潮久久AV| 亚州,欧美在线| 日本αv| 一级啊性爱在线视频| 日本美女性生活久久久久久久 | 欧美超碰97| 综合欧美激情网| 日韩精品.久久精品.AV女优.天美传媒 | 婷婷五月天网| 久久99手机免费视频| 999久久芭蕾| 一级片视频啪啪| 18禁精品网站在线看| 成人性爱高清视频免费看| 超碰在线国产| 97中文字幕色| 日夜精品| 6080YYY午夜理论片在线观看| 日本一区二区成人在线| 亚洲色图加勒比| 欧美热图99| 欧美极品性爱天天射| www鬼畜国产男人的天堂| 久久久精品一区二区| 成全动漫视频观看免费下载| 五月丁香网站| 欧美激情内射| 女人高潮大叫一级毛片| 亚洲系列欧美| 精品一啪| 日韩 女同 综合| 色五天伊人| 午夜欧美J进J出白浆流出久久久 | 日本三级R| 久久精品夜色国产亚洲AV| 欧美日韩在线视频网站| 亚码激情| 日韩福利电影网| 殴美牲| 色九久| 黄污污污污| 久久久一区二区三区麻豆| 亚洲偷拍自拍在线视频| 激情婷婷黑人91| 男人的天堂一区三区| AV男人天堂网| 丁香五月婷婷五月| 久久啊啊啊| 亚洲精品视频二区| 精品福利| 欧美一二三区四五区| 视频一区二区三区精品| 日韩精品第3页| 另类欧美色| 人人插人人搞人人操| 亚洲天堂一区二区| 色婷婷影院| 国产91 丝袜在线播放00-百度| 亚洲少妇喷视频看| 美日韩男女操屄视频| 久久亚洲天天做| 91亚洲色人| 另类视频在线| 久久色情| 午夜男女爽爽大片免费观看| 婷婷15月天青娱乐| 去干网最新版| 日韩欧无码一区二区三区免费不卡| 情色五月天网| 在线观看综合精品亚洲| 国产精品乱码久久久| 99超碰色| 四虎影视永久在线免费| 91美女在线| 中文一区二区婷婷视频| 亚欧成人综合影院| 91欧美经典| 欧美久久毛片基地| 久久美女福利是上海美女| 欧美色图亚洲色| 欧美 日韩 国产传媒| 国产欧美日韩精品中文| 91另类| 美女诱惑在线一区| 亚洲日韩AV视色| 免费亚洲黄色视频在线观看| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 国产女人9999| 欧美第一页性| 国产精品无码论坛| 欧美性爱精品七区| 91精品国| 成人片视频| 大香蕉97久久| 深田咏美亚洲精品福利社| 操屄日韩| 欧美激情区| 欧洲亚洲人人爽爽视频| 亚洲综合有玛| 伊人亚洲国产一成人久久精品,久久| 无码区蜜乳| 久久超碰com| 国产精品动态一区二区三区四四| 97激情97激情| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 人人妻天天做天天爽| 狠狠躁AV| wwwss在线观看| 中文一区在线视频| 国产精品盗摄 偷窥盗摄| 亚洲性高潮| 丰满欧美放荡少妇在线| 欧美激情色婷婷花野真衣一区二区| 天天综合网~69| 日韩精品中文字幕二区| 成人午夜小视频手机在线看| 免费一级a毛片久久久久久鸭绿欲| 78超碰| 亚洲图片小说欧洲| 国产精品69久久久久孕妇欧美| 欧美亚洲一区二区久久久婷精品大包诱| 99这里都是精品| 成片免费播放| 日本福利二区视频| 2024人人操人人摸| 岛国成人av在线播放网址| 久久久久久久国产视频| 家庭乱伦性爱av| www.99中文字幕| 国产在线强奸视频| 中国国产精品一区视频| 国产精品自拍xxxx| 天堂中文日本在线观看| 日韩性爱再线视频| 国产精品免费视频人成| 免费一级视频特黄色大片| www.人人cao| 亚洲强奸乱伦影视网| 国产第25页在线观看| 伊人激情五月天一区二区| 亚洲最新av无码成人精品区 | 成人天天爽| 日本三级韩国三级美三级91| 天天干夜夜肏| 亚洲欧美洲综合| 美女91AV| 蜜乳视频网站| 3P乱轮视频| 免费一级欧美片片线观看| 久久久97| 欧美制服网站美腿丝袜| 男人天堂站| 亚洲揄拍网| 福利大香蕉| 淫淫综合网| 亚洲欧美日韩中文播放| 另类小说综合网| 爆操无码| 久久综合乱子伦国产免费| 日日黄色三级网站| 抽插一区二区视频| 中文字幕精品探花视频| 日本精品无码三级网站| 亚洲激情av| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 日韩激情视频| 欧美亚州综合网图片| 亚洲综合第一页| 色就色综合| 日韩精品一区二区三区色欲| 99热精品青草在线 | 男男H黄动漫啪啪无遮挡网站| 亚洲高潮少妇| 999九九精品| 欧美懂色综合网| 中文字幕亚洲永久精品| 狠狠干,狠狠操| 操b网站亚洲无码| 伊人欧美大香蕉视频| 美女天天干| 亚洲日韩精品在线播放| 欧美97视频| 国产路线专区| 欧亚性爱视频免费看| 无码一区二区三区四区五区六区七区八区九区十区视频 | 超碰一区二区| 99久在线精品99re8蜜桃| 秋霞一级A片黄色视频| 欧美日韩性爱精品| 啊啊啊快操我视频| 秋霞色色影院| 五月激情啪啪| 国产人人干| 亚洲无无码αⅴ每日更新| 激情综合五月天| 大乔未久88一区| 国产精品直播在线观看直播| 丁香五月激情五月| 日韩无码服务区| 午夜一区二区三区国产| 激情露脸爱| 色妇综合网| 五月丁香综合啪啪| 中文字幕精品亚洲熟女| 精品国产丝袜一区二区三区乱码| 日本不卡码黄色| 四虎精品一区二区| 大香蕉啪啪啪| 密臀在线视频| 亚洲日韩精品在线播放| 色婷婷A V一二三四区麻豆综合| 97在线精品观看视频| 天天综合欧美综合| 国产精品久久天天干| 亚洲,欧美,春色,另类| 韩日欧亚a级| 五月婷在线| 999国产精品999久久久久久| 久久久久久久久久8888| 国产丁香精品露脸视频| 熟女视频久久| 超碰色大香蕉| 色综合五月天| 日少妇视频| 极品色社| 人人人摸人人| 色九九九综合| 国产探花精品在线| 台湾佬中文娱乐网久久久久久久久久com | 岛国黄| 一区二区三区四区姦女| aa片毛片| 九一亚洲国产免费| 丰满美女一级毛片在线播放| 亚洲精品丝袜| 宅男影院久久久,99| 超碰在线香蕉| 啊啊啊啊啊啊好湿好爽视频| 国产女人高潮嗷嗷嗷叫小说| 日韩人妻丝袜美腿中文| 5月婷婷6月六月丁香| 天天躁日日躁狠狠狠躁| 欧美综合站| 最新日本中文字幕| 超碰天天操| 操逼视频免费日韩无码| 欧美日韩制服| 18一区二区三区| 国产一级高跟丝袜| 大香蕉2017| 国产精品老熟女一区二区| 被操高清无码视频| 久久精品高清无码一区| av中文在线| 亚洲 无码 偷拍| 国产一区二区在线播放| 久热热| 女人 A一级| 青青欧美| 色色亚洲| 黄色片,com| 蜜区区视频79| 中文久久一区| 亚洲AV无码国产精品久久久久| 欧美人妻制服| 日夜干射色啊| 色丁香五月婷婷| 日韩99精品视频综合区 | 一区二区三区黄色片a| 97色欧洲| 国产精品网站免费| 国产不良强奸视频免费看| 日韩天天本| 自偷自拍的亚洲视频| 国产在线综合福利网站| 夜夜草我| 久久久久96| 色呦呦、国产精品| 嫩草影院在线观看精品| 国产精品午夜福利| 国产亚洲色婷婷99精品91| 无码日韩网站| 午夜超爽| 国产自制av蜜乳| 国产中文字幕在线观看| 亚洲 图片 欧美 色图| 爱我干综合| 久久精品国产99精品亚洲蜜...| 久草电影网| 欧美成人色| 丝袜制服字幕在线| 性爱视频久久| 91天堂色男人的天堂| 欧洲在线性爱视频| 久久久日本电影| 久久原创中文| 国产日韩人人| 超碰亚洲97| 强免费黄色网址| 国产午夜激片Av毛片不卡| av网站国产主播在线| 色九久| 天堂精品| 亭亭在线资源| 欧美伦乱爱| 9热9热综合网| 很黄很污的免费网站| www.夜夜| 99爱精品| 亚洲日韩一区电影| 久久综合婷婷| 国产免费一区二区在线A片视频| 亚洲欧美日韩精品久| 日本熟女免费視颖| 国产一进一出视频网站| 大香蕉视频一二三区| 国内毛片热久久思思热| 欧美巨大性舒爽顶到了| 无码一区免费在线不卡| 亚洲av性爱电影| 色在线视频导航| 肏逼视频日本| 蜜乳成人AV| 亚洲人体视频在线观看| 高清国产无码av| 国产 亚洲 一二三四| 亚洲网站一区二区在线| 国产久久日| baisiav| 乱日视频| 久热精品色情| 99re99视频在线免费观看| 99xav| 午夜AV污污污| 另类图片五月天| 久久久久女教师免费一区| 啊v在线观看视频| 人人么人人操| 亚洲精品国产专区在线观看| 香蕉人人操tv| 91超级碰碰碰| 久久亚洲骚逼综合| 四虎884a| 爱丝福利| 97久久网| 嫩草一区二区在线观看| 综合激情五月天| 久久久男人的天堂| 91熟女熟妇视频网站| 夜夜肏2021| 成年男人的天堂| 麻豆激情综合| 九九久久九九久久| 精品精品精品| 久久综合女优| 热久久无毒不卡| 久夜视频| 人人操人人搞人人草| 久久ww| 天色综合网| 日韩三级性| 诱惑网综合| 99久久精品无码一区二区毛片免费| 91人妻做a观看视频| 色婷婷久久| 九九aV| 色久综合| 女人的天堂大香蕉网| 久操免费电影| 国产操逼网站亚洲一级黄色| 午夜福利免费福利视频| 日韩草久视频| 亚洲怡春院| 99精品国产户外露出| 强奸乱伦日韩AV| 强上我不卡卡| 国产又粗又长的视频| 人人性爱视频免费| 天天日天天爽| 欧美一区二区三区成人性生活| 欧美美女视频| 久操视频资源站公开| 99丝袜福利在线播放| 91久久国外网| 成人无码在线视频网站| 91 综合网| 亚洲一区二区在线观看91| K8久久久久| 亚洲综合首页| 留下AⅤ黄色片| 四虎视频在线观看| 天堂综合网| 欧美黑人精品一区二区| 日日夜夜狠狠| av草草在线电影| 免费av在线播放二区| 婷婷五月成人| 精品丰满熟妇人妻一区| 91香蕉视频在线观看免费| 欧美亚洲玖玖玖| 国产一二三福利视频网| 国产尤物AV尤物在线观看不卡| 五月丁香啪啪| www.97在线| 久9爱精品| 成人aⅴ一区二区三区| 欧美在线官网| 色欧洲| 久久ww| 国产精品一区在线播放| 免费观看的黄色的网站| 东京热av男人的天堂| 84YTCOM性无码| 人妻碰碰碰碰碰碰| 美女久久久久久久久久久| av凤凰久久久| 蜜臀99久久精品| 高清无码 国产精品| 伊人伊人LD| 95人妻爽爽人人做人人澡| 精品人妻一区二区乱码一区二区| 亚洲AV无码秘 蜜桃臀国精产品| 人妻久久久久久久久久久久久久久| 18精品一二区| 五月婷在线| 亚洲高清欧美总合| 伊人成人中文字幕久久网| 97亚洲色图| 大香交伊人网| 中文字幕欧美丝袜07资源| 丰满人妻一区二区三区四| 性猛交| 中文字幕视频一区视频二区| 91欧洲国产成人久久精品网站| 偷拍 精品 另类 四区| 日韩三级伦理中文字幕| 大香蕉国产中文自拍| 少妇无码av专区线| 997色在线| 欧美躁死她一区二区| 91久久青青草原精品| 欧美性色综合网| 精品人妻av在线播放| 中文字幕在线第二页| 超碰久热| 日韩强奸av| 国产精品久久久久久久免牛肉蒲团| 日本高清_区二区三区| 精品国产乱码久久久久久免费| 小泽玛利亚一二三| 国内毛片热久久思思热| 午夜精品久久999热蜜桃介男人用| 国产精品岛国片在线观看| 国产三级中文字幕粉嫩| http://qxhbdz.com| 国产福利电影| 久久久一二三四区| 超碰久久性爱| 久久久久国产精品喷潮免费观看臀| 中文字幕一区二区三区人妻不卡| 69精品少妇一区二区三区蜜桃| V A在线| 久久精品99| 久无码| 黄色毛片A片| 91美女视频| 97就爱干| 国产天天骚| 一起草精品人妻| 夜夜草我| 美欧色综合| 亚洲性感丝袜诱惑在线观看| 伊人影院中文字幕| 99性爱在线观看| 肉动漫无遮挡h在线观看| 91国产丝袜美女| 久久的网站啊啊啊啊啊| 欧美成人一区二区三区在线播放| 翔田千里A片一区二区| 四虎精品一区| 色综和网| 性色乱AV一区二区| 国产亚州日韩欧美看片| 色操逼网| 成人线上超碰| 91n处女在线观看| 久久精品中文| 69AV女优男人的天堂| 91精品大奶人妻| 欧美精品一区二区少妇免费A片| 精品国产乱码久久久久久蜜臀| 欧洲大香蕉| 亚洲国产精品久久久男人的天堂| 天综合网| 激情色色| 欧美一区二区亚洲天堂| 国产av又色又爽又黄| 亚洲黄色视频在线观看视频| 91高潮| 亚洲久9| 亚州欧美在线| 91精品操美女| 另类成人首页一区| 色网1| 小明看看网址| 亚州精品丝袜-不卡成人免费| 天美传媒国产原创中文字幕亚洲欧美另类| 色噜噜人妻丝袜a∨先锋影| 91伊人| 96精品一区| 白丝在线一区| 少妇内射www在线观看视频| xxx亚洲午夜天堂| 久久女人视频| 青青草九九九九九| 日本在线不卡123| 韩日精品四区| 婷婷六月天| 人人天天欧洲| 日韩美一区| 日韩精品.久久精品.AV女优.天美传媒| 超碰狠狠操| 九九热精品视频在线观看| 精品一区二区亚洲国产| 久久精品性| 97人妻碰碰中文无码久热丝袜| 麻豆综合一区av| 国产欧美在线观看免费观看| TS人妖另类精品视频系列| 日韩成人性日韩成人性爱视频在线免费观看 | 熟女久久| 婷婷午夜清品久久久久久久性色视频观| 亚洲 欧美 日韩另类 麻豆| 久草综合网| 欧成人精品一区二区三区| 中韩中文字幕在线观看| 亚洲毛片久久| 97天天综合| 中国操逼无码| 国产精品一级特黄aaa大片在线观看| ..日韩av毛片精品久久久| 精品人妻一区二区视频| 国产久久一区二区午夜| 色99在线| 91九色网| 麻豆国产96在线| 69丨亚洲丨精品丨入口免费播放| 韩国一级AAA| 亚洲激情在线观看一区| 国产一级特黄大片处女| 美国三级日本三级久久99| 欧美高清无码免费视频高清版| 综合色图亚洲欧美| 性欧美另类高清| 亚洲永久永久永久永久一级一级一级精品 | 清纯唯美综合亚洲| 校园激情狠狠四射| 91狠狠综| 欧美日韩97| 亚洲天堂男人的天堂| 日韩欧美福利视频看看| 国产区91柔拿会所技师| 日韩三级一区 | 激情五月婷婷综合| 蜜臀AV成人精品蜜臀AV久久| 在线小说视频一区| 久久久久九九九| 男女激情黄色网址| 青娱乐亚洲热| 久久精品高清无码一区| 麻豆成人影音在线| 一级特级aaaa毛片免费观看 | 国产妇女精品视频青青草| 视频二区美腿制服人妻欧美| 久久免费99精品久久久久久| 精品国产肉丝袜在线拍国语 | 国产综合日韩伦理| 麻豆啪啪啪视频| 国产熟女一区二区丰满| 欧美图片校园春色| 在线观看高清AV| 亚洲有薄码区日本系列中文字幕| 曰本91情色| 亚洲国产综合图区中文字幕 | 人妻91少妇| 日欧亚洲二三区大片不卡| WWW4虎| 91国产丝袜白虎| 中文字幕日韩人妻视频一区二区三区 | 日韩精品电影| 人妻精品视频一区二区三区| 婷婷视频网| 97欧美色综合| 日韩人妻一二三区视频| 亚洲 中文 女同| 无码人妻一区二区三区四区老鸭窝| 亚洲中文国际强奸字幕| av网页一区二区三区| 国产97视频免费观看| 热天堂一区二区| 99热这里都是精品| 在线观看综合精品亚洲| 97一区二压| 激情 欧美 亚洲 小说| 狠狠躁AV| 91处女在线观看| 99热66| 老熟女综合网| 在线国产探花| 舔人妻中文免费视频| av天堂精品久久| 91爰爱欧美| 狠狠操官网| 国产精品欧美激在线| 无码一区免费在线不卡| 欧美专区第一页| 91精品老女人| 超碰公开久久网| 视频国产欧美在线播放| 精品无码一区二区| 国语对白在线播放视频| 91成人社区| 无码精品一区二区三区潘金莲| 99蜜桃臀亚洲成人在线观看| 日韩性爱免费观看视频| 97干色天堂| 都市久久精品激情亚洲| 亚洲综合图色在线| 精品人妻av在线播放| 天堂综合| 亚洲乱熟女一区二区三区大香蕉| 极品少妇久久久久| 久久婷婷伊人| 丝袜AV一区二区三区| 久久精品欧美一区蜜桃| 插入逼91| 男人网站婷婷| 亚洲 国产 精品一区| 99re99在线视频| 欧美黑人性猛交91| 18禁看网站一区| 福利在线视频一区二区| 日本高清一区二区在线| 欧美激情精品久久久久久| 一本一道人妻久久一区二区三区| 久久产精品一区二区三区电影| 精品视频97| 国产92麻豆天美精品色欲5| 国产国产亚洲一二三久久| 久久国产三区| 在线播放免费av福利片| 欧美青青草视频| 亚洲色五月| 老外又粗又长一晚做五次| 天综合网欧美| 亚洲综合五月天| 台湾一区国产高清在线| 国产情色第一第二页在线观看| 亚洲精品视频在线播放| 精品综合久久久久久五月天| 级品肉射| 九九热精品在线| 国产一区二区三区视频在线看| com 首页 18岁 禁区 女优 免费 精选 同城| 26uuu欧美| 人人操人人操人人操人人操人人操人人人11.CM| 操老熟女AV| 97视频在线观看播放与子乱对白在线……| 久久久久久日韩| 综合网 欧美| 天天射夜夜| 啊啊啊啊嗯嗯嗯用力好爽 | 久久精品91| 2025亚洲男人天堂| 亚洲国产无码精品首页久久久| 中文字幕久久婷婷丁香五月天| 久久超碰av在线| 人人爱夜夜爱| 99热欧美| 狠狠中文字幕| 久久久久九九九| 蜜臀在线网站| 人妻另类 专区 欧美 制服| 草伊人高潮喷水超碰| 日本黄 R色 成 人网站| 18禁无码永久免费无限制| 偷拍亚洲视频一区二区三区四区| 夜夜操av亚洲一区二区| 五月丁香狠狠爱| 脫衣舞一区二区三区| 久久久久国产精品久久久| 九草九九九| 91精品导航| 日韩一999精品| 99久久婷婷国产综合精品草原| a一区二区三区乱码在线| 婷婷综合伊人一区| 久久婷婷苹果| 久久人妻少妇| 欧美 传媒 麻豆 日韩 偷拍| 曰韩精品九九无码| 国产免费永久精品无码| 久久男人精品| 乱伦熟女专区| 张柏芝国产一区在线观看| 日曰骚久久精品| 婷婷九月丁香| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 色婷婷婷五月天激情四射| 丰满少妇精品一区二区| 日韩一性一交一A片俄罗斯 | 国产久久视频| 天天cao在线| AV和黑人在线播放| 日本一区不卡| 久99在线免费观看视频| 天天超级碰碰碰| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 人人操,人人液| 色99视频| 嗯嗯啊啊啊好爽| 99热精品在线播放| 欧美精品黑人猛交高潮| 动漫爆乳3D奶水一区在线观看| 国产精品嫩草影院免费| 一区二区 日韩 欧美 国产 传媒| 国产在线观看一区二区三区| 嗯啊不要在线| 97爱亚洲| 噜噜噜亚洲精品| 一级乱伦网站| 中国AAAAAA黄色片| 亚洲欧洲无码bt精品合集| 97国产精选| 日本免费不卡二区| 99久久综合| 天天综合网合集91| 欧美夜色|