Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 亚洲高清在线看,欧美**毛片动作视频,一区二区自拍

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          如何購買特價機票、一折甚至免費機票 太有用了

          如何購買特價機票、一折甚至免費機票 太有用了

          行最大的費用就是住宿和交通,那么飛機如此簡便的今天,如何定到最便宜的機票呢?

          現在的網絡如此方便,在國內也基本上取消了紙質機票,很多大的機場都可以自助登機,而可以定到便宜機票的方法也越來越多。

          除了廉價航空,還有淘寶,拍拍網等很多網站都可以訂到超便宜的特價機票,甚至趕上網站推出促銷活動的時候,還可以找到1元機票。

          許多人問我,怎么定便宜機票。在這里告訴大家幾個訂票的大網站,其實在很多時候連旺季都是可以買到一折的機票。主要是看你會不會善于利用這些資源,如果能善加利用,那么你的飛機出行也許比火車汽車還要便宜哦!

          1.首先,QQ財付通和南航有合作,基本上財付通的特價票都是一折以下的,特別是南航有點的那些國際機票,實在是超值的很,可以減輕你的旅途負擔。

          南航財付通(網址自己去百度,發不上來),上次去日本和美國就是在這里買的機票,廣州-大阪,來回380,加上稅也就1100。實在是超級劃算!

          只是現在特價機票沒有那么多了,一般是會提前一個時間出特價機票的通告,然后準點搶票,那個時候就要看你是否手腳夠快了!

          2.再給大家推薦個廉價機票的搜索引擎:去哪兒網,這是個機票搜索的大平臺,也是我用的最多的搜索訂票網站。

          網站幾乎會羅列各大網站的機票信息,是非常實用的一個搜索引擎。里面的一折的條件是要至少提前一個月預計,不到一個月的也有二三折的票。

          就算不在這個網站訂票,也可以作為一個很好的參考,知道大致上那個時段的機票最低可以到什么價格,然后到各大航空公司的門戶網站去搜當時的特價機票,可以省去很多時間。

          3.國內廉價航空,比較有名的是春秋航空,這個航空是上海的,很多城市的價格都固定的,比如青島和上海之間、武漢和上海之間等等都是99塊的價格。

          春秋航空是廉價航空,所以定機票的時候你要有心理準備,飛機經常晚點,座位小,飛機也很小。上面的服務是自助的,沒有飛機餐,也沒有養眼的空姐,而且對行李有限重,總之是典型的廉價航空。好處就是很便宜。

          4.海航網也經常拋出便宜的機票(官方網址)

          最后再告訴大家兩個廉價機票的搜索引擎:賢賢網和酷訊網,在里面,你可以查到最便宜的機票時間和所有指定日期最便宜的機票。

          我一般定機票的程序,是先上去哪兒網站搜索一下大致機票情況,然后再看看賢賢網,選擇所有費用最低的那個訂票。

          出門旅行總是能省則省,何況網上多搜索一下,也并不會浪費很多的時間。哪怕你有很多的錢,也可以省下來作其他更有意義的事情。

          最后提醒大家:銀行卡要開通網上銀行,上面便宜的機票基本要求你在線支付。

          1.根據網絡上前人的經驗搜集整理了一下訂票網站,歡迎大家指正修改,提出意見哦!

          國內特價機票查詢網站:

          去哪兒

          賢賢網

          春秋航空

          南航財付通

          酷訊網

          海航網

          2.特價機票監視查詢 ,如其名,幫你監視網絡上出現的超級特價機票, http://www.appinn.com/ticket-special-offer/

          3.航空公司網站

          海南航空

          南方航空

          上海航空

          東方航空

          廈門航空

          四川航空

          深圳航空

          4.以下列出個人所查詢全球『廉價航空』公司網站及簡介: 亞洲:

          馬來西亞

          亞航: http://www.airasia.com/site/cn/home.jsp

          泰國

          曼谷航空: http://www.bangkokair.com/en/

          Nok air: http://www.nokair.co.th/

          泰東方: http://www.orient-thai.com/web/home.html

          新加坡

          亞洲捷星: http://www.jetstarasia.com

          虎航: http://www.tigerairways.com/

          惠旅: http://www.valuair.com.sg/

          新航: http://www.singaporeair.com/saa/app/saa

          印尼 獅航: http://www.lionair.co.id/ Ga-citilink: http://www.ga-citilink.com/ Garuda: http://www.garuda-indonesia.com/ Bouraq: http://www.bouraq.com/ 曼達拉: http://www.mandalaair.com/mandala/ecms/index.cfm 菲律賓 宿霧太平洋: http://www.cebupacificair.com/ 印度 Air Deccan: http://www.deccanair.com/ Express: http://www.expressindia.com/ Jet: http://www.jetairways.com/Cultures/en-US/HomePage.htm 印航: http://www.indianairlines.indiatimes.com/

          美洲:

          1)如果時間上比較flexible, www.priceline.com,可以自己出價,然后看是否有航空公司接受。

          2)如果你有學校的信箱,也就是有.edu的mailbox,且在35歲以下,去www.studentuniverse.com注個冊,可以買到很便宜的機票。好處是可以自己選擇時間,航班等等。

          3)經常去網上找票,一看到價格在自己的接受范圍內馬上購買。一般周三,周六起飛的票比周末的要便宜。機票價格有的時候一天幾變,所以看到自己想要得就馬上下手,否則后悔莫及。

          4)http://www.kayak.com/ (宿主告訴我的,搜尋所有鏈接航空的,會列表出來)

          1. Jetblue:http://www.jetblue.com/(美國境內廉價機票,一家以紐約JFK機場為基地的廉價航空公司,飛行的目的地往往是大城市的二級機場,如洛杉磯的Long Beach機場,舊金山的Oakland機場。單程機票價格曾低至10元。 ) 2. Airtran:http://www.airtran.com/Home.aspx(美國境內廉價機票以美東為主) 3. Southwest:http://www.southwest.com/(美國境內最大、最知名的廉價航空公司,不保留座位,視Check-in早晚來定。服務不局限于美國西南,還包括佛羅里達和巴哈馬。 ) 4. Frontier Airlines:http://www.frontierairlines.com/frontier/index.jsp(美國境內廉價機票,是一家總部設立在丹佛的航空公司,目的地包括了美國主要城市,主要服務美國西部,兼而服務墨西哥度假地。) 5. Flyted:http://www.flyted.com/index.html (美國境內廉價機票) 6. ATA:http://www.ata.com/home.html (美國境內及夏威夷廉價機票) 7. Spirit Airlines:http://www.spiritair.com/welcome.aspx(美國境內廉價機票,飛行基地在佛羅里達的勞德戴爾堡和底特律的航空公司。) 8. Sun Country:http://www.suncountry.com/SCA/index.jsf(美國境內廉價機票,飛行基地在明尼蘇達州明尼阿波利斯市機場的航空公司,飛行目的地遍布全國主要城市。)

          9.Vegin America(virginamerica.com):著名的維珍航空,主要經營以舊金山為基地的美國西海岸航線如拉斯維加斯、西雅圖、洛杉磯等,也有橫跨美洲大陸到紐約、波士頓、和佛羅里達的航線。 (果然比較便宜的)

          10.Westjet(westjet.com):以加拿大為基地,主要經營加拿大境內以及美加之間航線的航空公司,價格比加拿大航空Air Canada相對便宜。

          11.Go Air(Iflygo.com):一家經營夏威夷群島之間的廉價航空公司。

          歐洲: 德國 1,AIR BERLIN 柏林航空 http://www.airberlin.com/ 以德國為基地,航線數量相當多,幾乎能達到所有的西歐和南歐主要旅游城市和度假地,機上有供應免費飲料和報紙。經常推出減價活動.一般29EU起. 2,GERMANWINGS 德國之翼 http://www.germanwings.com/ 漢莎控股,飛往歐洲各地,行李限重8kg,無兒童票。不過由于是漢莎的子公司,所以相比其他航空公司,Germanwings的服務,尤其是空中服務要更好一些。以科隆,斯圖加特,柏林三個城市為基地,航線數量多,每周四打折19EU起,但是如果不提前訂票和碰上打折,機票價格比較貴. 3,GERMANIA EXPRESS http://www.gexx.de/ 在德國大多數城市都有起飛的航班,目的地為意大利,希臘以及地中海度假區,值得一提的是有前往莫斯科的廉價航班. 4,HAPAG LLOYD http://www.hlx.com/ 德國最大廉價航空之一,航線繁多。主要飛往意大利,西班牙和地中海一些島嶼,每周二打折,價格一般19.99EU起 起飛的都是一些大城市的主要機場,離市區比較近,這個優點不錯. 5,dba www.flydba.com 以慕尼黑和杜賽爾多夫為基地,主要飛往德國各大城市和希臘,意大利,法國南部等地,價格一般,40EU左右. 6,LTU http://www.ltu.de/ 呵呵,LTU旅行社包機比較多,航班數量多,在德國RUHR區,有時候有特價票,不過數量有限,以前還有飛往中國重慶的航班,不知道現在還有沒有. 7,LowFareJet http://www.lowfarejet.de/ 每日從Hannover飛往Luton and Glasgow 及Paris。是少數提供air miles program.的低價航空公司線之一,忘了說,前面的DBA也提供里程積分. 8,CONDOR http://www.condor.com/ Thomas Cook 旗下的子公司。經常能找到非常優惠的價格。 經常提供兩種價格的打折票,29EU的短途航線和99EU的長途航線,飛行目的地以度假區為主,99EU的機票一般從法蘭克福出發,前往馬爾代夫,曼谷,加拿大,美國等地,相當超值. 最大的缺點是,航班搜索系統做的比較糟糕 9,LUFTHANSA http://www.lufthansa.com/ 漢沙經常有100EU左右的特價票,前往歐洲各大城市,雖然比一般的廉價航空要貴,但是考慮到漢沙的服務以及飛的都是中心機場,也還可以了. 英國和愛爾蘭 1,Ryanair http://www.ryanair.com/ 歐洲最出名的廉價航空公司,有很好的口碑,在歐洲機場數目也多,打折促銷也很多,從英國和愛爾蘭17個機場,飛往歐洲地區50多個城市,而且提供很多歐洲內陸城市之間的航班服務,優點是價格低廉,他的廉價票是最容易買的,缺點,他飛的幾乎都不是城市的中心機場,大部分都是離他所稱的城市幾十到一百公里的小機場,一般從機場到市區需要再花費10到20EU.因為這個原因,我覺得RYANAIR反而不如EASYJET,HLX之類的,因為加上前往市區的交通費,往往比別的航空公司貴. 2,EASYJET http://www.easyjet.com/ 歐洲最大的廉價航空公司之一,有203條航線,飛往歐洲61個城市,遍布歐洲大陸主要城市和波羅的海沿岸,價格一般20EU起,提前訂票一般都在30到60EU之間含稅,飛的都是主要機場,不錯,值得推薦! 3,AIR SCOTLAND http://www.air-scotland.com/ 蘇格蘭航空,飛往英國,西班牙,希臘的航班比較多 從Edinburgh、Glasgow及Aberdeen飛往 Palma、Barcelona、Tenerife、Alicante、Malaga及Fuerteventura。 4,JET2 http://www.jet2.com/ 是家新的低價航空公司,從Leeds Bradford飛往歐洲10個城市。 5,BMIBABY http://www.bmibaby.com/ 英國三大廉價航空之一,主要飛往西班牙南部,荷蘭,捷克以及英國國內航班,價格20鎊起. 6,FLYGLOBESPAN http://www.flyglobespan.com/ 蘇格蘭廉價航空公司,主要從愛丁堡飛往地中海島嶼以及沿岸的度假城市,還有前往布拉格和瑞士的航班.20人以上有團體票提供. 7,MY TRAVEL LITE http://www.mytravellite.com/ 以伯明翰為基地,和FLYGLOBESPAN差不多,飛往地中海島嶼以及沿岸的度假城市(以西班牙為主). 8,THOMSONFLY http://www.thomsonfly.com/ 主要飛往德國,西班牙南部,意大利和巴黎,以及英國和愛爾蘭之間的航班,機票15EU起. 9,BUDGET AIR http://www.budgetair.ie/ 愛爾蘭的廉價航空公司,從都柏林飛往西班牙和葡萄牙南部,價格50EU左右 10,MONARCH http://www.monarch-airlines.com/ 英國的廉價航空,從倫敦等地飛往西班牙為主. 11,britanniadirect http://www.britanniadirect.com/ 英國各地往返Malta、Malaga、Naples、Venice。 12,AER LINGUS http://www.aerlingus.com/ 愛爾蘭的航空公司,主要從都柏林飛往歐洲大陸主要城市,價格從十幾歐到一百多歐. 13,Flybe http://www.flybe.com/ Flybe前身為British European,從英國和愛爾蘭20個機場飛往全歐及紐約,行李限重20kg。 14,Jetmagic http://www.jetmagic.com/ 以Cork為基地,飛往歐洲大陸,航線不多,10來條吧 15,Now http://www.now-airlines.com/ Luton第二低價航空公司,2003年暑期開始營運,飛往7個城市,Manchester、 Hamburg、Jersey、Rome、Lisbon、Ibiza及Tenerife,票價約35~75英鎊。 歐洲的同學可以用到:www.jetcost.com,在上面可以訂到巴黎到法蘭克福的一歐元的機票。

          選擇廉價航空應注意事項?

          廉價航空公司(Budget airliners),一個新興的運營模式,通過運輸成本的降低來降低機票價格。運輸成本的降低主要是依靠兩個手段:一個是通過提高飛機利用率(高密度座位及飛行時間)降低單位成本;另一個是通過降低維護成本(單一機型及很低的人機比等)來控制其整體運營費用。 所以選擇廉價航空應注意下面這些事項:

          1. 避免更改行程:『廉價機票』又稱『計劃機票』,因此,在購票之前最好仔細考慮行程,因為如果臨時更改時間及地點,航空公司會額外索取『手續費』,有時『手續費』的價值便超過當初所購買的『一切費用』(機票及各項稅款),所以能不更改儘量不要改,否則『廉價機票』也會變得『不廉價』囉!

          2. 買了不能退款:大部份的廉價航空都沒有『退款服務』,主要是因為這類航空公司本身所提供的機票價格已經低於『市場價』許多,有時甚至是『免費機票』(航空公司該如何退給你呢?),所以這類航空公司並不提供『退款服務』,當然也有些航空公司會要求將客戶的『退款』,轉成『客戶信用額度』,下次購買機票時可以從裡頭扣款(畢竟這是少數),如果真的無法繼續計畫行程,不是白白浪費,就是建議更改行程(只是額外增加的費用,還不如重新購買來得便宜),至於『機場稅』、『兵險』等稅務費用當然無法退還,這點是必須提醒各位的。

          3. 提早辦理登機手續:廉價航空的服務一視同仁,並沒有『艙等』差異的服務,開放性選擇座位方式,先進入先選擇座位,因此,想要有個舒適的乘座空間,避免選擇前面的位置,建議提早辦理登機手續,通常后面的位置比較少人坐,飛機起飛后,只要旁邊的座位沒有人,就可以『躺平休息』一路睡到目的地了!

          4. 行李限重:廉價航空最令人困擾的莫過於『行李限重』的問題了,行李限重在15-20KG上下(其實與一般航空公司大同小異,只是較無彈性可言),一旦超重了,就必須額外付費辦理託運,所以行李的重量最好預做規劃。

          5. 網路購票安全性:絕大部分的『廉價機票』都是透過網路交易(航空公司降低成本的考量),因此網路購票的『安全性』是許多背包客所擔心的,大部份的廉價航空公司對於『網路交易』都有一定妥善處理的做法,當然有會有意外(駭客侵入),如果真的擔心網路交易的安全,個人建議親自電洽(或電子信件)詢問該如何現金付款,這樣的作法相對無法得到網路訂票的優惠價,只能說見仁見智囉!

          6. 飛安事故:許多人對於廉價航空都會有『廉價』=『不安全』的迷思,嚴格說來這點恐怕是多慮的,雖然廉價航空公司為了降低成本可能採購較為老舊的機型,但是人命關天,沒有任何一家航空公司會拿乘客生命開玩笑,飛安的問題不在於機型老舊與否,在於『安全維護』是否徹底執行,因此應該破除『廉價』=『不安全』的迷思。提供一個有趣的數值供大家參考:目前全球廉價航空失事率僅百萬分之零點七(安全性無庸置疑),但是最近印尼『亞當航空』的空難事件(2007 01 01)卻為『廉價航空』飛安蒙上一層陰影。

          品:科普中國

          制作:北京師范大學天文系 宇宙之美科普團隊 張同杰 李時雨

          監制:中國科學院計算機網絡信息中心

          對于“是否有外星人”存在這個問題,宇航員們似乎因為曾經進入太空,比我們普通人更有機會與外星人“ 親密接觸”, 因此他們多了一些發言權。

          宇航員們相信“外星人”存在嗎?

          最近,中國第一位航天員楊利偉親述曾在太空遇到神秘的敲擊聲:“這個聲音也是突然出現的,并不一直響,而是一陣一陣的,不管白天還是黑夜,毫無規律,不知什么時候就響幾聲。不是外面傳進來的聲音,也不是飛船里面的聲音,而仿佛是誰在外面敲飛船的船體。無法描述它,不是叮叮的,也不是當當的,而是更像拿一個木頭錘子敲鐵桶,咚 咚 咚 咚”。

          這是否是外星人造訪我們的飛船?

          2014年,筆者曾組織舉辦第27屆太空探索者協會年會的社會活動日(北師大分會場),航天員劉旺和部分美國、俄羅斯和日本的宇航員都應邀參加了這個活動。

          會議交流期間,劉旺曾經告訴我,他相信有外星人的存在,但是沒有說為什么。而最近航天員楊利偉的爆料,讓我明白了背后可能的原因。此外,一些美國航天員也相信外星人的存在。

          圖注: 第27屆太空探索者協會年會(北師大分會場)

          本文將首先介紹國際和國內搜尋地外文明的歷史及現狀,再從天體物理角度對楊利偉爆料的神秘敲擊聲給出可能的解釋。

          漫長的地外文明搜尋之路

          在如此深邃的宇宙里,

          人類是唯一的智慧生命嗎?

          地球是宇宙中最特殊的星球嗎?

          在宇宙中是否還有其他的生命?

          這些生命會以怎樣的形式進行演化?

          人類是如此渴望知道這些問題的答案,以至于從未停止過對地外文明的搜尋。

          從最早試圖在地球上建造巨大的結構來引起外星人的注意,被動得等待外星人發現人類,到一百多年前,尼古拉·特斯拉認為他的無線電傳輸系統可以用來聯系火星上的生物(參考文獻【1】),人們搜尋外星人的方法隨著科技的進步經歷著一系列深刻重大的變化。

          1931年,美國的無線電工程師卡爾·央斯基接收到了來自銀河系中的射電輻射,打開了射電天文學這一新窗口,為人們探索宇宙增加了一條重要途徑。

          1959年,物理學家莫里森和科可尼在《自然》雜志上發表了一篇論文(參考文獻【2】) ,他們認為如果宇宙中存在其他智慧生命,并且他們的科技發展水平與人類相當,或許人類能夠從眾多的射電信號中,找到外星人發出的信號。他們認為這個信號的波長很可能是525px(1.42GHz),這一波長正是宇宙中最常見的中性氫發出的輻射。

          圖注: 中性氫原子的21 厘米譜線產生機制示意圖

          這篇文章的發表一時間激起千層浪,從此人們對于外星人的搜尋不再是盲目的,可謂是為現代搜尋地外智慧生命奠定了科學基礎。

          筆者的師大物理宇宙學團隊也基于2014年發表在PRL上的文章,計劃使用我國FAST望遠鏡,觀測宇宙深處中性氫的21 厘米射電譜線測量宇宙膨脹的加速度。

          1. 搜尋地外智慧生命(SETI)實驗

          1960年,康奈爾大學的射電天文學家、被稱為“SETI之父”的弗蘭克·德雷克(Frank Drake)開啟了第一個現代搜尋地外智慧生命(Search for Extra-terrestrial Intelligence,以下簡稱SETI)的實驗,該實驗被稱為“奧慈瑪計劃(Project Ozma)”。基于莫里森和科可尼的文章,他利用綠岸射電望遠鏡(Green Bank Telescope)的85英尺射電望遠鏡,觀測天倉五和天苑四這兩顆恒星在1.42GHz這一頻率的射電信號。當然,現在我們都知道在這次實驗中,德雷克并沒有找到他想找到的信號。然而德雷克并沒有放棄,第二年,他發表了著名的德雷克公式,從統計上揭示了銀河系中能夠與外界交流的文明的數量。

          圖注: 筆者與德雷克的合影

          1971年,NASA支持了德雷克等人進行SETI研究,他們設計了由多達1500個小型射電望遠鏡組成的地基射電望遠鏡陣列。然而由于造價過高,并沒有實際建成,但是他們所做的研究工作為之后大量的SETI工作奠定了基礎(參考文獻【3】)。

          1972年,美國先驅者10號探測器發射時攜帶了德雷克與康奈爾大學的天體物理學家卡爾·薩根共同設計的人類發往太空中的第一條物理信息(參考文獻【4】)。這塊鍍金鋁板上標記出了地球在太陽系中的位置,如果先驅者10號探測器能夠遇到地外生命,那么他們就有望通過這條信息與我們取得聯系。

          然而地外生命也許并不是友好的,我們是否應該主動發送地球以及人類的信息給可能的地外生命,也一直是一個備受爭議的話題。

          德雷克目前是SETI研究所(參考文獻【5】)的成員之一。

          SETI研究所是一個非盈利性組織,它成立于1984年,所需資金大部分來自于私人捐贈,他們所用的艾倫射電望遠鏡陣列以微軟的共同創始人保羅·艾倫的名字命名,保羅·艾倫為這個望遠鏡陣列提供了一半的經費支持。

          圖注: 筆者訪問SETI研究所

          然而,耗費了大量人力物力的艾倫射電望遠鏡陣列并沒有搜尋到外星人的蛛絲馬跡,隨著2011年美國政府資金支持的停止,艾倫射電望遠鏡陣列陷入了停工的局面。

          圖注:艾倫射電望遠鏡陣列(圖片來源于網絡http://www.shao.ac.cn/kpyd/mtsm/201105/t20110505_3128141.html)

          與SETI研究所隔著舊金山灣相望的加州大學伯克利分校SETI研究中心(參考文獻【6】),他們負責的SERENDIP(Search for Extraterrestrial Radio Emissions from Nearby Developed Intelligent Populations:搜尋臨近地球的地外智慧生命發出的射電信號)項目是世界上運行時間最長的SETI項目。

          得益于互聯網技術突飛猛進的發展,伯克利SETI研究中心也展開了SETI@home的項目(參考文獻【7】),利用全球900萬志愿者聯網的計算機共同搜尋地外文明。SERENDIP最初是依附于其他觀測項目之上的,從阿雷西博射電望遠鏡拿到觀測數據之后,他們將這些數據分段,分別發給SETI@home的各個志愿者,利用每個志愿者電腦待機休息的時間對數據進行處理,找出非自然產生的射電信號以及潛在的目標信號,再反饋給SETI研究中心的科學家們。這種模式的優勢是進行SETI研究的科學家們不需要單獨申請望遠鏡的觀測時間,能與其他項目實現雙贏。

          圖注: SETI@home分布式計算項目

          2. 突破創新計劃 (Breakthrough initiatives)

          突破創新計劃(參考文獻【8】)是俄羅斯富翁尤里·米爾納于2015年創立的探索宇宙、搜尋地外智慧生命,鼓勵公眾從行星的角度進行辯論的項目。其董事會成員包括著名的科學家史蒂芬·霍金以及Facebook的CEO馬克·扎克伯格。尤里·米爾納在英國倫敦皇家學會舉行的新聞發布會上宣布了突破創新計劃的成立, 當時物理學家史蒂芬·霍金、英國皇家天文學家馬丁.瑞斯(Martin Rees)[據說他非常相信地外文明的存在]、“SETI之父”的弗蘭克·德雷克、美國加州大學伯克利分校(U.C.Berkeley)天文系席教授高爾夫·摩西(Geoff Marcy)[他曾經發現了上千顆系外行星,是諾貝爾獎的熱門候選者;但是不相信地外文明的存在,曾經和突破聆聽計劃的PI,同時也是伯克利SETI@home的首席科學家Dan Werthimer教授進行過關于是否有地外文明的辯論;目前他已經從U.C.Berkeley天文系辭職]、 突破聆聽的主要負責人Andrew Siemion以及基金會主席Peter Worden參加了成立儀式。

          圖注: 突破創新計劃新聞發布會

          突破創新計劃由突破聆聽(Breakthrough Lisen)、突破攝星(Breakthrough Strashot)以及突破信息(Breakthrough Message)三個項目組成。

          (1)突破聆聽

          突破聆聽計劃是歷史上最大規模的搜尋地外智慧生命的項目。

          史蒂芬·霍金與尤里·米爾納于2015年7月共同啟動了突破聆聽項目。盡管霍金本人認為向太空主動暴露人類的信息并不是明智之舉,但是他對于人類主動搜尋地外智慧生命的項目仍然持積極態度。

          突破聆聽計劃將在十年內投入1億美元的資金,支持SETI研究。其中一部分經費用于購買望遠鏡的觀測時間,另一大筆經費將會用來升級望遠鏡的后端設備。有了更多的望遠鏡觀測時間以及更好的設備,突破聆聽計劃將會得到優于以往近百倍的觀測結果。鑒于NASA已經決定今后不再給SETI研究任何的經費支持,對于SETI研究的科學家們來說,突破聆聽項目的啟動是一個重大利好消息。

          2015年,伯克利SETI研究中心幸運的得到了俄羅斯富翁尤里·米爾納10年內共計1億美元的資金支持,繼續搜尋地外文明。突破聆聽計劃的PI,同時也是伯克利SETI@home的首席科學家丹·沃斯莫(Dan Werthimer)教授,將與突破聆聽的主要負責人安德魯·西蒙(Andrew Siemion)一起[曾經是Dan Werthimer的博士后],帶領伯克利的SETI研究團隊一同聆聽天外來音。

          Dan Werthimer教授與中國也有一段不解之緣,早在上個世紀八十年代,他就在北京師范大學天文系進行了為期一年的訪問交流,與北師大的師生建立了深厚的情誼。2014年筆者訪問美國加州大學伯克利分校(U.C.Berkeley)天文系和勞倫茲國家實驗室(LBNL)時,與Dan建立了更加密切的合作關系。2015年,在筆者邀請下,Werthimer教授對北師大進行了學術訪問,并做了風趣幽默、通俗易懂的報告,報告介紹了SETI研究的歷史與發展。在此良機下,筆者帶領的北師大SETI研究團隊也積極得加入到了SETI的研究中,并且已經開始處理綠岸射電望遠鏡(Green Bank Telescope)的數據。

          圖注: 筆者與DAN的合影以及DAN在北師大的海報

          突破聆聽計劃主要利用位于美國西弗吉尼亞州的100米口徑的綠岸射電望遠鏡(Green Bank Telescope)和位于澳大利亞的64米口徑的Parkes射電望遠鏡,監聽來自外星文明傳來的信號。綠岸射電望遠鏡是世界上最大的全方位可移動望遠鏡,Parkes射電望遠鏡是南半球第二大的射電望遠鏡。

          在突破聆聽項目開啟之前,做SETI研究的科學家們通常一年之內只能得到一兩天的觀測時間,而現在,他們得到了望遠鏡每年20%-25%的觀測時間。

          圖注:國臺和SETI簽訂協議

          2016年10月,中國科學院國家天文臺也與突破基金會簽訂戰略性合作協議,國家天文臺臺長嚴俊和突破獎基金會主席及“突破計劃”執行主任Pete Worden代表雙方分別簽字。根據合作意向,國家天文臺500米口徑球面射電望遠鏡FAST將加入“突破聆聽”(Breakthrough Listen)項目,與位于美國的綠岸望遠鏡及位于澳大利亞的Parkes天文臺共同合作,尋找地球以外智慧生命的線索。雙方將有可能交換觀測計劃、探測方法和數據,并快速進行跟蹤觀測及數據分析。

          未來,位于三個國家的三個世界一流的望遠鏡將一起交換觀測計劃,共享觀測數據。

          圖注: 筆者參觀綠岸射電望遠鏡

          圖注:Parkes射電望遠鏡

          除了射電波段的研究,突破聆聽還有一部分資金用于美國加利福尼亞州利克天文臺的2.4米光學望遠鏡,進行光學波段的研究,旨在探測地外文明發出指向地球的激光信號。

          圖注:筆者訪問美國加利福尼亞州利克天文臺

          突破聆聽計劃主要觀測的頻率范圍是1-10GHz,在這個范圍內的射電信號不受宇宙源或地球大氣的影響,可以用地面望遠鏡進行觀測。大型望遠鏡的觀測時間是十分寶貴的,因此科學家們總是期望從一批觀測數據中可以得到多項科研成果。SETI研究得到的觀測數據,還可以用于研究脈沖星、恒星日冕物質拋射等研究領域。這些數據將會公開發表,可能是歷史上公開發表的數量最多的數據。

          (2)突破攝星計劃

          突破攝星項目計劃建成一個依靠光壓驅動的納米級宇宙飛船,其速度高達到光速的15%,這樣的飛船能夠在發射后20年到達距離太陽系最近的恒星——半人馬座α星,又稱為比鄰星——為我們傳來最近發現的比鄰星的行星 Proxima b的圖像。據此,可以幫助我們探測該恒星系統是否還有其他行星,我們還可以分析它們的磁場等一系列的性質。

          (3)突破信息計劃

          如果說突破聆聽計劃是被動的接收外星人的信號,那么突破信息計劃則是人類主動、有意識地給地外文明發送信息的項目。

          突破信息計劃的研究還包括將信息發送到宇宙深空的倫理學。同時,它還發起了高達一百萬美元獎金的競賽,競賽的內容是設計一個可能會發送到地外文明手中的來自地球的數字化信息。這條信息應該是代表整個人類的文明程度和我們地球的特征。在是否應該主動向外界發送關于地球和人類信息的高水平深層次辯論結果出來之前,該項目暫時不會向外界發送任何信息。

          突破計劃的三個項目相輔相成,期待它能為我們帶來振奮人心的發現。在未來的十到二十年之間,人們或許有望找到外星人發出的蛛絲馬跡。另一方面,不論是否真的有外星人存在,突破創新計劃都將在天文特別是射電天文學方面,極大的推動科學技術的發展。

          3.突破聆聽計劃研討會

          2016年10月5-6日,在綠岸天文臺召開了突破聆聽計劃研討會,筆者也參加了這次會議,并且作了SETI in China 的學術報告。

          會議由突破聆聽計劃項目主辦,綠岸天文臺承辦。突破聆聽基金的負責人Jamie Drew、突破聆聽項目的PI Dan Werthimer教授、該項目的主要負責人Andrew Siemion以及現代SETI項目的奠基人Frank Drake教授均出席了本次研討會。

          圖注:筆者與Dan Werthimer和Andrew Siemion

          研討會上探討了突破聆聽計劃的研究目標、策略,并且廣泛探討了現代搜尋地外智慧生命的方法。從SETI實驗所需的射電望遠鏡后端接收機以及數據儲存、傳輸等硬件設備,到數據處理的方法,特別是對與其他研究項目一起進行聯合觀測研究的可能性進行了討論。

          此外,還有部分利用開普勒衛星進行光學波段研究的學者到場做了精彩的報告,主要是有關系外行星的搜尋工作。隨著系外行星樣本的不斷增加,將會增加我們對于系外行星的認識,對于宜居行星分布情況也將會有進一步的了解。

          對于宇宙中是否存在其他智慧生物,雖然短時間內可能不會有結果,但是學者們大多抱有積極樂觀的態度。

          即使最終不是專門研究SETI的科學家發現了地外智慧生命的,就像歷史上許多重大天文觀測發現一樣(有心栽花花不開,無心插柳柳成蔭),那仍將是令人激動的結果。

          與會者還參觀了綠岸望遠鏡的觀測室以及后端設備室(非美國公民需要登記批準后才能進入)。在這里,觀測人員可以同時控制天文臺中的多架望遠鏡進行觀測,后端設備室有兩排插滿了5TB硬盤的架子,存儲了突破聆聽計劃的觀測數據并對其進行了預處理。當找到了研究人員所感興趣的信號之后,會把這部分數據發往加州大學伯克利分校的空間科學實驗室進行進一步的處理。由于每天觀測都會產生大量數據,剩下的沒有發現感興趣信號的數據就會被刪除掉。德雷克教授感慨道,他在二十世紀六十年代最早做SETI實驗的時候,是不敢想象今天的海量數據的。

          楊利偉在太空是遇到外星人了嗎?

          最后,讓我們再回到這個問題,楊利偉在太空是遇到外星人了嗎?

          筆者的看法是,楊利偉遇到外星人的可能性很小。

          到目前為止,還沒有接收到來自外星人的信號,并且也沒有外星人造訪地球的確切事實。

          以目前我們所知的科學技術水平,銀河系內的外星人即使乘坐以光速飛行的飛船在短時間內都無法到達我們地球。從理論上講,一種可能可以使我們從一個區域在短時間內到達另一個區域,那就是《星際穿越》電影里面描述的蟲洞,這也是我的博士導師沈有根先生研究了一輩子的天體物理領域。

          圖注:蟲洞示意圖

          如上圖所示,外星人可以通過蟲洞在短時間內從宇宙一個遙遠的區域到達我們這里,而不需要經過漫長的路程。2015年初,來自意大利和美國的一個國際研究小組聲稱,基于對銀河系的最新研究和理論,在我們的銀河系可能存在可以通往遙遠時空的巨大門戶-蟲洞,像熱映電影《星際穿越》中所展現的那樣,其大小足以讓一艘宇宙飛船經過。相關論文發表在《物理學報》雜志上。這項研究表明人類將有可能通過蟲洞穿越時空到達及其遙遠的地方。因此,如果楊利偉遇到的確實是外星人,那么這些外星人所行走的路線只有一條:蟲洞。這條蟲洞連接我們地球附近區域和銀河系內某個遙遠的地方或者河外星系的某處區域,而且這個蟲洞的入口或許在馬航MH370飛機失事區域。

          一個美好的愿望是馬航MH370飛機仍然在這條蟲洞中穿越。雖然我們感覺兩年過去了,而MH370飛機由于在蟲洞中穿行,其時間變慢,機上的乘客一直活著,他們感覺只是過去了幾個小時,不久的將來他們或許通過其他的蟲洞返回到我們的地球。

          參考文獻

          [1] Seifer, Marc J. (1996). "Martian Fever (1895–1896)". Wizard : the life and times of Nikola Tesla: biography of a genius. Secaucus, New Jersey: Carol Pub. p. 157. ISBN 978-1-55972-329-9.OCLC 33865102.

          [2] Cocconi, Giuseppe & Philip Morrison (1959). "Searching for interstellar communications"Nature.184(4690):844~846.Bibcode:1959Natur.184..844C.doi:10.1038/184844a0.

          [3] "Project Cyclops: A Design Study of a System for Detecting Extraterrestrial Intelligent Life" NASA. 1971.

          [4] Carl Sagan; Linda Salzman Sagan & Frank Drake (1972-02-25). “A Message from Earth”. Science. 175 (4024) : 881-884

          [5] http://www.seti.org/

          [6] https://seti.berkeley.edu/

          [7] http://setiathome.ssl.berkeley.edu/

          [8] http://www.breakthroughinitiatives.org

          “科普中國”是中國科協攜同社會各方利用信息化手段開展科學傳播的科學權威品牌。

          本文由科普中國融合創作出品,轉載請注明出處。

          注】本文譯自:https://psamsotha.github.io/jersey/2015/12/16/dynamic-proxies-dependency-injection.html

          本文將討論動態代理如何在 Java 平臺中工作以及依賴注入如何利用此 Java 功能。本文的撰寫源于我在 HK2 框架(或更確切地說是 Jersey 應用程序中的 HK2)中嘗試將請求范圍對象注入到單例對象中的的搜索。我本來打算將我的發現都寫在一個博客里,但是我覺得這個主題太寬泛了,不適合用兩行代碼就能解決的問題。

          首先,我將快速討論代理模式,然后展示如何在 Java 語言中使用動態代理,最后介紹一個使用動態代理和自定義依賴項注入的示例。

          代理模式

          我不會過多介紹代理模式。在互聯網上到處都有很好的參考。我只給出一個簡短的類比,以及該模式的一些簡短代碼示例。

          我敢肯定,你們大多數人都聽過“委托投票”這個說法。當有人投票給其他人時。例如,說公司董事會成員之間有一些隨意的投票。成員 B 生病住院了,因此無法參加董事會會議。所以,成員 A 代表成員 B 進行了投票。因此,在表決會議上,成員 A 只是成員 B 的委托。

          代理模式的工作原理與此相同。這是一個類圖(來自維基百科)。

          假設 Member 是接口

          public interface Member {
              void vote();
          }

          那么你有 MemberAMemberB

          public class MemberA implements Member {
              public void vote() {}
          }
          
          public class MemberB implements Member {
              public void vote() {}
          }

          由于成員 B 將不存在,因此我們需要一個代理。 代理還應實現 Member 接口,并應包含對 MemberB 的引用。

          public class MemberBProxy implements Member {
              private MemberB memberB;
          
              public void vote {
                  memberB.vote();
              }
          }

          現在 MemberA 可以讓 a 成為成員 B 的代理,讓代理為成員 B 進行代理投票。

          這可能不是最好的例子,因為代理僅對成員 B 進行表決。但是對于真正的代理,通常情況下還會發生其他事情。例如,在使用遠程代理的情況下, vote() 方法實際上可能會對遠程 MemberB 進行網絡調用。Java平臺中的一個示例就是 RMI(遠程方法調用)。后面的示例將描述另一個用例,通常對于開發人員來說是透明的。

          動態代理

          在上面的示例中,我們終須手動編寫代理類。但是,在 Java 中,隨著 1.3 中引入動態代理,這不是必需的。動態代理的核心接口是 java.lang.reflect.Proxy。要使用它,我們需要組件,我們的代理接口和一個 InvocationHandler。 讓我們看一個簡單的例子,使用與上面相同的類比。

          Member memberBProxy = (Memeber) Proxy.newProxyInstance(
                  Memeber.class.getClassLoader(),
                  new Class[] { Member.class },
                  new InvocationHandler() {
                      @Override
                      public Object invoke(Object proxy, Method method, Object[] args) {
                          return method.invoke(new MemberB(), args);
                      }
                  }
          );

          就是這樣。現在 memberBProxyProxy 的一個實例,而不是 MemberB 的實例。如果你打印出 Member 對象的類名,實際上會看到類名是 com.sun.proxy.ProxyX,而不是 MemberB

          讓我們快速地瀏覽一下。這是 Proxy#newProxyInstance 的簽名

          newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h)

          它首先需要 ClassLoader 用于定義代理,其次需要一個實現的接口,最后是 InvocationHandlerInvocationHandler 只有一個需要實現的 callback 方法。

          Object invoke(Object proxy, Method method, Object[] args)

          第一個參數是實際的代理對象。你應該很少使用它。第二個參數是 java.lang.reflect.Method 。如果你有 Java 反射的經驗,那么應該熟悉這個接口。 使用 Method 時,我們可以通過傳遞要調用該方法的對象以及任何參數(最后一行)來調用:

          return method.invoke(new MemberB(), args);

          在這里,代理將方法和傳遞給代理之上的方法調用的參數傳遞給代理。作為 InvocationHandler 的實現者,我們可以使用 Method 和method 參數做我們想做的任何事情。這里我們只是簡單地,應該在 new MemberB() 對象中調用,并傳遞參數。

          為了獲得更清楚地了解情況,只需將其看作 Proxy 實例具有 Member 接口具有的所有方法。因此,當我們調用 Proxy#vote() 時,它會調用 InvocationHandler#invoke 本身、方法和傳遞給 vote() 的參數(如果有)。通過調用 Method 對象上的 inovokeInvocationHandler 實現只需調用該方法即可。然后,Method 對象將對實際的 MemberB 對象調用 vote()

          就是這樣。如你所見,動態代理很容易實現。

          動態代理和自定義注入示例

          • 獲取 GitHub 項目(https://github.com/psamsotha/dynamic-proxies-example)

          我將在這里嘗試解釋的是在依賴項注入(DI)框架中如何使用動態代理。DI 中動態代理的主要用例之一是處理范圍。例如,您有一個處于單例作用域中的服務或控制器,這意味著每個應用僅創建一個。該單例服務依賴于請求范圍內的服務器,這意味著應為每個請求創建一個服務器。類可能看起來像這樣(這完全是虛構的---沒有特定的框架)。

          @Controller(scope = "singleton")
          public class AppController {
              @Inject
              SingletonService service;
          }
          
          @Singleton
          public class SingletonService {
              @Inject
              RequestScopedService service;
          }
          
          @RequestScoped
          public class RequestScopedService {}

          這里的問題是,在啟動時創建 SingletonService 時,需要執行所有注入。但是在啟動時沒有請求,因此當前應該沒有綁定到請求的 RequestScopedService。另一個問題是我們如何管理哪個請求獲取哪個 RequestScopedService。也許我們可以在 SingletonService 中添加一個 setter,在其中我們可以為每個請求設置一個新的 RequestScopedService。但這是行不通的,因為 SingletonService 將被并發訪問,就像一些服務器的工作方式一樣(每個請求一個線程)。

          這是動態代理發揮作用的地方。This is where dynamic proxies come to the rescue. When the當啟動創建 SingletonService 時我們將注入服務的 Proxy,而不是注入實際的 RequestScopedService。當從 from inside the SingletonService, 內部對 RequestScopedService 進行調用時,實際上將在 Proxy 上進行調用,該代理將調用委派給 InvocationHandler#invoke 方法,該方法實現對從 ThreadLocal 獲得的 RequestScopedService 的調用。每次處理一個請求時,都會在 ThreadLocal 中設置一個新的 RequestScopedService,這個請求將在一個單獨的線程中處理。如果你聽說過 “線程本地代理”一詞,那么這幾乎就是它的工作原理。

          讓我們嘗試實現這些。我們甚至將實現自己的依賴注入。我們將實現一個簡單的服務器框架,該框架允許用戶實現一個自定義 RequestHandler ,它可以注入我們的 SingletonService ,而 SingletonService 又依賴于 RequestScopedService。以下是類圖。(接下來,最好從上面的鏈接中獲取 GitHub 項目)。

          如前所述,用戶將能夠實現自定義 RequestHandler 并注入我們的 SingletonService。在項目中,有一個默認的實現,它僅只返回來自 SingletonService 的消息作為 Response

          public class DefaultRequestHandler implements RequestHandler {
              
              @Inject
              private SingletonService singletonService;
          
              @Override
              public Response handleRequest(Request request) {
                  return new Response(singletonService.getMessage());
              }  
          }

          然后用戶創建 Server 傳入實現類給構造器。

          Server server = new Server(DefaultRequestHandler.class);

          在服務器構造函數中,您將看到兩件事,用戶定義的 RequestHandler 類驗證,以及創建 SingletonService。驗證在這里并不重要,這是 SingletonService 的創建。

          private static SingletonService initSingletonService() {
              Service proxyService = (Service) Proxy.newProxyInstance(
                      Service.class.getClassLoader(), new Class[]{Service.class},
                      new ServiceInvocationHandler());
              return new SingletonService(proxyService);
          }

          我們要做的第一件事是創建 Service 類的代理。這里是 ServiceInvocationHandler

          public class ServiceInvocationHandler implements InvocationHandler {
          
              @Override
              public Object invoke(Object proxy, Method method, Object[] args) .. {
                  Service service = ThreadLocalService.get();
                  return method.invoke(service, args);
              }
          }

          它沒有太大作用。它只是從 ThreadLocalService 檢索 Service ,并在服務上調用代理方法。稍后我們將看到,RequestScopedService 的實例被設置為 ThreadLocal

          然后,使用 SingletonService 創建 Service。所以現在,當 SingletonService調用 Service 上的方法時,代理將查找線程本地 Service 并將調用委托給方法。

          服務器引導程序就是這樣。現在我們進入運行時和請求處理。下面是來自請求處理流的序列圖。

          首先,Main 程序調用 Server#sendRequest(Request) 并傳入一個新的 Request 對象。 Request 對象僅具有客戶端的名稱。

          當我們在 Server 上調用 sendRequest 時,它所做的就是將請求添加到 BlockingQueue

          public void sendRequest(Request request) {
              try {
                  requests.put(request);
              } catch (InterruptedException ex) {
                  throw new RuntimeException(ex);
              }
          }

          服務器啟動時,它會不斷輪詢 BlockingQueue,等待新的 Request

          public void startServer() {
              executors.submit(new Runnable() {
                  @Override
                  public void run() {
                      while (true) {
                          try {
                              Request request = requests.take();
                              if (request.isShutdownTrigger()) {
                                  break;
                              }
                              executors.submit(new RequestProcessor(userDefineHandler,
                                                                    singletonService,
                                                                    request));
                          } catch (InterruptedException ex) {
                              throw new RuntimeException(ex);
                          }
                      }
                      System.out.println("Server shutdown!");
                  }
              });  
          }

          當接收到 Request 時,Server 將創建一個新的 RequestProcessor,傳入 Request 對象、SingletonService 對象和使用定義的 RequestHandler 類。如果你查看 RequestProcessorrun() 方法,你將看到以下內容

          private void setThreadLocalService() {
              ThreadLocalService.set(new RequestScopedService(request));
          }
          
          @Override
          public void run() {
              setThreadLocalService();
              RequestHandler handler = initInjections();
              Response response = handler.handleRequest(request);
              System.out.println(response.getMessage());
          }

          因此,處理器要做的第一件事就是將 RequestScopedService 設置為 ThreadLocalService。 然后使用一些反射實例化 RequestHandler ,如 initInjections() 方法所示

          RequestHandler initInjections() {
              try {
                  for (Field field : handlerCls.getDeclaredFields()) {
                      if (field.isAnnotationPresent(Inject.class)
                              && field.getType() == SingletonService.class) {
                          return createHandler(field, handlerCls);
                      }
                  }
          
                  Constructor[] cons = handlerCls.getConstructors();
                  for (Constructor con : cons) {
                      if (con.isAnnotationPresent(Inject.class)
                              && con.getParameterCount() == 1
                              && con.getParameterTypes()[0] == SingletonService.class) {
                          return (RequestHandler) con.newInstance(singletonService);
                      }
                  }
              } catch (Exception ex) {
                  throw new RuntimeException(ex);
              }
              throw new RuntimeException("RequestHandler could not be created.");
          }

          該方法只是檢查我們是否應該進行字段注入或構造函數注入。它確保使用 @Inject 注解字段或構造函數。如果字段帶有注解,并且字段類型為 SingletonService,我們將使用反射使用 SingletonService 設置字段。進程構造函數注入也會發生類似事件。

          RequestHander 做的最后一件事就是簡單地調用 RequestHandlerhandleRequestof ,它返回一個 Response,然后處理器打印出 Response 消息。這就是處理單個請求的過程。

          如果運行 Main 類,應該會看到類似以下內容的信息

          Message: Hello Kobe
            meta-info:
              service class: com.sun.proxy.$Proxy2
              service id: 1
              thread name: pool-1-thread-2
          
          
          Message: Hello Lebron
            meta-info:
              service class: com.sun.proxy.$Proxy2
              service id: 2
              thread name: pool-1-thread-3
          ... three more

          您應該注意的第一件事是,服務類確實是 Proxy 實例,而不是 RequestScopedService。只要正在處理請求,底層的 RequestScopedService 都將保持不變。因此所有在 Service 內部的服務上所做的將總是被委托給與特定線程相關聯的實際 RequestScopedService

          就這樣了。

          總結

          我們介紹了代理模式的一些基礎知識,并了解了它如何使用包裝器或委托模型來調用底層對象。然后,我們討論了動態代理,以及如何用 Java 語言實現它。最后,我們通過一個示例說明了動態代理是如何使用作用域依賴注入的。如果需要將較小作用域的對象注入到更大作用域的對象中,則需要代理較小作用域的對象,以便不同的線程能夠訪問自己的較小作用域的對象實例。

          這個示例與你在現實生活中使用的一些東西相去甚遠,但我希望你能更好地理解我們討論的兩個主題(動態代理和依賴注入)的組全背后發生的事情。


          主站蜘蛛池模板: 精品国产一区二区三区www| 国产一区二区三区久久| 无码国产精品一区二区免费模式| 久久人妻无码一区二区| 亚洲日韩精品一区二区三区| 免费萌白酱国产一区二区| 亚洲国产系列一区二区三区 | 亚洲福利电影一区二区?| 久久久久人妻精品一区三寸蜜桃| 日韩高清一区二区| 日韩一区二区a片免费观看| 国产电影一区二区| 久久久av波多野一区二区| 国产精品视频一区二区噜噜| 台湾无码AV一区二区三区| 亚洲AV永久无码精品一区二区国产 | 国产精品一区二区四区| 国产品无码一区二区三区在线| 狠狠色综合一区二区| 99久久精品国产一区二区成人| 久久久国产精品一区二区18禁| 成人精品视频一区二区三区不卡| 中文字幕精品无码一区二区三区| 久久精品无码一区二区三区日韩 | 精品少妇ay一区二区三区 | 无码人妻一区二区三区免费视频 | 一区二区三区国模大胆| 精彩视频一区二区| 日韩一区二区三区在线精品| 一区二区三区午夜| 日韩精品无码一区二区三区四区| 成人免费区一区二区三区| 99久久精品国产一区二区成人| 日韩国产免费一区二区三区| 国产精品久久久久一区二区三区 | 国产成人综合精品一区| 国精产品一区二区三区糖心| 久久99精品国产一区二区三区| 国产精品毛片一区二区三区 | 亚洲AV日韩AV天堂一区二区三区| 天堂资源中文最新版在线一区|