“操控之王”大7座SUV國產後要死磕漢蘭達?_租車

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

日本、大陸,發現這些先進的國家已經早就讓電動車優先上路,而且先進國家空氣品質相當好,電動車節能減碳可以減少空污

5T渦輪增壓發動機,最大馬力253匹、峰值扭矩高達420牛米。傳動系統搭載的是一款六速手自一體變速箱。CX-9是馬自達率先針對北美市場研發的7座SUV車型,所以在北美已經率先上市,據悉售價為31000美金,約合人民幣20萬元左右,隨着全球性的SUV熱潮不斷升溫,作為汽車消費大國的中國,不出意外也會分到一杯羹。

眾所周知馬自達旗下的車型幾乎都以優秀的操控性見長,旗下昂克賽拉、阿特茲兩台轎車在同級橫比當中操控性都是非常出眾的典型,而今年所推出的轎跑型SUV——CX-4更是將SUV的操控性提高了一個層次。而根據有關消息,今年早些時候在北美率先上市的全新一代馬自達7座SUV CX-9,將在明年正式由一汽馬自達進行國產。

馬自達近年來的“魂動”設計理念已經深入人心,無論是昂克賽拉、阿特茲、還是CX-4,在很多人眼裡都是“騷的無與倫比”。

全新一代馬自達CX-9依然延續了“魂動”的設計,從已經曝光的圖片我們可以看到,CX-9的外觀將家族化的靈動感進行了一定程度上的柔化,讓視覺侵略性極強的外觀效果和SUV的威武感融合得比較恰當。

全新CX-9採用了七座的作為布局,軸距達到了2930mm,小編猜測不出意外的話,

※超省錢租車方案

商務出差、學生出遊、旅遊渡假、臨時用車!GO 神州租賃有限公司!合法經營、合法連鎖、合法租賃小客車!

國產後的馬自達CX-9軸距會將進一步加長,預計屆時國產後的CX-9車內乘坐空間會更加充裕。

值得注意的是,隨着國際大流下的渦輪增壓發動機大肆普及,在豐田、本田這兩個日系品牌紛紛推出渦輪增壓車型,在動力系統方面頗有一套造詣的馬自達也坐不住了。全新馬自達CX-9搭載了一款創馳藍天的2.5T渦輪增壓發動機,最大馬力253匹、峰值扭矩高達420牛米。傳動系統搭載的是一款六速手自一體變速箱。

CX-9是馬自達率先針對北美市場研發的7座SUV車型,所以在北美已經率先上市,據悉售價為31000美金,約合人民幣20萬元左右,隨着全球性的SUV熱潮不斷升溫,作為汽車消費大國的中國,不出意外也會分到一杯羹。

全文總結:根據小編的猜測,作為馬自達旗下定位高端化的SUV車型,進入國產以後售價應該會向現在的漢蘭達和福特銳界看齊,而2.5T的馬自達CX-9將會是以頂配車型進行銷售,較低的配置應該還會搭載現在阿特茲的2.0L自然吸氣發動機,而2.5L的自然吸氣發動機或許將不會在CX-9車型中搭載。

由於目前官方對於CX-9國產的消息透露的不多,具體投產和上市時間暫時不得而知,作為一款較為值得關注的7座SUV車型,我們也會持續對其保持高度關注並進行消息更新。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

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

有別於一般網頁架設公司,除了模組化的架站軟體,我們的營業主軸還包含:資料庫程式開發、網站建置、網頁設計、電子商務專案開發、系統整合、APP設計建置、專業網路行銷。

YouTube 的 PWA 應用終於在 Windows 與 ChromeOS 上推出了(內含一秒安裝方式)_潭子電動車

※超省錢租車方案

商務出差、學生出遊、旅遊渡假、臨時用車!GO 神州租賃有限公司!合法經營、合法連鎖、合法租賃小客車!

一直以來,Windows 平台上都沒有可以直接安裝到電腦上的 YouTube 應用程式,所以每次當你想要觀賞影片時,都必須先打開瀏覽器,然後再前往 YouTube 網站上,不像在手機上那麼直接點擊就能前往。不過,現在 YouTube 的 PWA 應用終於登陸 Windows 10 與 ChromeOS 上,以後不用那麼麻煩囉!

YouTube 的 PWA 應用終於在 Windows 與 ChromeOS 上推出了

明明 YouTube 在全球擁有那麼多用戶,但卻遲遲沒有在電腦版本上推出像手機那般一點就開的應用程式,大家只能從瀏覽器前往網頁版本,隨著 PWA(漸進式網頁應用程式)的興起,這件小事日前已經迎刃而解。只要你是 Windows 10 或 ChromeOS 作業系統,現在都能安裝 YouTube 的 PWA。

怎麼安裝呢?首先打開你的 Chrome 或 Microsoft Edge 瀏覽器,然後前往 YouTube 網站。接著點選瀏覽器網址列旁邊的「+」號即可進行安裝。由於 Chrome 與 Edge 瀏覽器上會看到的圖示不太一樣,下面筆者將兩者都截圖下來,這樣大家比較好辨認。接著同意安裝後就馬上完成,完全不需等候。

安裝好後,你可以在電腦桌面上看到開啟 YouTube PWA 應用的捷徑,同時在開始功能表中也可以看到 YouTube PWA 的身影,未來想要看 YouTube 影片,你可以直接點擊圖示就能快速喚出。

YouTube PWA 應用的好處是它會變成獨立應用般運作(如下圖),不需要另外開瀏覽器,特別是當你瀏覽器分頁或視窗開了很多的時候,從一大堆網站裡面撈出 YouTube 也並不是那麼容易的事情,非常難找。其他包含功能、介面,其實就與網頁版差不多,沒有什麼需要重新適應的問題。

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

日本、大陸,發現這些先進的國家已經早就讓電動車優先上路,而且先進國家空氣品質相當好,電動車節能減碳可以減少空污

如果某日你想要移除它,就像移除其他 Windows 系統中的應用程式與軟體一樣,從設定功能中去執行就好,不會有一安裝就像被咬住不放的感覺。目前 YouTube PWA 需在網路連線狀態下運作,Google 一直在鼓勵各家 PWA 的開發者於應用中增加更多離線功能,這表示未來我們還可以在 YouTube PWA 中看到一些新的離線驚喜,筆者個人是希望可以有影片下載,這樣就算在網路不方便連接的地方也可以輕鬆看啦!

您也許會喜歡:

【推爆】終身$0月租 打電話只要1元/分

立達合法徵信社-讓您安心的選擇

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

有別於一般網頁架設公司,除了模組化的架站軟體,我們的營業主軸還包含:資料庫程式開發、網站建置、網頁設計、電子商務專案開發、系統整合、APP設計建置、專業網路行銷。

我終於搞清了啥是 HTTPS 了_台中搬家

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

台中搬家公司推薦超過30年經驗,首選台中大展搬家

引言

最近上海連續下了一周雨,溫度一夜之間回到解放前,穿夏裝的我被凍得瑟瑟發抖,躲在家裡哪也不想去。

在家百無聊賴的刷着網頁,看到公眾號後台的留言,有同學問我 HTTP 和 HTTPS 有啥區別?

這還用問,當然是 HTTPS 要比 HTTP 更加的安全啊,沒看到後面帶着個 S 呢么,帶着 S 就這麼 NB 。

然後同學的下一個問題把我問懵逼了,為啥帶 S 的更安全呢?能詳細的講講么。

我跟你講嗷,不是我吹,我這麼多年。。。。。。

就沒見過你這麼刨根究底的同學,老問這種我也不是很清楚的問題。

雖然這個問題問的我老臉一紅,但是我有一種不要臉的精神 「我不會,但是我可以學」 。

HTTP

首先先來了解下 HTTP :

HTTP 協議全稱為:Hyper Text Transfer Protocol ,翻譯過來就是超文本傳輸協議,請不要質疑這個翻譯,我專門用百度翻譯翻了一下。

TCP/IP 四層模型應該都知道的,有數據鏈路層,網絡層,傳輸層和應用層:

而 HTTP 協議就是位於 TCP/IP 四層模型的應用層上。

這裏很多人都會混淆 TCP 和 HTTP ,實際上 HTTP 是基於 TCP 連接基礎上的。

簡單的說, TCP 就是單純建立連接,不涉及任何我們需要請求的實際數據,簡單的傳輸。而 HTTP 是用來收發數據,即實際應用上來的。

HTTP 協議通過請求和響應在客戶端和服務端之間收發數據,進行通信:

HTTPS

HTTP 協議看起來好像沒啥問題,唯一的問題就是不夠安全,因為 HTTP 協議的傳輸方式完全是由明文傳輸的,不做任何加密,這就讓一些不懷好意的人有了可乘之機。

這種傳輸方式誘發了一種經典的攻擊方式:中間人攻擊。

對於這種情況,最簡單的我們可以使用加密方案,比如使用 AES 加密,服務端和客戶端先約定一個隨機生成的密鑰 key ,後續的通信中,所有的信息都使用這個密鑰進行 AES 加密:

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

擁有20年純熟搬遷經驗,提供免費估價且流程透明更是5星評價的搬家公司

這樣雖然後面的通信過程安全了,但是我們在第一發送 AES 密鑰的時候還是存在被中間人攔截的風險,一旦中間人攔截到我們的密鑰,可用對密鑰進行更換或者直接解密請求內容:

這時我們可以使用不對稱加密,來專門對密鑰的傳輸做一次額外的保護。

不對稱加密會有兩個密鑰,一個是公鑰,一個是私鑰。明文可以使用公鑰加密私鑰解密,也可以使用私鑰加密公鑰解密。

現在比較通用的非對稱加密算法有 RSA 。

看到這裏的同學一定在奇怪,既然都使用了不對稱加密,為啥只對 AES 的密鑰做不對稱加密,好像有多此一舉,完全可以對後續所有的通信信息全都使用不對稱加密。

因為不對稱加密相比較對稱加密性能上存在明顯的劣勢,可能你覺得在一個請求中多消耗幾 ms 或者幾 ns 無所謂,但是請求到達服務端是要進行解密,每個請求都多消耗幾 ms 累計起來還是非常可觀的。

上面這個方案看起來已經很安全了,中間人即使攔截到我們的公鑰,由於不知道我們的私鑰貌似也沒辦法解密。

實際上中間人完全不需要解密我們的信息,他可以生成一對新的公私鑰發送給客戶端進行攻擊,後續客戶端的通信中間人使用自己創造的私鑰進行解密,然後通過服務端生成的公鑰進行加密返回給服務端:

CA 證書

上面的問題我們僅通過客戶端和服務端已經沒辦法了,這時候需要引入新的第三方機構,一個頒發 CA 證書的機構。

常見的第三方 CA 機構有:Symantec(賽門鐵克),Comodo(科莫多),GeoTrust(環度網信),GoDaddy,Thawte,daoRapidSSL 等等。

在中間人攻擊中,我們遇到的問題不是加密算法不夠神奇,不是密鑰方式不夠嚴謹,而是我們沒有辦法向我們的客戶端表明我們給他的公鑰是我們的,是不是很像我沒辦法證明我是我的問題。

所以第三方機構應運而生,第三方機構只做一件事情,將服務端的公鑰刻上了我們的名字(CA 證書),客戶端接收到公鑰之後,只需要來第三方機構這裏查詢,就能知道這個公鑰是不是真的服務器,然後再將自己生成的 AES 密鑰使用 CA 證書中解密得到的公鑰進行加密后發送給服務端。

最後服務端使用私鑰解密得到 AES 密鑰,就可以愉快的和客戶端進行通信了。

最後的最後,CA 機構驗證不是每次都要去 CA 機構查詢。這樣做太傻了而且太耗時,尤其是很多 CA 機構的服務都在海外,這樣一來一去消耗的時間太多了。

CA 機構高明的地方就在於,我們去找它註冊公鑰,它會使用另一個來註冊的公司的私鑰對我們的公鑰加密,得到一個我們的公鑰的指紋(全球唯一),然後將這家公司的公鑰信息(其實也是證書)和我們的公鑰以及我們公鑰的指紋打包成一個證書。

當我們使用 HTTPS 將證書下發給客戶端校驗時,客戶端(比如瀏覽器)從證書中看到了上級證書的信息,恰巧這個證書就在瀏覽器(或者本機)中,已經被驗證過是合法的,瀏覽器只要使用這個證書中的公鑰將我們的公鑰指紋進行解密,然後比對我們的公鑰信息就知道我們也是的合法的。因為假證書中的公鑰簽名不可能被合法的上級證書中公鑰解密 。

這段稍微有點繞,慢慢看多看幾次就理解了。

參考

https://www.jianshu.com/p/691b8ba3a70f

https://blog.csdn.net/u010144805/article/details/80803059

https://blog.csdn.net/caofengtao1314/article/details/87912078

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

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

擁有20年純熟搬遷經驗,提供免費估價且流程透明更是5星評價的搬家公司

游泳池誤倒不明液體冒白煙 19名幼童急送醫_貨運

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

網動結合了許多網際網路業界的菁英共同研發簡單易操作的架站工具,及時性的更新,為客戶創造出更多的網路商機。

中和景新國小委外由游泳池晚間發生誤混液體,造成多名幼童不適,環保署人員趕抵檢查現地。(吳家詮翻攝)

新北景新國小外包游泳池,晚間發生誤倒入不明液體,早成多名在場幼童身體不適。(圖摘自Google Map)

新北市中和區景新國小旁一處私人游泳池,晚間現場疑似救生員誤將不明液體倒入泳池產生白煙,造成現場場19名小朋友噁心嘔吐,送新北雙和醫院急救。

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

搬家價格與搬家費用透明合理,不亂收費。本公司提供下列三種搬家計費方案,由資深專業組長到府估價,替客戶量身規劃選擇最經濟節省的計費方式

 

消防局初步了解,現場為伊藤萬游泳晚上6時50分至8時為學校的游泳課程,因工作人員誤將強酸(氯)及強鹼(消毒水)加在一起,故產生化學作用冒煙,引起上課學生身體不適,小朋友分屬不同學校參加游泳課程,目前送醫計有18名,有1名為家長自行送往醫院,消防局救護車載運10女8男(18名),均送往雙和醫院。

 

雙和醫院稍晚表示,另有5名泳池的教練也因身體不適,陸續到院檢查治療。

※回頭車貨運收費標準

宇安交通關係企業,自成立迄今,即秉持著「以誠待人」、「以實處事」的企業信念

XStream學習手冊_租車

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

日本、大陸,發現這些先進的國家已經早就讓電動車優先上路,而且先進國家空氣品質相當好,電動車節能減碳可以減少空污

一、前言

1、XStream官網

    http://x-stream.github.io

2、XStream是什麼

    XStream是一個簡單的基於Java的類庫,用來將Java對象序列化成XML(JSON)或反序列化為對象(即:可以輕易的將Java對象和XML文檔相互轉換)

3、XSteam能幹什麼

    XStream在運行時使用Java反射機制對要進行序列化的對象樹的結構進行探索,並不需要對對象作出修改。XStream可以序列化內部字段,包括私private和final字段,並且支持非公開類以及內部類。

    在缺省情況下,XStream不需要配置映射關係,對象和字段將映射為同名XML元素。但是當對象和字段名與XML中的元素名不同時,XStream支持指定別名。XStream支持以方法調用的方式,或是Java 標註的方式指定別名。

    XStream在進行數據類型轉換時,使用系統缺省的類型轉換器。同時,也支持用戶自定義的類型轉換器。

4、XStream特點

  • 使用方便 – XStream的API提供了一個高層次外觀,以簡化常用的用例

  • 無需創建映射 – XStream的API提供了默認的映射大部分對象序列化

  • 性能  – XStream快速和低內存佔用,適合於大對象圖或系統

  • 乾淨的XML  – XStream創建一個乾淨和緊湊XML結果,這很容易閱讀

  • 不需要修改對象 – XStream可序列化的內部字段,如private和final字段,支持非公開類和內部類。默認構造函數不是強制性的要求

  • 完整對象圖支持 – XStream允許保持在對象模型中遇到的重複引用,並支持循環引用

  • 可自定義的轉換策略 – 定製策略可以允許特定類型的定製被表示為XML的註冊

  • 安全框架 – XStream提供了一個公平控制有關解組的類型,以防止操縱輸入安全問題

  • 錯誤消息 – 出現異常是由於格式不正確的XML時,XStream拋出一個統一的例外,提供了詳細的診斷,以解決這個問題

  • 另一種輸出格式 – XStream支持其它的輸出格式,如JSON

5、XStream常見的用途

    傳輸、持久化、配置、單元測試

二、XStream入門

1、添加XSteam依賴

<dependency> <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream</artifactId> <version>1.4.12</version> </dependency> <dependency> <groupId>org.codehaus.jettison</groupId> <artifactId>jettison</artifactId> <version>1.4.1</version> </dependency>

2、XStream基本使用

package io.github.xstream.test01; ​ import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver; import lombok.AllArgsConstructor; import lombok.ToString; ​ public class XStreamTest01 { public static void main(String[] args) { Student student = new Student("張三", 20); XStream xStream = new XStream();//需要XPP3庫 //XStream xStream = new XStream(new DomDriver());//不需要XPP3庫 //XStream xStream = new XStream(new StaxDriver());//不需要XPP3庫開始使用Java 6 //XML序列化 String xml = xStream.toXML(student); System.out.println(xml); //XML反序列化 student = (Student) xStream.fromXML(xml); System.out.println(student); ​ xStream = new XStream(new JettisonMappedXmlDriver()); xStream.setMode(XStream.NO_REFERENCES); //Json序列化 String json = xStream.toXML(student); System.out.println(json); //Json反序列 student = (Student) xStream.fromXML(json); System.out.println(student); } } ​ @AllArgsConstructor @ToString class Student { private String name; private int age; }

3、程序運行結果

<io.github.xstream.test01.Student>
  <name>張三</name>
  <age>20</age>
</io.github.xstream.test01.Student>
Security framework of XStream not initialized, XStream is probably vulnerable.
Student(name=張三, age=20)
{"io.github.xstream.test01.Student":{"name":"張三","age":20}}
Student(name=張三, age=20)
Security framework of XStream not initialized, XStream is probably vulnerable.

注意:文中使用到的Lombok註解,Lombok依賴自行添加;XStream序列化XML時需要引用的jar包:xstream-[version].jar、xpp3-[version].jar、xmlpull-[version].jar,當引入xstream依賴後會自動依賴xpp3、xmlpull依賴。XStream序列化JSON需要引用的jar包:jettison-[version].jar。

    使用XStream序列化時,對JavaBean沒有任何限制。JavaBean的字段可以是私有的,也可以沒有getter或setter方法,還可以沒有默認的構造函數。

    XStream序列化XML時可以允許用戶使用不同的XML解析器,用戶可以使用一個標準的JAXP DOM解析器或自Java 6集成STAX解析器。這樣用戶就不需要依賴xpp3-[version].jar。

三、XStream混疊

1、混疊是一種技術來定製生成XML或者使用XStream特定的格式化XML。假設,一個下面的XML格式是用於序列化/反序列化Student對象。

<student name="張三"> <phone> <brand>小米</brand> <description>小米手機的描述</description> </phone> <phone> <brand>蘋果</brand> <description>蘋果手機的描述</description> </phone> </student>

2、根椐上面的XML格式,我們創建實體類

@AllArgsConstructor @ToString class Student { private String studentName; private List<Phone> phones; } ​ @AllArgsConstructor @ToString class Phone { private String brand; private String description; }

3、執行代碼

package io.github.xstream.test02; ​ import com.thoughtworks.xstream.XStream; import lombok.AllArgsConstructor; import lombok.ToString; ​ import java.util.ArrayList; import java.util.List; ​ public class XStreamTest02 { public static void main(String[] args) { List<Phone> phones = new ArrayList<>(); phones.add(new Phone("小米手機", "小米手機的描述")); phones.add(new Phone("蘋果手機", "蘋果手機的描述")); Student student = new Student("張三", phones); ​ XStream xStream = new XStream();//需要XPP3庫 //XML序列化 String xml = xStream.toXML(student); System.out.println(xml); } } ​ @AllArgsConstructor @ToString class Student { private String studentName; private List<Phone> phones; } ​ @AllArgsConstructor @ToString class Phone { private String brand; private String description; }

4、驗證輸出

<io.github.xstream.test02.Student> <studentName>張三</studentName> <phones> <io.github.xstream.test02.Phone> <brand>小米手機</brand> <description>小米手機的描述</description> </io.github.xstream.test02.Phone> <io.github.xstream.test02.Phone> <brand>蘋果手機</brand> <description>蘋果手機的描述</description> </io.github.xstream.test02.Phone> </phones> </io.github.xstream.test02.Student>

    在上面的結果,我們已經看到了Student對象名稱是完全合格的。要替換它作為學生的標籤,按照四、XStream類混疊的步驟

    另外,在上述結果中可以看出,所需studentName要重命名來命名。要替換它,按照五、XStream字段混疊的步驟

    在上面的結果,我們可以看到手機標記被添加成為手機列表。替換它,按照六、XStream隱式集合混疊的步驟

    在上面的結果,我們可以看到這個名字來作為一個子節點,需要將它作為根節點的屬性。替換它,按照七、XStream屬性混疊的步驟

四、XStream類混疊

1、類混疊是用來創建一個類的XML完全限定名稱的別名。讓我們修改XStreamTest02例子,將下面的代碼添加到XStreamTest02例子裏面

xStream.alias("student", Person02.class); xStream.alias("phone", Phone.class);

2、執行代碼

package io.github.xstream.test02; ​ import com.thoughtworks.xstream.XStream; import lombok.AllArgsConstructor; import lombok.ToString; ​ import java.util.ArrayList; import java.util.List; ​ public class XStreamTest02 { public static void main(String[] args) { List<Phone> phones = new ArrayList<>(); phones.add(new Phone("小米手機", "小米手機的描述")); phones.add(new Phone("蘋果手機", "蘋果手機的描述")); Student student = new Student("張三", phones); ​ XStream xStream = new XStream();//需要XPP3庫 xStream.alias("student", Student.class); xStream.alias("phone", Phone.class); ​ //XML序列化 String xml = xStream.toXML(student); System.out.println(xml); } } ​ @AllArgsConstructor @ToString class Student { private String studentName; private List<Phone> phones; } ​ @AllArgsConstructor @ToString class Phone { private String brand; private String description; }

3、執行結果

<student> <studentName>張三</studentName> <phones> <phone> <brand>小米手機</brand> <description>小米手機的描述</description> </phone> <phone> <brand>蘋果手機</brand> <description>蘋果手機的描述</description> </phone> </phones> </student>

可以看到<io.github.xstream.test02.Student>和<io.github.xstream.test02.Phone>分別被修改為了<student>和<phone>

五、XStream字段混疊

1、字段混疊用於創建以XML字段的別名。讓我們再次修改原來的XStreamTest02例子,將下面的代碼添加到XStreamTest02例子裏面

xStream.aliasField("name", Student.class, "studentName");

2、執行代碼

package io.github.xstream.test02; ​ import com.thoughtworks.xstream.XStream; import lombok.AllArgsConstructor; import lombok.ToString; ​ import java.util.ArrayList; import java.util.List; ​ public class XStreamTest02 { public static void main(String[] args) { List<Phone> phones = new ArrayList<>(); phones.add(new Phone("小米手機", "小米手機的描述")); phones.add(new Phone("蘋果手機", "蘋果手機的描述")); Student student = new Student("張三", phones); ​ XStream xStream = new XStream();//需要XPP3庫 xStream.alias("student", Student.class); xStream.alias("phone", Phone.class); xStream.aliasField("name", Student.class, "studentName"); ​ //XML序列化 String xml = xStream.toXML(student); System.out.println(xml); } } ​ @AllArgsConstructor @ToString class Student { private String studentName; private List<Phone> phones; } ​ @AllArgsConstructor @ToString class Phone { private String brand; private String description; }

3、執行結果

<student> <name>張三</name> <phones> <phone> <brand>小米手機</brand> <description>小米手機的描述</description> </phone> <phone> <brand>蘋果手機</brand> <description>蘋果手機的描述</description> </phone> </phones> </student>

可以看到<studentName>被修改為了<name>

六、XStream隱式集合混疊

1、隱式集合混疊時使用的集合是表示在XML無需显示根。例如,在我們的例子中,我們需要一個接一個,但不是在根節點來显示每一個節點。讓我們再次修改原來的XStreamTest02例子,將下面的代碼添加到XStreamTest02例子裏面

xStream.addImplicitCollection(Student.class, "phones");

2、執行代碼

package io.github.xstream.test02; ​ import com.thoughtworks.xstream.XStream; import lombok.AllArgsConstructor; import lombok.ToString; ​ import java.util.ArrayList; import java.util.List; ​ public class XStreamTest02 { public static void main(String[] args) { List<Phone> phones = new ArrayList<>(); phones.add(new Phone("小米手機", "小米手機的描述")); phones.add(new Phone("蘋果手機", "蘋果手機的描述")); Student student = new Student("張三", phones); ​ XStream xStream = new XStream();//需要XPP3庫 xStream.alias("student", Student.class); xStream.alias("phone", Phone.class); xStream.aliasField("name", Student.class, "studentName"); xStream.addImplicitCollection(Student.class, "phones"); ​ //XML序列化 String xml = xStream.toXML(student); System.out.println(xml); } } ​ @AllArgsConstructor @ToString class Student { private String studentName; private List<Phone> phones; } ​ @AllArgsConstructor @ToString class Phone { private String brand; private String description; }

3、執行結果

<student> <name>張三</name> <phone> <brand>小米手機</brand> <description>小米手機的描述</description> </phone> <phone> <brand>蘋果手機</brand> <description>蘋果手機的描述</description> </phone> </student>

可以看到<phones>被隱藏了

七、XStream屬性混疊

1、屬性混疊用於創建一個成員變量作為XML屬性序列化。讓我們再次修改原來的XStreamTest02例子,將下面的代碼添加到XStreamTest02例子裏面

xStream.useAttributeFor(Student.class, "studentName");

2、執行代碼

※超省錢租車方案

商務出差、學生出遊、旅遊渡假、臨時用車!GO 神州租賃有限公司!合法經營、合法連鎖、合法租賃小客車!

package io.github.xstream.test02; ​ import com.thoughtworks.xstream.XStream; import lombok.AllArgsConstructor; import lombok.ToString; ​ import java.util.ArrayList; import java.util.List; ​ public class XStreamTest02 { public static void main(String[] args) { List<Phone> phones = new ArrayList<>(); phones.add(new Phone("小米手機", "小米手機的描述")); phones.add(new Phone("蘋果手機", "蘋果手機的描述")); Student student = new Student("張三", phones); ​ XStream xStream = new XStream();//需要XPP3庫 xStream.alias("student", Student.class); xStream.alias("phone", Phone.class); xStream.aliasField("name", Student.class, "studentName"); xStream.addImplicitCollection(Student.class, "phones"); xStream.useAttributeFor(Student.class, "studentName"); ​ //XML序列化 String xml = xStream.toXML(student); System.out.println(xml); } } ​ @AllArgsConstructor @ToString class Student { private String studentName; private List<Phone> phones; } ​ @AllArgsConstructor @ToString class Phone { private String brand; private String description; }

3、執行結果

<student name="張三"> <phone> <brand>小米手機</brand> <description>小米手機的描述</description> </phone> <phone> <brand>蘋果手機</brand> <description>蘋果手機的描述</description> </phone> </student>

可以看到<name>被作為了<student>的屬性

八、XStream包混疊

1、包混疊用於創建一個類XML的完全限定名稱的別名到一個新的限定名稱。讓我們再次修改原來的XStreamTest02例子,將下面代碼

xStream.alias("student", Student.class); xStream.alias("phone", Phone.class);

修改為

xStream.aliasPackage("xx.xx.xx.xx", "io.github.xstream.test02");

2、執行代碼

package io.github.xstream.test02; ​ import com.thoughtworks.xstream.XStream; import lombok.AllArgsConstructor; import lombok.ToString; ​ import java.util.ArrayList; import java.util.List; ​ public class XStreamTest02 { public static void main(String[] args) { List<Phone> phones = new ArrayList<>(); phones.add(new Phone("小米手機", "小米手機的描述")); phones.add(new Phone("蘋果手機", "蘋果手機的描述")); Student student = new Student("張三", phones); ​ XStream xStream = new XStream();//需要XPP3庫 // xStream.alias("student", Student.class); // xStream.alias("phone", Phone.class); xStream.aliasPackage("xx.xx.xx.xx", "io.github.xstream.test02"); xStream.aliasField("name", Student.class, "studentName"); xStream.addImplicitCollection(Student.class, "phones"); xStream.useAttributeFor(Student.class, "studentName"); ​ //XML序列化 String xml = xStream.toXML(student); System.out.println(xml); } } ​ @AllArgsConstructor @ToString class Student { private String studentName; private List<Phone> phones; } ​ @AllArgsConstructor @ToString class Phone { private String brand; private String description; }

3、執行結果

<xx.xx.xx.xx.Student name="張三"> <xx.xx.xx.xx.Phone> <brand>小米手機</brand> <description>小米手機的描述</description> </xx.xx.xx.xx.Phone> <xx.xx.xx.xx.Phone> <brand>蘋果手機</brand> <description>蘋果手機的描述</description> </xx.xx.xx.xx.Phone> </xx.xx.xx.xx.Student>

可以看到包名由io.github.xstream.test02替換為了xx.xx.xx.xx

九、XStream註解

1、前面的四、五、六、七、八步驟都是通過代碼操作的

//xStream.alias("student", Student.class);
//xStream.alias("phone", Phone.class);
xStream.aliasPackage("xx.xx.xx.xx", "io.github.xstream.test02");
xStream.aliasField("name", Student.class, "studentName");
xStream.addImplicitCollection(Student.class, "phones");
xStream.useAttributeFor(Student.class, "studentName");

2、XStream同時也支持註解,使用註解會變得簡單也會達到相同的效果

package io.github.xstream.test03; ​ import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.annotations.*; import com.thoughtworks.xstream.converters.basic.BooleanConverter; import lombok.AllArgsConstructor; import lombok.Data; import lombok.ToString; ​ import java.util.ArrayList; import java.util.List; ​ public class XStreamTest03 { public static void main(String[] args) { List<Phone> phones = new ArrayList<>(); phones.add(new Phone("小米手機", "小米手機的描述")); phones.add(new Phone("蘋果手機", "蘋果手機的描述")); Student student = new Student("張三", phones, 20, true); XStream xStream = new XStream();//需要XPP3庫 //xStream.processAnnotations(new Class[]{Student.class}); xStream.autodetectAnnotations(true); //XML序列化 String xml = xStream.toXML(student); System.out.println(xml); } } ​ @AllArgsConstructor @ToString //別名註解 @XStreamAlias("student") class Student { @XStreamAlias("name") //把字段節點設置成屬性 @XStreamAsAttribute private String studentName; //省略集合根節點 @XStreamImplicit private List<Phone> phones; //隱藏字段 @XStreamOmitField private int age; //設置轉換器 @XStreamConverter(value = BooleanConverter.class, booleans = {false}, strings = {"男", "女"}) private boolean sex; } ​ @AllArgsConstructor @ToString @XStreamAlias("phone") class Phone { private String brand; private String description; }

3、使用註解的話,需要XML序列化之前添加如下代碼

xStream.autodetectAnnotations(true);

或者

xStream.processAnnotations(new Class[]{Student.class});

4、執行結果

<student name="張三"> <phone> <brand>小米手機</brand> <description>小米手機的描述</description> </phone> <phone> <brand>蘋果手機</brand> <description>蘋果手機的描述</description> </phone> <sex>男</sex> </student>

使用註解我們也可以看到也能達到相同的效果

注意:當使用XStream對象處理一個被註解的類型時,XStream對象也會處理所有與其相關的類型的註解信息,即該類型的父類、父接口、所有子類的註解。

十、XStream自定義轉換器

1、XStream自帶的轉換器

    XStream內部有許多轉換器,用於JavaBean對象到XML或JSON之間的轉換。這些轉換器的詳細信息網址:http://x-stream.github.io/converters.html

2、使用自定義轉換器

package io.github.xstream.test04; ​ import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.annotations.XStreamAlias; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.Setter; import lombok.ToString; ​ public class XStreamTest04 { public static void main(String[] args) { Student student =new Student("張三",19); XStream xStream = new XStream(); //註冊轉換器 xStream.registerConverter(new StudentConverter()); //序列化 String xml = xStream.toXML(student); System.out.println(xml); //反序列化 student=(Student)xStream.fromXML(xml); System.out.println(student); } } ​ @Getter @Setter @ToString @AllArgsConstructor class Student { private String name; private int age; }

自定義轉換器

package io.github.xstream.test04; ​ import com.thoughtworks.xstream.converters.Converter; import com.thoughtworks.xstream.converters.MarshallingContext; import com.thoughtworks.xstream.converters.UnmarshallingContext; import com.thoughtworks.xstream.io.HierarchicalStreamReader; import com.thoughtworks.xstream.io.HierarchicalStreamWriter; ​ public class StudentConverter implements Converter { //定義轉換器能轉換的JavaBean類型 @Override public boolean canConvert(Class type) { return type.equals(Student.class); } ​ //把對象序列化成XML或JSON @Override public void marshal(Object value, HierarchicalStreamWriter writer, MarshallingContext context) { Student student = (Student) value; writer.startNode("姓名"); writer.setValue(student.getName()); writer.endNode(); writer.startNode("年齡"); writer.setValue(student.getAge() + ""); writer.endNode(); writer.startNode("轉換器"); writer.setValue("自定義的轉換器"); writer.endNode(); } ​ //把XML或JSON反序列化成對象 @Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { Student student = new Student("", -1); reader.moveDown(); student.setName(reader.getValue()); reader.moveUp(); reader.moveDown(); student.setAge(Integer.parseInt(reader.getValue())); reader.moveUp(); return student; } }

3、執行結果

<student>
  <姓名>張三</姓名>
  <年齡>19</年齡>
  <轉換器>自定義的轉換器</轉換器>
</student>
Security framework of XStream not initialized, XStream is probably vulnerable.
Student(name=張三, age=19)

4、常用的轉換器接口與抽象類

SingleValueConverter:單值轉換接口
AbstractSingleValueConverter:單值轉換抽象類
Converter:常規轉換器接口

十一、XStream對象流

1、對象輸出流

package io.github.xstream.test05; ​ import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; import lombok.AllArgsConstructor; import lombok.ToString; ​ import java.io.*; ​ public class XStreamTest05 { public static void main(String[] args) throws IOException, ClassNotFoundException { XStreamTest05 xStreamTest04 = new XStreamTest05(); String path = "F:\\test.txt"; XStream xStream = new XStream();//需要XPP3庫 xStream.processAnnotations(Student.class); xStream.autodetectAnnotations(true); xStreamTest04.writeObject(xStream, path); } ​ //對象輸出流方法 public void writeObject(XStream xStream, String path) throws IOException { Student zs = new Student("張三", 20); Student ls = new Student("李四", 21); Student ww = new Student("王五", 22); ObjectOutputStream objectOutputStream = xStream.createObjectOutputStream(new FileOutputStream(path)); objectOutputStream.writeObject(zs); objectOutputStream.writeObject(ls); objectOutputStream.writeObject(ww); objectOutputStream.writeObject("totalStudent"); objectOutputStream.writeInt(3); objectOutputStream.close(); } } ​ @AllArgsConstructor @ToString //別名註解 @XStreamAlias("student") class Student { @XStreamAlias("name") //把字段節點設置成屬性 @XStreamAsAttribute private String studentName; private int age; }

2、在指定路徑中打開test.txt文件,查看執行結果

<object-stream> <student name="張三"> <age>20</age> </student> <student name="李四"> <age>21</age> </student> <student name="王五"> <age>22</age> </student> <string>totalStudent</string> <int>3</int> </object-stream>

注意:XStream對象流是通過標準java.io.ObjectOutputStream和java.io.ObjectInputStream對象。因為XML文檔只能有一個根節點,必須包裝在一個序列化的所有元素額外的根節點。這個根節點默認為<object-stream>上面的例子所示。 

3、對象輸入流

package io.github.xstream.test05; ​ import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; import lombok.AllArgsConstructor; import lombok.ToString; ​ import java.io.*; ​ public class XStreamTest05 { public static void main(String[] args) throws IOException, ClassNotFoundException { XStreamTest05 xStreamTest04 = new XStreamTest05(); String path = "F:\\test.txt"; XStream xStream = new XStream();//需要XPP3庫 xStream.processAnnotations(Student.class); xStream.autodetectAnnotations(true); xStreamTest04.readObject(xStream, path); } ​ //對象輸入流方法 public void readObject(XStream xStream, String path) throws IOException, ClassNotFoundException { ObjectInputStream objectInputStream = xStream.createObjectInputStream(new FileInputStream(path)); System.out.println((Student) objectInputStream.readObject()); System.out.println((Student) objectInputStream.readObject()); System.out.println((Student) objectInputStream.readObject()); System.out.println(objectInputStream.readObject()); System.out.println(objectInputStream.readInt()); } } ​ @AllArgsConstructor @ToString //別名註解 @XStreamAlias("student") class Student { @XStreamAlias("name") //把字段節點設置成屬性 @XStreamAsAttribute private String studentName; private int age; }

4、執行結果

Student(studentName=張三, age=20)
Student(studentName=李四, age=21)
Student(studentName=王五, age=22)
totalStudent
3

十二、XStream持久化API

1、保存Java對象

package io.github.xstream.test06; ​ import com.thoughtworks.xstream.persistence.FilePersistenceStrategy; import com.thoughtworks.xstream.persistence.PersistenceStrategy; import com.thoughtworks.xstream.persistence.XmlArrayList; import lombok.AllArgsConstructor; import lombok.ToString; ​ import java.io.File; import java.util.List; ​ public class XStreamTest06 { public static void main(String[] args) { XStreamTest06 xStreamTest06=new XStreamTest06(); xStreamTest06.saveObject(); } ​ //保存Java對象 public void saveObject(){ PersistenceStrategy strategy = new FilePersistenceStrategy(new File("F:\\")); List list = new XmlArrayList(strategy); list.add(new Student("張三",13)); list.add(new Student("李四",21)); list.add(new Student("王五",17)); } } ​ @ToString @AllArgsConstructor class Student { private String name; private int age; }

2、運行程序結果,在F磁盤的根路徑可以看到有三個文件:int@0.xml、int@1.xml、int@2.xml,每個對象都被序列化到XML文件里

3、讀取並刪除JavaBean對象

package io.github.xstream.test06; ​ import com.thoughtworks.xstream.persistence.FilePersistenceStrategy; import com.thoughtworks.xstream.persistence.PersistenceStrategy; import com.thoughtworks.xstream.persistence.XmlArrayList; import lombok.AllArgsConstructor; import lombok.ToString; ​ import java.io.File; import java.util.Iterator; import java.util.List; ​ public class XStreamTest06 { public static void main(String[] args) { XStreamTest06 xStreamTest06 = new XStreamTest06(); xStreamTest06.deleteObject(); } //讀取並刪除Java對象 public void deleteObject() { PersistenceStrategy strategy = new FilePersistenceStrategy(new File("F:\\")); List list = new XmlArrayList(strategy); for (Iterator it = list.iterator(); it.hasNext(); ) { System.out.println((Student) it.next()); //刪除對象序列化文件 it.remove(); } } } ​ @ToString @AllArgsConstructor class Student { private String name; private int age; }

4、運行程序結果,可以看到把F磁盤的根路徑int@0.xml、int@1.xml、int@2.xml文件刪除了

Security framework of XStream not initialized, XStream is probably vulnerable.
Student(name=張三, age=13)
Student(name=李四, age=21)
Student(name=王五, age=17)

十三、XStream操作JSON

1、XStream序列化JSON的重命名

package io.github.xstream.test07; ​ import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver; import io.github.xstream.test04.StudentConverter; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.Setter; import lombok.ToString; ​ public class XStreamTest07 { public static void main(String[] args) { XStreamTest07 xStreamTest07 = new XStreamTest07(); xStreamTest07.serializeJson(); } ​ public void serializeJson() { Student student = new Student("張三", 19); XStream xStream = new XStream(new JettisonMappedXmlDriver());//設置Json解析器 xStream.autodetectAnnotations(true); //JSON序列化 String xml = xStream.toXML(student); System.out.println(xml); //JSON反序列化 student = (Student) xStream.fromXML(xml); System.out.println(student); } } ​ @ToString @AllArgsConstructor @XStreamAlias("人") class Student { @XStreamAlias("姓名") private String name; @XStreamAlias("年齡") private int age; }

2、運行結果

{"人":{"姓名":"張三","年齡":19}}
Student(name=張三, age=19)
Security framework of XStream not initialized, XStream is probably vulnerable.

注意:XStream序列化JSON的重命名的方式與其序列化成XML的方式一樣!

3、去掉序列化JSON的根節點

package io.github.xstream.test07; ​ import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.io.HierarchicalStreamWriter; import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver; import com.thoughtworks.xstream.io.json.JsonHierarchicalStreamDriver; import com.thoughtworks.xstream.io.json.JsonWriter; import io.github.xstream.test04.StudentConverter; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.Setter; import lombok.ToString; ​ import java.io.Writer; ​ public class XStreamTest07 { public static void main(String[] args) { XStreamTest07 xStreamTest07 = new XStreamTest07(); xStreamTest07.removeRootNode(); } ​ public void removeRootNode() { Student student = new Student("張三", 19); XStream xStream = new XStream(new JsonHierarchicalStreamDriver() { public HierarchicalStreamWriter createWriter(Writer writer) { return new JsonWriter(writer, JsonWriter.DROP_ROOT_MODE); } }); //Json序列化 String xml = xStream.toXML(student); System.out.println(xml); } } ​ @ToString @AllArgsConstructor @XStreamAlias("人") class Student { @XStreamAlias("姓名") private String name; @XStreamAlias("年齡") private int age; }

4、運行結果

{
  "name": "張三", "age": 19 }

注意:去掉根節點后的JSON串是不能反序列化的,因為XStream不知道它的類型。

5、JSON的解析器區別

前面兩個例子使用了不同的JSON解析器,這裏說明他們的不同之處:

  1. JettisonMappedXmlDriver:是支持序列化和反序列化Json的。

  2. JsonHierarchicalStreamDriver:只支持序列化,不支持反序列化。

 

參考:

    http://x-stream.github.io

    https://www.yiibai.com/xstream

    https://www.cnblogs.com/LiZhiW/p/4313493.html

● 別在 Java 代碼里亂打日誌了,這才是正確的打日誌姿勢!

● 高可用Redis服務架構分析與搭建

● 8 種方案,幫你解決重複提交問題!請拿走

● IDEA 解決 Maven 依賴衝突的高能神器,這一篇夠不夠?

● 你連微服務的網關都說不清楚,還天天鼓搗着要把項目拆分微服務?

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

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

有別於一般網頁架設公司,除了模組化的架站軟體,我們的營業主軸還包含:資料庫程式開發、網站建置、網頁設計、電子商務專案開發、系統整合、APP設計建置、專業網路行銷。

1.3T動力強?比速新SUV/MPV預售價僅6.19-8.6萬_租車

※超省錢租車方案

商務出差、學生出遊、旅遊渡假、臨時用車!GO 神州租賃有限公司!合法經營、合法連鎖、合法租賃小客車!

總結:外觀上也算是比較高顏值,原創度方面值得表揚,豐富的配置和良好的空間表現,綜合實力還是比較強的,未來的路充滿挑戰啊。比速M3預售價:6。19-8。39萬比速M3主要針對的是嚮往舒適安逸生活的家庭消費群體而打造的,外觀上更有精緻感,車身線條簡潔舒暢,誇張的X造型中網採用大面積鍍鉻裝飾,給人很霸氣的感覺,辨識度很高,B、C、D柱也是採用黑色設計,懸浮車頂非常時尚。

比速T3

預售價:7.49-8.69萬元

比速T3的整體外觀設計走的是時尚風格,進氣格柵與大燈採用整體式設計,視覺效果出色,再加上鍍鉻飾條的點綴與中央“BISU”車標巧妙的融合,營造了飛翼式的造型特點,黑色運動包圍與車頂行李架很有SUV的范。

而側面A柱、B柱和C柱都採用了黑色的設計,營造出懸浮式車頂的炫酷效果,雙五輻式輪圈,硬朗的尾燈線條,雙邊雙出的排氣管,運動感十足。

內飾部分依然透露着很潮流的氣息,黑棕雙色搭配的內飾很顯檔次,多處採用銀色飾條飾板,凸顯年輕的風格,懸浮式的中控屏設計是一大亮點,據說,比速T3還全系標配車身穩定系統、四輪碟剎、倒車雷達、中控大屏、倒車影像等使用功能。

比速T3的長寬高分別為4350/1825/1685mm,軸距為2565mm,與哈弗H2、瑞風S3等競爭對手相比稍微佔優,雙縫線皮質座椅質感出色,前後排空間表現還算良好,

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

有別於一般網頁架設公司,除了模組化的架站軟體,我們的營業主軸還包含:資料庫程式開發、網站建置、網頁設計、電子商務專案開發、系統整合、APP設計建置、專業網路行銷。

儲物格空間比較實用。

動力方面,比速T3全系標配1.3T發動機,最大功率133馬力,與之匹配的5擋手動變速器,相信不會讓我們失望。

總結:外觀上也算是比較高顏值,原創度方面值得表揚,豐富的配置和良好的空間表現,綜合實力還是比較強的,未來的路充滿挑戰啊。

比速M3

預售價:6.19-8.39萬

比速M3主要針對的是嚮往舒適安逸生活的家庭消費群體而打造的,外觀上更有精緻感,車身線條簡潔舒暢,誇張的X造型中網採用大面積鍍鉻裝飾,給人很霸氣的感覺,辨識度很高,B、C、D柱也是採用黑色設計,懸浮車頂非常時尚。

內飾整體造型設計還是挺跟得上潮流的,仿木飾板的加入提升了不少豪華感,雖說這個價位來說塑料面板在所難免,但是邊緣仿縫線的設計增添了很多精緻感,頂配車型一塊10英寸的中控屏是一大亮點,支持手機互聯、導航等主流功能。

其長*寬*高為4760*1810*1751mm,軸距達到2800mm,和寶駿730等競品相比很有優勢,門板還有擋把兩側都包裹了皮革、絨布等軟性材質,觸感很好,即使是第三排空間也很舒適。

在動力系統部分,將提供了1.5L自然吸氣發動機,最大功率114馬力,後期還會有1.5T渦輪增壓發動機和CVT變速器,而傳動部分,將搭載5擋手動變速器。

總結:在高手如雲的自主品牌MpV市場里,會與有寶駿730、風行S500等車型廝殺,相信在車內空間、配置方面有優勢的比速M3會得到用戶的肯定。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

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

日本、大陸,發現這些先進的國家已經早就讓電動車優先上路,而且先進國家空氣品質相當好,電動車節能減碳可以減少空污

CR-V、RAV4要哭?全新美繫緊湊型SUV酷似大切諾基!_租車

※超省錢租車方案

商務出差、學生出遊、旅遊渡假、臨時用車!GO 神州租賃有限公司!合法經營、合法連鎖、合法租賃小客車!

4T有所不同,指南者所搭載的1。4T發動機最大馬力達到165匹,而自由俠的1。4T馬力值為150匹,相信未來正式上市以後動力表現還是值得期待。此外作為配置分級,不出意外的話全新指南者還將會搭載一台與現款自由光一樣的2。4L自然吸氣發動機,最大馬力值175匹。

Jeep在華國產以後,先後推出了自由光和自由俠兩款SUV車型,但自由光作為中型SUV售價偏高,自由俠作為小型SUV尺寸偏小,使得很大一部分意向車型在緊湊型SUV的潛在買家有些感到捉急..不過不需要糾結,廣汽菲克第三款SUV——指南者,將在不久后發布,並有望在年內正式上市。

指南者的名聲來頭並不小,作為Jeep品牌全系尚以進口方式在國內進行銷售之時,指南者可以說是Jeep品牌銷量非常高的車型,車身緊湊,外觀也是足夠的霸氣,

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

日本、大陸,發現這些先進的國家已經早就讓電動車優先上路,而且先進國家空氣品質相當好,電動車節能減碳可以減少空污

而且進口指南者最低售價僅在20萬出頭,這也讓很大一部分車主有了購買進口車型的理由。

(圖為現款在售2014款指南者)

全新指南者的外觀依舊向自家旗艦大切諾基看齊,標誌性的7孔豎狀進氣格柵彰顯的是Jeep家族的血統,整體性極強的前臉設計風格讓指南者的車頭看上去更寬,視覺效果也更加威武霸氣。

全新指南者的內飾與自由光的相似程度比較高,從官圖上看用深淺配色的撞色設計的確有助於提高視覺衝擊力,至於實車的內飾表現如何,還需要在正式上市以後看到實車再進行評判。

動力總成方面,全新指南者搭載了號稱Jeep史上最強的小排量渦輪增壓發動機1.4T FIRE Multi-Air2,與自由俠身上那台1.4T有所不同,指南者所搭載的1.4T發動機最大馬力達到165匹,而自由俠的1.4T馬力值為150匹,相信未來正式上市以後動力表現還是值得期待。

此外作為配置分級,不出意外的話全新指南者還將會搭載一台與現款自由光一樣的2.4L自然吸氣發動機,最大馬力值175匹。

市場分析:Jeep指南者作為進口車型在華銷售的價格並不高(22.19-28.09萬),進行國產後售價有望進一步壓低,屆時可能會成為合資緊湊型SUV市場中的有力競爭选手。據悉Jeep指南者將在11月16日正式發布,至於具體的配置,我們也將在新車上市後進行詳細分析。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

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

有別於一般網頁架設公司,除了模組化的架站軟體,我們的營業主軸還包含:資料庫程式開發、網站建置、網頁設計、電子商務專案開發、系統整合、APP設計建置、專業網路行銷。

大電量、高更新率螢幕、5G全頻段!誠意中階機 HTC Desire 21 Pro 5G 開箱

為大家介紹來自台灣品牌 HTC 所最新推出的 5G 中階手機 HTC Desire 21 Pro 5G 開箱,之前阿達就分析過在進入 2021 年後 5G 手機的價格就會趨於合理化,不會像 5G 剛推出時動輒要價兩、三萬以上的高價位,而今天要介紹的 HTC Desire 21 Pro 5G 就是一款具備優質大螢幕、超大電池、全頻 5G、價格又蠻甜的全方位中階新機。

美型大螢幕 HTC Desire 21 Pro 5G 開箱

HTC Desire 21 Pro 5G 是 Desire 系列第一款 5G 手機,也正式宣告了 HTC 的平價機型正式進入5G時代:

在外盒背面標註了詳細的硬體規格,包含了容量、螢幕尺寸、相機規格、電池容量等資訊:

開箱,裡面配件包括了手機本體、說明書、退匣針、TYPE-C界面耳機、傳輸線與旅充:

HTC Desire 21 Pro 5G 支援 QC4.0 協定,隨產品也贈送了 18W 快充充電器:

Desire 21 Pro 機身尺寸為 167.1×78.1×9.4mm,重量為205公克,算是大尺寸等級的手機,螢幕部分則是搭載了 6.7吋 20:9 的 FHD+(2400*1080)解析度超大螢幕,支援 HDR10 影片播放,在 Netflix、YouTube 等應用能享受到不錯的聲光表現。而且螢幕更新頻率高達 90Hz,在此價格帶的中階機算相當難得,不管是看影片、玩遊戲、滑臉書都有很流暢的畫面表現,邊框雖然不算細,但螢幕表現非常不錯:

在螢幕中央上方搭載了一顆 1600 萬畫素的自拍鏡頭,支援人像模式、美肌與萌拍等功能,可拍出還不錯的自拍照,同時也具備面部解鎖功能:

Desire 21 Pro 共有兩款配色,分別為星辰藍與幻境紫,都相當好看,尤其它的背面採用一種霧面放射狀反射的設計,以鏡頭為中心在不同角度下都閃耀出各種炫目光芒:

鏡頭部分搭載了4800萬畫素 f/1.8 主鏡頭、800萬畫素 f/2.2 超廣角鏡頭(118度;等效13mm)與 200萬畫素 40mm 微距鏡頭和 200 萬畫素人像景深鏡頭,具備 AI智慧場景辨識、自動HDR功能,最高能進行 4K 畫質影片錄製:

另外在機身右側配置了音量鍵與搭載指紋解鎖功能的電源鍵,可在按下電源時同時解鎖,速度相當快:

在機身左側則是配置 SIM卡插槽,HTC Desire 21 Pro 5G 採用標準的三選二式配置,並支援記憶卡擴充:

通信能力部分支援 5G+4G 雙卡雙待,除了4G支援台灣全頻段外,5G部分更是支援獨立 SA /非獨立 NSA 雙模式,頻段還包含了 n1, n3, n5, n7, n28, n41, n78..等等,台灣所有 5G 電信業者都可使用高速行動上網,除此之外也支援 藍牙5.1、 2.4/5GHz 高速 Wi-Fi 聯網與 NFC 行動支付:

機身頂端則式配置了抑噪麥克風:

底部則是有收音 MIC、支援 18W快充的 TYPE-C 連接埠與揚聲器:

我們也拍攝了 HTC Desire 21 Pro 5G 的開箱介紹,主要的重點都在影片中(請點我)更多科技新知酷品開箱請訂閱電腦王阿達頻道並開啟小鈴鐺就不會錯過最新資訊:

 

HTC Desire 21 Pro 官網(請點我)

HTC Desire 21 Pro 5G 攝影表現

HTC Desire 21 Pro 5G 搭載 4800 萬畫素 f/1.8 主鏡頭、800萬畫素 f/2.2 超廣角鏡頭(118度;等效13mm)與 200萬畫素 40mm 微距鏡頭和 200 萬畫素人像景深鏡頭,具備 AI智慧場景辨識、自動HDR功能,雖然產品定位為中階入門 5G 手機,但拍照個人覺得有超乎期待的表現:

攝影界面,上方有 AI 場景辨識開關與設定,下方左右滑動可切換使用模式,分別有拍照、攝影(錄影)、萌顏、散景與夜景和右上角的「更多」:

在更多裡面還有慢動作、微距與專業模式等選項,超廣角也被配置於此(我還是覺得應該在主攝影界面中就應該要能直接切換比較順手),專業模式則可調整白平衡、ISO與曝光等參數:

內建的 AI 場景辨識可辨識超過15種不同場景,包含高光對比與低光源也會啟動 HDR 模式:

散景功能可拍攝可後置再調整景深程度的照片,但老實說個人覺得切邊有改進空間(畢竟都特地配置了一顆景深鏡頭了,應該要比演算出來的還好才是):

主鏡頭拍出來的散景照片個人覺得還算不錯(這張故意調到最大,不要這麼誇張的話其實還蠻自然的):

前置鏡頭也有人像景深模式,用演算法進行處理,表現還不輸給主鏡頭,同時也具備美顏功能:

另外還有「萌拍」功能,可拍攝各種可愛的表情貼照片:

接下來直接看實拍照吧!以下均使用 HTC Desire 21 Pro 5G 以 AI 場景辨識在各情境所拍攝的照片,原始圖相簿請點我:

兩倍變焦:

超廣角:

超廣角:

室內:

室內超廣角:

夜間:

整體來說 HTC Desire 21 Pro 5G 的拍攝表現算在這個價格帶(12000元以下)的手機裡算表現還不錯,比較可惜的是超廣角端雖然表現比 HTC U20 好,但邊角區域還是有點鬆散,如果 HTC 在這部分可以多下點功夫(堆料)的話,就會更好,另外沒有光學防手震在低光源情境的表現就比較一般,但日常記錄生活沒什麼太大問題。

HTC Desire 21 Pro 5G 系統與效能表現

HTC Desire 21 Pro 5G 系統部分使用 Android 10(目前官方還沒確定會不會升到 Android 11),內部應用比較接近 Google 原生架構:

工作面板與可設定選項:

設定界面:

安全性部分支援指紋解鎖(位於機身側面電源鍵)與人臉識別,辨識速度還算不錯,可搭配行動支付使用:

在效能部分,HTC Desire 21 Pro 5G 搭載高通最新的 Qualcomm Snapdragon 690 5G 處理器、8GB LPDDR4 RAM、128GB ROM,標準中階機配置:

效能部分 S690 表現其實意外的還不錯,GEEKBENCH 單核 607分、多核 1859分,PCMARK 2.0 工作效能成績有9010分:

圖形表現算中等,一般靜態的2D遊戲很流暢,非重度的 3D 遊戲也沒什麼大問題:

使用安兔兔的跑分成績為29.3萬分,魯大師的成績為26.5萬分,其實光以處理器成績來說 S690 與另一顆 S765G 相比處理器分數差異很小,主要是差在 GPU表現(只能說高通刀法精準,市場區隔的很徹底),不過整體使用還是算流暢:

續航表現部分,HTC Desire 21 Pro 5G 搭載 5000mAh 大容量電池,使用 PCMARK 2.0 進行續航力壓力測試,由100%到20%約撐了 16小時 50 分,預估有接近19小時的表現,中重度使用一整天沒什麼問題:

 

結語

HTC Desire 21 Pro 5G 這次在硬體規格與定價方面個人覺得相對合理不少,定價12900元(2/28前早鳥優惠價11,990元)就可擁有外型不錯、6.7吋高更新率螢幕、優異的5G連線能力、超大的電池續航、還不錯的拍照與標準中階機性能表現的手機,個人覺得整體來說算是 HTC 的誠意之作。

二月底購買前再送馬卡龍真無線藍牙耳機櫻花粉,在HTC網路商店購入另享校園9折優惠,滿萬可再享12期零利率分期,如果您沒有重度的遊戲需求,只需要一支大螢幕長續航的日常用機,HTC Desire 21 Pro 5G 相當適合你。

您也許會喜歡:

【推爆】終身$0月租 打電話只要1元/分

立達合法徵信社-讓您安心的選擇

【其他文章推薦】

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

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

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

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

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

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

※回頭車貨運收費標準

我對互聯網汽車的一些思考

理想非常美好,現實不確定性很多,唯有務實工作,埋頭苦幹,用釘釘子的精神,把一個又一個的問題解決,一個又一個的難關攻克,不斷夯實技術基礎,不斷積累試驗數據,不斷磨鍊人才隊伍,不斷疊代升級,螺旋發展,才有可能到達勝利的彼岸。

11月16日,以“創新驅動 造福人類——攜手共建網絡空間命運共同體”為主題的第三屆世界互聯網大會在烏鎮開幕,作為參与本屆大會的汽車行業代表,浙江吉利控股集團董事長李書福發表了題為《我對互聯網汽車的一些思考》的署名文章,全文如下:

我對互聯網汽車的一些思考

吉利控股集團董事長 李書福

外行人看熱鬧,內行人看門道。我半路出家,談不上內行,但由於在汽車行業工作幾十年,對所謂的互聯網汽車略有所研究。如果我沒有記錯的話,大概在2007年夏天,有一位中國記者問我:“李總,智能手機改變了傳統電話,在通訊領域發起了一場革命,你認為下一場革命是什麼行業?”我當初回答不出來,我真的不知道是哪個行業。她說:“有人講下一場革命會發生在汽車行業。”

我當初確實沒有想到,也不以為然。當然這位記者也沒有搞清楚這場革命將如何起源,如何發展。而今天,基本上已經有了一個方向,比如電動化、智能化、輕量化,尤其是無人駕駛及人們所謂的互聯網汽車,這些方向在汽車行業內已經被廣泛認同。但如何電動化,電動化程度及水平,如何輕量化,輕量化程度及水平,如何智能化,智能化程度及水平等等問題都沒有標準答案。行業內不同的企業尋求不同的解決方案,大家都在大量投入研發,尤其是在一些基礎技術研發方面的投資是巨大的。

有些技術的研發不僅僅是錢的問題,錢當然重要,但完全靠錢不一定達到目的。比如電動化程度及水平的問題,電動車技術不是新鮮技術,一百多年來一直存在。到今天,有些技術雖然取得了突破,但還有許多技術難題依然找不到解決方案。許多人都說自己的技術世界第一,都說自己的商業模式最有競爭力。但無論怎麼說,汽車電動化這條道路上還有許多困難與問題在等待着我們克服與解決,就是成為“世界第一”了也不一定就能取得成功。

我認為這一場產業革命今天才剛剛開始,離真正的成功還有很大的距離。又比如輕量化的問題,表面上看,電動化與輕量化沒有直接聯繫,但事實上二者關聯非常密切。從商業的本質與產品競爭來講,沒有輕量化就不能電動化,二者密不可分。由於電池的能量密度太低,今天的電動化技術還不能幫助整車解決輕量化的難題,二者是矛盾體。如何解決這個矛盾,全球汽車同行都在做各種嘗試,既要在成本上可行,又要在用戶體驗上有競爭力,雖然已經有了一些科學發明,已經有了一些創新成果,已經有了一些解決方案,在世界各地經常傳來一些神奇的重大技術突破的好消息,但還是需要實踐檢驗。這些檢驗不僅僅是技術可行性,同時還必須要有商業可行性。由於汽車這個產品的特殊性,這種檢驗需要一個漫長而反覆的過程。

探明石油儲量的增加以及全球石油價格的下降,對電動汽車的發展不是好消息,對電動車的成本、經濟性及用戶體驗提出更高要求。由於汽車的電動化與輕量化技術還走在路上,因此我們必須了解行業全貌,共同努力,积極探索,必須明白電動化技術路線存在許多不確定性,需要耐心,切勿急於求成。操之過急可能欲速而不達,只有尊重規律,認清現實,一步一個腳印,循序漸進,才能水到渠成。

互聯網與電動化、輕量化照樣有着先天的關係。汽車工業的發展過程就是工業與信息化技術融合的過程。傳統汽車工業是機電一體化工業,今天的汽車工業是人機、機電、电子信息一體化工業,也就是有些人所謂的互聯網汽車。

所謂互聯網,就是信息技術的網絡化發展,既涉及到汽車本身通訊技術的研發,也涉及到汽車與外部通訊網絡的連接。所謂互聯網汽車,就是把汽車與互聯網有機融合,實現人機交互智能化、機電執行自動化、駕駛路線信息化,最終實現完全無人駕駛,讓汽車成為服務於交通運輸領域的超級機器人。

但是,所有這一切美好追求,都是人們的理想藍圖。什麼時候能夠實現?如何實現?成功率有多高?誰能保證?所有這一切的一切,都需要市場檢驗。理想非常美好,現實不確定性很多,唯有務實工作,埋頭苦幹,用釘釘子的精神,把一個又一個的問題解決,一個又一個的難關攻克,不斷夯實技術基礎,不斷積累試驗數據,不斷磨鍊人才隊伍,不斷疊代升級,螺旋發展,才有可能到達勝利的彼岸。

吉利雖然制定了“藍色吉利行動”計劃,但現在看來需要重新審視,滾動修訂,尤其是美國新一任總統的能源戰略將會對巴黎氣候協定產生影響,從而對汽車行業產生影響,對汽車的電動化進程產生影響。

從理論上講,真正的互聯網汽車必須是高度電動化的汽車,沒有電動化就很難實現互聯網化,也就不可能高度智能化。原因很簡單,電動化有利於能源供給自動化、車輛啟停安全性及長時間待機網絡化的在線服務,但是從此岸到彼岸不能簡單跨越發展,也無法跨越發展,必須按規律發展。

沃爾沃新一代XC90是全球第一輛真正意義上的互聯網概念汽車

有想法的人很多,把想法變成現實卻非常艱難。十多年前沃爾沃就開始研究無人駕駛汽車、電動汽車及輕量化技術。去年沃爾沃XC90新一代車型在全球同步投放市場,其受歡迎程度完全出乎人們的想象,尤其在美國、德國、日本等市場更是供不應求,一車難求,一年內在全球拿了一百多個大獎,這麼一輛沃爾沃XC90,為何如此受歡迎呢?原因有以下幾條:

一、全球第一輛真正意義上的互聯網概念汽車,並且具備持續迭代升級的基礎能力;

二、已經實現0-130公里高度輔助駕駛功能,可以讓司機駕車更加輕鬆;

三、車內空氣質量達到兒童級別標準,不僅過濾了pM2.5,而且確保一氧化氮、一氧化碳、碳氧化合物、甲醛、花粉等各種有害物質得到有效控制;

四、車內音響設計達到歌劇院標準,舉世無雙;

五、安全水平全球遙遙領先;

六、2.0的排氣量油耗,相當於4.0功率、扭矩。

基於可疊代升級的SpA基礎架構開發的沃爾沃XC90,雖然走在行業前列,獲得市場的廣泛認可,但追兵與模仿者也不在少數,其競爭對手紛紛解剖、分析研究XC90,同行開發的類似產品也陸續推向市場,參与競爭。因此,如何更快更好升級疊代,始終擺在汽車行業的面前。

CMA模塊架構具有很強的疊代升級屬性

2013年,吉利歐洲研發中心成立,沃爾沃主導與協同吉利研發CMA基礎架構模塊,這種模塊的最大特點就是靈活、軟硬件都可疊代升級,可以搭載純電、油電、插電,也可以搭載傳統能源,电子架構技術領先,人機交互智能,最終可升級為完全無人駕駛。吉利汽車、沃爾沃汽車兩個汽車公司都可以使用CMA基礎架構模塊進行各自汽車產品的研發設計,雙方的汽車產品標準不同,設計不同,配置不同,消費群體不同。簡單地講,CMA架構就是吉利汽車公司與沃爾沃汽車公司聯合打造的互聯網汽車基礎架構,與傳統汽車底盤概念完全不同。吉利汽車基於CMA基礎架構推出的全新品牌LYNK & CO已於上月在歐洲發布,媒體和消費者給與了高度評價,該品牌下首款車型將於明年第四季度面世。

吉利汽車旗下全新品牌LYNK&CO應互聯網而生

我可以毫不誇張地說,沃爾沃汽車公司的自動駕駛技術是當今世界上最先進的技術,沃爾沃公司研發的XC90、S90汽車產品是全球唯一大批量商業化的高度輔助駕駛汽車,實現了時速0-130公里的智能輔助駕駛。自動駕駛的目的首先是為了安全,無論是電動汽車還是傳統汽車,安全是最基本的前提,這一點全世界沒有第二個汽車公司可以與沃爾沃相抗衡。美國優步與沃爾沃合作開發無人車並由沃爾沃提供基礎車型;全球知名汽車安全零部件公司奧特利夫與沃爾沃合作,聯合研發完全無人駕駛技術等等,都足以說明沃爾沃在無人駕駛技術方面的全球地位。即便這樣,我們依然認為前方的道路充滿了挑戰。

S90已經實現時速0-130公里的智能輔助駕駛

變革是需要條件的,革命是需要環境的。汽車行業的變革雖然已經開始,但條件還需要繼續成熟,環境還需要不斷改善。汽車行業的變革是需要時間的,而且可能反覆並充滿不確定性。理想可以吹得天花亂墜,可以充滿無窮想象,但現實依然殘酷無情。商場就是戰場,眼淚不能解決問題。吉利造汽車是從自己投資建設技師學院及工程師學院開始培養人才的,近二十年來在技師、工程師培養上大量投入。沃爾沃汽車公司雖然做了大量基礎性工作,雖然在汽車及交通領域互聯互通技術上取得了大量研究成果,但以後的路還很長,面臨的挑戰依然非常嚴峻。當然,我們充滿信心,我們堅信,世上無難事,只要肯登攀。

最後,我想用一句千年古訓與大家共勉:“不積跬步,無以至千里;不積小流,無以成江海。”本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

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

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

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

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

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

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

※回頭車貨運收費標準

國外網咖受疫情影響生意慘淡,開始轉型成加密貨幣挖礦中心

受新冠肺炎(武漢肺炎)疫情影響,不僅旅遊觀光業大受打擊,國外網咖生意也下滑非常多,即便疫苗已經出來,但數量還不夠多,大多數國家僅少部分人有施打,也因此要回到過往榮景還有很長一段時間。

而為了解決現況,最近就有國外網咖業者展示他們如何提升收益:「把整間網咖轉型成加密貨幣挖礦中心」,雖然不知道一天扣掉電費可以賺取多少,但這可能真的是現在最好暫時解決方案吧。

國外網咖開始轉型成加密貨幣挖礦中心

近日一位越南網咖老闆在 Twitter 上分享他把整間都改裝成加密貨幣挖礦電腦的照片,從中可以看到,每台螢幕下方都有一個鐵架,且擺放著許多顯示卡,不過不確定是不是都是最新 RTX 30 系列,不過遊戲網咖基本上更新顯卡的速度都很快,即便不是最新,應該至少都有 RTX 20 系列的等級(或同價位的 AMD 顯示卡):

他也有補充這些有著 RGB 燈的顯示卡就是 NVIDIA GeForce RTX 3080:

至於這樣究竟一天能賺多少錢?會拿來挖什麼加密貨幣?他就沒特別說明了,而且看起來似乎才剛轉型完成,還不知道是否符合成本。

When COVID attacked my country again and this was the idea of big ​​CafeNet’s crazy minds

Hint: There are 3080 graphics cards with very nice RGB (first image)@VideoCardz @death_1125 @TechDeals_16 @9550pro @harukaze5719 @hms1193 @kopite7kimi @3DCenter_org @JokerReview pic.twitter.com/vgh16hRNDF

— I_Leak_VN (@I_Leak_VN) February 15, 2021

隨著近期比特幣、以太幣持續上漲,這作法確實很高機率能提升網咖的收益,但如果之後想再變回原本的網咖生意,也需要花一筆不小的數目,再加上還要承擔加密貨幣暴跌的風險,只能說這老闆勇氣可嘉。

話說回來,如果未來連網咖也加入挖礦行列,顯卡缺貨問題只會越來越嚴重阿…對玩家來說也不是一件好事,而且連 RTX 30 系列筆電也開始出現短缺現象。

無論如何,有意購買 RTX 30 系列顯卡或筆電的人,一有機會就建議趕快出手吧,這波挖礦熱潮還不知道什麼時候會結束。

資料來源:I_Leak_VN

中國礦工秀出用超過 40 台 RTX 3070 筆電挖礦的照片,還有人帶去星巴克偷電挖礦

您也許會喜歡:

【推爆】終身$0月租 打電話只要1元/分

立達合法徵信社-讓您安心的選擇

【其他文章推薦】

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

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

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

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

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

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

※回頭車貨運收費標準