成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JVM除了HotSpot,你還知道哪些?

開(kāi)發(fā) 后端
一個(gè)Java虛擬機(jī)(JVM)是從未被物理建成硬件假想計(jì)算機(jī)。JVM 運(yùn)行編譯成其虛構(gòu)指令集的程序,該指令集作為稱為字節(jié)碼的中間表示寫入存儲(chǔ)。

你好,我是方向盤(YourBatman),坐穩(wěn)扶好,開(kāi)始發(fā)車。

Title

Link

所屬專欄

【方向盤】-基本功

源代碼

https://github.com/yourbatman/FXP-java-ee

程序員專用網(wǎng)盤公益上線啦,注冊(cè)送1G超小容量,幫你實(shí)踐做減法

https://wangpan.yourbatman.cn

Java開(kāi)發(fā)軟件包(Mac)

https://wangpan.yourbatman.cn/s/rEH0 提取碼:javakit

女媧工程

http://152.136.106.14:8761

版本約定

[JDK 1.0 - 17]

前言

如何理解Java是跨平臺(tái)的語(yǔ)言?Java是編譯型語(yǔ)言還是解釋型語(yǔ)言?JDK、JRE、JVM有什么區(qū)別?

這三個(gè)常見(jiàn)的問(wèn)題,都繞不開(kāi)一個(gè)主題詞:JVM。每一個(gè)Javaer都知道它,可謂又愛(ài)又恨,愛(ài)它是因?yàn)殡y,恨它也是因?yàn)殡y。

圖片

本文當(dāng)然不是要去“深入理解Java虛擬機(jī)”,JVM發(fā)展這么多年,已有非常非常多關(guān)于它的權(quán)威的書(shū)籍、文章、視頻,雖然大都是一看就會(huì),一做就廢...

本文非常輕松,問(wèn)自己這個(gè)問(wèn)題:“JVM除了HotSpot,你還知道哪些?”然后一起來(lái)了解了解JVM的發(fā)展及相關(guān)產(chǎn)品。

正文

一個(gè)Java虛擬機(jī)(JVM)是從未被物理建成硬件假想計(jì)算機(jī)。JVM 運(yùn)行編譯成其虛構(gòu)指令集的程序,該指令集作為稱為字節(jié)碼的中間表示寫入存儲(chǔ)。

在運(yùn)行時(shí),字節(jié)碼必須從虛構(gòu)的指令集轉(zhuǎn)換為主機(jī) CPU 的實(shí)際指令集。這可以由“口譯員”即時(shí)完成。或者字節(jié)碼可以被完全編譯和緩存,以比通過(guò)解釋器運(yùn)行得更快,在一個(gè)稱為即時(shí) (JIT) 編譯的過(guò)程中。

幾十年來(lái),有許多JVM 的實(shí)現(xiàn)。到現(xiàn)在的2022年,大多數(shù)都已經(jīng)消失了。

基礎(chǔ)知識(shí)

老規(guī)矩,首先來(lái)個(gè)基礎(chǔ)知識(shí)鋪墊。

什么是JVM

JVM(Java Virtual Machine),即Java虛擬機(jī)。它是Java程序的運(yùn)行平臺(tái),是二進(jìn)制字節(jié)碼的運(yùn)行環(huán)境,它有很多發(fā)行的商用版本,其中最著名的當(dāng)屬Oracle官方發(fā)行的,也是JDK默認(rèn)的HotSpot。

JVM發(fā)展到今天,早已不是只為Java服務(wù)。它已然成為跨語(yǔ)言的平臺(tái)。只要是符合規(guī)范的字節(jié)碼文件交給它就可以執(zhí)行,比如Java就是.class字節(jié)碼,其它語(yǔ)言只需要通過(guò)各自的編譯器生成遵循JVM規(guī)范的字節(jié)碼文件,同樣可以運(yùn)行在JVM上。

JVM規(guī)范

Java語(yǔ)言的各個(gè)版本對(duì)應(yīng)的虛擬機(jī)規(guī)范:Java Language and Virtual Machine Specifications。

JVM是虛擬機(jī),總的來(lái)說(shuō)是一種標(biāo)準(zhǔn)規(guī)范,虛擬機(jī)有很多實(shí)現(xiàn)版本,是本文將要介紹的內(nèi)容。

JVM所處的位置

JVM運(yùn)行在操作系統(tǒng)之上,和硬件并無(wú)直接交互。字節(jié)碼文件運(yùn)行在JVM之上,從而實(shí)現(xiàn)了字節(jié)碼跨平臺(tái)的效果。從下圖中可以也能得出一種解決問(wèn)題的思想:沒(méi)有加一層解決不了的問(wèn)題,如果有,那就再加一層。

圖片

跨平臺(tái)是如何實(shí)現(xiàn)的

這里指的跨平臺(tái)指的不是跨操作系統(tǒng),而是交給不同操作系統(tǒng)上的虛擬機(jī)幫你執(zhí)行了,屏蔽了底層的適配性。正所謂復(fù)雜度不會(huì)憑空消失,這里只是JVM幫你解決掉/屏蔽掉了這個(gè)復(fù)雜度。

一圖勝千言:

圖片

編譯器和解釋器的區(qū)別

  • 解釋器:直接執(zhí)行用編程語(yǔ)言編寫的指令的程序。
  • 編譯器是把源程序的每一條語(yǔ)句都編譯成機(jī)器語(yǔ)言,并保存成二進(jìn)制文件,這樣運(yùn)行時(shí)計(jì)算機(jī)可以直接以機(jī)器語(yǔ)言來(lái)運(yùn)行此程序,速度很快。
  • 編譯器:把源代碼轉(zhuǎn)換成(翻譯)“低級(jí)”語(yǔ)言的程序。
  • 解釋器則是只在執(zhí)行程序時(shí),才一條一條的解釋成機(jī)器語(yǔ)言給計(jì)算機(jī)來(lái)執(zhí)行,所以運(yùn)行速度是不如編譯后的程序運(yùn)行的快的圖片下面再通過(guò)表格對(duì)比二者詳細(xì)區(qū)別:

編譯器

解釋器

高級(jí)指令轉(zhuǎn)換為機(jī)器可理解的指令

無(wú)需轉(zhuǎn)換即可直接執(zhí)行高級(jí)代碼

將一個(gè)程序作為一個(gè)整體進(jìn)行翻譯

一條一條地翻譯一個(gè)程序

生成中間代碼或目標(biāo)代碼

無(wú)中間代碼

編譯后,將創(chuàng)建一個(gè)可執(zhí)行文件

每次執(zhí)行都需要解釋

編譯器種類:本機(jī)編譯器,交叉編譯器,源到源編譯器,一遍編譯器,增量編譯器,源編譯器

解釋器種類:字節(jié)碼解釋器,線程代碼解釋器,抽象語(yǔ)法樹(shù)解釋器

編譯器語(yǔ)言:Java Scala C/C++ C#

解釋器語(yǔ)言:PHP、Python、Ruby、JS

JVM發(fā)展史

  • 1996年JDK 1.0發(fā)布時(shí),發(fā)布Sun Classic VM。第一款商用虛擬機(jī),純解釋執(zhí)行。
  • 1997年JDK 1.1發(fā)布時(shí),虛擬機(jī)沒(méi)有做變更。
  • 1998年JDK 1.2發(fā)布時(shí),提供了Exact VM虛擬機(jī),但僅限運(yùn)行在Solaris平臺(tái)。默認(rèn)虛擬機(jī)依舊是Sun Classic VM。
  • Solaris系統(tǒng)是Sun公司研發(fā)的操作系統(tǒng),是UNIX操作系統(tǒng)的衍生版本之一。
  • 2000年JDK 1.3發(fā)布時(shí),默認(rèn)虛擬機(jī)由Sun Classic VM改為大名鼎鼎的Sun HotSopt VM。
  • 此時(shí)Sun Classic VM還并未移除,作為備用。
  • 2002年JDK 1.4發(fā)布時(shí),Sun HotSpot VM站穩(wěn)腳跟一直默認(rèn)都現(xiàn)在,Sun Classic VM徹底退出商用虛擬機(jī)舞臺(tái)。
  • 2003年,Scala正式發(fā)布,同年Groovy也加入JVM陣營(yíng)。
  • 2006年JDK 6發(fā)布時(shí)的同年,OpenJDK項(xiàng)目簡(jiǎn)歷。順理成章,HotSopt VM也成為了OpenJDK默認(rèn)虛擬機(jī),直到現(xiàn)在。
  • 2008年,Oracle收購(gòu)BEA,得到了JRockit虛擬機(jī)。
  • JRockit專注于服務(wù)器端應(yīng)用,內(nèi)部不包含解析器實(shí)現(xiàn),號(hào)稱是世界上最快的JVM。
  • 2009年,Oracle收購(gòu)了Sun,獲得Java商標(biāo)和HotSpot虛擬機(jī)商標(biāo)。
  • 2011年JDK 7發(fā)布時(shí),在JDK1.7u4中,G1垃圾回收期首次路面。
  • 2014年JDK 8發(fā)布,用元空間MetaSpace員工間取代了PermGen永久代。
  • 2017年JDK 9發(fā)布,G1為HotSpot的默認(rèn)GC,從此CMS成為歷史。
  • 同年,IBM的J9開(kāi)源, 形成了現(xiàn)在的0pen J9社區(qū)。
  • 2018年Android的Java侵權(quán)案判決,Google賠償Oracle計(jì)88億美元。
  • 同年,Oracle宣告JavaEE成為歷史名詞,JDBC、JMS、 Servlet贈(zèng)予Eclipse基金會(huì)。
  • 2020、2021、2022。

三大商用虛擬機(jī)

在Oracle還沒(méi)收購(gòu)Sun公司之前,JVM虛擬器呈現(xiàn)三足鼎立的局面,各具優(yōu)勢(shì),它們是:

  1. SUN公司的Hotspot:聊到虛擬機(jī)時(shí),若沒(méi)做特殊說(shuō)明,指的就是HotSpot。它是官方出品,純正血統(tǒng)。它的特點(diǎn)/優(yōu)勢(shì)是:熱點(diǎn)代碼探測(cè)技術(shù),通過(guò)計(jì)數(shù)器找到最具有編譯價(jià)值的代碼,觸發(fā)即時(shí)編譯器(JIT)或棧上替換。
  2. BEA公司的JRockit:專注于服務(wù)器端應(yīng)用,內(nèi)部不包含解釋器,全部代碼都靠即時(shí)編譯器編譯執(zhí)行,號(hào)稱世界上最快的Java虛擬機(jī)。
  3. IBM公司的J9:市場(chǎng)定位與Hotspot接近,服務(wù)端、桌面、嵌入式都有應(yīng)用,若部署在IBM自己的產(chǎn)品上,號(hào)稱是世界上最快的虛擬機(jī)。該虛擬機(jī)于2017年正式對(duì)外發(fā)布,名字為OpenJ9,并交給Eclipse基金會(huì)打理。

曾經(jīng)的三分天下,現(xiàn)在其二已被Oracle收購(gòu),不得不感嘆,鈔能力才是最終王者。

Sun Classic VM(始祖)

1996年1月23日,Sun公司發(fā)布JDK1.0,Java語(yǔ)言首次擁有了商用的正式運(yùn)行環(huán)境,它就是Classic VM。這是第一款商用的虛擬機(jī),是JVM界的始祖。在JDK 1.2及之前,用戶用Classic虛擬機(jī)執(zhí)行java-version命令,將會(huì)看到類似下 面這行的輸出:

java version “1.2.2 Classic VM (build JDK-1.2.2-001, green threads, sunwjit)

在2002年年發(fā)布的jdk1.4后被完全淘汰,不見(jiàn)其蹤影。

這款虛擬機(jī)只能使用純解釋器方式來(lái)執(zhí)行Java代碼,如果要使用JIT編譯器(Just In Time 即時(shí)編譯器),就必須進(jìn)行外掛。但是呢,如果外掛了JIT,那么就完全接管了解釋器的工作,那就不能稱作為Classic VM了。

這個(gè)階段的虛擬機(jī)即使外掛了JIT編譯器輸出本地代碼,執(zhí)行效率也和傳統(tǒng)的C/C++程序有很大差距,Java語(yǔ)言很慢的形象就是在這個(gè)時(shí)候開(kāi)始在用戶心中建立起來(lái)的。

Exact VM(牛刀小試)

為了解決Sun Classic VM的慢,1998年在JDK 1.2發(fā)布時(shí),曾在Solaris平臺(tái)(Sun基于Unix分支自研的操作系統(tǒng))上發(fā)布過(guò)一款名為Exact VM的虛擬機(jī),是現(xiàn)代化高性能虛擬機(jī)的雛形,如熱點(diǎn)探測(cè)、兩級(jí)即時(shí)編譯器、編譯器與解釋器混合工作模式等。

這塊虛擬機(jī)只在Solaris平臺(tái)牛刀小試,并未大規(guī)模使用,后被HotSpot取代。

HotSpot VM(武林盟主)

這是一個(gè)目前使用范圍最廣的Java虛擬機(jī),它是Oracle JDK和OpenJDK的默認(rèn)JVM,是聊天時(shí)沒(méi)有特殊指定時(shí)的缺省JVM。

HotSpot VM正如其名,它的熱點(diǎn)代碼探測(cè)能力可以通過(guò)執(zhí)行計(jì)數(shù)器找出最具有編譯價(jià)值的代碼,然后通知JIT編譯器以方法為單位進(jìn)行編譯。這樣子可以做到:如果某方法被頻繁調(diào)用,將會(huì)觸發(fā)標(biāo)準(zhǔn)編譯和OSR(棧上替換)編譯動(dòng)作,編譯器和解釋器協(xié)同工作,可以在最優(yōu)化的程序響應(yīng)時(shí)間與最佳執(zhí)行性能中取得平衡,而且無(wú)須等待本地代碼輸出才能執(zhí)行程序,即時(shí)編譯的時(shí)間壓力也相對(duì)減小,這樣有助于引入更多的代碼優(yōu)化技術(shù)。

如果說(shuō)綜合表現(xiàn),HotSpot VM可能最佳的虛擬機(jī),它即可應(yīng)用在資源相對(duì)充裕的Serve端,也可用桌面端,可謂通吃。圖片2008年,Oracle收購(gòu)BEA,得到了JRockit虛擬機(jī);隨后Oracle又收購(gòu)了Sun,得到了Java和HotSpot虛擬機(jī)。JRockit和HotSpot都遵循JVM規(guī)范抽象只是是側(cè)重點(diǎn)不同,Oracle最終決定將二者整合(合并),且名稱仍叫HotSpot。

  • 2011年發(fā)布JDK 7,完成初步整合:方法區(qū)從永久代里分離出來(lái)。
  • 之前的JDK版本,常量池在方法區(qū)里,方法區(qū)在永久代里。7版本后分離出來(lái)了(但都在堆里)。
  • 2014年發(fā)布JDK 8,基本完成整合:廢棄永久代PermGen?,改用元空間。
  • JRockit沒(méi)有永久代,IBM的J9也沒(méi)有永久代。

JRockit VM(被Oracle收購(gòu))

JRockit層隸屬于BEA公司,美國(guó)NASDAQ上市公司,其中間件市場(chǎng)份額一度比IBM 還要高,2008年初被Oracle 收購(gòu)。

被Oracle后,同HotSpot合并后取名為HotSpot,從此徹底“銷聲匿跡”。

J9 VM(天下第二)

大名鼎鼎的IBM的J9,和JRockit有很多相似的地方。在IBM自己的機(jī)器上號(hào)稱世界上最快的JVM虛擬機(jī)。IBM J9 VM并不是IBM公司唯一的Java虛擬機(jī),不過(guò)是目前其主力發(fā)展的Java虛擬機(jī)。

與BEA JRockit專注于服務(wù)器端應(yīng)用不同,IBM J9的市場(chǎng)定位與Sun HotSpot比較接近市場(chǎng)定位和HotSpot基本一樣,實(shí)力競(jìng)品。

2017年,IBM發(fā)布了開(kāi)源版本的J9 VM,命名為OpenJ9,并交給Eclipse基金會(huì)管理,所以也稱為Eclipse OpenJ9。

Azul VM(性能中的戰(zhàn)斗機(jī))

Azul VM是與特定硬件平臺(tái)綁定、軟硬件配合的專有虛擬機(jī),所以針對(duì)HotSpot做了大量改進(jìn),性能非常之高。但是:它只能運(yùn)行在自己的系統(tǒng)以及硬件平臺(tái)上。

Zing VM(通用版Azul VM)

Azul VM的性能非常高,但只能運(yùn)行在特定的平臺(tái)上,不能運(yùn)行在普通的x86平臺(tái)。

2010年,Azul System公司方向一轉(zhuǎn),開(kāi)始從硬件轉(zhuǎn)向軟件,在Azul VM的基礎(chǔ)上自研,研發(fā)出了可以用在通用的Linux/x86-64平臺(tái)的Zing VM,主打低延遲、高實(shí)時(shí)服務(wù)器端JDK市場(chǎng),性能號(hào)稱接近于Azul VM。提供著名的“ReadyNow”能力,參考文檔:https://www.azul.com/products/components/readynow。

但是,Zing VM 不開(kāi)源,是收費(fèi)的,并且還很貴很貴。要知道Azul是家商業(yè)化的公司,是要掙錢的呀。這不,在油管我就看到了Azul的廣告:

圖片圖片

Liquid VM(JRockit的虛擬化版本)

Liquid VM是JRockit VM 的虛擬化版本,可以在沒(méi)有標(biāo)準(zhǔn)操作系統(tǒng)的虛擬機(jī)管理程序上運(yùn)行,允許Java 應(yīng)用程序直接在虛擬化硬件上運(yùn)行。

Liquid是BEA公司的產(chǎn)品,2008年后也隸屬于Oracle了,參考文檔:https://docs.oracle.com/cd/E11035_01/wloc10/lvm/index.html。

Taobao VM(國(guó)產(chǎn)虛擬機(jī))

Tobao VM,又名阿里JVM。早在2012年,Taobao VM已有一定名氣,那會(huì)還有個(gè)官網(wǎng):jvm.taobao.org,現(xiàn)已不能訪問(wèn)了。阿里巴巴作為國(guó)內(nèi)Java最大應(yīng)用商,應(yīng)用集群規(guī)模達(dá)十幾萬(wàn)甚至幾十萬(wàn),因此自研JVM很有意義。

Taobao VM的特點(diǎn):在阿里產(chǎn)品上性能高,硬件嚴(yán)重依賴Intel的cpu,損失了兼容性,提高了性能。至于使用了什么技術(shù)、什么方式提升了性能,其實(shí)咱也不必關(guān)心。

為什么現(xiàn)在不見(jiàn)Taobao VM?銷聲匿跡了?是的,因?yàn)橛辛烁弋a(chǎn)品化的Alibaba Dragonwell這個(gè)產(chǎn)品替代了,使用和推廣起來(lái)更加方便:待替換,替換成說(shuō)JDK的那篇文章。

Graal VM

一款號(hào)稱Run Programs Faster Anywhere,與1995年Java面世時(shí)的口號(hào)Write once, Run anywhere遙相呼應(yīng)。圖片GraalVM是Oracle開(kāi)源的一款通用虛擬機(jī)產(chǎn)品,官方稱之為 Universal GraalVM,是新一代的通用多語(yǔ)言高性能虛擬機(jī)。能執(zhí)行各類高性能與互操作性任務(wù),在無(wú)需額外開(kāi)銷的前提下允許用戶構(gòu)建多語(yǔ)言應(yīng)用程序。

GraalVM支持大量的語(yǔ)言,包括:

  • 基于JVM的語(yǔ)言(例如Java、Scala、Groovy、Kotlin、Clojure等)。
  • 基于 LLVM 的語(yǔ)言(例如 C、C++等)。
  • 動(dòng)態(tài)語(yǔ)言(例如 JavaScript、Ruby、Python、R等)。

圖片

如果說(shuō)HotSpot有一天真的被取代,大概率是Graal VM。但這Java的軟件生態(tài)沒(méi)有絲毫變化,也許依舊Oracle一家獨(dú)大。

除以上之外,還有很多JVM作品:

  • Microsoft JVM:微軟早在IE3瀏覽器中支持Java Applets并自研了Microsoft JVM,直到1997年遭到Sun公司起訴才放棄,從而windows都安裝的HotSpot。直到2021年5月份,Microsoft基于OpenJDK重新帶來(lái)了其產(chǎn)品化的JDK產(chǎn)品,內(nèi)置其自研的JVM。
  • Apache Harmony:https://harmony.apache.org,Java的世界哪離開(kāi)得了Apache,曾在JDK 1.5、1.6時(shí)期Apache也來(lái)參和一腳,這款VM是IBM和Intel聯(lián)合開(kāi)發(fā)的開(kāi)源JVM,后遭到Sun公司的抵制不給頒發(fā)JCP認(rèn)證,無(wú)奈2011年黯然退場(chǎng)。
  • Dalvik JVM:谷歌開(kāi)發(fā),應(yīng)用于Android系統(tǒng)。它只能稱作虛擬機(jī), 并不能稱為Java虛擬機(jī),因?yàn)椴⑽醋裱?guī)范。此VM從Android 5.0時(shí)被ART VM替換。
  • Embedded VM:也叫KVM千字節(jié)虛擬機(jī),應(yīng)用于移動(dòng)領(lǐng)域。Sun公司進(jìn)軍嵌入式領(lǐng)域的虛擬機(jī),用于手機(jī)、Pad、汽車等領(lǐng)域,這就是“大名鼎鼎”的J2ME。

總結(jié)

這么多虛擬機(jī),我們?cè)撊绾螌W(xué)習(xí)?筆者的經(jīng)驗(yàn)是,比較深入的了解學(xué)習(xí)HotSpot足矣。當(dāng)然,其它虛擬機(jī)、發(fā)展史也需要基本的了解,這是茶余飯后的談資,是專業(yè)素養(yǎng)的體現(xiàn)。

最后,再回頭在看看文首提到的三個(gè)問(wèn)題,你有答案了嗎?

責(zé)任編輯:姜華 來(lái)源: Java方向盤
相關(guān)推薦

2024-06-14 07:59:00

2016-01-04 11:03:53

手柄vr輸入設(shè)備

2016-09-29 15:49:08

hadoop大數(shù)據(jù)領(lǐng)域

2019-11-21 14:56:40

特殊文件Linux開(kāi)發(fā)

2020-06-05 08:37:08

Object.entr開(kāi)發(fā)Object.from

2023-12-04 08:11:16

Oracle數(shù)據(jù)庫(kù)

2019-07-16 14:59:00

JVM內(nèi)存區(qū)域

2019-02-28 09:13:21

Linux用法交互模式

2021-09-15 10:17:53

開(kāi)源基金會(huì)Apache 軟件基金開(kāi)源社區(qū)

2021-04-30 10:10:14

5G5G網(wǎng)絡(luò)5G終端

2018-11-21 10:47:46

排序算法TimsortPython

2024-11-15 09:14:23

JDK4NIO函數(shù)

2022-07-27 15:30:24

媒體查詢css

2024-02-21 07:24:21

微服務(wù)單體架構(gòu)MVC

2016-07-22 17:55:07

云計(jì)算

2022-02-15 20:08:41

JDKJavaWindows

2020-06-03 10:10:15

阿里巴巴互聯(lián)網(wǎng)工具

2023-04-26 10:06:08

RocketMQ屬性Consumer

2021-12-09 08:16:40

JVM參數(shù)系統(tǒng)

2020-12-15 15:15:45

大數(shù)據(jù)Hadoop大數(shù)據(jù)技術(shù)
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 97超碰人人 | av一区在线观看 | 成人影院在线观看 | 九九久久久久久 | 婷婷一级片 | 日韩视频在线免费观看 | 一区二区三区四区在线 | 欧美在线小视频 | 黄色在线免费播放 | 免费看国产一级特黄aaaa大片 | 欧美一区二区成人 | 亚洲精品在线免费观看视频 | 日韩免费网站 | 99re视频在线| 在线免费观看黄色 | 99亚洲国产精品 | 久久久久国产一级毛片高清网站 | 看亚洲a级一级毛片 | 91电影| 国产色网站| 久久精品中文 | 欧美中文字幕一区二区三区亚洲 | 日日躁狠狠躁aaaaxxxx | 91爱啪啪 | 91资源在线观看 | 九九热re| 日韩成人在线播放 | 91成人精品 | 日本黄视频在线观看 | 成人免费视频网站在线观看 | www.亚洲区| 国产高清免费 | 国产日韩精品一区 | 亚洲高清视频在线观看 | 999观看免费高清www | 欧美xxxx黑人又粗又长 | 夜夜草| 午夜精品久久久久久久久久久久久 | 免费黄色录像片 | 国产福利视频在线观看 | 久久亚洲精品国产精品紫薇 |