免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

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

JVM Class文件深入解析:從字節(jié)碼結構到注解丟失與Metaspace調(diào)優(yōu)

JVM Class文件深入解析:從字節(jié)碼結構到注解丟失與Metaspace調(diào)優(yōu) 寫這篇東西的起因是前兩天又有同事跑過來問我“我寫了個注解結果反射的時候拿不到Class文件里也沒看到會不會是JVM把它吃了”這個問題看著小但牽出來的鏈路特別長Java源碼怎么變成Class文件、注解在字節(jié)碼里怎么存、類加載的時候怎么讀。我索性把Class文件這條線完整地梳理了一遍這也是我這么多年排查JVM問題的重要錨點。如果你剛開始學JVM或者寫了一段時間Java但沒細看.class里到底是什么再或者你在做Agent、字節(jié)碼增強、線上問題排查這類偏底層的工作這篇內(nèi)容都值得過一遍。我不會只講概念會直接掰開一個Class文件逐字節(jié)看也會把注解丟失、版本不兼容、Metaspace膨脹這類實戰(zhàn)坑講明白。1. 先搞清楚Class文件在JVM技術棧里的真正位置1.1 它是JVM的“通用語言”不是Java的專屬產(chǎn)物很多人有個錯覺覺得Class文件是Java編譯出來的所以是Java的東西。這個理解不完整。Class文件是JVM規(guī)范里定義的一種二進制格式JVM只認得這個格式誰編譯出來的它不管。Java、Kotlin、Groovy、Scala、Clojure都能編譯成Class文件。你甚至可以用文本編輯器手寫字節(jié)碼只要格式合法JVM一樣認。打個不全但貼切的比方Class文件像是JVM世界的“普通話”不同語言就是各地的方言。你寫Java、寫Kotlin本質都是把自己的源碼“翻譯”成方言再統(tǒng)一整成普通話讓JVM這個“聽眾”聽懂。這也是為什么Kotlin能和Java無縫互調(diào)因為它們最終都落在同一個字節(jié)碼世界里。也正因如此想真正理解JVM繞開Class文件是不現(xiàn)實的。類加載、動態(tài)代理、AOP、熱部署、Agent這些看起來高級的能力底層全是在和Class文件打交道。1.2 JVM、JRE、JDK的關系幾句話講透網(wǎng)上天天有面試題問JVM和JRE的區(qū)別我發(fā)現(xiàn)很多人背了定義但沒串起來。前面已經(jīng)提了幾個熱詞這里就得把關系理順。JDK是Java Development Kit是給開發(fā)者用的完整工具包里面包含了編譯工具javac、打包工具jar、診斷工具jstack/jmap/jstat這些還包含一個JRE。JRE是Java Runtime Environment是給運行Java程序用的環(huán)境它里面包含JVM和Java核心類庫。JVM是Java Virtual Machine是真正執(zhí)行程序的那部分人話說是“跑字節(jié)碼的虛擬機”。關鍵點在于Class文件不是給操作系統(tǒng)直接執(zhí)行的而是給JVM執(zhí)行的??缙脚_靠的是JVM對Class文件的統(tǒng)一解釋不同操作系統(tǒng)裝不同的JVMClass文件不用變。這里有個經(jīng)常被誤解的點Java跨平臺不是“源碼跨平臺”源碼在哪都得先編譯成Class真正跨平臺的是這個統(tǒng)一的字節(jié)碼產(chǎn)物。1.3 JVM編譯器有幾種別再說“編譯器只有javac”熱詞里有“java jvm編譯器有幾種”這問題看著基礎其實問得很細。如果只答“javac”面試官容易覺得你停留在表面。實際上一套完整的Java技術棧里和編譯相關的行為至少有三類。第一類是前端編譯器最常見的就是javac也把Eclipse JDT里的ECJ算進去。它的職責很明確把.java源碼翻譯成.class文件做語法檢查、注解處理、生成字節(jié)碼。這一階段產(chǎn)出的是Class文件。第二類是即時編譯器也就是JIT運行期在JVM內(nèi)部工作的C1、C2還有Graal JIT。它們負責把熱點方法的字節(jié)碼進一步編譯成機器碼提升運行速度。第三類是提前編譯器AOT比如jaotc可以把Class文件或源碼直接編譯成原生二進制跳過運行期解釋或JIT編譯。理解這個分類Class文件的位置就清晰了。javac生產(chǎn)它JIT消費它AOT甚至能繞開它。你問“JVM編譯器有幾種”時如果能把這三類以及它們和Class文件的關系講清楚比死記答案有說服力得多。1.4 用十六進制認識一下CAFEBABE任何Class文件的頭4個字節(jié)一定是十六進制的CAFEBABE也就是咖啡寶貝。這是Class文件的魔數(shù)JVM用它來快速判斷文件是不是一個合格的Class文件。你隨便找一個.class文件用xxd或者Hex Fiend打開都能看到這個標志。緊接著是次版本號和主版本號各占2個字節(jié)。主版本號決定了這個Class文件是給哪個JDK版本用的52對應Java 855對應Java 1161對應Java 1765對應Java 21。所以“UnsupportedClassVersionError”本質上就是版本號不匹配你用一個老JVM去加載一個高版本編譯出來的Class文件JVM一看版本號直接拒絕了。看十六進制只是第一步我得先說明一件事Class文件里存的所有字符串、引用、方法描述符都不是直接寫明文而是通過常量池來管理的。這個結構是整個Class文件的靈魂我們下一步把它剝開。2. 逐字節(jié)看Class文件常量池才是真正的主角2.1 Class文件總體結構一張表說清楚Class文件整體是一張線性的二進制表沒有分隔符靠固定的順序和每一個數(shù)據(jù)項的長度來確定邊界。作為參考它的頂層結構大概是這樣的。數(shù)據(jù)項說明magic魔數(shù)固定CAFEBABEminor_version / major_version次版本號、主版本號決定JDK兼容版本constant_pool_count / constant_pool常量池數(shù)量與內(nèi)容access_flags類的訪問標志public/final/abstract等this_class / super_class當前類名索引、父類名索引interfaces_count / interfaces接口數(shù)量和索引列表fields_count / fields字段數(shù)量和字段表methods_count / methods方法數(shù)量和方法表attributes_count / attributes屬性數(shù)量和屬性表字段表里每一項都包含訪問標志、簡單名稱索引、描述符索引和屬性表方法表同理但方法表里的屬性表里通常藏著Code屬性這才是真正干活的字節(jié)碼指令。2.2 常量池是“數(shù)據(jù)倉庫”所有引用都靠下標常量池是Class文件里體量最大、也最容易被忽略的部分。Java源碼里出現(xiàn)的類名、方法名、字段名、字符串字面量、訪問修飾符全都被收進常量池統(tǒng)一編號。比如方法里要調(diào)用System.out.printlnClass文件不會直接把“System.out.println”這串字符寫進Code里而是存一個對常量池項的引用運行期再解析。先后我一起看一個簡化過的例子。比如一個被調(diào)用方法是print(String)V在常量池里你會看到類似這種結構Utf8類型的“print”表示方法名Utf8類型的“(Ljava/lang/String;)V”表示方法描述符NameAndType指向這兩個Utf8Methodref再由類名和NameAndType組合起來。任何一個Class文件里這個鏈條無處不在。理解它你再看JVM規(guī)范里關于Methodref、Fieldref、InterfaceMethodref這些項就不會暈了。這也是為什么javap反編譯時滿屏的“#2 #5 #12”那些數(shù)字不是隨機的每個數(shù)字都對應常量池里的一個槽位。我在實際排查中發(fā)現(xiàn)很多人看常量池覺得枯燥其實是沒把它當“倉庫”。你只要知道一句口訣就夠了在Class文件里凡是需要引用的名字最終都要落到常量池的一個下標上。常量池看懂Class文件的結構就懂了一大半。2.3 訪問標志、字段表、方法表與Code屬性類的訪問標志由2字節(jié)的位掩碼構成ACC_PUBLIC對應的值是0x0001ACC_FINAL是0x0010ACC_ABSTRACT是0x0400ACC_SYNTHETIC是0x1000。位掩碼的意思就是多個修飾符疊加時直接把各數(shù)值按位或。比如一個public final類訪問標志就是0x0001 | 0x0010 0x0011。方法表里的Code屬性值得特別注意。它里面存字節(jié)碼指令、異常表、行號表、局部變量表。行號表表示哪一行Java源碼對應哪些字節(jié)碼偏移這是異常堆棧能顯示“某某類第多少行”的原因。局部變量表則是存方法參數(shù)和局部變量的槽位描述。JIT做各種優(yōu)化時大量依賴這些附加信息。我見過不少人在分析性能問題時盯著系統(tǒng)調(diào)用的耗時看半天忘了先看方法的字節(jié)碼長什么樣。用javap -c就能把方法展開成一條條字節(jié)碼指令。字節(jié)碼是JVM執(zhí)行的中間形態(tài)它不像匯編那么底層但也不像Java那么抽象??炊憔湍芑卮鸷芏唷斑@段代碼編譯后到底執(zhí)行了什么”的疑問。2.4 一條命令把Class文件“扒光”最常用也最推薦的工具是javap它是JDK自帶的Class文件反編譯工具。想快速看一個Class文件整體信息我第一次用時會執(zhí)行javap -v -p -c -s YourClass.class-v表示verbose打印堆棧、本地變量和常量池的詳細信息-p表示顯示私有成員-c表示對方法進行反匯編輸出字節(jié)碼-s表示打印方法簽名和字段簽名。如果想要更原始的信息可以配合xxd先看二進制再用javap對照。實際經(jīng)驗是先跑javap -v看版本號和常量池確認這個文件是不是你預期那個版本編譯的再跑javap -c看方法體確認某個邏輯有沒有被編譯器做掉或做成了什么樣子。對一些“明明寫了代碼但運行行為不對”的狀況這一步經(jīng)常能救命。3. 從加載到內(nèi)存模型Class文件進入JVM之后發(fā)生了什么3.1 類加載的五個階段與雙親委派Class文件在磁盤上只是文件真正跑起來前JVM要把它加載進來。類加載的生命周期大致分成加載、驗證、準備、解析、初始化五個階段。加載階段JVM按全限定名讀入Class文件二進制流把它轉換成方法區(qū)里的運行時數(shù)據(jù)結構并在堆里生成一個Class對象作為訪問入口。驗證階段檢查格式、語義、字節(jié)碼合法性這是CAFEBABE魔數(shù)的意義所在防止非法文件混進來。準備階段給靜態(tài)變量分配內(nèi)存并設置零值。解析階段把常量池里的符號引用替換成直接引用。初始化階段才真正執(zhí)行靜態(tài)初始化器和靜態(tài)字段賦值。這里繞不開雙親委派。JVM的類加載器有層級關系啟動類加載器Bootstrap負責JDK內(nèi)部核心類平臺類加載器Platform負責模塊化類應用類加載器Application負責classpath下的類。一個類要被加載時會先讓父加載器嘗試父親加載不了才輪到兒子。這樣做的核心價值有兩個一是避免核心類被應用層的同名類替換二是保證同一個類在JVM里只有一個加載結果。如果你在做框架開發(fā)想打破雙親委派那就得自己繼承ClassLoader并重寫loadClass但這是反模式一般不建議在業(yè)務代碼里瞎搞。3.2 Class對象在JVM內(nèi)存模型里的落點熱詞“jvm內(nèi)存模型”經(jīng)常被討論但很多人把Java內(nèi)存模型JMM和JVM運行時內(nèi)存區(qū)混在一起。JMM是抽象并發(fā)語義討論的是線程與主內(nèi)存間的可見性規(guī)則JVM運行時內(nèi)存區(qū)是具體存儲區(qū)域比如堆、虛擬機棧、方法區(qū)。這里要講的是后者。Class文件被加載之后它的元數(shù)據(jù)——方法信息、字段信息、常量池解析結果、注解——是放在方法區(qū)里的。JDK 8之后方法區(qū)的落地實現(xiàn)是Metaspace也就是元空間它使用本地內(nèi)存不再像以前PermGen那樣有固定的默認上限。每一個被加載的類都會在堆里對應一個java.lang.Class對象這個對象是訪問該類的元信息的“門把手”。這里有一個很微妙的地方你在代碼里寫“User.class”拿到的那個Class對象本身是在堆里的一個普通對象但它背后代表的類元數(shù)據(jù)卻在Metaspace里。對象頭里還有一個指向Klass的引用用來在運行時快速找到這個對象的類型信息。這也是為什么你能對任意對象調(diào)用getClass()JVM得靠對象頭里那個Klass指針去定位到Class文件解析出來的元數(shù)據(jù)。3.3 Kotlin寫Java Agent從Class文件到字節(jié)碼增強熱詞里有一條“Kotlin 快速上手在 JVM 上跑通一個 agent”這個場景特別適合用來理解Class文件的“活學活用”。所謂Java Agent本質上就是在JVM啟動之后、正式類加載前后插一腳通過Instrumentation接口對Class文件做轉換。這個轉換不是改源碼而是直接改字節(jié)碼。寫Agent的思路大概是這樣的打包時在MANIFEST.MF里聲明Premain-Class指向一個包含premain方法的主類premain方法里拿到Instrumentation實例調(diào)用addTransformer注冊一個轉換器ClassFileTransformer.transform方法會在每個類被加載時收到原始字節(jié)數(shù)組你在這里面修改后返回新的字節(jié)數(shù)組。Kotlin寫這個為什么方便因為Kotlin編譯出來的同樣是標準Class文件方法、注解、屬性映射邏輯都還能保留。你可以用data class去定義Agent配置用協(xié)程去處理耗時邏輯最后打包成jar掛-javaagent啟動。由于最終產(chǎn)物是字節(jié)碼JVM根本不在乎你是用Java還是Kotlin寫的。真正的技術點在transform里怎么做字節(jié)碼增強。最常用的是ASM庫它是直接操作節(jié)點樹和指令的性能好但API難用。另外一個選擇是ByteBuddy它在ASM之上做了封裝寫起來舒服很多。舉個例子追蹤某個方法耗時用ByteBuddy的Advice機制在進入和退出兩個切點上織入System.nanoTime差值的邏輯幾行就能搞定。我踩過的一個坑是要修改的類正在被當前ClassLoader加載過程中transform里如果再去觸發(fā)其他類的加載可能死鎖。經(jīng)驗做法是做好類名過濾無關緊要的類直接返回null或用ClassReader快速跳過。還要注意ClassWriter的flags如果用COMPUTE_FRAMES能自動計算棧幀但性能會慢不少如果你明確知道字節(jié)碼不會改變棧幀結構可以用COMPUTE_MAXS能省很多開銷。所以Agent技術并不神秘本質就是“類加載前把Class文件改寫一下”。理解這一點你再看Arthas、SkyWalking這類工具的底層原理會突然通透很多。它們做的就是字節(jié)碼注入只是做進了更完善的產(chǎn)品里。3.4 版本窗口UnsupportedClassVersionError是怎么來的“編譯的時候好好跑起來就報UnsupportedClassVersionError”這種問題新人基本都會遇到一次。本質上就是Class文件的主版本號高于當前JVM支持的版本。Java官方保持向后兼容高版本JVM能讀低版本Class文件但反過來不行老JVM沒法理解新版Class文件里的新字節(jié)碼指令。比如你用JDK 17的javac編譯默認主版本號就是61。把它扔到JDK 8的服務器上跑JVM版本號只支持52一看61大于52直接拒絕加載。解決辦法有幾種。第一降低編譯版本但注意-source/-target只控制語法和字節(jié)碼版本不能阻止你用到高版本JDK的新API后者照樣會在運行期報NoSuchMethodError。第二用--release參數(shù)比如javac --release 8它會同時限制API使用和版本輸出是更安全的選擇。第三升級線上JDK版本一勞永逸。排查時最快的方式是跑一句命令javap -verbose YourClass.class | grep major看到主版本號再對照當前JVM版本問題定位就完成了。4. 實戰(zhàn)踩坑注解丟失、字節(jié)碼修改與Class文件異常排查4.1 Override注解“丟”了先分清三種Retention熱詞里有一條“class文件overrider注解為什么會丟失”我非常確定提問者說的就是Override。先說結論Override注解的Retention是SOURCE它本來就不會進Class文件所以不是“丟了”是人家壓根不打算留。Java注解的保留策略有三種。SOURCE的注解只存在于源碼里編譯時就被丟棄典型代表就是Override和SuppressWarnings它們只是給編譯器看的提示。CLASS的注解會被寫進Class文件的注解屬性里但JVM運行時不加載它們默認的Retention就是CLASS這也是很多自定義注解“編譯在但運行時反射拿不到”的原因。RUNTIME的注解不僅進Class文件還會在運行期被JVM讀取反射API能拿到比如Transactional、GetMapping這些。所以排查自定義注解反射拿不到的時候第一件事就是查注解定義里的Retention。如果你寫的是Retention(RetentionPolicy.CLASS)那在運行時getAnnotation是拿不到的要改成RUNTIME。4.2 另一個常見元兇注解Target/Inherited與Kotlin use-site target除了Retention還有兩個很容易忽略的點。一個是Inherited。這個注解只對“類上的注解”的繼承起作用方法、字段、參數(shù)上的注解即使加了Inherited也不隨繼承傳遞。很多人以為父類方法上的注解子類重寫后還會在反射里出現(xiàn)其實不會。Spring的Transactional之所以能在子類方法上生效是因為Spring走了代理和AOP它讀的是目標方法注解并自己做了傳播處理跟JVM原生注解繼承是兩回事。另一個是Kotlin的use-site target。Kotlin代碼里的annotation寫在屬性上編譯成Class文件時這個注解到底落在哪個目標上取決于你有沒有指定use-site target。想讓它成為字段注解要寫field:NotNull若寫get:NotNull就成了getter方法上的注解。如果你在Kotlin和Java混編的項目里做反射很容易因為use-site沒指定而對不上目標表現(xiàn)就是“Java那邊反射明明該看到卻沒有”。這個坑我在跨語言工具里踩過不止一次排查方式永遠是反編譯看字節(jié)碼里的RuntimeVisibleAnnotations到底掛在哪個位置。4.3 字節(jié)碼修改工具鏈導致的“隱性丟注解”還有一種注解丟失既不怪Retention也不怪繼承而是字節(jié)碼處理工具在改寫Class文件時把注解洗掉了?;煜ぞ?、打包工具、字節(jié)碼AOP框架都可能干這種事。ProGuard/R8在做代碼壓縮和混淆時默認會丟棄注解信息。Spring框架大量使用注解驅動如果沒保注解啟動時一堆Autowired失效這是非常經(jīng)典的線上事故。解決方案是在混淆規(guī)則里寫上類似-keepattributesAnnotation之類的指令。ASM做類轉換時如果你只想改方法體但使用了自定義的ClassVisitor重寫visitMethod時忘了調(diào)用visitAnnotation把注解Visitor轉發(fā)出去注解信息也會悄悄消失。一個實際建議在改造Class文件的管道里最后一步加上“注解完整性校驗”。你可以先跑一個不改動的控制組用JDK自帶的能力或ASM的CheckClassAdapter做一次掃描對比改造前后的RuntimeVisibleAnnotations數(shù)量。我在做一個跨JVM語言的Agent時就是這么抓到丟注解問題的不是源碼層丟了是ASM的ClassNode處理路徑上有一段沒有遍歷AnnotationNode。4.4 常見Class文件相關異常速查表做應用排障多了會發(fā)現(xiàn)Class文件相關的異常就那么幾個特征是重復且好認。我總結成了一張速查表。異常/錯誤典型原因排查方向ClassNotFoundException運行時找不到目標類檢查classpath是否完整、依賴是否缺失NoClassDefFoundError類存在但初始化失敗或依賴類缺失往前翻日志找Caused by多數(shù)是靜態(tài)初始化異常UnsupportedClassVersionErrorClass版本高于JVM版本javap看major版本調(diào)整編譯版本或JVMClassFormatErrorClass文件結構非法確認文件有沒有被截斷、有沒有被錯誤處理VerifyError字節(jié)碼驗證失敗棧幀或類型不兼容多發(fā)生在字節(jié)碼增強代理類時檢查ASM轉換邏輯LinkageError類的重復加載或簽名不一致檢查依賴版本沖突是否多個ClassLoader加載同名類這里要特別提一下NoClassDefFoundError和ClassNotFoundException的區(qū)別。后者是找不到類前者是類其實存在但加載過程中因為某個依賴缺失或靜態(tài)初始化拋了異常導致JVM認為這個類不可用。排查NoClassDefFoundError時不能只看這一行一定要往前翻真正的Root Cause往往在第一條異常鏈里。5. JVM調(diào)優(yōu)與Class數(shù)量治理Metaspace才是隱藏焦點5.1 Class數(shù)量膨脹為什么危險很多人聊JVM調(diào)優(yōu)開口就是堆大小、GC策略但很少有人主動提Metaspace。實際上Class文件的加載結果就是Metaspace里的類元數(shù)據(jù)。如果一個應用在運行期不斷創(chuàng)建新的類Metaspace就會持續(xù)增長。舊時代的PermGen空間溢出是著名的OOM來源到了JDK 8之后這個坑變成Metaspace OOM。哪些操作會“造類”JDK動態(tài)代理、CGLIB子類代理、熱部署框架、Groovy等動態(tài)腳本引擎、大量lambda捕獲外部變量導致動態(tài)類生成還有Spring這類依賴CGLIB做增強的框架。腳本引擎按次執(zhí)行可能每次都生成新類如果調(diào)用頻率高且不清理Metaspace漲得飛快。判斷是否是因為Class數(shù)量過多導致Metaspace緊張一個快捷方法是用jstat看一眼Metaspace的增長趨勢同時通過GC日志對比類加載數(shù)。如果加載數(shù)量飆升、卸載數(shù)量幾乎為零基本就是“只進不出”離OOM不遠了。5.2 動態(tài)類生成CGLIB、JDK代理與Kotlin編譯常見生成點先說JDK動態(tài)代理。它要求目標類實現(xiàn)接口運行時在內(nèi)存里生成一個實現(xiàn)該接口的Proxy類這個生成類是一個全新Class繼承自java.lang.reflect.Proxy。CGLIB則是生成目標類的子類靠繼承和覆寫方法實現(xiàn)增強所以目標類不能被final修飾。這些代理類本身也是標準Class文件你可以通過在啟動參數(shù)里加一個JVM開關把生成的類落盤JDK代理類可以用-Dsun.misc.ProxyGenerator.saveGeneratedFilestrue保存到磁盤CGLIB生成類則可以通過-Dcglib.debugLocation目錄來輸出再用javap或IDEA反編譯。做框架或插件開發(fā)時看這些生成類和看業(yè)務Class一樣重要。Kotlin這邊也有生成點。頂層函數(shù)會被編譯成以文件名加Kt后綴命名的類data class會生成componentN、copy、equals/hashCode/toStringlambda也會被編譯成Function接口的實現(xiàn)類。你要是發(fā)現(xiàn)某個應用里Class數(shù)量多到一個詭異的值先別急著慌很可能是Kotlin的語法糖在生成輔助類這本身不算問題但反過來也說明Class數(shù)量會隨著這類語言特性明顯上升。5.3 調(diào)參方向與驗證手段針對MetaspaceJVM提供幾個常用參數(shù)。第一個是-XX:MetaspaceSize它表示Metaspace首次觸發(fā)GC的閾值不是上限。第二個是-XX:MaxMetaspaceSize這才是硬上限默認情況下受本地內(nèi)存限制你可以顯式設置一個值保護進程。第三個是-XX:MaxMetaspaceFreeRatio控制GC后Metaspace空閑容量百分比。排查時我會配合這幾個命令jstat -gc pid看M列和MC列的數(shù)值變化。MC表示當前Metaspace容量MU表示已使用量。再配合jcmd pid VM.native_memory加上JVM參數(shù)-XX:NativeMemoryTrackingsummary能看到Metaspace的本地內(nèi)存占用明細。如果懷疑是動態(tài)類生成直接加-XX:TraceClassLoading和-XX:TraceClassUnloading日志會刷出每個被加載或卸載的類重定向到文件里再按類名前綴統(tǒng)計就能揪出誰在瘋狂造類。我實際碰過一個案例一個平臺不停創(chuàng)建CGLIB代理類給遠程RPC做攔截運行兩天后Metaspace OOM。當時就是開著-XX:TraceClassLoading把日志存下來發(fā)現(xiàn)同一個業(yè)務接口的代理類被重復創(chuàng)建了數(shù)萬個原因是上層做緩存的時候key沒寫全每次調(diào)用都認為“代理不存在”然后重新生成。這只是治理Class數(shù)量膨脹的一個常見例子。5.4 面試官常問的JVM/Class文件進階題與我的回答思路熱詞里有“jvm面試題”這塊正好把這篇文章的知識點串起來。以下這幾個問題我經(jīng)常在面工程師時問也建議自查。先看“Class文件里有注解嗎”“注解存哪個段”。這兩個是結構題考的是常量池、屬性表以及RuntimeVisibleAnnotations這類屬性。答出來說明看過Class文件答不出來大概率是背了書沒實操過。再看“類加載過程哪個階段會出錯”“一個類被兩個ClassLoader加載算兩個類嗎”。后者尤其刁鉆答案是類由類全限定名和定義加載器共同標識同一個Class文件被兩個不同加載器加載生成的兩個Class對象不相等instanceof校驗也可能過不去。這是OSGi、插件化框架的底層難題。再看“為什么高版本JDK不能運行低版本編譯的Class文件反而沒問題”“如果JDK 17編譯的Class在JDK 8上跑會怎樣”。這是版本兼容題考察Class版本號以及向后兼容的設計。最后是“Metaspace存什么”“為什么JDK 8要移除PermGen”。答到Metaspace存類元數(shù)據(jù)、運行時常量池用本地內(nèi)存替代固定容量避免因為固定上限導致OOM基本就能過關。最好再補一句實際調(diào)優(yōu)經(jīng)驗比如設置MaxMetaspaceSize不要過小否則正常應用一天到晚在GC。我在實際篩人時最怕聽到“Class文件就是個字節(jié)碼文件”這種一句到底的答案。真正動手拆過Class、做過字節(jié)碼增強、處理過Metaspace問題的人描述同一個東西時是會有細節(jié)的。這也是這篇東西存在的意義把JVM這條線上的一個重要零件拆到能落地為止。后面如果再有人問我“注解為什么丟了”我不會再直接給答案而是讓他先跑一句javap -v看清楚Class文件里到底有什么再反推結論。這個習慣比記住任何一張表都有用。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
少妇人妻偷人精品无码视频新浪| 亚洲操逼片| 天天爱天天做天天爽| www.色婷婷.com| 伊人久久激情图区五月| 欧美成人AAA片一区国产精品| 人妻久久久久| 国产FREESEXVIDEOS性中国| 丁香五月综合无码趴趴| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 黄网在线免费播放| 五月天丁香网| 丰满老熟妇BBBBB搡BBB | 涩丁香91| 另类视频五月天| www九月婷婷| 蜜桃五月天| 婷婷丁香五月天色色| jizzdr| 色九月综合网| 欧美va在线| 色10月婷婷视频| 久久久激情视频| 九九这里是免费的视频5| 丁香婷婷激情| 很很操96| 久久综合五月婷婷| 五月婷在线观看| 成人五月天色天堂| 4438全国最大视频成人网站在线观看 | 亚州性爱99| 91久久精品国产91性色TV| 99国产性感视频| 久草五月丁香婷婷综合| 久久久久久久久久8888| 日韩精品色| 十二区无码| 99热国产这里只有精品| 91精品91久久久中77777| 久久久性爱视频| 五月天激情综合在线| 可以免费观看的av| 五月天婷婷丁香基地在线观看| 亚洲AV综合网| 99re6热在线精品视频播放速度| 色五月综合| 色就是色婷婷五月亚洲激情| 97色五月丁香婷婷| 色综合九九色综合88| 亚洲色碰| 欧美三级巜人妻互换| 五月天婷网| g00d人体西西| 欧美69久成人做爰视频| 婷婷五月综合社区| 停停五月天激情网| 色九网| 国产又黄又爽又色的免费| 日日做夜夜爱| 五月色情婷婷| 噜噜狠狠色综合久| 99热伊人综合| 欧美日本不卡黄色片| 91九色精品熟女内射| 99综合自拍| 99热九九热| 草做免费在线观看| 五月丁香色六月激情干大屄| 久操97| 综合五月婷婷| 久久久9久| 激情婷婷狠狠干| 夜夜大香蕉婷婷丁香| 操人91| 婷婷亚洲在线| 丁香色五月直播| 4399无码视频| 五月天偷拍| 色欲Av五月天| 91九色中文字幕女在线观看| 久超免费视频| 激情五月婷| 婷婷娌伦网| 色情综合网| 性爱先锋AV| 丁香五月激情宗合网| 久er免费视频| 操啊操av| 青青草成人网| 亚洲精品白浆高清久久久久久| 亚洲精品字幕在线观看| 色婷婷人人| 日本九九九九九九| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 激情综合婷婷久久| 综合婷婷| 99热99热在线观看| 久久精品性爱| 亚洲AV成人在线| 亚洲av综合网| 国产午夜精品一区二区三区四区| 亚洲黄色av网站| 五月婷婷久久网| 久久99久久久| 欧美婷婷五月天综合| 婷婷亚洲丁香五月| 婷婷五月电影| 免费色婷婷| 92久操视频| 久久亚洲婷婷| 99热这里只有在线| 丁香五月综合网亚洲综合欧美狠狠| 天天开心婷婷丁香五月| 日本色频| 激情五月开心五月在线视频| 色性综合| 综合激情伊人影视在线| 婷婷五月大| 玖玖五月| 国产免费一区二区三州老师F1F1……| 亚洲久艹| 六月丁香天堂| 色色九九五月天| 色欲色香综合网站| 婷婷丁香先锋资源网站| 婷婷五月天丁香成人社区| 婷婷丁香日韩五月| AV色色天堂中文| 亚洲国产精品二二三三区| 噜噜视频| 婷婷五月天影院| 色五月婷婷色| 久久开心五月婷婷| 久热这里精品免费| 操熟女成人网| 色婷婷的五月天| 日日日日操| 五月丁香六月婷婷综合免| 秋霞黄色一级久久| 丁香色五月婷婷17C| www.91久久| 久碰久操| 再次出发二| 五月丁香六月婷婷,婷| 99色精品视频| 亚洲国产成人裸舞| 99热这里只有精品中文字幕| 狠狠色五月天| 色播五月综合网| 五月丁香六月色| 日日操天天操| 99久视频| 熟妇人妻中文字幕无码老熟妇| 亚洲va综合va国产va中文| 五月婷婷六月激情| 亚洲超碰中文字幕| 26.uuu丁香五月婷婷| 色域五月婷婷丁香| 欧美综合婷婷欧美综| 丁香五月婷婷六月婷| 深爱激情四射| 五月婷av| 99碰超| 99久热这里只有精品| 天天操天天插| 日韩av在线播放综合网| 99久久玖玖| 91vip在线观看| 天天色月| 丁香婷婷视频一区二区| 99热碰碰热| www久久久| 激情AV| 激情小说五月天| 国产真实乱对白精彩| 久久婷婷老| AV网址大全在| 日本九九九九| 日日操夜夜爽天天天| 就爱射中文字幕资源网| 超碰在线人人| 五月婷婷 婷婷五月 一区二区 久久久| 新激情五月天| 婷婷色五月丁香六月欧美啪| 99热九九在线| 99色在线| 99精品偷自拍| 爱iii做iiii日日| 欧美丰满熟妇BBB久久久| 91操黄| 操日本三片99| 99热这里有精品24| 丁香五月91| 国产精产国品一二三在观看| 另类 在线| 激情五月丁香婷婷夜夜操| 我要色综合五月婷婷| 午夜做爱影院| 91碰碰碰| 婷婷欧美综合| 久久婷出差欧美色两性综合网| 亚洲色激情| 久久色婷婷| 黄色三级毛片中字| 丁香婷婷久久| www.色婷婷.com| 99热在这里只有精品| 丁香六月丁香婷婷激情| 99成人网一区| 国产va视频| 五月天桃色深爱网| 国产免费av在线| WWW色五月天| 在线观看中文字幕| 97caop| 91九色熟女| 国产26uuu视频| 69色婷婷| 五月网站| 丁香五月六月久久综合 | 一本到不卡高清DVD| 91碰超| 森林影视大全,最好看的2019年视频 | 俺来也综合网精品一区| 狠狠色噜噜狠狠狠狠综合| 婷婷五月天成人| 综合99在线| 狠狠夜夜五月丁香| 99超级碰免费视频| 五月天婷婷狠狠| www.sezonghe| 最近韩国日本免费高清观看| 日本色婷婷| 夜夜骑天天玩天天日| 深爱激情丁香| 亚洲旡码| 五月丁香色婷婷色| 婷婷丁香91| 五月丁香婷婷综合激情基地| 欧美成人精品A片免费一区99| 婷婷色六月| 99热这里精| 天天干电影| 99爱爱网| 五月天开心激情综合网| 超碰人人插| 99热九九这里只有精品10| 97干在线观看视频| 国产九九一区二区三区| 情久久综合五月天| 五月丁香亚州综合网| 情五月亚洲婷婷| www久久久| 人妻激情视频| 五月婷婷人妻| 五月婷婷黄网站大全| 久久aaa| 丁香桃色网| 91操在线视频| 色欲av伊人久久大香线蕉影院| 99久久.www| 五月好婷婷| 狠狠干五月| 国外亚洲成AV人片在线观看| 久热这里这里有精品| 久久99久久99精品免视看婷| 99热99在线| 欧洲亚洲午夜| 色停停香蕉视频| 99视频在线播放大全| g00d人体西西| 九九99香蕉在线视频播放| 五月丁香婷婷99| 亚艹艹| 男女啪啪视频久 9| 激情5月婷婷| 国产在线aaa片一区二区99| 精品视频99看在线视频| 少妇人妻偷人精品无码视频新浪| 三十路磁力链接| 麻豆AV一区二区三区| 久草五月天电影网| 超碰免费人人肏| 99热只有这里才是精品| 天天网曰日曰夜夜综合永久免费| WWW.17C亚洲精品| 另类视屏| 婷婷天天日婷婷| 97干免费视频| 国产99热| 五月婷婷六月奇米网丁香| 综合色、色综合| 五月丁香婷婷中文网| 97丨九色丨国产丨PORNY| 五月天色婷婷视频| 色吊丝99| 国产色五月| 99热黄| 天天色天天噜| 久久婷婷东京热| 久久婷婷91| 日本欧美在线| AA片在线观看视频在线播放| 日日射天天射| 第四色网婷婷| 午夜丁香婷婷| 婷婷五月天视频在线观看| 色色色色综合网| 色狠狠999综合网| 久久人妻少妇嫩草AV| 婷婷五月天免费| 97艹| 久久视频在线| 狠狠第四色| 99爱在线精品视频免费观看| 色 五月俺去也| 色五月激情图片| 五月天偷拍| 色情五月婷| 91操人视频| 五月婷婷精品视频| 亚洲蜜乳AV| 激情婷婷五月| 婷婷婷五月天最新综合你懂的| 91干99| 色五月首页| 五月色网| 99re热视频| 99精品高潮| 五月丁香久人妻中文| 色欲Av五月天| 99内射视频| 久久丁香五月婷婷| 欧美Va日本Va| 五月天婷婷色播综合在线| 五月丁香久久| 久热免费视频| renrencaoav| 婷婷99丁香| 久久精品视频99| 五月天天天开心激情网| 久青操| WWW.国产| 五月天激情久久| 五月激情视频网| 免费看成人747474九号视频在线观看| 婷婷五月婷婷| www,五月丁,com| 夜夜大香蕉婷婷丁香| 丰满少妇猛烈A片免费看观看| 高清无码入口| 操日本人妻视频| 久久婷婷色综合| 久久色六月| 天天做天天爱天天玩| 五月婷婷六月爱| 婷婷国产五月天17c| 色色A| 婷婷五月天激情文学| 97五月天婷婷午夜| 精品99在线| 嫩草AV久久伊人妇女超级A| 色丁香五月婷婷| 婷婷五月亚洲激情| 激情丁香六月| 激情五月天第四色| 色操综合| 五月婷婷啪啪| 嫩草视频在线观看| 可以免费观看的av| 思思热精品免费视频| www激情| 武汉美女啪啪视频免费一级片| 欧美一级色| 欧美123区免| 99热精品在线观看| 精品99在线| 嫩BBB槡BBBB搡BBBB视频| 亚洲AV网站| 91精品丝袜久久久久久久久粉嫩| 婷婷五月天久久久| 狠狠色丁香| 五月丁香六月婷婷激情视频在线观看免费 | 五月婷婷色情| 五月天婷五月天综合网在线观| 五月婷婷激情久久| 成人毛片在线免费观看| 色婷婷另类| 欧美性猛交99久久久久99按摩| 久久Xx| WWW.99热| 日韩在线aaa| 丁香五月激情站| 六月色婷婷色| 色色婷婷丁香| 久久婷婷视频| av中文在线| 在线观看av网站| 玖玖激情网| 五月婷婷av在线| 亚洲精品又粗又大又爽A片| 五月激情在线| 九九综合九九| 婷婷综合视频| 中文字幕不卡+婷婷五月| 五月婷婷中文字幕| 五月天成人综合| 深情五月天| 五月丁香婷婷AV天堂| 97香蕉碰碰人妻国产欧美| 狠狠色综合五月人人| 婷婷丁香六月| 丁香五月天激情综合| 狠狠穞A片一區二區三區| 狠狠舔| 色一情一乱一乱一区91| 婷婷五月在线| 99视频在线观看视频| 五月天堂六月丁香亚州中文字幕久久| 免费观看2018www黄色操逼网站| 色综合色综合色综合| 九九中文色色| 五月天婷婷Av| 97艹| 婷婷六月啪啪| 婷色人人狠| 色婷婷婷av | 色99视| 天天干天天日蜜臀av| 大香蕉 婷婷| 欧美97超碰| 啪啪五月婷婷| 五月丁香啪啪综合网| AV在线免费网站| 午夜成人AV在线| 色综合激情| 婷婷六月激情小说网| 久久婷婷丁香五月一二三| 人妻系列久久久久久久久久久 | 成人在线视频网| 婷婷丁香五月天哟啪| 日日骑夜夜撸| 狠狠色五月| 蜜乳中文字| 噜噜噜久久亚洲精品国产品91| 日本操B视频| 99热只有| 激情综合一| 无码AV免费精品一区二区三区| 五月天婷婷综合色| 91嫩草久久| 色色吧综合| 色久婷婷网| 狠狠草综合网| 中文字幕综合| 可以免费观看的AV| 色婷婷无吗| 五月天婷婷免费| 全亚洲最大的婷婷五月天网站COM| 色婷婷视频| 久久婷婷五月天综合| 五月天婷婷丁香基地在线观看| VA色婷婷| 在线看片h站| 91n啪啪| 成片免费观看大全| 九九热这里只有精品5| 婷婷狠狠五月综合| www.henhenl| 色五月婷婷网| 久久亚洲天堂| 变态 另类 在线 | 亚洲成人高清在线| 2020夜夜操天天爽| 成人在线综合| 亚洲综合色婷| 99久在线精品| 26uuu另类亚洲欧美日本一| 久久伦乱| 婷婷五月欧美综合| www.99精品视频| 色色影院aaaav| 婷婷五月色播放| 天天草天天爽| 五月丁香婷婷婷激情爱爱| 丁香综合伊人| 九九99热| 亚洲xx在线| Av九九| 激情五月天婷婷视频| 色情久久久| 亚洲午夜在线视频| 99re久热只有精品6在线直播.com| 日韩黄黄| 亚洲综合99| 日本韩国视频在线观看社区免费的9| 五月丁香在线观看99| 天天天天天操| 五月花激情| 婷婷狠狠青青| 一區四區歐美日韓| 97碰在线| 婷婷 丁香 久久| 五月婷婷久久大香蕉| 91大屁股| 丁香五月激情综合| 九九99精品视频| 99色爱| 五月丁香六月激情综合| av在线播放网址| 色爱终和网| 色色综合网站| 色综合视频| 色99欧洲色19| 日本色婷婷| 久久伊人大香蕉| 伊人影院久久网| 亭亭色天香| 六月丁香激情网| 五月婷婷婷| 久99久热只有精品国产99| 秋霞A V毛片| 国产在线视频1234| 久久这里只有精品16| 久久性爱视频网站| 91人妻人人做人碰人人爽九色| 99爱在线精品视频免费观看| 激情五月天网页| 人人草人人舔| 人妻中文在线| 97碰啪啪| 日本三级中国三级99| 人人摸人人摸| 九一九九黄色| 亚洲第一视频 久久| 久久小视频| 思思99热这里只有精品| 大香蕉精品视频| 久久精品91视频| 日日天天干| 五月天婷婷Av| 深爱激情六月| 夜色.cnm| 六月丁香婷婷尤物| 另类在线免费视频| 五月婷婷亞洲中文| 婷婷亚洲久久| 97人人操| 天搞天天天天天| 九九这里只有精品| 丁香婷五月天| 亚洲无码影音| 啪到高潮激情丁香五月| 五月色激情综合网| 99网| 五月婷婷婷综合网| 久久五月婷婷丁香| 精热在线综合网| 六月婷婷久久| 五月天色婷婷基地| 无毒黄色网址| 熟女激情五月天| xxxx五月天色色| 人人综合91网| 色色婷婷丁香五月天| 大香蕉丁香婷婷| 五月天色导航| 色呦呦在线| 婷婷五月天日本无码| 99操不停| 久久婷婷五月综合啪| 亚洲AVwwwwwww| 五月网网站| 影音先锋AV男人站| 天天天天天久久久久久| 综合另类激情| 丁香五月婷综合网| 99热99天堂| 国产激情综合五月久久| 色婷婷综合五月| 白度黄视频| 五月婷婷深深爱| 久久精品爱爱| 午夜激情四射影院| 九九黄色网| 日日干日日s| 五月丁香婷婷综合网色欲| 综合色五月天| 人人干Av| 婷婷五月AV| 蜜桃五月天| 久久九九免费视频| 色情五月天视频网| 色九月综合| 色999;丁香五月| 99色热视频| 亚洲无码yw| 久久婷婷伊人| 99热这里只有精品免费| 婷婷另类开心| 久久新地此| av国产精品| 久久这里只有精品99| 欧美久草在线日本一级特黄大片做受9在线观看韩国电影《两个女人》未删减-毛片 | 五月丁香亭亭电影久久| 99综合一区| tingtingzonghewang| 婷婷午夜综合| 日韩一级一片内射视频4K| 久99视频在线观看| 欧美A级成人婬片免费看理论| 天堂综合久| 性爱电影科技贸易有限公司| av在线激情| 久久久婷婷五月天| 丁香五月播播| 色在线视频网2025| 深爱网深爱综合网| 人妻精品在线| 亚洲一区二区 成人网站戴套| 成人va在线播放| 五月婷av| 激情久久天天| 丁香丁婷五月激情| 骚五月婷婷| se色婷婷视频| 性一交一乱一交A片久久四色| 久久久天天啊| 激情五月天婷婷视频| 亚洲综合在线视频| 欧美操逼天堂| 成人AV播放| 色99视频| 丁香婷婷久久 | 亭亭五月丁香五月天激情| 人人干人人操人人摸| 激情网站综合五月天| 91九色丨国产丨爆乳| 婷婷激情97| 亚洲熟妇AV乱码在线观看| 99干日本| 天天插天天爽| 这里只有精品9| 精品九九在线观看| 思思99热这里只有精品| 日本97在线视频| AV六月丁香| 玖玖99婷婷| 成人免费120分钟啪啪| 99热精品在线| 久草五月婷婷| 日韩另类在线观看| 五月天激情国产综合婷婷| 国产熟女日日骚五月丁香爱| 色色永久| 涩涩五月天综合| 中文字幕在线资源| 日韩性视频| 国产熟女大叫受不了| 94干大香蕉| 97涩婷婷| 成人五月天。COM| 综合色五月亭亭| 极品人妻VIDEOSSS人妻| 99爱精品| 激情综合五月天| 婷婷五月天日本国产| 怡红院 久久| -91九色大屁股| 丝袜激情网| 4399在线观看免费毛片| 色色九九五月天| 亚洲色色五月| 婷婷色在线播放| 2022人人操人人看| 大香蕉人在线65| 操久久精| 色七七九九| www.色9| 丁香六月狠狠干| 日本色99| 九九久久综合| 五月色视频| 婷婷五月天av网| 色黑鬼导航| 五月激情综合激情五月| 久久人妻情侣| 26uuu另类亚洲欧美日本一| a久久免费视频| 五月亚洲| 99热天堂| 任你草| 五月丁香啪啪啪| 99色视频| 久久婷婷综合五月| 4438全国最大视频成人网站在线观看| www.色色com| 韩国19 主播内部福利vip免费播放| 久热亚洲| 香蕉婷婷| 婷婷舔| 丁香五月婷婷欧美成人色图| 五月的色婷婷高潮| 丁香五月另类色婷婷麻豆| 99热精品中文字幕| 亚洲亚洲人成综合网络| 99情色五月天| 在线天堂9| 女性自慰系列第五页| 婷婷五月天亚洲色| 女高怪谈在线观看| 成人片在线播放| 五月天社区| 久久婷婷五月天丁香| 色五月婷婷伊人| 无码人妻激情| 婷婷亚洲五月丁香综合在线| 丁香五月欧美激情| 99re在线精品视频| 性无码专区无码| 国产99久9在线+|+传媒| 美女黄频aⅴ视频| 草了bav视频在线观看| 丁香五月婷婷国产在线| AA久久| 有码人妻久久| 日日夜夜天天综合| 婷婷五月天丁香| 无码成人AAAAA毛片AI换脸| 在线不卡的视频| 91vip在线观看| 婷婷综合成人五月天| 激情五月婷婷五月丁香五月开心五月| 五月天激情亚洲| 综合久久十三| 丁香激情网| 婷婷六月激情丁香| 日韩在线视频中文字幕| 青青草国产亚洲精品久久| 亚洲色图啪啪| 在线va网站| 五月婷婷婷婷网| 激情五月丁香五月| 五月天大香焦| 色色综合色视频| 日日夜夜爽| 丁香婷婷影院| 日本色色影院| 丁香五月AV综合| 野战毛片三一3| 五月丁香色综合| 欧美日韩五月婷婷| 中文无码精品一区二区三区| 色婷婷888| 伊人婷婷大香蕉在线| 操操人人| 噜噜色婷婷| 色色激情五月天| 久久激情五月网| 呦呦v线| 色五月成人| 五六月婷婷久久| 精热在线综合网| 99精彩视频| 亚洲色无码A片一区二区麻豆| 青青草轻轻操| 天天操综合网站| 日本片日本片祼观看网站在线看中文版网页在线看 | 免费AV在线| www.wuyuetian啪啪| 超碰在线99| 99热这里有精品| 超碰日韩人妻在线| 26uuu欧美日韩| 天天操夜夜操| www.婷婷五月.com| 国产六月婷婷| av狠狠操| 国产五月天婷婷| 四色五月婷婷在线观看| 荫道BBWBBB高潮潮喷| 亚洲天堂99| 天天干,夜夜爽| 猫咪伊人AV| 五月丁香拍拍激情综合| 99热在这里只有精品| 国产免费av在线| 日操夜撸| 国产AV影片| 亚洲色爽| 很很干天天干| 超碰超碰在线| 久9久成人精品视频| 天天操天天国产三级片处女学生妹| 婷婷色系婷色| 色色五月婷| 激情五月综合网| 久久久久亚洲AV成人无码电影| 成人VAV视频在线观看| 激情网婷婷婷| 丁香色婷婷色手机免费在线| 午夜美女人啪最红院| 精品久久人妻| 婷婷色网| 99re思思热久久| 五月天色婷婷综合| 久久婷婷五月综合激情国产| 色综合色综合色综合色综合| 色五月色开心开心五月| 去干网最新版本亚洲版| 亚洲日韩乱码一区二区三区四区| 国产色色网址网站| 日本99视频| site:hcxsz888.com| 国产免费一区二区在线A片视频| 性色婷婷| 激情五月丁香社区| 婷婷射丁香| 超碰在线精品| 婷婷五月丁香六月| 久操婷婷| 婷婷色综合| 97人人草| 九九热在线亚洲免费视频| 99热国产免费| 激情 五月 婷婷 丁香| 99久久网站| 久久婷婷六月天| 婷婷伊人綜合中文字幕| 婷婷日| 婷婷91视频| 丁香五月天综合网| 五月丁香另类网| 99这里只有精品|v| 狠狠爱婷婷色| 五月婷啪| 婷婷偷拍网| 狠狠操天天干| 天天综合永久| 91N 一起草| 色婷久久| 丁香九月婷婷综合| 丁香五月社区| 丁香五月婷婷六月婷| 综合av在线| 五月天久久网站| 婷婷九色| 99热日本| 5月色亭亭视频| 狠狠操狠狠色| 激情五月丁香亭亭| 五月丁香婷婷中文| 九九这里只有精品| 五月天黄色激情小说| 91久久九九| 六月婷婷久久| 思思热久久阴99| 97精品人人A片免费看| 婷婷色激情五月天| 91九色欧美| 五月丁香六月婷婷网| 伊人五月人妻精品| 日韩激情网站| 五月丁香激情综合| 五月婷婷少妇之| 任你干线上免费视频有3吗| 亚洲无码yw| 五月色婷婷在线观看| 国产精品电| 天天综合五月天| 99婷婷五月天| 五月天另类小说久久小说网| 久久精品视频99| 欧美精品999| 五月丁香色婷婷综合| 五月丁香九九| 色99在线视频| 就爱射中文字幕资源网| 亚洲色图45p| 天天爽天天操| 99热这里精品| 青草网在线观看| 婷婷五月丁香青青草在线| 超碰猛烈的性猛交| 99在线观看这里都是精品| 久久综合香蕉国产国产蜜臀AV| 大香蕉婷婷丁香天堂AV| 欧美性丁香色色五月天| 成人AV中文字幕| 少妇性按摩无码中文A片| 五月亭亭狠狠| 五月丁香久久综合| 99碰碰中文| 99热精品免费| 五月丁香激情综合久久| 九九热视频首页/这里只有精品| 影院久久久| 99这里只有精品视频| 另类五月激情| 激情综合青草| 久久婷婷的综合色丁香五月| 这里有精品| 五月天成人网在线观看| 国产永久一二一起草| sewuyuetingtingiii| 亚洲精品字幕在线观看| 2020日日干| 开心日韩丁香婷婷五月| 久久资源网五月婷| 久久丁香综合精品综合| 开心激情婷婷| 色播播五月天| 色婷五月天网站| 7777激情基地| 五月天婷婷色色首页| 国产又黄又爽又色的免费| 97性视频| 丁香六月色婷婷综合| 五月激情四射婷婷丁香| 欧美日比视频| 亚洲va久久久噜噜噜久久天堂| 色色色色色网| 午夜丁香综合婷婷| 激情性五月天免费小说视频 | 婷婷99狠狠躁天天躁中| 热成人网| 六月丁香婷婷亚洲中文玖玖| AV在线观看网站| 人人草碰| 久久精品凹凸分类| 天天干天天日天天操| 大香蕉欧美在线| 亚洲欧州色情在线观看| 国产视频久色| 97人人干| 婷婷五月电影| 综合精品啪啪| 五月婷婷影视| 欧美激情综合色综合啪啪五月| 中文字幕av久久爽一区| 色久丁香五| 人人视频色| 五月丁香婷婷成人伊人网| av九九| 国产精品日日躁夜夜躁| 色九九丁香九月色九九色| 五月婷婷丁香日韩在线| 天天操天天插| 99激情视频| 91色久| 另类图片激情五月| 狠狠色五月天| 婷婷激情社区| 久久婷婷五月天激情唯美| 五月伊人视频在线看| 亭亭丁香aV| 婷婷五月成人| 久久HD| 人妻AV在线观看| 五月天婷婷情色| 99玖玖精品| 狠狠色综合图片| 婷婷丁香激情五月天色色色| 国产精品久久久爽爽爽麻豆色哟哟| 色狠狠综合| 色播五月天激情| 色五月在线播放| 99热精品在线观看| 五月综合激情久久| 97av在线视频| 久久五月视频| 激情综合色网| 色一情一乱一乱一区91Av| 激情婷婷色色| www.久久| 色久播播| 26uuu四色| 亚洲俩性性爱图片久久第六页| 五月婷婷中字在线| 五月天无码视屏播放| 丁香五月婷婷六月婷| 就爱操www com| 天天色色婷婷| 激情九九这里只有精品| 五月天综合图片| 99精品小视频| 草五月| 色五月色图| 91久久99久久91熟女精品| 超碰在线99| 思思热在线观看| 激情婷婷五月天| 亚洲电影在线观看| 第九色区AV在线| 婷婷综合伊人| 射久久丁香五月| 啪啪婷婷五月天激情| 综合久久综合| 久久五月天合网| 六月丁香婷婷网| 丁香五月天视频在线播放| 婷婷六月五月| 婷婷五月天激情网| 日韩黄黄| 五月天激情视频| 黄色中文字目| 六月丁香成人| 黄网免费观看| 丁香五月AV综合| 五月丁香婷婷啪啪综合网| 色天天综合| 99精品免费| 婷婷久久久| 婷婷五月天小说| A片天天| 婷婷五月丁香色播| 婷婷色网站| 色婷婷欧美在线| 色噜噜狠狠狠综合曰曰曰| 精品久久艹| 综合视频久久| 大香蕉婷婷| 操97在线观看| 神马欧美精| 俺来也综合网精品一区| 激情婷婷另类| 99精品在线观看| 色综合天天| 1024欧美看片| 99热综合在线| 激情五月六月婷婷综合啪啪| 色色网站免费| 五月丁香激情综合网| 久久人妻熟女一区二区| 91窝窝| 五月婷色| 激情婷婷综合五月少妇| 最新久久网址| 亚洲精品无AMM毛片| 九九色天堂| 久久99这里只有精品| 五月天久久丁香| 天天肏夜夜肏| 婷婷的五月天另类视频| 久婷久婷| 五月天婷婷丁香花| 六月丁香五月婷婷| 日本猛少妇色XXXXX猛叫| 九月婷婷激情久久| 好好干Av| 久草五月天| 九九aV| 一区无码| 中文字幕婷婷五月天| 久久色五月天激情小说| 久久九九免费视频| 久9草在线观看视频| 久99| 六月丁香社区| 色播五月丁香| 色在线免费观看| 丁香六月婷婷激情综合| 激情五月丁香五月| 欧美色色色| 日韩久综合| 丁香五月天精品| 色综合久久99色| 九九精品9| 99小视频| 79精品视频在线观看,| 国产亚洲精品AAAAAAA片| 手机旧版看人妻1025| 天天干夜夜欢| 色色网站| 色五月婷婷伊人| 99热综合在线观看| 五月激情视频| 欧美三级视频下载| 色九四色| 他改变了拜占庭| 天天操夜夜操| 丁香五月天堂婷婷| 天天肏屄夜夜爽| 丁香五月欧美色综合| AV片在线观看| 天天爽天天弄| 日韩无码成人电影| 超碰京东热av男人的天堂| 99热在线中文字幕| 久久性爱视频网站| 欧美性久| 天天摸色吧天天摸色吧| 成人精品视频99在线观看免费 | 成人版视频在线观看| 九九视频这里有精品| 日日干夜夜干| 亚洲精品视频在线| 天天天在线观看| 丁香五月亚洲综合| 久久久婷丁香五月| 久久久久9999| 五月丁香婷婷在线| 六月色婷婷| 9999综合99综合人| 亚洲激情综合五月婷婷啪啪| 激情四射五月天| www.99热在线观看| 婷婷爱五月天| www。五月,com| 最新五月天婷婷影| 五月丁香婷婷色| 婷婷五月天国产精品| 五月婷精品| 一级二级色大片| 深情五月天| 伊人大香蕉爱聚| 久热视频这里只有精品68| 色婷婷成人做爰A片免费看网站| 婷婷99狠狠躁天天躁| 97精品欧美91久久久久久久| 久久久久98| 囯产精品久久欠久久久久久九大| 丁香99| 国模淫穴色图| 亚洲狠狠爱婷婷| 9久热这里只有精品视频| 狠狠狠狠狠狠| 婷婷五月天播| www.91久久| 俺来也综合网精品一区| 深爱激情五月婷婷| av在线资源| 九九碰九九爱97| 日韩欧洲亚洲| 五月婷婷丁香| 久久视频婷婷视频| 色啪影院| 久操婷婷| 泰州成人视频| 国产欧美婷婷| 久久婷五月| 91免费在线视频6| 啪啪日本欧美| 亚洲春色奇米影视| 婷婷丁香五月激情中文字幕版| 激情av| 久久五月天合网| 国产精品色色| 六月色狠狠色| 久久中文网| 六月色丁香中文字幕| 九九热这里只有精品9| 婷婷五点亚洲| 无码九九九九| 丁香五月婷婷av| 亚洲最大在线| 大香蕉啪啪啪| 美女五月天婷婷| 在线观看免费人成视频无码| 久久机只有这里精品| 久久电影五月天丁香电影| 九九热在线99| 99热天堂| 伊人激情| 天天做天天爱天天爽在| 五月婷三级片| 丁香六月激情国产| 五月婷婷婷综合网| 99热超碰| 欧美综合激情五月丁香| 婷婷五月丁香亚洲| 丁香五月婷婷影院| 久久伦乱| 亚洲色频| 五月天开心色情网| 99久热视频在线| www.操.com| 激情综合五月天| AV大香蕉| 狠狠撸激情综合丁香五月天俺来啦| 国产免费av网站| 超碰在线观看9| 99色精品视频| 日韩ww| 五月婷婷丁香五月 | 99啪啪| 国产又爽又猛又粗的视频A片| 夜夜做夜夜愛| 婷婷丁香五月天影院 | 99热这里有精品2| 婷婷色五月天色| 色综合激情| 天天爱天天做天天爽| 操操日韩| 99热这里只有精品在线观看| 婷婷五月免费在线| 丁香五月婷婷99| 日韩aaaaa| 热99热9| 久久婷婷色情7777网站| 国产精产国品一二三在观看| 99无码黄色视频| 99热这里是精品| 久久婷婷五月综合色丁香花| 大香蕉久久婷婷| 六月婷婷视频| 欧美日本高清视频99| 五月天婷婷社区| 国产精品香蕉| 99精品在线观看| 亚洲成人电影在线免费观看| 丁香九月久久| 天天射天天射一道本日本社区 | 淫视馆AV在线| 欧美顶级少妇做爰HD| 久色激情| 激情婷婷亚洲五月| www久久久久| 性做久久久久久久免费看| 久久婷婷综合五月天| 色婷婷五月天天天天天| 99碰在线视频| 婷婷六月色| 九九热精品| hd五月婷婷在线| 色色色综合色| 99九九这里有免费视频| 欧美久热| 色五月婷婷色五月| 天天草人人摸| www五月天com| 成人美女网| 久草大| 思思热精品在线观看| 婷婷欧美色| 超碰av天堂| 狠狠色丁香乆乆| 天天日综合| 久久精品这里只有精品免费首页| 色婷婷五月基地在线| 九九精品综合| 久热精彩视频98| 婷婷五月天av| 免费播放片大片| 综合图区激情| 丁香五月激情天AV无码| 日本久草福利| WWW色五月| 99精品在线观看| 丁香五月天.com| 激情五月婷婷综合色播小说| 久久婷婷六月| 九九热精品99| 久久久久久久91| 丁香五月天啪啪| 高清不卡一区| 色色色色热| www.六月丁香看AV| 激情com| 色婷婷久久综合| 啪啪五月综合| 大香蕉 婷婷| 五月天激情小说网| www.99热| 91丨九色丨熟女丰满| 狠狠色噜噜色狠狠狠综合久久成人波|