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

Java代碼是如何在機(jī)器上運(yùn)行的?

開(kāi)發(fā) 后端
計(jì)算機(jī)能識(shí)別的是機(jī)器指令碼,簡(jiǎn)稱機(jī)器碼。機(jī)器碼是二進(jìn)制的,計(jì)算機(jī)可以直接識(shí)別,但與人類的語(yǔ)言差別太大,不容易被人理解和記憶。后來(lái),就誕生了各種高級(jí)語(yǔ)言,人們用高級(jí)語(yǔ)言編寫程序,然后通過(guò)把程序解釋或編譯成機(jī)器碼。

 [[398253]]

本文轉(zhuǎn)載自微信公眾號(hào)「編了個(gè)程」,作者Yasin x。轉(zhuǎn)載本文請(qǐng)聯(lián)系編了個(gè)程公眾號(hào)。

概覽

計(jì)算機(jī)能識(shí)別的是機(jī)器指令碼,簡(jiǎn)稱機(jī)器碼。機(jī)器碼是二進(jìn)制的,計(jì)算機(jī)可以直接識(shí)別,但與人類的語(yǔ)言差別太大,不容易被人理解和記憶。后來(lái),就誕生了各種高級(jí)語(yǔ)言,人們用高級(jí)語(yǔ)言編寫程序,然后通過(guò)把程序解釋或編譯成機(jī)器碼。

比如python,就是一種解釋型語(yǔ)言。Python程序源碼不需要編譯,可以直接從源代碼運(yùn)行程序。Python解釋器將源代碼轉(zhuǎn)換為字節(jié)碼,然后把編譯好的字節(jié)碼轉(zhuǎn)發(fā)到Python虛擬機(jī)(PVM)中進(jìn)行執(zhí)行。

而C語(yǔ)言就是典型的編譯型語(yǔ)言,需要先用編譯器編譯成機(jī)器碼,比如我們通常用gcc來(lái)編譯C語(yǔ)言程序:

  1. $ gcc hello.c # 編譯 
  2. $ ./a.out # 執(zhí)行 
  3. hello world! 

那Java是解釋型語(yǔ)言還是編譯型語(yǔ)言呢?

「Java是兼具編譯型語(yǔ)言與解釋型語(yǔ)言的特點(diǎn)的」。程序員寫好Java程序后,需要先用javac編譯成JVM可以使用的字節(jié)碼class文件。然后JVM加載class文件,逐條解釋執(zhí)行。在運(yùn)行過(guò)程中,部分熱點(diǎn)代碼會(huì)被即時(shí)編譯器編譯成機(jī)器碼。

源代碼到字節(jié)碼

Java語(yǔ)言的源代碼是.java為后綴的文件。當(dāng)然現(xiàn)在有很多其它高級(jí)語(yǔ)言也架構(gòu)在JVM上,比如groovy、kotlin等。源代碼是給人看的,易于閱讀、理解、維護(hù)。

源代碼經(jīng)過(guò)編譯后得到字節(jié)碼,字節(jié)碼是給JVM用的,易于理解和識(shí)別。字節(jié)碼是以.class為后綴,其格式是JVM的一套規(guī)劃,字節(jié)碼人類對(duì)照文檔也是勉強(qiáng)能看懂的,只是相對(duì)Java代碼來(lái)說(shuō)要難以理解一些而已。

Java與Python不同,Python不需要編譯字節(jié)碼文件(當(dāng)然,Python也提供了這種操作),編譯是一個(gè)自動(dòng)的過(guò)程,一般不會(huì)在意它的存在。而Java會(huì)先編譯好字節(jié)碼文件,這樣JVM直接讀字節(jié)碼文件,可以節(jié)省加載模塊的時(shí)間,提高效率。同時(shí)字節(jié)碼的形式也增加了反向工程的難度,可以保護(hù)源代碼(當(dāng)然,也可以被反編譯)。

熟悉JVM的小伙伴都知道,它有一個(gè)“類加載過(guò)程”,可以說(shuō)是老八股文了,經(jīng)常會(huì)被面試官問(wèn)到。類加載過(guò)程其實(shí)就是指的JVM從讀取一個(gè)class文件到準(zhǔn)備好這個(gè)類,以及最后銷毀的整個(gè)過(guò)程。

所以「class文件其實(shí)是以“類”為單位的,這跟java文件有一些不同」。如果我們?cè)谝粋€(gè)Java文件里面聲明多個(gè)類,用Javac編譯出來(lái)會(huì)發(fā)現(xiàn)有多個(gè)class文件。比如我們聲明一個(gè)One.java文件:

  1. public class One { 
  2.   public class OneInner {} 
  3.   private class OnePrivateInner {} 
  4.   public static class OneStaticInner {} 
  5.   private static class OneprivateStaticInner {} 
  6.  
  7. class Two{} 

用Javac編譯后,會(huì)出現(xiàn)6個(gè)class文件

  1. ➜  $ ls 
  2. 'One$OneInner.class'         'One$OneStaticInner.class'          One.class   Two.class 
  3. 'One$OnePrivateInner.class'  'One$OneprivateStaticInner.class'   One.java 

字節(jié)碼到機(jī)器碼

加載和使用字節(jié)碼

前面提到,JVM會(huì)加載class文件,然后加載后的Java類會(huì)被存放于方法區(qū)(Method Area)中。從指定的類的main方法作為入口開(kāi)始運(yùn)行。實(shí)際運(yùn)行時(shí),虛擬機(jī)會(huì)執(zhí)行方法區(qū)內(nèi)的代碼,JVM會(huì)使用堆和棧來(lái)存儲(chǔ)運(yùn)行時(shí)數(shù)據(jù)。

每當(dāng)進(jìn)入一個(gè)方法,Java虛擬機(jī)會(huì)在當(dāng)前線程的棧中生成一個(gè)棧幀,存放局部變量以及字節(jié)碼的操作數(shù),這個(gè)棧幀的大小是提前計(jì)算好的。

退出方法時(shí),不管是正常返回還是異常返回,Java虛擬機(jī)均會(huì)「彈出當(dāng)前線程的當(dāng)前棧幀」,并將之舍棄。

Java虛擬機(jī)需要將字節(jié)碼翻譯成機(jī)器碼,才能讓機(jī)器執(zhí)行。這個(gè)過(guò)程有兩種形式,一種是解釋執(zhí)行,即逐條將字節(jié)碼翻譯成機(jī)器碼并執(zhí)行;另一種是即時(shí)編譯(Just-In-Time compilation,JIT),即將「一個(gè)方法中」包含的所有字節(jié)碼編譯成機(jī)器碼后再執(zhí)行。

分層編譯

這兩種編譯方式是怎么協(xié)作的呢?

HotSpot虛擬機(jī)包含多個(gè)即時(shí)編譯器C1、C2和Graal。其中,Graal是一個(gè)實(shí)驗(yàn)性質(zhì)的即時(shí)編譯器,可以通過(guò)參數(shù) -XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler啟用,并且替換C2。

C1和C2各有優(yōu)劣,適用于不同的場(chǎng)景。在Java 7以前,只能選擇一種編譯器。C1編譯快,但生成的代碼執(zhí)行效率一般,常用于對(duì)于執(zhí)行時(shí)間較短的,或者對(duì)啟動(dòng)性能有要求的程序,常用于客戶端;C2編譯慢,但生成的代碼執(zhí)行效率快,適用于對(duì)于執(zhí)行時(shí)間較長(zhǎng)的,或者對(duì)峰值性能有要求的程序,常用于服務(wù)端。實(shí)際上,C1對(duì)應(yīng)的參數(shù)是client,C2對(duì)應(yīng)的參數(shù)是server,也跟它們的應(yīng)用場(chǎng)景比較匹配。

Java7引入了分層編譯的概念,綜合了C1的啟動(dòng)性能優(yōu)勢(shì)和C2的峰值性能優(yōu)勢(shì)。C1和C2編譯出的機(jī)器碼是不同的。C2代碼的執(zhí)行效率要比C1代碼高出30%以上。機(jī)器碼越快,需要的編譯時(shí)間就越長(zhǎng)。分層編譯是一種折衷的方式,既能夠滿足部分不那么熱的代碼能夠在短時(shí)間內(nèi)編譯完成,也能滿足很熱的代碼能夠擁有最好的優(yōu)化。

熱點(diǎn)代碼

那怎么判定熱點(diǎn)代碼呢?

JVM會(huì)收集方法的運(yùn)行時(shí)信息,主要包括調(diào)用次數(shù)和循環(huán)回邊的次數(shù)。當(dāng)「方法的調(diào)用次數(shù)和循環(huán)回邊的次數(shù)的和,超過(guò)指定閾值時(shí)」,便會(huì)觸發(fā)即時(shí)編譯。

->

循環(huán)回邊次數(shù)可以簡(jiǎn)單理解為方法內(nèi)部代碼的循環(huán)次數(shù),比如方法內(nèi)部有for循環(huán)或while循環(huán)。

<-

在分層編譯出現(xiàn)前,這個(gè)閾值是由參數(shù)-XX:CompileThreshold指定的,使用C1時(shí),該值為1500;使用C2時(shí),該值為10000。

當(dāng)啟用分層編譯時(shí),JVM使用另一套閾值系統(tǒng)。在這套系統(tǒng)中,閾值的大小是動(dòng)態(tài)調(diào)整的。JVM將閾值與某個(gè)系數(shù) s 相乘。該系數(shù)與當(dāng)前待編譯的方法數(shù)目成正相關(guān),與編譯線程的數(shù)目成負(fù)相關(guān)。

編譯線程

默認(rèn)情況下編譯線程的總數(shù)目是根據(jù)處理器數(shù)量來(lái)調(diào)整的。Java 虛擬機(jī)會(huì)將這些編譯線程按照1:2的比例分配給 C1和C2(至少各為1個(gè))。舉個(gè)例子,對(duì)于一個(gè)四核機(jī)器來(lái)說(shuō),總的編譯線程數(shù)目為3,其中包含一個(gè)C1編譯線程和兩個(gè)C2編譯線程。

->

機(jī)器資源太少的時(shí)候,也可能各1個(gè)線程。

<-

用arthas可以看到編譯線程:

^arthas^

可以看到,它們的ID是-1,優(yōu)先級(jí)也是-1。我們自己創(chuàng)建的線程優(yōu)先級(jí)是0~10,所以編譯線程的優(yōu)先級(jí)會(huì)更高一些。

總結(jié)

一句話來(lái)總結(jié)Java程序是怎么在機(jī)器上運(yùn)行的呢?首先Java程序員編寫Java代碼,然后Java代碼會(huì)被編譯成class文件,多個(gè)class文件會(huì)被打包成jar包或者war包。然后JVM加載class文件,然后先解釋執(zhí)行為字節(jié)碼。程序運(yùn)行一段時(shí)間后,JVM會(huì)通過(guò)方法調(diào)用次數(shù)和循環(huán)持續(xù)判斷一個(gè)方法是否為熱點(diǎn)代碼,如果是,會(huì)使用分層編譯,通過(guò)編譯線程編譯成字節(jié)碼,在機(jī)器上運(yùn)行。

責(zé)任編輯:武曉燕 來(lái)源: 編了個(gè)程
相關(guān)推薦

2014-03-31 09:45:33

Ubuntu LinuUbuntu 13.1

2017-09-18 10:05:15

WindowsLinux容器

2021-08-09 09:00:00

Kubernetes云計(jì)算架構(gòu)

2022-09-13 08:40:24

AndroidLinux

2021-02-25 08:00:00

WindowsWindows 10開(kāi)發(fā)

2017-02-16 10:15:43

Windows7docker變量

2019-05-09 09:00:00

WindowsKafka

2017-04-04 20:31:05

AWS GPUJupyter not深度學(xué)習(xí)

2019-02-26 10:15:13

GitHub 開(kāi)源代碼

2023-02-10 21:12:41

GPUmacOSStable

2009-04-16 09:59:16

Google App PHPJava

2014-10-11 11:30:43

CentOSDocker

2016-08-02 10:34:17

LinuxWindows雙啟動(dòng)

2019-11-26 09:20:47

LinuxJava

2020-05-25 17:40:00

MacpyenvPython

2020-07-08 15:29:05

MacJava編程語(yǔ)言

2018-07-30 09:42:09

AndroidWineWindows App

2021-08-27 11:03:57

Azure公有云云原生

2017-01-06 22:50:23

LinuxUbuntu 16.1Unity 8

2019-12-11 14:27:39

數(shù)據(jù)庫(kù)集群Kubernetes
點(diǎn)贊
收藏

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

国产精品实拍| 亚洲色图丝袜美腿| 狠狠色狠狠色综合日日小说| 国产亚洲精品久久久| 91免费视频黄| 激情av中文字幕| 超碰国产在线| 午夜宅男久久久| 亚洲成人激情在线| 黄黄视频在线观看| 亚洲天堂一二三| av在线亚洲色图| 亚洲欧美怡红院| 国产精品久久久久秋霞鲁丝| 少妇光屁股影院| 678在线观看视频| 国产成人av一区二区三区在线 | 尤物视频一区二区| 国产精品日韩欧美| 久久亚洲成人av| 国产精品成人**免费视频| 欧美国产精品中文字幕| 国产99久久精品一区二区永久免费 | 蜜桃导航-精品导航| 免费麻豆国产一区二区三区四区| 99久久久国产| 亚洲视频精选在线| 欧美精品一区二区视频| 中文在线第一页| 欧美黄色录像| 狠狠躁夜夜躁人人躁婷婷91| 一级特黄妇女高潮| 亚洲爆乳无码一区二区三区| 国产女人18水真多毛片18精品| 男人天堂中文字幕| 精品视频一二| 一区二区三区中文字幕精品精品| 欧美精品欧美精品系列c| www.日日夜夜| 亚洲性感美女99在线| 精品伦理精品一区| 97se国产在线视频| a级片在线观看免费| 超碰精品在线观看| 91精品国产美女浴室洗澡无遮挡| www.18av.com| 十九岁完整版在线观看好看云免费| 午夜亚洲激情| 久久久久这里只有精品| 日本护士做爰视频| av久久网站| 亚洲美女免费视频| 久久久影院一区二区三区| 日本中文字幕在线观看视频| 91久久国产| 精品成人a区在线观看| 熟妇人妻va精品中文字幕| 97视频精彩视频在线观看| 国内精品视频666| 97在线视频免费播放| 欧美xxxx黑人| 成人小电影网站| 国产精品久久久久一区| 国产精品一区二区在线观看 | 午夜激情久久久| 九九九九精品| 中文字幕av无码一区二区三区| 欧美福利电影在线观看| 亚洲欧美国产va在线影院| 久久精品国产露脸对白| 一个人看的www视频在线免费观看| 国产欧美日韩不卡免费| 国产精品久久国产精品| 亚洲免费一级片| 久久99深爱久久99精品| 91高清免费在线观看| 五月婷婷亚洲综合| 国语对白精品一区二区| 日韩中文字幕第一页| 国产xxxxxxxxx| 精品伊人久久| 欧美精品一区二区三区高清aⅴ| 免费成人蒂法网站| 精品色999| 欧美va在线播放| 中文字幕在线观看网址| 一区二区网站| 欧美男女性生活在线直播观看| 大肉大捧一进一出好爽视频| 中文字幕有码在线观看| 国产精品丝袜在线| 三级在线免费观看| 女海盗2成人h版中文字幕| 亚洲欧美在线视频观看| 日韩在线视频在线| 波多视频一区| 91精品国产综合久久国产大片| 久草免费资源站| av中文一区| 欧美精品福利视频| 欧美日韩在线视频免费播放| 国产亚洲精品bv在线观看| 欧美黑人巨大精品一区二区| 911国产在线| 国产va免费精品观看精品视频| 亚洲国产精品系列| 国产女人18毛片水真多18| 国产美女亚洲精品7777| 亚洲男人天堂古典| 免费在线观看黄视频| 免费观看日韩av| 国产精品视频中文字幕91| 一区二区三区在线观看av| 国产在线精品一区二区 | 国产精区一区二区| 国产亚洲一区二区三区不卡| 亚洲精品成人久久| 少妇人妻丰满做爰xxx| 久久综合网络一区二区| 欧美在线免费视频| 特级毛片www| 丝袜美腿高跟呻吟高潮一区| 成人av免费看| 天天摸天天干天天操| 91丨porny丨户外露出| 国外成人在线视频网站| 天天干,夜夜操| 亚洲欧洲精品一区二区精品久久久| 欧美aⅴ在线观看| 韩国女主播一区二区| 精品婷婷伊人一区三区三| 在线观看国产一级片| 996久久国产精品线观看| 亚洲天堂色网站| 天天干天天干天天| 91视频观看视频| 国产男女免费视频| 亚洲最大成人| 亚洲国产精品99| 日本网站在线免费观看| 国产成人综合在线观看| 久草精品电影| sm久久捆绑调教精品一区| 色婷婷亚洲综合| 久久久精品高清| 99久久香蕉| 欧美日韩国产va另类| 天天操夜夜操视频| 91麻豆高清视频| 亚洲成熟丰满熟妇高潮xxxxx| 日韩极品少妇| 久久综合亚洲社区| av大片免费观看| 99久久免费国产| 中文字幕久精品免| 欧美a级在线观看| 亚洲精品xxxx| 黄色av网站免费观看| 国产精品一区二区你懂的| 久久99精品久久久久久三级| 中文在线中文资源| 亚洲偷熟乱区亚洲香蕉av| 国产精品成人久久久| 成人午夜av在线| 亚洲一区精彩视频| 懂色av一区| 欧美精品xxxxbbbb| 国产高清视频免费在线观看| 国产一区二区三区免费播放 | 激情国产一区| 蜜桃视频日韩| 欧美激情三区| 日韩电影在线观看中文字幕| 欧美h片在线观看| 国产老肥熟一区二区三区| 国产在线xxxx| 亚洲精品66| 亚洲天堂成人在线视频| 久久精品视频日本| 国产一区二区三区免费| 国产freexxxx性播放麻豆| 欧美一区=区三区| 久久av资源网站| 爽爽视频在线观看| 欧美另类久久久品| 日本少妇毛茸茸高潮| 国产欧美一区二区在线| 久久出品必属精品| 色综合久久一区二区三区| 3344国产精品免费看| 欧美一级淫片免费视频魅影视频| 亚洲视频一二三| 水蜜桃av无码| 久久99国产精品久久| 精品无码一区二区三区在线| 亚洲精品午夜| 国产国语刺激对白av不卡| 在线观看xxx| 亚洲成a人在线观看| 在线播放国产视频| 日日夜夜一区二区| 日本一区二区三区四区高清视频| 桃色av一区二区| 久久精品欧美视频| 国产精品91在线观看| 国内精品一区视频| 色综合久久久久网| 丰满少妇被猛烈进入一区二区| 久久综合视频网| 国内外成人激情视频| 综合国产在线| 97碰碰视频| jizz久久久久久| 精品中文字幕视频| 在线观看av的网站| 欧美精品丝袜久久久中文字幕| 久久露脸国语精品国产91| yourporn久久国产精品| 男女污污的视频| 亚洲欧洲av| 国产成人精品电影| av电影在线地址| 久久在线视频在线| 中文日本在线观看| 国产香蕉97碰碰久久人人| 农村少妇久久久久久久| 91精品国产全国免费观看 | 欧美日韩大陆一区二区| 黄色av片三级三级三级免费看| 美女脱光内衣内裤视频久久网站| 日韩av黄色网址| 一区二区亚洲| 久久久久福利视频| 亚洲精品国产成人影院| av一区二区三区在线观看| 涩涩涩久久久成人精品| 国产精品久久久久久超碰| 夜级特黄日本大片_在线| 国产午夜精品麻豆| 亚洲视频在线观看一区二区| 色噜噜狠狠色综合欧洲selulu| 貂蝉被到爽流白浆在线观看| 国产女人水真多18毛片18精品视频| 女人被狂躁c到高潮| 91一区二区在线观看| 一区二区三区免费播放| 久久一区国产| 丝袜制服一区二区三区| 日日夜夜免费精品| 激情五月婷婷久久| 蜜桃精品视频在线| 日本中文字幕精品—区二区| 久久精品国内一区二区三区| 日韩av新片网| 一区在线免费观看| 六月婷婷在线视频| 午夜一级在线看亚洲| 欧洲熟妇精品视频| 精品91在线| 欧美成人一区二区在线观看| 99久久久久国产精品| 99re99热| 欧美日本一区二区视频在线观看 | 黑丝一区二区| 人妻夜夜添夜夜无码av | 亚洲欧美日韩综合网| 国精产品一区一区三区mba桃花| 日本成人xxx| 天堂蜜桃一区二区三区| 精品少妇无遮挡毛片| 精品一区二区成人精品| 蜜桃视频无码区在线观看| 日本女优在线视频一区二区| 99er在线视频| 国产亚洲在线观看| 午夜免费高清视频| 国产老女人精品毛片久久| 国产激情第一页| 中文字幕不卡三区| 久久在线视频精品| 色婷婷国产精品综合在线观看| 中文字幕网址在线| 日韩精品一区二区三区蜜臀| 一本大道伊人av久久综合| 欧美一区二区三区四区高清| 黄色美女一级片| 在线观看欧美成人| 黄色国产在线| 久热爱精品视频线路一| 美女搞黄视频在线观看| 国产精品美女999| 最新国产精品精品视频| 欧美日韩高清在线一区| 女人色偷偷aa久久天堂| 18岁视频在线观看| 国产精品91xxx| a级大片在线观看| 91美女精品福利| 成人无码精品1区2区3区免费看 | 91jq激情在线观看| 国产精品免费电影| 国语一区二区三区| 91美女高潮出水| 亚洲人成777| 久久久精品国产一区二区三区| 99久久夜色精品国产亚洲狼| 精品国产一二三四区| 激情丁香综合五月| 中文字幕5566| 亚洲午夜久久久| 国产成人精品av久久| 欧美色窝79yyyycom| 全部免费毛片在线播放一个| 久久成人亚洲精品| 91大神在线观看线路一区| 激情欧美一区二区三区中文字幕| 国产大片一区| 免费涩涩18网站入口| 久久综合九色欧美综合狠狠| 一区二区三区免费高清视频| 在线成人免费观看| 成人好色电影| 茄子视频成人在线| 久久久伦理片| 欧美深深色噜噜狠狠yyy| 国产精品va| 亚洲一区二区中文字幕在线观看| 国产精品久久三区| 波多野结衣高清在线| 亚洲欧美国产va在线影院| zzzwww在线看片免费| 国产成人av一区二区三区| 欧美色图五月天| 久久精品xxx| 丁香激情综合五月| 久久久久久久久久久久久久免费看 | 999视频在线| 亚洲视频777| 欧美大胆成人| 成人黄色av网站| 高潮按摩久久久久久av免费| 男女裸体影院高潮| 国产精品一区一区| 久久久久99精品成人片试看| 91精品国产欧美一区二区成人| 国产精品扒开做爽爽爽的视频| 久久成人人人人精品欧| 日日狠狠久久| 中文字幕av导航| 国产在线精品不卡| 中文字幕在线观看成人| 欧美大片日本大片免费观看| 亚洲淫性视频| 日本精品视频在线播放| 色婷婷综合久久久久久| 免费看的黄色大片| 久久亚洲欧美国产精品乐播| 黄色片视频免费| 中文字幕免费精品一区| av手机免费在线观看| 国产伦精品一区二区三区高清版 | 国产精品99久久免费黑人人妻| 91美女蜜桃在线| 中文字幕免费高清在线观看| 久久视频国产精品免费视频在线| 欧美国产亚洲精品| 国产中文字幕二区| 久久精品视频免费观看| 正在播放国产对白害羞| 欧美日韩mp4| 免费在线看电影| 91在线国产电影| 欧美日韩影院| 久久精品成人av| 欧美福利视频导航| 91九色美女在线视频| 欧美日韩免费观看一区| 久久精品国产成人一区二区三区| 国产精品久久久久久久精| 亚洲精品电影网| 成人黄色免费观看| 91成人综合网| 欧美韩国日本一区| 粉嫩av一区二区夜夜嗨| 琪琪第一精品导航| 欧美一区二区三区另类| 久久无码人妻精品一区二区三区| 欧美性一区二区| 理论视频在线| 日韩免费视频在线观看| 99久久国产综合精品成人影院| 95视频在线观看| 日韩欧美国产激情| 性感美女福利视频| 国产精品一二三视频| 亚洲国内自拍| 男人的天堂影院| 欧美日本在线视频| 是的av在线| 成人短视频在线观看免费|