精品欧美一区二区三区在线观看 _久久久久国色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)

精品人妻一区二区免费视频| 一本色道久久99精品综合| 不卡的免费av| 天堂一区二区三区四区| 欧美日韩在线视频一区| 青娱乐国产91| 国产xxxx在线观看| 亚洲一区二区免费看| 中文字幕亚洲一区| 国产精九九网站漫画| 日本欧美日韩| 一区二区三区精品| 日本一区视频在线| 女人18毛片一区二区三区| 免费在线观看日韩欧美| 久久久久久久一区二区| 国产性猛交xx乱| 精品五月天堂| 欧美精品高清视频| 国内外成人免费激情视频| 嫩草香蕉在线91一二三区| 国产不卡一区视频| 国产精品视频播放| 日本一区二区三区精品| 最新精品国产| 曰本色欧美视频在线| 国产十八熟妇av成人一区| 欧美videos粗暴| 色网站国产精品| 成人网站免费观看入口| 国产精品久久久久久福利| 久久久不卡网国产精品二区 | 久久精品国产精品亚洲毛片| 亚洲一区二区三区四区五区黄 | 欧美美女性生活视频| 欧美电影完整版在线观看| 欧美日本在线播放| 成熟老妇女视频| 国产美女一区视频| 亚洲蜜臀av乱码久久精品蜜桃| 日本一区高清在线视频| 视频二区在线观看| 成人激情黄色小说| 99久久精品无码一区二区毛片| 在线观看日批视频| 日本视频在线一区| 国产精品黄视频| 黄色片视频免费| 男人的天堂亚洲在线| 欧美一性一乱一交一视频| 日本在线观看视频网站| 亚洲激情网站| 午夜精品久久久久久久久久久久久 | 欧美激情a在线| 欧美人妻一区二区| 欧美日本一区二区视频在线观看| 美日韩在线视频| 国产1区2区3区4区| 欧美日韩一区二区高清| 欧美国产亚洲视频| 国产亚洲精品码| 亚洲精品欧洲| 91精品国产色综合| 久久精品视频1| 首页综合国产亚洲丝袜| 国产精品第3页| 一级黄色短视频| 国产一区二区三区免费在线观看| 91精品综合久久久久久五月天| 这里只有精品6| 国产一区999| 91亚色免费| 天堂中文资源在线| 99国产精品久久久久| 欧美一区二区在线| 五月天婷婷在线视频| 亚洲欧美国产77777| 日本黄大片在线观看| 黄色在线网站噜噜噜| 欧美午夜无遮挡| 中文字幕22页| 成功精品影院| 亚洲人成网在线播放| 亚洲AV成人无码网站天堂久久| 888久久久| 久久久亚洲影院| 无码视频在线观看| 极品少妇xxxx精品少妇偷拍| 波多野结衣久草一区| 午夜激情小视频| 国产精品久久久久毛片软件| 国产91视频一区| 欧美日韩视频网站| 91麻豆精品国产自产在线 | 亚洲色图在线播放| 国产日韩欧美精品在线观看| japanese23hdxxxx日韩| 欧美一区二区三区精品| 日韩网站在线播放| 亚洲精品va| 日本人成精品视频在线| 精品人妻av一区二区三区| 久久综合狠狠综合| 男女裸体影院高潮| 日韩欧美2区| 亚洲成人精品在线| 黄色录像一级片| 亚洲欧美日韩国产一区| 成人网欧美在线视频| 亚洲人在线观看视频| 一区二区三区在线免费视频| 日韩精品免费播放| 国产精品三p一区二区| 中文字幕久热精品在线视频| 激情综合网五月婷婷| 久久超级碰视频| 欧美日韩在线精品| 阿v视频在线观看| 日韩视频一区二区三区在线播放| 性高潮久久久久久久| 亚洲日本欧美| 91成人理论电影| 二区在线视频| 色综合天天视频在线观看| 国产人妻精品午夜福利免费| 国产精品久久久久久影院8一贰佰 国产精品久久久久久麻豆一区软件 | 免费精品视频| 国产精品一区二| 图片区小说区亚洲| 这里只有精品电影| 久久久久久成人网| 日韩精品一级中文字幕精品视频免费观看 | 久久精品中文字幕一区| 最近中文字幕av| 久久亚洲私人国产精品va媚药| 欧美一级欧美一级| 亚洲一区二区三区日本久久九| 久久久精品视频成人| 中文字幕+乱码+中文乱码www| 久久精品视频一区二区三区| 久久亚洲中文字幕无码| 给我免费播放日韩视频| 久久久久久久91| 人妻一区二区三区四区| 亚洲一区在线看| 亚洲熟女一区二区三区| 欧美日韩精品| 国产在线一区二区三区四区| 密臀av在线| 亚洲成人精品视频在线观看| 中文字幕在线观看免费视频| 99精品在线观看视频| 国产精品专区在线| 天堂资源在线亚洲| 茄子视频成人在线| 国产香蕉视频在线看| 欧美在线小视频| 五月天婷婷丁香网| 久久激五月天综合精品| 亚洲自拍偷拍一区二区三区| 日韩欧美久久| 97国产精品免费视频| 毛片在线播放网站| 在线观看亚洲成人| 久久嫩草捆绑紧缚| 国产成人在线视频网址| 成年人午夜免费视频| 亚欧洲精品视频在线观看| 国产成+人+综合+亚洲欧洲| 波多野结衣在线网站| 欧美日韩午夜精品| 久久精品视频免费在线观看| 成人亚洲一区二区一| 日韩av一二三四区| 欧美综合视频| 99久久综合狠狠综合久久止| sm久久捆绑调教精品一区| 亚洲欧洲在线播放| 国产精品国产三级国产aⅴ | 国产午夜精品久久久久| 国产精品入口麻豆九色| 精品人妻一区二区三区免费| 亚洲福利免费| 色一情一乱一伦一区二区三区| 成人噜噜噜噜| 2019中文在线观看| 一广人看www在线观看免费视频| 日韩欧美激情在线| 毛片在线免费播放| 亚洲综合色噜噜狠狠| 丝袜美腿中文字幕| 激情六月婷婷久久| 无码人妻精品一区二区三区在线| 精品视频免费| av在线不卡观看| 麻豆精品蜜桃| 国内精品美女av在线播放| 91福利在线视频| 亚洲国产精品久久久久久| 制服.丝袜.亚洲.中文.综合懂色| 国产精品久久久久一区二区三区 | www.黄在线观看| 精品精品欲导航| 在线播放一级片| 五月婷婷综合在线| 永久久久久久久| 国产亚洲女人久久久久毛片| 激情综合激情五月| 久久国产尿小便嘘嘘| 亚洲乱码中文字幕久久孕妇黑人| 91精品一区二区三区综合| 欧美日韩国产一二| av在线亚洲色图| 91夜夜未满十八勿入爽爽影院| 超碰国产一区| 国产+人+亚洲| 污视频网站在线免费| 日韩亚洲欧美中文高清在线| 欧美成人免费| 亚洲精品福利视频| 高h放荡受浪受bl| 欧美本精品男人aⅴ天堂| 亚洲系列第一页| 在线视频国产一区| 天天操夜夜操视频| 午夜精品福利一区二区三区av| 日本妇女毛茸茸| 18成人在线视频| 神马久久久久久久久久久| www.在线欧美| 高清中文字幕mv的电影| 国产乱一区二区| 午夜福利123| 国产中文字幕精品| 日韩精品视频一二三| 欧美a级一区二区| 亚洲国产精品三区| 日本欧美大码aⅴ在线播放| 超碰网在线观看| 日韩在线观看一区二区| 国产97色在线 | 日韩| 久久久噜噜噜| 99视频在线视频| 日韩不卡免费视频| 国内自拍视频一区| 蜜臀av性久久久久av蜜臀妖精 | 国产成人日日夜夜| 亚洲网中文字幕| 国产老女人精品毛片久久| 樱花草www在线| 国产伦精一区二区三区| 欧美图片自拍偷拍| 成人av午夜影院| 丰满少妇高潮一区二区| 久久久精品一品道一区| 无码少妇精品一区二区免费动态| 国产欧美日韩中文久久| 一级片黄色录像| 日韩美女精品在线| 免费一级肉体全黄毛片| 亚洲国产精品一区二区尤物区| 国产精品suv一区二区| 欧美日韩在线观看视频| 波多野结衣小视频| 欧美日本国产一区| a级片在线免费看| 亚洲国产成人精品一区二区 | 一级黄色免费片| 欧美大肚乱孕交hd孕妇| 无码国产精品一区二区免费16| 亚洲精品天天看| 在线观看美女网站大全免费| 久青草国产97香蕉在线视频| 大黄网站在线观看| 国产成人免费av| 91精品视频一区二区| 国产精品免费一区二区三区在线观看 | 国产69精品久久久久久久久久| 欧美性xxxx极品hd欧美风情| 中文字幕+乱码+中文| 精品国产一二三区| 国产在线高清| 久久999免费视频| jk漫画禁漫成人入口| 成人黄色av播放免费| 菁菁伊人国产精品| 性欧美精品一区二区三区在线播放 | 免费看成人吃奶视频在线| 中文字幕中文字幕在线中一区高清| 欧美成人久久| av片中文字幕| 国产激情视频一区二区三区欧美| 在线观看av中文字幕| 亚洲欧洲日韩在线| 啦啦啦免费高清视频在线观看| 欧美日韩日日摸| 欧美综合视频在线| 中文字幕日韩av综合精品| av影院在线| 成人xxxx视频| 欧美午夜精品一区二区三区电影| 久久香蕉视频网站| 日韩二区三区在线观看| 无码人妻精品一区二区三区99不卡| 中文字幕的久久| 国产精品自拍视频一区| 欧美一区二区视频观看视频| 免费动漫网站在线观看| 欧美精品第一页在线播放| 国产精品原创视频| 久久av一区二区三区漫画| 亚洲精品a级片| 国产原创精品在线| 久久先锋影音av| 国产精品成人国产乱| 91麻豆精品国产91久久久久久| 女人偷人在线视频| 97国产精品免费视频| 一区二区中文字幕在线观看| 偷拍盗摄高潮叫床对白清晰| 日韩成人免费在线| 中文字幕免费看| 精品电影在线观看| 后入内射欧美99二区视频| 欧美第一淫aaasss性| 成人污污视频| 老汉色影院首页| 狠狠网亚洲精品| 熟女少妇a性色生活片毛片| 欧洲视频一区二区| 日韩a在线看| 欧美在线一区二区视频| 日韩欧美黄色| av之家在线观看| 91捆绑美女网站| 国产香蕉视频在线| 精品少妇一区二区三区在线播放 | 日本精品一区二区三区高清| 日本黄色一区二区三区| 久久久视频精品| 精品国产18久久久久久洗澡| 国产成人在线小视频| 成人午夜视频在线| 日本免费在线播放| 亚洲激情小视频| 丝袜老师在线| 欧美午夜免费| 免费成人美女在线观看| а天堂中文在线资源| 欧美日产国产精品| 成人ww免费完整版在线观看| 91亚洲精品一区二区| 欧美色综合网| 第四色在线视频| 色婷婷精品久久二区二区蜜臀av| 免费在线观看一级毛片| 国产精品免费电影| 国产精品久久久久久影院8一贰佰| 亚洲无在线观看| 亚洲一区视频在线观看视频| 天天操天天射天天舔| 日本久久91av| 欧美黄色录像片| 日本性生活一级片| 欧美性少妇18aaaa视频| 中文字幕在线免费| 97操在线视频| 久久国产高清| 免费观看特级毛片| 日韩欧美中文字幕一区| 国产粉嫩在线观看| 日本中文不卡| 国产福利精品一区| 久草视频在线观| 最近日韩中文字幕中文| 日韩精品久久久久久久软件91| 9久久9毛片又大又硬又粗| 亚洲国产成人私人影院tom| 国产熟女精品视频| 欧美亚洲激情在线| 久久在线电影| 97精品人妻一区二区三区蜜桃| 91久久精品一区二区三区| www免费在线观看| 久久99精品国产一区二区三区| 青青国产91久久久久久| 妺妺窝人体色www婷婷| 亚洲天堂av在线播放| 香蕉免费一区二区三区在线观看| 国产男女激情视频| 一级特黄大欧美久久久| 国产女人在线观看| 成人欧美一区二区三区视频xxx | 黄上黄在线观看| 91成人免费看| 免费的成人av| 日日夜夜综合网| 欧美疯狂做受xxxx高潮| 国产一区网站| 久久性爱视频网站|