10萬的車座椅如沙發般舒服又省油 車主卻一直吐槽?

雙區自動空調操作起來很簡便,不會太難用。整車隔音還是可以的,在100km/h時依舊很安靜,只有上到120km/h時,才會有種hold不住的感覺。配置很高,帶有很多安全配置,例如併線輔助,車道偏離預警和主動剎車。油耗很低,走了170多公里的高速,表顯油耗在5。

前言

一直以來,騏達都以經濟舒適范來示人。然而,自從改款以後,外形變得更加運動。至於其他方面有什麼變化,我們不妨來聽聽車主們是怎麼說的。

東風日產-騏達

指導價:9.99-13.49萬

車主:傷心1999

購買車型:2016款 1.6L CVT酷動版

裸車購買價:11.3萬

最滿意的點:座椅很柔軟舒適,就像家裡的沙發一樣,坐姿也很舒服。前擋風玻璃視線很好,空間也很寬敞。車內噪音比較少,走高速時也挺安靜的。方向也很好打,做工也夠精良,CVT變速箱匹配平順,沒有頓挫,不會讓人有一點點的不適。還有最重要的一點就是省油。

最不滿意的點:日間行車燈在霧燈的位置,不太喜歡。後排凸起有點高,影響中間人員的乘坐感受。同時,酷動版中間沒有頭枕。中央扶手箱偏短,放手不太好放。懸挂偏硬,這點與老騏達不太一樣,過爛路時後排有點顛。雨刮並非無骨雨刮,影響視覺感受。大燈亮度偏低,晚上行車不太容易看。

目前行駛里程:目前已經走了2200公里,走了高速加市區加鄉間公路,綜合油耗在6.8L/100km左右,很滿意。

車主:圖圖

購買車型:2016款 1.6L CVT智享版

裸車購買價:13.2萬

最滿意的點:空間無敵,前排調到正常位置時,後排翹個二郎腿完全沒壓力,只是犧牲了後備廂空間。雙區自動空調操作起來很簡便,不會太難用。

整車隔音還是可以的,在100km/h時依舊很安靜,只有上到120km/h時,才會有種hold不住的感覺。配置很高,帶有很多安全配置,例如併線輔助,車道偏離預警和主動剎車。油耗很低,走了170多公里的高速,表顯油耗在5.1L/100km,真省。

最不滿意的點:只有主駕駛位的玻璃有一鍵升降,而且沒有燈,晚上就全憑手摸。車鑰匙和一鍵啟動的按鈕看起來很廉價。

目前行駛里程:現在已經開了2100公里,本人開車比較溫柔,所以綜合油耗在7.5L/100km左右。

車主:溜達溜達

購買車型:2016款 1.6L CVT智行版

裸車購買價:11.9萬

最滿意的點:外形年輕有運動范,內飾也挺精緻。動力雖然不算猛,但也足夠在市區很好地遊走。日產沙發廠果然名不虛傳,坐起來相當舒適。輪轂樣式很漂亮。各種安全配置齊全好用,盲區輔助也感應得很好。

最不滿意的點:日間行車燈在霧燈附近,容易讓人誤會。大燈亮度不夠。一鍵啟動按鈕放方向盤後部不太習慣,點煙器在中控台下方也不夠人性化。扶手箱位置設置得不太合理,手套箱感覺沒什麼阻尼,很廉價。多媒體系統並不支持視頻播放。

目前行駛里程:目前開了800公里,平均油耗在8L/100km左右。

編者總結:

騏達依舊是一款居家使用的好車型,只是在這個基礎上,又讓駕駛員多了一點點操控的私心而已。配備了那麼多安全性配置,開着就足夠讓人放心。不過,作為一台日系車,後排有凸起,這似乎有點說不過去。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※回頭車貨運收費標準

網頁設計最專業,超強功能平台可客製化

※別再煩惱如何寫文案,掌握八大原則!

DX3、H2、GS8!大波SUV來襲!哪個是你的菜?

48萬-17。18萬、新逸動EV 23。49萬-24。99萬。上市現場,全球第一款48V量產車——逸動藍動版的首發,賺足了觀眾及媒體的眼球。目前,長安汽車是實現48V系統量產的全球第一家企業,新逸動藍動版是搭載該技術的全球首發車型。新逸動藍動版是在新逸動平台上開發的又一突破創新產品,歷時30個月,投入近億元,多名國家“千人計劃”專家及海外團隊突破345項技術難題研發而成。

記得11月18日廣州車展開幕,開始受到了各大廠商的邀請,於是…在車展期間,奔跑在各大展館中,於是先提個醒,這周的一周車聞將是歷史以來最為特別的一篇總結,怎麼樣?期待吧!我們馬上進入正文…

華泰汽車亮相廣州車展

作為最早推出SUV車型的企業之一,今年華泰去汽車攜旗下6款重量級車型閃耀登場。三款傳統新車,全新聖達菲1.5T手動舒適版和1.5T手自一體尊貴版以及路盛E80全國上市,國內首款純電動SUV XEV260再度成為全場焦點。未來是新能源的天下,通過多年來的市場洞察和技術研發,將新能源與SUV相結合,打造出引領行業發展的新能源SUV車型。

今年6月,率先推出了國內首款純電動SUV XEV260。作為國內市場上唯一在售的純電動SUV, XEV260延續了華泰聖達菲的外觀設計266km的綜合最大工況續航里程,完全可以滿足用戶日常用車和假日市區周邊游的需求。上市短短數月,便憑藉卓越的性能優勢,獲得了良好的市場口碑。

GS8亮相廣州車展

EnLight概念車全球首發

以“創新聚力 廣啟未來”為主題,廣汽集團在第十四屆廣州車展中迎來主場作戰的年度機遇,以超過一萬平方米、近70台展車的史上最大參展規模與最強參展陣容參展,並全球首發智聯電動概念車EnLight,全面震撼2016廣州車展。

做為廣汽自主的核心版塊,廣汽傳祺堅持正向開發,持續強化自主創新能力,實現高速優質增長。今年1-10月,傳祺全系產品銷量累計達到29.6萬輛,同比勁增126%。憑藉高端突破實力、前瞻未來科技和搶眼的市場業績,廣汽傳祺借廣州車展預演中國品牌年度收官大戲。

融合新生,悅享未來

廣汽三菱隆重推出全新企業標識,傳達出股東方廣汽集團、三菱汽車、三菱商事平等、互利、共贏的新發展態勢,促進廣汽三菱的品牌影響力得到進一步提升。廣汽三菱旗下的歐藍德、全新勁炫、新帕傑羅·勁暢以及2016款進口帕傑羅四款車型悉數亮相本次車展,盡顯“SUV世家”的技術實力和發展活力。尤其是9月上市的國產歐藍德,更是首次亮相廣州國際車展。作為2016年下半年SUV市場的明星車型,歐藍德20萬級別的價格區間唯一具備強勁四驅性能與7座超大空間性價比(即2047),讓其一經面世就備受追捧。此次在廣州車展的驚艷亮相,更彰顯SUV世家獨特魅力,助力廣汽三菱再攀銷量新高峰。

長城汽車-哈弗H2s正式上市

指導價:8.38-10.28萬

在廣州車展首日哈弗旗下重點新SUV–H2s的紅標版和藍標版正式上市!指導價區間為8.38-10.28萬元。哈弗H2s紅標版和藍標版車型的設計走年輕化、科技性的路線!藍標版車型的中網較小,而紅標版的中網尺寸更大,所以它們風格各異,很好區分。新車型的售價一經發布,馬上就引來眾人圍觀。而我也第一時間體驗了這兩款車型,進入車內,中控的造型非常新穎,風琴式中控台造型相當個性。各個功能區的使用便利程度高,而且配置不低。內飾的做工精緻、乘坐舒適性也不錯。多功能真皮方向盤、定速巡航、9英寸觸控屏、車載手機互聯娛樂系統等等配置均有配備。而像ESp、自動駐車、陡坡緩降等安全配置更是全系標配!動力方面哈弗H2s搭載一台1.5T發動機,匹配一款7速濕式雙離合變速箱,在同級是絕無僅有的,同時也提供一款6擋手動變速箱。經過靜態體驗,哈弗H2s給我的觀感體驗是優秀的,而我也期待能快些試駕它!

東風日產進入YOUNG NISSAN3.0時代

開啟智能化人·車·生活

11月18日,東風日產攜旗下NISSAN、啟辰雙品牌全系車型強勢登陸廣州車展。本屆車展,NISSAN展檯面積2380m2,啟辰展檯面積840m2,以極具未來感的體驗設備和空前的展台規模,傳遞出年輕化戰略下東風日產全面煥發的品牌活力與綜合實力。發布會現場,東風日產帶來了富有激情與科技元素的NISSAN 全新GT-R、嘗鮮未來的TeRRA概念車,同時發布“i3計劃”,描繪了以全價值鏈智能化升級引領未來汽車生活的美好願景。

瑪莎拉蒂新款總裁轎車GranSport運動版廣州首秀

瑪莎拉蒂攜最新款旗艦車型——2017款Quattroporte總裁轎車GranSport運動版亮相2016廣州國際車展。作為百年三叉戟品牌的奢華力作,新款總裁轎車擁有重新設計的外觀、更加精美的內飾和更多高科技裝備,而GranSport運動版在標準版的基礎之上,強調了總裁轎車的運動特徵,它與GranLusso豪華版一起,彰顯瑪莎拉蒂DNA的兩個關鍵要素——豪華與運動。

GranSport裝飾版本擁有12項外觀更新、11項內飾升級、2項性能提升以及8項电子科技裝備提升,凸顯了Quattroporte總裁轎車的運動特徵並強化了兇猛的車型外觀。無論從視覺效果或是運動性能,GranSport運動版都充分極致展現出品牌源自賽道的運動精神和流淌在家族血液中的激情。

在這次媒體專訪中,當提到瑪莎拉蒂新款總裁具體是哪些特質吸引到我們中國消費者時,瑪莎拉蒂中國董事總經理薄亞銘先生表示:對於總裁客戶群體來說,他們都有着一個共同點那就是追求運動與奢華,且目標客戶皆為企業家為主,在駕乘體驗方面,瑪莎拉蒂在道路試駕之外還組織一系列的賽道活動,讓客戶有機會在賽道上體驗瑪莎拉蒂卓越的性能優勢。

“SUV雙雄”領銜 東南汽車重磅出擊廣州車展

11月18日,第十四屆廣州(國際)汽車展覽會正式拉開帷幕。東南(福建)汽車工業有限公司(以下簡稱:東南汽車)以“躍見精彩”為主題,由DX系兄弟車型DX3、DX7領銜的全明星陣容以及意大利賓尼法利納設計總監的聯袂登場,全面展現產品3.0戰略下的發展成果,展示了一個在品牌、市場迎來飛躍發展的精彩東南。

DX3從11月1日上市至今,訂單量就已破萬,為東南汽車進軍小型SUV市場贏得完美開局,並在全國掀起了一場“顏實力”浪潮。DX3首戰告捷,兄弟車型DX7則繼續保持出色的市場表現,9月和10月連續兩個月訂單破萬輛,延續輝煌戰績。如今,DX7已成功躋身緊湊型SUV市場主流隊列,並有效帶動東南汽車整體體系力以及品牌力的提升,展現了東南汽車的改變和逐步崛起。

2017年,一個更親近中國消費者的捷豹路虎

11月18日,廣州車展。捷豹路虎中國和奇瑞捷豹路虎聯合市場銷售與服務機構總裁畢少朴先生以及捷豹路虎中國和奇瑞捷豹路虎聯合市場銷售與服務機構常務副總裁胡俊先生就捷豹路虎未來在華髮展事宜作出說明。內容覆蓋國產車型投放、銷售網絡拓展、品牌營銷推廣等多個方面。

其中,未來12-18個月時間,在目前銷售網絡基礎上,大力拓展銷售渠道,進一步布局3、4線城市;努力提高國產化車型在華銷量的份額,並且2017年繼續引入全新車型進行國產;與本土誇領域品牌合作,提供多種捷豹路虎產品體驗。成為了當天引人關注的焦點。捷豹路虎這個英國百年品牌,正以前所未有的親民態度擁抱中國市場。

全球第一款48v混動車型領銜 長安三款高品質新能源車上市

11月18日,長安汽車三款新能源車型——全球首次搭載48V混動技術的量產車型新逸動藍動版,細分市場最長續航里程高品質純電動車新奔奔EV,高品質、高操控性、高安全性純電動車新逸動EV於2016廣州國際車展正式上市,三款車型的售價分別是:新逸動藍動版 8.69萬-9.09萬、新奔奔EV 15.48萬-17.18萬、新逸動EV 23.49萬-24.99萬。

上市現場,全球第一款48V量產車——逸動藍動版的首發,賺足了觀眾及媒體的眼球。目前,長安汽車是實現48V系統量產的全球第一家企業,新逸動藍動版是搭載該技術的全球首發車型。新逸動藍動版是在新逸動平台上開發的又一突破創新產品,歷時30個月,投入近億元,多名國家“千人計劃”專家及海外團隊突破345項技術難題研發而成。

2017款 優6 SUV廣州車展正式上市 宣布即將成立納智捷極客聯盟

11月18日,東風裕隆納智捷攜旗下2017款 優6 SUV、納智捷 銳3,以及G20峰會官方指定用車納智捷 新大7 SUV、新大7 MpV等全系車型,正式登陸廣州車展。其中,作為納智捷“預先設想 超越期待”品牌理念下的一款高顏值SUV ,2017款 優6 SUV在第十四屆廣州國際汽車展覽會正式與消費者見面,將時尚再升級。

納智捷 2017款 優6 SUV主要從安全、舒適、豪華、運動等4個方面進行了升級,增加了更貼近當下都市年輕家庭生活的配置,1.8T售價11.98萬-16.98萬,2.0T售價17.98萬-20.08萬,以超高的性價比強勢進入市場。

名爵ZS全球首發

上汽MG名爵打造年輕人標配的首台互聯網SUV

11月18日,第十四屆廣州車展上,“年輕人標配的首台互聯網SUV”名爵ZS全球首發,並將於明年年初上市。對於這款採用全新設計語言詮釋“國際范兒顏值”、加持“智能互聯繫統”打造時代最潮車生活的SUV,車展觀眾對其抱以極大熱情。名爵ZS展台的火爆,也直觀地印證了呼吸着互聯網空氣成長的年輕消費者對網車的巨大剛需。

名爵ZS的出現,不僅肇啟了本土汽車行業深度併線互聯網的“網車時代”,更是為中國年輕消費者提供了更符合時代特徵的理想之選,同時從根本上刷新泛八五后“網絡原住民”對人生第一台車的價值認知。“感性、專屬和矯捷,設計師是圍繞這三大核心對未來MG全新的產品進行打造的。” 上汽集團技術中心設計部總監邵景峰解釋名爵ZS設計的同時,更強調新設計理念在未來名爵家族車型中的延續性。

宜家宜商,長安睿行S50強勢來襲

2016年廣州車展,長安輕型車攜睿行S50上市。這款車定位的消費人群主要為個體戶私營業主及家庭成員較多的個人用戶,來源為緊湊型MpV用戶換購、MpV新用戶、新型微客用戶升級、傳統微客用戶升級、經濟型轎車用戶功能改善及工薪階層家庭第二輛車。

長安輕型車品牌既繼承了長安汽車的優良血統,又吸納了眾多優勢資源和先進技術,打造了宜商宜家的長安睿行S50。在造型上,飽滿時尚、大氣美觀、國際范十足;在配置上,配備全車立體環繞式空調,全車雷達、智能互聯及incall人機交互系統等最新科技時尚的配置。在空間上,具備同級最大2850mm軸距, 5-8座靈活而最多的座位布局。在性能上,具有最佳靜音NVH性能,怠速39分貝;國際一流的底盤調試技術及供應商保障體系。在動力上,1.5L、1.5T及純電動三種動力配備,強勁有力,高效率低油耗,綠色環保。“商用有型,家用更行”長安睿行S50具備的大氣、科技、舒適、環保等優勢,相信長安睿行S50一定會贏得市場的青睞和用戶的追捧。

緬懷過去 展望未來 試駕寶馬2017款330Li

先來說說此次改款都有哪些巨大的改變。首當其沖的改變之一當然就是寶馬最新一代B系列發動機的搭載。相比於原車上的那台N系列發動機在油耗以及動力的響應速度上都要優秀了不少,並且B系列發動機運用了寶馬眾多的看家本領電弧噴塗技術和全球首創的水冷鋁製一體式渦輪增壓器,第四代Valvetronic电子氣門等等。將原來318LI上的那台1.6T發動機換成了1.5T三缸B系列發動機,雖說是這台發動機只有3個氣缸,但動力感受和性能卻毫不羸弱,反而使得油門響應更加迅速,最難能可貴的是這款發動機對於震動抑制同樣非常出色,真的不禁讓對寶馬的工程師由衷地佩服。

第二個就巨變就要數新3繫上的“智能互聯”系統了。這款系統植入了一套智能語音系統,按照平常來講這類的語音系統的識別效率和速度都令人抓狂,一般都不值得一提,但寶馬為新3系所搭載的這套系統卻出奇的易用,只要你隨意說出一句話它都能識別出來,並且能給到你非常準確的執行操作。

最後我們來說下網友們最迫切想知道的M套件!這款M套件將會搭載在320Li以及330Li車型上。M運動套件主要包括有18英寸的輪圈、熏黑的雙腎進氣格柵、雙出的排氣、以及空氣動力學套件等……對了還有這亮瞎眼的“埃斯托藍”。並且最讓網流口水的“丁字褲”方向盤同樣出現在了330Li車上,真是無聊看起來還是摸起來有讓人有想入非非的衝動。

一汽奧迪硬實力強勢,從容面對上汽與奧迪正式聯婚

在雙11這一天,上汽集團跟奧迪汽車股份有限公司正式聯婚,未來雙方將成立股比對等的合資公司,共同生產和銷售奧迪相關車型。

對於這個消息之前已經傳到沸沸揚揚了,如今這個消息最終落實之後,有人歡喜有人哭,一汽奧迪也要面臨自家兄弟的競爭了;但從最近一汽展露的消息可知,一汽表現非常從容。相比上汽與奧迪的新公司來說,一切都是未知數;但一汽奧迪確是實打實的推出品質出眾的產品。未來一汽-大眾奧迪還將國產5款奧迪e-tron車型,其中就包括在今年品牌峰會中被提及的續航里程超過500公里的純電動車型。

作為老練的一汽奧迪來說,如今在國內擁有近400萬的消費擁躉,良好的口碑使得最近奧迪與一汽最近也達成了眾多合作,未來將在電動車、移動出行服務和数字化服務及市場銷售等諸多領域展開深入合作,這都表明一汽奧迪作為老牌合資公司的底蘊與實力。

東風日產啟辰T70/T70X

啟辰T70是東風日產啟辰品牌傾力打造的首款SUV車型,在上市之初贏得了不錯的市場表現,啟辰T70基於雷諾日產C平台打造,和老款奇駿,逍客是出自同一平台,在9月8號啟辰70系列迎來了它的新款車型,新款啟辰T70,T70X 外觀方面,啟辰T70採用家族式前臉,大量平直線條的運用,讓整個車身看起來更加動感時尚,新款啞光飾條的前雙輻的進氣格柵,熏黑處理的大燈,使得整體外觀看上去更加精緻,車燈部分的鍍鉻裝飾也提升了整車的質感。

內飾方面,採用T字型的中控布局,層次分明,線條比較簡潔,銀色裝飾條讓車廂看起來具有年輕,活力的氛圍,多媒體系統新增了流行的手機互聯功能百度Carlife。

啟辰T70的長寬高分別是4542mm.1786mm,1642mm,軸距為2630mm,啟辰T70X長寬高分別為458,2mm,1840mm,1644mm,軸距為2630mm,啟辰T70X增加了黑色外包圍,配置也更豐富。

動力方面,啟辰T70使用的是1.6和2.0自然吸氣發動機,1.6發動機最大功率121馬力,最大扭矩154牛米,2.0發動機最大功率144馬力,最大扭矩198牛米,兩款發動機均來自老款日產逍客,匹配手動擋和XTRONIC CVT變速箱,延續了日產品牌質量好,省油,大空間,舒適性好的優勢。

啟辰T70在外觀設計硬朗,空間方面也比較令人滿意,動力系統匹配成熟,質量可靠性和品質相比同級別車型有一定的優勢,相信新款啟辰70系列會將有一個不錯的市場表現。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

※教你寫出一流的銷售文案?

※超省錢租車方案

※回頭車貨運收費標準

7.88萬起,又大又高級,帝豪GL開起來到底好不好?

從起步的瞬間,還是能感覺到帝豪GL的起步很順暢,不會像市面常見的乾式雙離合變速器那樣遲鈍,在換擋邏輯還是會很清晰、聰明,的能夠預先了解到駕駛員的意思,然後完成換擋動作,在正常行駛時多踩一點油門,轉速的指針還是跳的比較积極,變速箱響應在同等級當中還是令人滿意的。

在眼球經濟盛行的當下,對一個品牌和產品來說,最重要的資源不再是信息本身,而是大眾的注意力,只有大眾關注到了產品,才有可能成為買單者,那對於今年吉利來說,最火的話題莫過於,七月十五號中國吉利汽車當著一眾媒體的面把自家博瑞拆了,同時還拆了一台日系合資車,如果為2016年自主汽車品牌的營銷排一個座次的話,吉利恐怕是當之無愧的第一。從洗腦神句“你好,博越”引發多家車企頭腦風暴,到帝豪GS領銜VR直播,再到將雅閣作為對手的24小時拆車大戰,在霸佔了營銷熱門榜的同時,吉利也展示了自己強大的底氣。

但無論結果如何,其實在整個拆車過程也是一次汽車知識的普及課,能更直觀地增強受眾對汽車的設計、材料、底盤懸挂等汽車知識的了解,那對吉利而言,只要能做到讓消費者認識到,吉利的產品,和合資品牌同級別產品沒有什麼品質差異的話,“拆車營銷”這場仗,就已經贏了。

在帝豪GL上市之前,吉利又將它拉到了天津的中國汽車技術研究中心碰撞實驗室,兩輛帝豪GL真實模擬現實中的“十字路口魔鬼碰”,側面碰撞獲得18分(滿分為18分)、正面碰撞獲得17.92分(滿分為18分),而且此次帝豪GL的魔鬼碰撞還是直接由央視現場直播,看得出,吉利的營銷大手筆歸因於對自身實力有足夠自信,有些秀還真不是所有車企都能玩的。

所以車身尺寸上,帝豪GL比現款帝豪大了不止一圈,尤其是4725mm的車身長度,使它成為了同級中的佼佼者。這個尺寸已經超越了主流的緊湊級轎車,和標緻408一樣屬於A+級的尺寸。

確實在外觀設計上不僅告別了傳統中國品牌“東拼西湊”的借鑒之風,還打造出了屬於品牌自己的風格,因為從博瑞、博越再到帝豪GS,吉利已經將這個家族式的設計進行了普及,“套娃”已經不再是合資品牌的專利。

看的出來,內飾與配置上同樣延續了前面三款車型的高級質感,中控頂部採用吉利家族式的拱橋弧線,並運用了金屬拉絲飾板裝飾,儀錶盤看上去清晰易讀,還提供了8英寸觸控显示屏,此外,該車還配備了自適應巡航、城市預碰撞系統等。雖說這樣的配置與做工在吉利近來的車型中並不少見,但是在同級別中顯得非常豐富。

坐進車內,會更切實的感受到帝豪GL的在同級別中的“高質感” 可以跟任何同級合資車型相比都不落下風,一些旋鈕和按鍵的手感,阻尼和回饋也再詮釋着“高質感”。最贊的是在帝豪GL的車內,你並不會聞到市面上新車型普遍難以避免的刺鼻味道

動態表現方面,特別是讓中國消費者一直不太放心的雙離合變速箱的表現。從起步的瞬間,還是能感覺到帝豪GL的起步很順暢,不會像市面常見的乾式雙離合變速器那樣遲鈍,在換擋邏輯還是會很清晰、聰明,的能夠預先了解到駕駛員的意思,然後完成換擋動作,在正常行駛時多踩一點油門,轉速的指針還是跳的比較积極,變速箱響應在同等級當中還是令人滿意的。

1.3T的發動機,129馬力的最大功率並不驚艷,但從1750轉就開始的最大扭矩輸出平台,初段的提速能力還是不錯的,而且值得關注的是帝豪GL後排座椅的中間座位,坐墊是市面上罕見的柔軟,對臀部的支撐非常舒服,而且坐滿5個人的話,乘坐感受也會非常舒服。

動力方面,帝豪GL搭載了與帝豪GS相同的1.3T和1.8L兩款發動機,均匹配6速手動和6速雙離合變速箱。我們這台試駕是1.3T的自動擋版本,最大輸出功率129馬力,峰值扭矩185N·m,渦輪從1400rpm便開始介入工作。

帝豪GL的目標客戶群,可以說是最“貪婪”的一群人:“我要漂亮的外觀、要精緻的內飾、要超高的配置、要動感的駕駛感受、更要舒服的乘坐體驗。而我卻只有十萬的預算,吉利就是恰恰抓住了這個需求點,對於帝豪GL的外觀造型,雖然少了當初博瑞亮相后的那種驚艷,但是成熟的家族化設計,並不比同級別的合資產品遜色;車內簡約且富有質感的內飾氛圍,徹底的擺脫了自主品牌浮夸稚嫩的設計風格;博瑞上的高科技配置也被下放到了這款緊湊級家轎上,重新樹立了同級新標杆。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※Google地圖已可更新顯示潭子電動車充電站設置地點!!

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※別再煩惱如何寫文案,掌握八大原則!

網頁設計最專業,超強功能平台可客製化

※回頭車貨運收費標準

實力媲美榮威RX5 又一台爆款SUV準備圈錢了

相信很多年輕人第一眼看到名爵ZS,都會不由自主地被它全新的設計感所吸引。全新樣式的盾形進氣格珊,搭配別具一格的倫敦眼前大燈,視覺層面上非常凌厲驚艷。再加上優雅動感的車身設計,以及層次感豐富的尾部設計,讓名爵ZS渾身上下充滿國際範氣質。

如今SUV市場早已是一片紅海,合資自主你爭我趕,互不讓步。這其中做到逆襲上位、脫穎而出,上汽榮威RX5絕對稱得上是業內的一個新標桿。從上市之初就獲得極大關注度,再到上市第三個月銷量強勢突破2萬輛,順利闖入熱銷SUV車型前十位當中。

榮威RX5之所以能快速成為國人眼中的“新網紅”,一方面是得益於榮威RX5擁有國際範的設計外觀,另一方面是來自於“全球首款量產的互聯網汽車”的創新概念。

而在此次廣州車展上,除了上汽榮威RX5備受消費者關注之外,看到上汽旗下的MG品牌展館也是人氣爆棚。原來,藉著廣州車展的熱鬧,上汽集團也順勢推出了一款全新互聯網SUV-名爵ZS。

事實上,自打名爵ZS的首張設計圖曝光以來,關於名爵ZS的議論話題就沒斷過,單單在微博的“我的第一台互聯網汽車”話題閱讀量就超過了1.2億,更有眾多汽車圈、時尚圈以及互聯網的知名大咖們紛紛轉發討論名爵ZS。隨後在名爵ZS在廣州車展發布當天,一時間話題熱度飆升,在新浪汽車頻道,名爵ZS的話題閱讀量累計達到3.3億。無論是線上還是線下,名爵ZS可謂是賺飽了眼球,毫不誇張地說,名爵ZS儼然就是未來網紅的節奏呀!

於是,懷著無比激動好奇的心情走進去一瞧,然而,這款名爵ZS卻大大出乎的預料,整個外觀形象煥然一新,尤其是那前臉像足了“小捷豹”的姿態。但和榮威RX5的“律動設計”語言不同,名爵ZS採用的是全新的“感性力”設計理念,同時有別於以往的名爵車型,外形上更接近當下年輕人的審美觀念。相信很多年輕人第一眼看到名爵ZS,都會不由自主地被它全新的設計感所吸引。

全新樣式的盾形進氣格珊,搭配別具一格的倫敦眼前大燈,視覺層面上非常凌厲驚艷。再加上優雅動感的車身設計,以及層次感豐富的尾部設計,讓名爵ZS渾身上下充滿國際範氣質。況且,再說起顏值來,後來之秀的名爵ZS並不在大哥榮威RX5之下,這也難怪有網友稱名爵ZS為汽車界的彭於晏,既有高顏值,又有好身材!

憑藉於互聯網汽車的定位,榮威RX5成功打破自主品牌定價天花板。而作為上汽MG品牌旗下的首款互聯SUV,名爵ZS自然沒讓年輕人失望。名爵ZS將繼續搭載最先進的阿里YUN OS車載系統,而且該車載系統已經在榮威RX5身上得到廣泛應用,好評如潮。這也意味著,名爵ZS一樣能夠為追求時尚便捷的年輕人,提供強大的互聯網汽車服務,享受智能導航、遠程控制、人車互聯等輕鬆舒適的汽車生活。足以可見名爵ZS在研究年輕人的消費心理也是費了不少功夫,要不然,怎麼會說年輕人的第一台車就是它呢?

名爵ZS未上先熱的“反常”現象,在看來,一定程度上反映了名爵zs的產品實力是深受年輕人認可的。換句話說,名爵ZS將很有很大可能成為榮威RX5之後,又一位爆款SUV選手。既然如此,那還等什麼?馬上到年底了,趕緊叫老闆加工資,一起來期待明年名爵ZS的驚喜上市。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※想知道最厲害的網頁設計公司"嚨底家"!

※別再煩惱如何寫文案,掌握八大原則!

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※回頭車貨運收費標準

台中搬家公司費用怎麼算?

四、歸併排序 && 快速排序

一、歸併排序 Merge Sort

1.1、實現原理

  • 如果要排序一個數組,我們先把數組從中間分成前後兩部分,然後對前後兩部分分別排序,再將排好序的兩部分合併在一起,這樣整個數組就都有序了。
  • 歸併排序使用的就是分治思想。分治,顧名思義,就是分而治之,將一個大問題分解成小的子問題來解決。小的子問題解決了,大問題也就解決了。
  • 分治思想跟遞歸思想很像。分治算法一般都是用遞歸來實現的。 分治是一種解決問題的處理思想,遞歸是一種編程技巧,這兩者並不衝突。
  • 寫遞歸代碼的技巧就是,分析得出遞推公式,然後找到終止條件,最後將遞推公式翻譯成遞歸代碼。所以,要想寫出歸併排序的代碼,我們先寫出歸併排序的遞推公式。
  • 遞推公式:erge_sort(p…r) = merge(merge_sort(p…q), merge_sort(q+1…r))
  • 終止條件:p >= r 不用再繼續分解
  • merge_sort(p…r)表示,給下標從 p 到 r 之間的數組排序。
  • 我們將這個排序問題轉化為了兩個子問題, merge_sort(p…q) 和 merge_sort(q+1…r),其中下標 q 等於 p 和 r 的中間位置,也就是 (p+r)/2。
  • 當下標從 p 到 q 和從 q+1 到 r 這兩個子數組都排好序之後,我們再將兩個有序的子數組合併在一起,這樣下標從 p 到 r 之間的數據就也排好序了。
  • 實現思路如下:
/**
 * 歸併排序
 * @param arr 排序數據
 * @param n   數組大小
 */
public static void merge_sort(int[] arr, int n) {
    merge_sort_c(arr, 0, n - 1);
}

// 遞歸調用函數
public static void merge_sort_c(int[] arr, int p, int r) {
    // 遞歸終止條件
    if (p >= r) {
        return;
    }
    // 取p到r之間的中間位置q
    int q = (p + r) / 2;

    // 分治遞歸
    merge_sort_c(arr, p, q);
    merge_sort_c(arr, q + 1, r);
    // 將 arr[p...q] 和 arr[q+1...r] 合併為 arr[p...r]
    merge(arr[p...r],arr[p...q],arr[q + 1...r]);
}
  • merge(arr[p…r], arr[p…q], arr[q + 1…r]) 這個函數的作用就是,將已經有序的 arr[p…q] 和 arr[q+1…r] 合併成一個有序的數組,並且放入 arr[p…r]。
  • 如下圖所示,我們申請一個臨時數組 tmp,大小與 arr[p…r] 相同。
  • 我們用兩個游標 i 和 j,分別指向 arr[p…q] 和 arr[q+1…r] 的第一個元素。
  • 比較這兩個元素 arr[i] 和 arr[j],如果 arr[i] <= arr[j],我們就把 arr[i] 放入到臨時數組 tmp,並且 i 后移一位,否則將 arr[j] 放入到數組 tmp,j 后移一位。
  • 繼續上述比較過程,直到其中一個子數組中的所有數據都放入臨時數組中,再把另一個數組中的數據依次加入到臨時數組的末尾,這個時候,臨時數組中存儲的就是兩個子數組合併之後的結果了。
  • 最後再把臨時數組 tmp 中的數據拷貝到原數組 arr[p…r] 中。
/**
 * merge 合併函數
 * @param arr 數組
 * @param p   數組頭
 * @param q   數組中間位置
 * @param r   數組尾
 */
public static void merge(int[] arr, int p, int q, int r) {
    if (r <= p) return;

    // 初始化變量i j k
    int i = p;
    int j = q + 1;
    int k = 0;

    // 申請一個大小跟A[p...r]一樣的臨時數組
    int[] tmp = new int[r - p + 1];

    // 比較排序移動到臨時數組
    while ((i <= q) && (j <= r)) {
        if (arr[i] <= arr[j]) {
            tmp[k++] = arr[i++];
        } else {
            tmp[k++] = arr[j++];
        }
    }

    // 判斷哪個子數組中有剩餘的數據
    int start = i, end = q;
    if (j <= r) {
        start = j;
        end = r;
    }

    // 將剩餘的數據拷貝到臨時數組tmp
    while (start <= end) {
        tmp[k++] = arr[start++];
    }

    // 將tmp中的數組拷貝回 arr[p...r]
    for (int a = 0; a <= r - p; a++) {
        arr[p + a] = tmp[a];
    }
}

1.2、性能分析

  • 歸併排序穩不穩定關鍵要看 merge() 函數,也就是兩個有序子數組合併成一個有序數組的那部分代碼。
  • 在合併的過程中,如果 arr[p…q] 和 arr[q+1…r] 之間有值相同的元素,那我們可以像偽代碼中那樣,先把 arr[p…q] 中的元素放入 tmp 數組。
  • 這樣就保證了值相同的元素,在合併前後的先後順序不變。所以,歸併排序是一個穩定的排序算法
  • 其時間複雜度是非常穩定的,不管是最好情況、最壞情況,還是平均情況,時間複雜度都是 O(nlogn)
  • 歸併排序的合併函數,在合併兩個有序數組為一個有序數組時,需要藉助額外的存儲空間。
  • 儘管每次合併操作都需要申請額外的內存空間,但在合併完成之後,臨時開闢的內存空間就被釋放掉了。在任意時刻,CPU 只會有一個函數在執行,也就只會有一個臨時的內存空間在使用。
  • 臨時內存空間最大也不會超過 n 個數據的大小,所以空間複雜度是 O(n),不是原地排序算法。

二、快速排序 Quicksort

2.1、實現原理

  • 快排的思想是:如果要排序數組中下標從 p 到 r 之間的一組數據,可以選擇 p 到 r 之間的任意一個數據作為 pivot(分區點)。
  • 遍歷 p 到 r 之間的數據,將小於 pivot 的放到左邊,將大於 pivot 的放到右邊,將 pivot 放到中間。
  • 經過這一步驟之後,數組 p 到 r 之間的數據就被分成了三個部分,前面 p 到 q-1 之間都是小於 pivot 的,中間是 pivot,後面的 q+1 到 r 之間是大於 pivot 的。
  • 根據分治、遞歸的處理思想,可以用遞歸排序下標從 p 到 q-1 之間的數據和下標從 q+1 到 r 之間的數據,直到區間縮小為 1,就說明所有的數據都有序了。
  • 用遞推公式來將上面的過程寫出來的話,就是這樣:quick_sort(p…r) = quick_sort(p…q-1) + quick_sort(q+1, r)。
  • 終止條件:p >= r
/**
 * 快速排序
 * @param arr 排序數組
 * @param p 數組頭
 * @param r 數組尾
 */
public static void quickSort(int[] arr, int p, int r) {
    if (p >= r) 
        return;
    // 獲取分區點 並移動數據
    int q = partition(arr, p, r);
    quickSort(arr, p, q - 1);
    quickSort(arr, q + 1, r);
}

partition() 分區函數:

  • 是隨機選擇一個元素作為 pivot(一般情況下,可以選擇 p 到 r 區間的最後一個元素),然後對 arr[p…r] 分區,並將小於 pivot 的放右邊,大於的放左邊,函數返回 pivot 的下標。

partition() 的實現有兩種方式:

  • 一種是不考慮空間消耗,此時非常簡單。

    • 申請兩個臨時數組 X 和 Y,遍歷 arr[p…r],將小於 pivot 的元素都拷貝到臨時數組 X,將大於 pivot 的元素都拷貝到臨時數組 Y,最後再將數組 X 和數組 Y 中數據順序拷貝到arr[p…r]。
    /**
     * 分區函數方式一
     *
     * @param arr 數組
     * @param p   上標
     * @param r   下標
     * @return 函數返回 pivot 的下標
     */
    public static int partition1(int[] arr, int p, int r) {
        int[] xArr = new int[r - p + 1];
        int x = 0;
    
        int[] yArr = new int[r - p + 1];
        int y = 0;
    
        int pivot = arr[r];
    
        // 將小於 pivot 的元素都拷貝到臨時數組 X,將大於 pivot 的元素都拷貝到臨時數組 Y
        for (int i = p; i < r; i++) {
            // 小於 pivot 的存入 xArr 數組
            if (arr[i] < pivot) {
                xArr[x++] = arr[i];
            }
            // 大於 pivot 的存入 yArr 數組
            if (arr[i] > pivot) {
                yArr[y++] = arr[i];
            }
        }
    
        int q = x + p;
        // 再將數組 X 和數組 Y 中數據順序拷貝到 arr[p…r]
        for (int i = 0; i < x; i++) {
            arr[p + i] = xArr[i];
        }
        arr[q] = pivot;
        for (int i = 0; i < y; i++) {
            arr[q + 1 + i] = yArr[i];
        }
    
        return q;
    }
    
  • 另外一種有點類似選擇排序。

    • 我們通過游標 i 把 arr[p…r-1] 分成兩部分。arr[p…i-1] 的元素都是小於 pivot 的,我們暫且叫它“已處理區間”,arr[i…r-1] 是“未處理區間”。
    • 我們每次都從未處理的區間 arr[i…r-1] 中取一個元素 arr[j],與 pivot 對比,如果小於 pivot,則將其加入到已處理區間的尾部,也就是 arr[i]的位置。
    • 在數組某個位置插入元素,需要搬移數據,非常耗時。此時可以採用交換,在 O(1) 的時間複雜度內完成插入操作。需要將 arr[i] 與 arr[j] 交換,就可以在 O(1)時間複雜度內將 arr[j] 放到下標為 i 的位置。
    /**
     * 分區函數方式二
     * @param arr 數組
     * @param p   上標
     * @param r   下標
     * @return 函數返回pivot的下標
     */
    public static int partition2(int[] arr, int p, int r) {
        int pivot = arr[r];
        int i = p;
        for (int j = p; j < r; j++) {
            if (arr[j] < pivot) {
                if (i == j) {
                    ++i;
                } else {
                    int tmp = arr[i];
                    arr[i++] = arr[j];
                    arr[j] = tmp;
                }
            }
        }
        int tmp = arr[i];
        arr[i] = arr[r];
        arr[r] = tmp;
        return i;
    }
    

2.2、性能分析

  • 因為分區的過程涉及交換操作,如果數組中有兩個相同的元素,比如序列 6, 8, 7, 6, 3, 5, 9, 4,在經過第一次分區操作之後,兩個 6 的相對先後順序就會改變。所以,快速排序並不是穩定的排序算法
  • 按照上面的第二種分區方式,快速排序只涉及交換操作,所以空間複雜度為 Q(1),是原地排序算法
  • 時間複雜度為 Q(nlogn),最差為Q(n²)

三、兩者對比

歸併排序 快速排序
排序思想 處理過程由下到上,先處理子問題,然後在合併 由上到下,先分區,在處理子問題
穩定性
空間複雜度 Q(n) Q(1) 原地排序算法
時間複雜度 都為 O(nlogn) 平均為 O(nlogn),最差為 O(n²)
  • 歸併之所以是非原地排序算法,主要原因是合併函數無法在原地執行。快速排序通過設計巧妙的原地分區函數,可以實現原地排序,解決了歸併排序佔用太多內存的問題。
  • 歸併排序算法是一種在任何情況下時間複雜度都比較穩定的排序算法,這也使它存在致命的缺點,即歸併排序不是原地排序算法,空間複雜度比較高,是 O(n)。正因為此,它也沒有快排應用廣泛。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※想知道最厲害的網頁設計公司"嚨底家"!

※別再煩惱如何寫文案,掌握八大原則!

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※回頭車貨運收費標準

台中搬家公司費用怎麼算?

全球最大煤業投資者貝萊德倒戈 宣布投資組合將排除煤

摘錄自2020年2月4日科技新報報導

許多投資機構在這樣的潮流下宣示不再投資碳排放量高的產業,其中以煤業為指標。貝萊德(BlackRock)原本是全球投資煤業規模最大的投資機構,如今倒戈加入全球 117 個宣示投資組合排除煤業的大型投資機構行列,宣示投資煤業不僅可能造成商譽受損,更可能直接造成財務風險。

貝萊德管理 7 兆美元資產,在煤業有 170 億美元,如今覺得煤業資產越來越像燙手山芋,2020 年 1 月,執行長  Larry Fink 撰寫公開信,表示氣候變遷已成為企業長期表現的決定因素,過去市場對此反應緩慢,但如今投資者越來越開始認知到氣候變遷對投資的影響。

在這樣的壓力下,貝萊德順應客戶,進行投資組合調整,將有相當龐大的資本重新配置,貝萊德已於 2020 年 1 月初加入「氣候行動百強」(Climate Action 100+)宣示加入綠色投資的潮流,如今更明確提出減碳投資方案,首先就是針對煤。

貝萊德轉向顯示,綠色投資成主流,不進行綠色投資、迴避高碳排資產的投資機構,將面臨客戶與市場越來越高的質疑,造成資金成本提升,直接造成財務風險。

環境經濟
循環經濟
國際新聞
氣候變遷
綠色金融
煤炭

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

※別再煩惱如何寫文案,掌握八大原則!

「一帶一路」再受挫 泰國喊停中國湄公河開發計畫

摘錄自2020年2月6日聯合新聞網報導

泰國宣布停止由中國主導的湄公河開發計畫,理由是當地民眾反對,且北京不願提高經費在要開發的地區進行進一步調查。泰國政府副發言人特薩拉薩納庫爾(Trisulee Trisaranakul)表示,泰國政府內閣會議4日決定放棄這個項目。

路透報導,中國在2001年提出計畫,對湄公河進行疏浚,以方便大型貨船從中國的雲南省沿湄公河把商品運往泰國、老撾的港口和東南亞其他地區。

但這個計畫遭到湄公河沿岸的泰國社區民眾和環保人士的反對。他們擔心疏浚計畫會影響環境,而且只能讓中國獲利。一份泰國政府內閣的文件顯示,中國去年通知湄公河流沿岸的國家說,中國不再計畫繼續推動這個項目,可老撾和緬甸境內的疏浚工作依然繼續進行。

土地水文
生物多樣性
土地利用
國際新聞
泰國
湄公河
一帶一路
商業開發
水文

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

※推薦評價好的iphone維修中心

網頁設計最專業,超強功能平台可客製化

※別再煩惱如何寫文案,掌握八大原則!

防疫比環保重要?新罕布什爾州暫時重推塑膠袋

摘錄自2020年03月22日中央通訊社美國報導

美國新罕布什爾州長蘇努努今天(22日)敦促州內民眾,將可重複使用的環保袋留在家中暫時不用。他說,為對抗武漢肺炎,在此過渡期,購物宜用店家提供的新塑膠袋或紙袋。

此舉主要是愈發擔心賣場員工面對店內人潮擁擠,加上新型冠狀病毒疾病(COVID-19,武漢肺炎)具高度傳染性,且可能附著於各種物件表面,增加感染風險。州長蘇努努(Christopher Sununu)今天推文說:「由於確認(武漢肺炎病毒)社區傳染,顧及賣場裝袋人員、雜貨商和顧客潛在風險,購物者將環保袋暫留家中,這很重要。」

本週在新英格蘭醫學期刊(New England Journal of Medicine)發表的研究顯示,武漢肺炎病毒可在空氣中存活數小時,而在不同的物件表面甚至可存活數天之久。

公害污染
污染治理
國際新聞
美國
環保袋
武漢肺炎
疫情下的食衣住行
廢棄物

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

※教你寫出一流的銷售文案?

※超省錢租車方案

※回頭車貨運收費標準

分解塑膠救星?科學家在垃圾場中發現吃聚氨酯的微生物

環境資訊中心綜合外電;姜唯 編譯;林大利 審校

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※想知道最厲害的網頁設計公司"嚨底家"!

※別再煩惱如何寫文案,掌握八大原則!

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※回頭車貨運收費標準

台中搬家公司費用怎麼算?

Java多線程之深入解析ThreadLocal和ThreadLocalMap

ThreadLocal概述

ThreadLocal是線程變量,ThreadLocal中填充的變量屬於當前線程,該變量對其他線程而言是隔離的。ThreadLocal為變量在每個線程中都創建了一個副本,那麼每個線程可以訪問自己內部的副本變量。

它具有3個特性:

  1. 線程併發:在多線程併發場景下使用。
  2. 傳遞數據:可以通過ThreadLocal在同一線程,不同組件中傳遞公共變量。
  3. 線程隔離:每個線程變量都是獨立的,不會相互影響。

在不使用ThreadLocal的情況下,變量不隔離,得到的結果具有隨機性。

public class Demo {
    private String variable;

    public String getVariable() {
        return variable;
    }

    public void setVariable(String variable) {
        this.variable = variable;
    }

    public static void main(String[] args) {
        Demo demo = new Demo();
        for (int i = 0; i < 5; i++) {
            new Thread(()->{
                demo.setVariable(Thread.currentThread().getName());
                System.out.println(Thread.currentThread().getName()+" "+demo.getVariable());
            }).start();
        }
    }
}

輸出結果:

Thread-2 Thread-2
Thread-4 Thread-4
Thread-1 Thread-2
Thread-0 Thread-2
Thread-3 Thread-3

View Code

在不使用ThreadLocal的情況下,變量隔離,每個線程有自己專屬的本地變量variable,線程綁定了自己的variable,只對自己綁定的變量進行讀寫操作。

public class Demo {
    private ThreadLocal<String> variable = new ThreadLocal<>();

    public String getVariable() {
        return variable.get();
    }

    public void setVariable(String variable) {
        this.variable.set(variable);
    }

    public static void main(String[] args) {
        Demo demo = new Demo();
        for (int i = 0; i < 5; i++) {
            new Thread(()->{
                demo.setVariable(Thread.currentThread().getName());
                System.out.println(Thread.currentThread().getName()+" "+demo.getVariable());
            }).start();
        }
    }
}

輸出結果:

Thread-0 Thread-0
Thread-1 Thread-1
Thread-2 Thread-2
Thread-3 Thread-3
Thread-4 Thread-4

View Code

synchronized和ThreadLocal的比較

上述需求,通過synchronized加鎖同樣也能實現。但是加鎖對性能和併發性有一定的影響,線程訪問變量只能排隊等候依次操作。TreadLocal不加鎖,多個線程可以併發對變量進行操作。

public class Demo {
    private String variable;
    public String getVariable() {
        return variable;
    }

    public void setVariable(String variable) {
        this.variable = variable;
    }

    public static void main(String[] args) {
        Demo demo = new Demo1();
        for (int i = 0; i < 5; i++) {
            new Thread(()->{
                synchronized (Demo.class){
                    demo.setVariable(Thread.currentThread().getName());
                    System.out.println(Thread.currentThread().getName()+" "+demo.getVariable());
                }
            }).start();
        }
    }
}

ThreadLocal和synchronized都是用於處理多線程併發訪問資源的問題。ThreadLocal是以空間換時間的思路,每個線程都擁有一份變量的拷貝,從而實現變量隔離,互相不干擾。關注的重點是線程之間數據的相互隔離關係。synchronized是以時間換空間的思路,只提供一個變量,線程只能通過排隊訪問。關注的是線程之間訪問資源的同步性。ThreadLocal可以帶來更好的併發性,在多線程、高併發的環境中更為合適一些。

ThreadLocal使用場景

轉賬事務的例子

JDBC對於事務原子性的控制可以通過setAutoCommit(false)設置為事務手動提交,成功后commit,失敗后rollback。在多線程的場景下,在service層開啟事務時用的connection和在dao層訪問數據庫的connection應該要保持一致,所以併發時,線程只能隔離操作自已的connection。

解決方案1:service層的connection對象作為參數傳遞給dao層使用,事務操作放在同步代碼塊中。

存在問題:傳參提高了代碼的耦合程度,加鎖降低了程序的性能。

解決方案2:當需要獲取connection對象的時候,通過ThreadLocal對象的get方法直接獲取當前線程綁定的連接對象使用,如果連接對象是空的,則去連接池獲取連接,並通過ThreadLocal對象的set方法綁定到當前線程。使用完之後調用ThreadLocal對象的remove方法解綁連接對象。

ThreadLocal的優勢:

  1. 可以方便地傳遞數據:保存每個線程綁定的數據,需要的時候可以直接獲取,避免了傳參帶來的耦合。
  2. 可以保持線程間隔離:數據的隔離在併發的情況下也能保持一致性,避免了同步的性能損失。

ThreadLocal的原理

每個ThreadLocal維護一個ThreadLocalMap,Map的Key是ThreadLocal實例本身,value是要存儲的值。

每個線程內部都有一個ThreadLocalMap,Map裏面存放的是ThreadLocal對象和線程的變量副本。Thread內部的Map通過ThreadLocal對象來維護,向map獲取和設置變量副本的值。不同的線程,每次獲取變量值時,只能獲取自己對象的副本的值。實現了線程之間的數據隔離。

JDK1.8的設計相比於之前的設計(通過ThreadMap維護了多個線程和線程變量的對應關係,key是Thread對象,value是線程變量)的好處在於,每個Map存儲的Entry數量變少了,線程越多鍵值對越多。現在的鍵值對的數量是由ThreadLocal的數量決定的,一般情況下ThreadLocal的數量少於線程的數量,而且並不是每個線程都需要創建ThreadLocal變量。當Thread銷毀時,ThreadLocal也會隨之銷毀,減少了內存的使用,之前的方案中線程銷毀后,ThreadLocalMap仍然存在。

ThreadLocal源碼解析

set方法

首先獲取線程,然後獲取線程的Map。如果Map不為空則將當前ThreadLocal的引用作為key設置到Map中。如果Map為空,則創建一個Map並設置初始值。

get方法

首先獲取當前線程,然後獲取Map。如果Map不為空,則Map根據ThreadLocal的引用來獲取Entry,如果Entry不為空,則獲取到value值,返回。如果Map為空或者Entry為空,則初始化並獲取初始值value,然後用ThreadLocal引用和value作為key和value創建一個新的Map。

 

remove方法

刪除當前線程中保存的ThreadLocal對應的實體entry。

initialValue方法

該方法的第一次調用發生在當線程通過get方法訪問線程的ThreadLocal值時。除非線程先調用了set方法,在這種情況下,initialValue才不會被這個線程調用。每個線程最多調用依次這個方法。

該方法只返回一個null,如果想要線程變量有初始值需要通過子類繼承ThreadLocal的方式去重寫此方法,通常可以通過匿名內部類的方式實現。這個方法是protected修飾的,是為了讓子類覆蓋而設計的。

ThreadLocalMap源碼分析

ThreadLocalMap是ThreadLocal的靜態內部類,沒有實現Map接口,獨立實現了Map的功能,內部的Entry也是獨立實現的。

與HashMap類似,初始容量默認是16,初始容量必須是2的整數冪。通過Entry類的數據table存放數據。size是存放的數量,threshold是擴容閾值。

 Entry繼承自WeakReference,key是弱引用,其目的是將ThreadLocal對象的生命周期和線程生命周期解綁。

弱引用和內存泄漏

內存溢出:沒有足夠的內存供申請者提供

內存泄漏:程序中已動態分配的堆內存由於某種原因程序未釋放或無法釋放,造成系統內存的浪費,導致程序運行速度減慢甚至系統崩潰等驗證后溝。內存泄漏的堆積會導致內存溢出。

弱引用:垃圾回收器一旦發現了弱引用的對象,不管內存是否足夠,都會回收它的內存。

內存泄漏的根源是ThreadLocalMap和Thread的生命周期是一樣長的。

如果在ThreadLocalMap的key使用強引用還是無法完全避免內存泄漏,ThreadLocal使用完后,ThreadLocal Reference被回收,但是Map的Entry強引用了ThreadLocal,ThreadLocal就無法被回收,因為強引用鏈的存在,Entry無法被回收,最後會內存泄漏。

在實際情況中,ThreadLocalMap中使用的key為ThreadLocal的弱引用,value是強引用。如果ThreadLocal沒有被外部強引用的話,在垃圾回收的時候,key會被清理,value不會。這樣ThreadLocalMap就出現了為null的Entry。如果不做任何措施,value永遠不會被GC回收,就會產生內存泄漏。

ThreadLocalMap中考慮到這個情況,在set、get、remove操作后,會清理掉key為null的記錄(將value也置為null)。使用完ThreadLocal后最後手動調用remove方法(刪除Entry)。

也就是說,使用完ThreadLocal后,線程仍然運行,如果忘記調用remove方法,弱引用比強引用可以多一層保障,弱引用的ThreadLocal會被回收,對應的value會在下一次ThreadLocalMap調用get、set、remove方法的時候被清除,從而避免了內存泄漏。

Hash衝突的解決

ThreadLocalMap的構造方法

構造函數創建一個長隊為16的Entry數組,然後計算firstKey的索引,存儲到table中,設置size和threshold。

firstKey.threadLocalHashCode & (INITIAL_CAPACITY-1)用來計算索引,nextHashCode是Atomicinteger類型的,Atomicinteger類是提供原子操作的Integer類,通過線程安全的方式來加減,適合高併發使用。

每次在當前值上加上一個HASH_INCREMENT值,這個值和斐波拉契數列有關,主要目的是為了讓哈希碼可以均勻的分佈在2的n次方的數組裡,從而盡量的避免衝突。

當size為2的冪次的時候,hashCode & (size – 1)相當於取模運算hashCode % size,位運算比取模更高效一些。為了使用這種取模運算, 所有size必須是2的冪次。這樣一來,在保證索引不越界的情況下,減少衝突的次數。

ThreadLocalMap的set方法

ThreadLocalMao使用了線性探測法來解決衝突。線性探測法探測下一個地址,找到空的地址則插入,若整個空間都沒有空餘地址,則產生溢出。例如:長度為8的數組中,當前key的hash值是6,6的位置已經被佔用了,則hash值加一,尋找7的位置,7的位置也被佔用了,回到0的位置。直到可以插入為止,可以將這個數組看成一個環形數組

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※別再煩惱如何寫文案,掌握八大原則!

※教你寫出一流的銷售文案?

※超省錢租車方案

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※回頭車貨運收費標準