精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

普通Java程序員學(xué)習(xí)使用的6個(gè)JDK內(nèi)建工具

開發(fā) 后端
與你的問題不同,我認(rèn)為軟件工程主要是用來解決問題的。有些博客認(rèn)為“每個(gè)小孩都應(yīng)該學(xué)習(xí)編程”,“你認(rèn)為學(xué)數(shù)學(xué)只是玩玩而已?如果你有看過我的HTML5調(diào)試器的話,你會(huì)發(fā)現(xiàn)我是一個(gè)程序員,但我做的工作遠(yuǎn)不止數(shù)學(xué)這些”。 上面兩者都同意一個(gè)觀點(diǎn),軟件工程不只是用計(jì)算機(jī)語(yǔ)言寫的一些只言片語(yǔ)。軟件解決的問題詮釋了程序員的價(jià)值。

與你的問題不同,我認(rèn)為軟件工程主要是用來解決問題的。有些博客認(rèn)為“每個(gè)小孩都應(yīng)該學(xué)習(xí)編程”,“你認(rèn)為學(xué)數(shù)學(xué)只是玩玩而已?如果你有看過我的HTML5調(diào)試器的話,你會(huì)發(fā)現(xiàn)我是一個(gè)程序員,但我做的工作遠(yuǎn)不止數(shù)學(xué)這些”。 上面兩者都同意一個(gè)觀點(diǎn),軟件工程不只是用計(jì)算機(jī)語(yǔ)言寫的一些只言片語(yǔ)。軟件解決的問題詮釋了程序員的價(jià)值。

解決問題的最終進(jìn)展來自科學(xué)、強(qiáng)化清晰的頭腦和我們一路以來使用的工具。

推薦普通開發(fā)者學(xué)習(xí)使用的6個(gè)JDK內(nèi)建工具

你有沒有留意過那些 JDK 安裝附帶的工具?既然那些大牛同意把那些工具加到 JDK 里,應(yīng)該是有用的。

因此,在這篇文章里,我挑了幾個(gè) Hotspot 標(biāo)準(zhǔn)安裝后可用的小工具來介紹。我們決定忽略那些安全相關(guān)的和各種遠(yuǎn)程方法調(diào)用(RMI)、applets、web-start、web-services 工具。讓我們把焦點(diǎn)放在那些普通開發(fā)者開發(fā)一般應(yīng)用過程中可能有用的工具。注意,如果你只是對(duì)命令行工具感興趣,而不僅僅是Java相關(guān)的工具,這里介紹了 5 個(gè)非常有用的命令行工具。

再次重申,下面雖然不是 JDK 工具完整列表,但是我們想給你一個(gè)精華版本。下面是你用這些命令可以完成的真正有用的事情。

0、javap

你可以給 javap(Java Class文件反編譯器)傳遞這些有用的參數(shù):

  • -I – 打印行數(shù)和局部變量

  • -p – 打印包括非public在內(nèi)的所有類和成員信息,

  • -c – 打印方法字節(jié)碼

比如在著名的“你真的懂 Classloader 嗎?”演講里,當(dāng)出現(xiàn) NoSuchMethodException 錯(cuò)誤時(shí),我們可以執(zhí)行以下命令來調(diào)查這個(gè)類究竟有哪些成員方法和獲取這個(gè)類所有想找的信息:

javap -l -c -p Util2

推薦普通開發(fā)者學(xué)習(xí)使用的6個(gè)JDK內(nèi)建工具

當(dāng)調(diào)試類內(nèi)部信息或者研究隨機(jī)字節(jié)碼順序時(shí),javap 非常有用。

1、jjs

推薦普通開發(fā)者學(xué)習(xí)使用的6個(gè)JDK內(nèi)建工具

jjs命令可以啟動(dòng)一個(gè) JavaScript 命令終端,你可以把它當(dāng)做計(jì)算器或者用隨機(jī)的JS字符串測(cè)試JS的古怪用法。不要讓另一個(gè) JavaScript 謎題讓你措手不及!

哈,看到剛剛發(fā)生了什么了么?但是 JavaScript 是另一個(gè)話題,只需要知道即使沒有 node.js 或?yàn)g覽器你也可以用jjs知道JS是怎么工作的。

2、jhat

Java堆分析工具(jhat)正如它名字描述的那樣:分析dump堆信息。在下面的小例子里,我們構(gòu)造了一個(gè) OutOfMemoryError ,然后給這個(gè) java 進(jìn)程指定 -XX:+HeapDumpOnOutOfMemoryError ,這樣運(yùn)行時(shí)就會(huì)產(chǎn)生一個(gè) dump 文件供我們分析。

  1. public class OhMyMemory { 
  2.  
  3. private static Map map = new HashMap<>(); 
  4.  
  5. public static void main(String[] args) { 
  6.    Runtime.getRuntime().addShutdownHook( 
  7.      new Thread() { 
  8.        @Override 
  9.        public void run() { 
  10.          System.out.println("We have accumulated " + map.size() + " entries"); 
  11.        } 
  12.      } 
  13.    ); 
  14.    for(int i = 0; ;i++) { 
  15.      map.put(Integer.toBinaryString(i), i); 
  16.    } 

產(chǎn)生一個(gè) OutOfMemoryError 很簡(jiǎn)單(大部分情況下我們無意為之),我們只要不斷地制造不讓垃圾回收器起作用就可以了。

運(yùn)行這段代碼會(huì)產(chǎn)生如下輸出:

  1. org.shelajev.throwaway.jdktools.OhMyMemory 
  2. java.lang.OutOfMemoryError: Java heap space 
  3. Dumping heap to java_pid5644.hprof ... 
  4. Heap dump file created [73169721 bytes in 0.645 secs] 
  5. Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 
  6. at java.util.HashMap.resize(HashMap.java:703
  7. at java.util.HashMap.putVal(HashMap.java:662
  8. at java.util.HashMap.put(HashMap.java:611
  9. at org.shelajev.throwaway.jdktools.OhMyMemory.main(OhMyMemory.java:24
  10. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
  11. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62
  12. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43
  13. at java.lang.reflect.Method.invoke(Method.java:483
  14. at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134
  15. We have accumulated 393217 entries 

不錯(cuò),我們現(xiàn)在有一個(gè)可供分析的文件了。我們對(duì)這個(gè)文件執(zhí)行jhat開始進(jìn)行分析,jhat 會(huì)分析這個(gè)文件開啟一個(gè) http 服務(wù)器供我們查看結(jié)果。

  1. $ jhat java_pid5644.hprof 
  2. Reading from java_pid5644.hprof... 
  3. Dump file created Thu Aug 14 14:48:19 EEST 2014 
  4. Snapshot read, resolving... 
  5. Resolving 1581103 objects... 
  6. Chasing references, expect 316 dots... 
  7. Eliminating duplicate references........ 
  8. Snapshot resolved. 
  9. Started HTTP server on port 7000 
  10. Server is ready. 

可以通過訪問 http://localhost:7000 來查看 dump 的數(shù)據(jù)。

推薦普通開發(fā)者學(xué)習(xí)使用的6個(gè)JDK內(nèi)建工具

在那個(gè)頁(yè)面我們可以通過堆信息的柱狀圖了解究竟是什么耗盡了內(nèi)存。

推薦普通開發(fā)者學(xué)習(xí)使用的6個(gè)JDK內(nèi)建工具

現(xiàn)在我們可以清晰地看到擁有 393567 結(jié)點(diǎn)的 HashMap 就是導(dǎo)致程序崩潰的元兇。雖然有更多可以檢查內(nèi)存分布使用情況和堆分析的工具,但是jhat是內(nèi)置的,是分析的一個(gè)好的開端。

3、jmap

jmap 是一個(gè)內(nèi)存映射工具,它提供了另外一種不需要引發(fā) OutOfMemoryErrors 就可以獲取堆 dump 文件的方法。我們稍微修改一下上面的程序看一下效果。

  1. public class OhMyMemory { 
  2.  
  3. private static Map map = new HashMap<>(); 
  4.  
  5. public static void main(String[] args) { 
  6.    Runtime.getRuntime().addShutdownHook( 
  7.      new Thread() { 
  8.        @Override 
  9.        public void run() { 
  10.          try { 
  11.            System.out.println("Enter something, so I'll release the process"); 
  12.            System.in.read(); 
  13.            System.out.println("We have accumulated " + map.size() + " entries"); 
  14.          } 
  15.          catch (IOException e) { 
  16.            e.printStackTrace(); 
  17.          } 
  18.        } 
  19.      } 
  20.    ); 
  21.  
  22.    for(int i = 0; i < 10000 ;i++) { 
  23.      map.put(Integer.toBinaryString(i), i); 
  24.    } 

注意,現(xiàn)在我們不要消耗大量的內(nèi)存,只是比較早結(jié)束并在進(jìn)程關(guān)閉鉤子里等待不讓 JVM 退出。這樣就允許我們用 jmap 連接這個(gè)進(jìn)程獲取珍貴的內(nèi)存 dump。

因此你可以用 jmap 的兩個(gè)功能來實(shí)現(xiàn),獲取堆統(tǒng)計(jì)信息和觸發(fā)一個(gè)堆 dump。因此,當(dāng)執(zhí)行:

jmap -heap 1354(這里 1354 是上面程序運(yùn)行的進(jìn)程號(hào)),就可以獲取一個(gè)很好的內(nèi)存使用統(tǒng)計(jì)信息:

 

  1. $ jmap -heap 1354                                                                                                                   
  2. Attaching to process ID 1354, please wait... 
  3. Debugger attached successfully. 
  4. Server compiler detected. 
  5. JVM version is 25.0-b70 
  6.  
  7. using thread-local object allocation. 
  8. Parallel GC with 4 thread(s) 
  9.  
  10. Heap Configuration: 
  11.    MinHeapFreeRatio         = 40 
  12.    MaxHeapFreeRatio         = 70 
  13.    MaxHeapSize              = 67108864 (64.0MB) 
  14.    NewSize                  = 1572864 (1.5MB) 
  15.    MaxNewSize               = 22020096 (21.0MB) 
  16.    OldSize                  = 45088768 (43.0MB) 
  17.    NewRatio                 = 2 
  18.    SurvivorRatio            = 8 
  19.    MetaspaceSize            = 21807104 (20.796875MB) 
  20.    CompressedClassSpaceSize = 1073741824 (1024.0MB) 
  21.    MaxMetaspaceSize         = 17592186044415 MB 
  22.    G1HeapRegionSize         = 0 (0.0MB) 
  23.  
  24. Heap Usage: 
  25. PS Young Generation 
  26. Eden Space: 
  27.    capacity = 1048576 (1.0MB) 
  28.    used     = 628184 (0.5990829467773438MB) 
  29.    free     = 420392 (0.40091705322265625MB) 
  30.    59.908294677734375% used 
  31. From Space: 
  32.    capacity = 524288 (0.5MB) 
  33.    used     = 491568 (0.4687957763671875MB) 
  34.    free     = 32720 (0.0312042236328125MB) 
  35.    93.7591552734375% used 
  36. To Space: 
  37.    capacity = 524288 (0.5MB) 
  38.    used     = 0 (0.0MB) 
  39.    free     = 524288 (0.5MB) 
  40.    0.0% used 
  41. PS Old Generation 
  42.    capacity = 45088768 (43.0MB) 
  43.    used     = 884736 (0.84375MB) 
  44.    free     = 44204032 (42.15625MB) 
  45.    1.9622093023255813% used 
  46.  
  47. 981 interned Strings occupying 64824 bytes. 
  48.  
  49. $ jmap -dump:live,format=b,file=heap.bin 1354                                                                               
  50. Dumping heap to /Users/shelajev/workspace_idea/throwaway/heap.bin ... 
  51. Heap dump file created 

jmap 還可以簡(jiǎn)單地觸發(fā)當(dāng)前堆 dump,之后可以隨意進(jìn)行分析。你可以像下面例子中的那樣,傳一個(gè) -dump 參數(shù)給 jmap。

現(xiàn)在有了 dump 得到的文件 heap.bin,就可以用你喜歡的內(nèi)存分析工具來分析。

4、jps

jps 是顯示 Java 程序系統(tǒng)進(jìn)程(PID)最常用的工具。它與平臺(tái)無關(guān),非常好用。想象一下我們啟動(dòng)了上面的程序,然后想用 jmap 連接它。這個(gè)時(shí)候我們需要程序的 PID,jps 正好的派上用場(chǎng)。

  1. $ jps -mlv 
  2. 5911 com.intellij.rt.execution.application.AppMain org.shelajev.throwaway.jdktools.OhMyMemory -Xmx64m -Didea.launcher.port=7535 -Didea.launcher.bin.path=/Applications/IntelliJ IDEA 14 EAP.app/Contents/bin -Dfile.encoding=UTF-8 
  3. 5544  -Dfile.encoding=UTF-8 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -Djsse.enableSNIExtension=false -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -XX:+HeapDumpOnOutOfMemoryError -Xverify:none -Xbootclasspath/a:../lib/boot.jar -Xms128m -Xmx750m -XX:MaxPermSize=350m -XX:ReservedCodeCacheSize=225m -XX:+UseCompressedOops -agentlib:yjpagent=probe_disable=*,disablealloc,disabletracing,onlylocal,disableexceptiontelemetry,delay=10000,sessionname=IntelliJIdea14 -Didea.java.redist=NoJavaDistribution -Didea.home.path=/Applications/IntelliJ IDEA 14 EAP.app/Contents -Didea.paths.selector=IntelliJIdea14 
  4. 5930 sun.tools.jps.Jps -mlvV -Dapplication.home=/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home -Xms8m 

我們發(fā)現(xiàn)大多數(shù)情況下,“-mlv” 參數(shù)組合起來***用。它會(huì)打印main方法的參數(shù)、完整包名、JVM 相關(guān)參數(shù)。這樣你就可以在一大堆相似的進(jìn)程中找到你想要的那個(gè)。

現(xiàn)在有了 dump 得到的文件 heap.bin,就可以用你喜歡的內(nèi)存分析工具來分析。

5、jstack

jstack 是一個(gè)生成指定 JVM 進(jìn)程的線程堆棧工具。當(dāng)你程序一直在那里轉(zhuǎn)圈圈,而你想找到線程到底做了什么導(dǎo)致死鎖,那么 jstack 最適合。

jstack 只有幾個(gè)參數(shù)選項(xiàng),如果你拿不準(zhǔn),把它們都加上。如果后面發(fā)現(xiàn)有些信息對(duì)你意義不大時(shí)可以調(diào)整參數(shù)限制它的輸出。

-F 選項(xiàng)可以用來強(qiáng)制 dump,這在進(jìn)程掛起時(shí)非常有用,-I 選項(xiàng)可以打印同步和鎖的信息。

  1. $ jstack -F -l 9153 
  2. Attaching to process ID 9153, please wait... 
  3. Debugger attached successfully. 
  4. Server compiler detected. 
  5. JVM version is 25.0-b70 
  6. Deadlock Detection: 
  7.  
  8. No deadlocks found. 
  9. …. 

上面的輸出雖然看起來簡(jiǎn)單,但是它包含了每個(gè)線程的狀態(tài)和它當(dāng)前的堆棧的信息。

jstack 非常有用,我們?cè)谌粘9ぷ髦惺褂梅浅nl繁,特別是我們負(fù)責(zé)啟動(dòng)停止應(yīng)用服務(wù)器的測(cè)試引擎。測(cè)試工作往往不順利,jstack 可以讓我們知道 JVM 內(nèi)部的運(yùn)行狀態(tài)且沒有什么負(fù)面的影響。

— Neeme Praks(ZeroTurnaround資深產(chǎn)品工程師)

還有其它的嗎?

今天我們介紹了 JDK 發(fā)行預(yù)裝的超棒工具。相信我,將來某天你肯定會(huì)用到它們中的一些。所以,如果你有時(shí)間,你可以翻一翻它們的官方文檔。

試著在不同的場(chǎng)景使用并愛上它們。

如果你想學(xué)一些超棒的非 JDK 附帶的工具,可以看看 JRebel ,它可以讓你馬上看到代碼的改動(dòng)效果,還可以看到我們新的產(chǎn)品 XRebel ,它可以像X光眼鏡一樣掃描你的 web 應(yīng)用。

如果你知道開發(fā)***實(shí)踐中至關(guān)重要的小工具,在本文末尾發(fā)表評(píng)論或者在 twitter上@shelajev 分享一下這個(gè)工具的細(xì)節(jié)。

Bonus Section: References

獎(jiǎng)勵(lì)環(huán)節(jié):參考

下面是一個(gè)更加完整的 JDK 工具可用列表。雖然這不是一個(gè)完整的列表,為了節(jié)省篇幅,我們省掉了加密、web-services 相關(guān)的工具等。謝謝 manpagez.com 提供的資源。

  • jar — 一個(gè)創(chuàng)建和管理 jar 文件的工具。

  • java — Java 應(yīng)用啟動(dòng)器。在這篇文章里,開發(fā)和部署都是用的這個(gè)啟動(dòng)器。

  • javac — Java 編譯器。

  • javadoc — API 文檔生成器。

  • javah — native 本地方法中用于生成 C 語(yǔ)言頭文件和源文件。

  • javap — class 文件反編譯器。

  • jcmd — JVM 命令行診斷工具,可發(fā)送診斷命令請(qǐng)求到 JVM 中。

  • jconsole — 一個(gè)兼容 JMX 的監(jiān)控 JVM 的圖形化工具。可以監(jiān)控本地和遠(yuǎn)程 JVM,也可以監(jiān)控和管理單獨(dú)的一個(gè)應(yīng)用。

  • jdb — Java 調(diào)試器。

  • jps — JVM 進(jìn)程查看工具,列出了系統(tǒng)運(yùn)行的所有 hotspot JVM 進(jìn)程。

  • jstat — JVM 狀態(tài)監(jiān)控工具。它可以收集和打印指定的 JVM 進(jìn)程性能狀態(tài)。

  • jhat — 堆 dump 信息的瀏覽器,啟動(dòng)一個(gè) web 服務(wù)器來顯示你用諸如 jmap -dump 得到的堆 dump 信息。

  • jmap — Java 內(nèi)存映射工具,打印指定進(jìn)程、核心文件、遠(yuǎn)程調(diào)試服務(wù)器共享內(nèi)存映射或者堆內(nèi)存詳細(xì)信息。

  • jsadebugd — Java 服務(wù)調(diào)試守護(hù)進(jìn)程—依附到一個(gè) Java 進(jìn)程或核心文件并且擔(dān)當(dāng)一個(gè)調(diào)試服務(wù)器的作用。

  • jstack —Java 堆棧信息工具——打印指定進(jìn)程或核心文件或者遠(yuǎn)程調(diào)試服務(wù)器的線程堆棧。

  • jjs — 運(yùn)行 Nashorn 命令行腳本 shell。

  • jrunscript — Java 腳本運(yùn)行工具。不過你要心里有數(shù),這實(shí)際上是一個(gè)還沒支持的測(cè)試功能。未來的 JDK 版本里面可能會(huì)移除它。

希望上面的內(nèi)容對(duì)你們有幫助,你可以在 twitter 上 @ shelajev留下你寶貴的評(píng)論。如果你知道一些我沒有提及的重要工具,請(qǐng)讓我知道。

責(zé)任編輯:王雪燕 來源: ImportNew
相關(guān)推薦

2016-01-31 09:47:13

Java程序員構(gòu)建工具

2021-02-05 17:42:44

Java程序員開發(fā)工具

2020-10-05 21:13:37

程序員技能開發(fā)者

2012-11-12 09:35:24

開發(fā)工具程序員IE6

2015-10-30 09:49:30

2015-08-12 14:39:47

程序員問題

2016-06-08 14:01:25

程序員軟技能

2020-08-12 08:04:26

Java技術(shù)開發(fā)

2011-11-25 09:56:45

Java程序員

2021-05-25 16:34:06

JavaScript前端

2018-08-28 15:30:54

編程語(yǔ)言Python日志系統(tǒng)

2017-08-11 16:40:21

2017-04-05 11:28:53

2016-01-28 14:39:04

大數(shù)據(jù)工具

2025-01-21 07:48:28

2021-01-12 22:33:57

程序員開發(fā)編程

2019-11-07 09:30:35

框架JavaWeb

2019-02-26 09:55:52

Java開發(fā)工具

2022-10-24 09:00:47

畫圖工具程序員XMind

2018-09-05 20:00:23

編程語(yǔ)言Java程序員
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

中文字幕亚洲国产| 精品久久久久久久久久国产| 7777精品伊久久久大香线蕉语言| 中文字幕第28页| 综合伊思人在钱三区| 欧美男女性生活在线直播观看| mm131午夜| 神马精品久久| 国产一区二区中文字幕| 热久久99这里有精品| 午夜爽爽爽男女免费观看| 秋霞蜜臀av久久电影网免费| 7777精品伊人久久久大香线蕉| 亚洲熟妇无码一区二区三区| 欧美激情二区| 久久伊人中文字幕| 不卡的av一区| 国产喷水福利在线视频| 日韩高清不卡在线| 97视频国产在线| 国产一区二区播放| 欧美色图在线播放| 日韩精品免费在线视频观看| www午夜视频| 都市激情亚洲综合| 亚洲一区二区三区美女| 中文视频一区视频二区视频三区| 日本一区二区三区在线观看视频| 国产精品一区二区三区乱码| 国产精品视频不卡| 久久久精品视频网站| 欧美午夜一区二区福利视频| 精品国内产的精品视频在线观看| 日韩在线免费观看av| 欧美电影在线观看完整版| 日韩欧美123| 精品国产鲁一鲁一区二区三区| 欧美韩国亚洲| 日本电影亚洲天堂一区| 日韩在线一级片| 98色花堂精品视频在线观看| 亚洲国产综合91精品麻豆| 偷拍盗摄高潮叫床对白清晰| 午夜免费福利在线观看| 中文字幕欧美日韩一区| 日韩欧美亚洲在线| 电影av一区| 国产精品私人自拍| 亚洲午夜在线观看| 99re热久久这里只有精品34| 欧美国产国产综合| 亚洲a∨一区二区三区| 大乳在线免费观看| 中文字幕日韩一区| 最近看过的日韩成人| 麻豆影院在线| 亚洲黄色免费网站| www.xxx麻豆| 超碰在线最新网址| 精品日韩美女的视频高清| 久久综合色视频| 奇米777日韩| 欧美日韩一本到| 在线视频观看一区二区| 视频一区日韩| 亚洲激情在线观看| 中文字幕人妻一区二区| 成人综合一区| 久久久精品国产一区二区| 天天看片中文字幕| 亚洲片区在线| 国产成人在线一区| 91精品国产综合久| 国产成a人无v码亚洲福利| 精品九九九九| 337p日本欧洲亚洲大胆鲁鲁| 亚洲色图一区二区| www插插插无码视频网站| 美女日韩欧美| 91精品国产品国语在线不卡| 第四色在线视频| 成人高清av| 欧美黑人一区二区三区| 中文字幕免费在线观看视频| 久久精品国产一区二区三区免费看| 成人啪啪免费看| 污污网站在线免费观看| 国产精品欧美极品| 日韩av中文字幕第一页| 欧美日韩女优| 亚洲第一网站免费视频| 国产视频123区| 亚洲黄色影片| 成人av番号网| 天堂91在线| 亚洲视频1区2区| 激情五月开心婷婷| 精品一区视频| 国产一区二区三区欧美| 日本特黄一级片| 美国欧美日韩国产在线播放| 国产精品一码二码三码在线| 在线视频二区| 大荫蒂欧美视频另类xxxx| 国产又粗又长又爽又黄的视频| 台湾亚洲精品一区二区tv| 北条麻妃99精品青青久久| 久久中文字幕免费| 国产一区二区影院| 视频一区二区在线观看| 2020国产在线| 日韩限制级电影在线观看| 国产欧美小视频| 亚洲专区一区二区三区| 国产a一区二区| 免费在线观看av网站| 91国偷自产一区二区开放时间 | 国产福利一区二区三区视频在线 | 爽好久久久欧美精品| 999国内精品视频在线| 亚洲欧美视频一区二区| 色悠悠久久综合| 最新在线黄色网址| 欧美午夜不卡| 成人做爰66片免费看网站| 欧美高清视频| 精品视频999| 无码少妇一区二区| 久久精品国语| 免费不卡亚洲欧美| 麻豆mv在线观看| 精品999在线播放| 久久久久久久久毛片| 国产在线不卡一区| 国产免费色视频| 日韩午夜电影免费看| 色妞欧美日韩在线| 亚洲图片中文字幕| 国产精品乱人伦中文| 欧美三级理论片| 日本不卡电影| 91精品国产综合久久男男| 自拍视频在线免费观看| 欧美精品久久久久久久久老牛影院| 亚洲av无码国产精品麻豆天美| 性娇小13――14欧美| 欧美高清视频一区二区三区在线观看| 超碰99在线| 亚洲精品一二区| 日本中文字幕久久| 欧美国产成人在线| 57pao国产成永久免费视频| 欧美hd在线| 91在线播放国产| 欧洲成人综合网| 亚洲国产欧美精品| 日日摸天天添天天添破| 国产欧美一区视频| 成人不卡免费视频| 欧美日韩国产成人精品| 久久精品人人做人人爽电影| 校园春色亚洲色图| 日韩在线欧美在线| 性中国古装videossex| 午夜久久久久久久久| 我和岳m愉情xxxⅹ视频| 麻豆精品视频在线观看免费| 国产欧美自拍视频| 久久久久观看| 国产精品视频1区| 综合图区亚洲| 日韩成人在线免费观看| 中国a一片一级一片| 亚洲三级在线看| 国产二级一片内射视频播放 | 欧美一区第一页| 国产一级在线观看| 9191国产精品| 日本在线视频免费| 国产精品每日更新| 久久久久久久人妻无码中文字幕爆| 性xx色xx综合久久久xx| 穿情趣内衣被c到高潮视频| 极品束缚调教一区二区网站 | 9l视频自拍蝌蚪9l视频成人| 欧美主播福利视频| 国产传媒在线播放| 精品亚洲一区二区三区在线观看 | 成人激情动漫在线观看| 激情内射人妻1区2区3区| 欧美在线免费| 欧美亚洲精品日韩| 亚洲一区二区三区在线免费| 日韩美女在线播放| 美女精品导航| 最近2019好看的中文字幕免费| 国产浮力第一页| 在线视频欧美区| 国产精品suv一区二区| 欧美国产激情一区二区三区蜜月| 欧美肉大捧一进一出免费视频| 男男成人高潮片免费网站| 黄页免费在线观看视频| 91精品国产福利在线观看麻豆| 久久免费99精品久久久久久| 日韩精品一区二区三区中文 | 久久久久久久久久福利| 欧美视频网站| 天天综合中文字幕| 精品福利久久久| 久久精品第九区免费观看| 久久99精品久久久野外观看| 国产精彩精品视频| 狠狠躁少妇一区二区三区| 久久91超碰青草是什么| 欧美精品电影| 国产性色av一区二区| 污污网站在线免费观看| 日韩美女一区二区三区四区| 91丨porny丨在线中文| 欧美在线啊v一区| 日本中文字幕第一页| 亚洲国产日韩av| 91aaa在线观看| 亚洲欧美经典视频| 欧美激情精品久久久久久免费 | 国产sm精品调教视频网站| av中文字幕网址| 美国三级日本三级久久99 | 国产91精品久久久久久久网曝门| 中文字幕一区久久| 另类调教123区| 日日躁夜夜躁aaaabbbb| 丝袜脚交一区二区| 久久精品99国产| 香蕉久久夜色精品| 欧美丰满熟妇xxxxx| 乱码第一页成人| 99草草国产熟女视频在线| 欧美亚洲免费| 99色精品视频| 性高湖久久久久久久久| 国产淫片av片久久久久久| 久久亚洲美女| 看欧美ab黄色大片视频免费 | 欧美三级小说| 男女激情免费视频| 亚洲精品人人| 成人久久久久久久久| 老司机午夜免费精品视频 | 国产成人av一区二区三区在线 | 国产高清视频免费| 欧美成人r级一区二区三区| 亚洲欧美强伦一区二区| 亚洲成人av片在线观看| 午夜成人免费影院| 亚洲人永久免费| 在线观看黄av| 欧美大码xxxx| 国模雨婷捆绑高清在线| 97成人精品视频在线观看| 欧美大电影免费观看| 国产精品91久久| 啪啪av大全导航福利综合导航| 91久久精品国产91久久性色| 亚洲精品午夜| 明星裸体视频一区二区| 欧美日一区二区| 国产欧美综合一区| 亚洲一区免费| 五月婷婷激情久久| 高清在线不卡av| ass精品国模裸体欣赏pics| 中文字幕高清不卡| 久久久久无码精品国产| 欧美日韩一区二区免费视频| 中文字幕在线2018| 精品国产精品一区二区夜夜嗨| 青青草娱乐在线| 久久伊人色综合| 成入视频在线观看| 国产美女直播视频一区| 国产精品久av福利在线观看| 日本一区二区视频| 欧美不卡视频| 男女啪啪网站视频| 粉嫩aⅴ一区二区三区四区五区| 精品无人区无码乱码毛片国产 | 日韩综合中文字幕| 丰乳肥臀在线| 91精品久久久久久久| 理论片一区二区在线| 天天爽天天狠久久久| 亚洲国产日本| 日韩va在线观看| 久久综合av免费| 久艹视频在线观看| 欧美日韩精品专区| 亚洲 另类 春色 国产| 久久视频在线播放| 欧美日韩尤物久久| 精品国产一区二区三区四区vr | 欧美高清在线观看| 成人mm视频在线观看| 精品一区在线播放| 午夜精品久久| 久久人人爽av| 久久综合九色综合97婷婷女人| 久久伊人成人网| 91精品国产综合久久久久| 国产福利电影在线| 91地址最新发布| 成人激情自拍| 日本精品免费视频| 久久精品国产在热久久| 微拍福利一区二区| 黑人巨大精品欧美一区二区免费| www香蕉视频| 久久香蕉国产线看观看网| 日韩毛片一区| 日本最新一区二区三区视频观看| 一本久道久久综合狠狠爱| 精品国产aⅴ一区二区三区东京热| 国产精品日韩成人| 在线观看不卡的av| 伊人精品在线观看| 久久91导航| 欧美一区二区在线| 久久久www| 国产精品国产三级国产专业不 | 天天综合成人网| 国产精品久久毛片| 中文字幕你懂的| 一区二区欧美亚洲| 快播电影网址老女人久久| 日韩欧美亚洲在线| 日欧美一区二区| 久久婷婷五月综合| 欧美在线视频全部完| 在线观看免费网站黄| 国产美女主播一区| 亚洲最新色图| 99国产精品免费视频| 亚洲最大色网站| 亚洲乱色熟女一区二区三区| 欧美激情乱人伦一区| 中文字幕亚洲在线观看 | 男人的天堂久久精品| 久久久久亚洲AV成人无在| 精品视频免费在线| 国产色在线观看| av资源站久久亚洲| 国产精品美女久久久浪潮软件| 中国美女乱淫免费看视频| 91福利区一区二区三区| 美女av在线播放| 成人看片在线| 午夜在线观看免费一区| 香蕉视频久久久| 5月丁香婷婷综合| 污污的视频在线观看| 韩国成人一区| 日韩电影在线免费观看| 日韩国产第一页| 亚洲精品一区二区三区影院| 美脚恋feet久草欧美| 自拍偷拍亚洲色图欧美| av在线播放不卡| 波多野结衣视频网址| 久久成人这里只有精品| 久本草在线中文字幕亚洲| 天堂社区在线视频| 亚洲欧美另类小说| 毛片在线能看| 91在线|亚洲| 天堂午夜影视日韩欧美一区二区| 国产黄色录像片| 亚洲国产精品热久久| www.国产精品| 免费特级黄色片| 欧美极品xxx| 成人午夜福利视频| 国产精品久久久久久久久借妻 | 亚洲午夜免费视频| 黄色av免费在线观看| 91免费版黄色| 日韩制服丝袜av| 九九视频在线免费观看| 亚洲网站在线观看| 99久久婷婷国产综合精品青牛牛 | 中文字幕日韩综合av| 91综合精品国产丝袜长腿久久| xxxx一级片| 午夜精品久久久久久久| 免费不卡视频| 日本一区二区三区精品视频| 国产91高潮流白浆在线麻豆| 中文字幕日韩经典| 91高清视频免费观看| 亚洲激情中文在线|