分類: 3C資訊

  • 天啦!竟然從來沒有人講過 SpringBoot 支持配置如此平滑的遷移

    天啦!竟然從來沒有人講過 SpringBoot 支持配置如此平滑的遷移

    SpringBoot 是原生支持配置遷移的,但是官方文檔沒有看到這方面描述,在源碼中才看到此模塊,spring-boot-properties-migrator,幸虧我沒有跳過。看到這篇文章的各位,可算是撿到寶了,相信你繼續往下看下去,定會忍不住點贊、收藏、關注。

    效果

    先放個效果吸引你 🙂

    從 SpringBoot 2.0.0 版本開始,配置服務上下文,不支持 server.context-path,而需要server.servlet.context-path配置。但是只要加上以下一個官方依賴,就可以支持使用 server.context-path

        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-properties-migrator</artifactId>
        </dependency>

    server.context-path 所對應的屬性 ServerProperties#contextPath 在 Java 代碼中已不存在,server.servlet.context-path 所對應的的屬性在內部類 Servlet 中才有,為何加了此依賴就能實現如此神奇的效果呢。

    原理

    SpringBoot 對外部化配置原生支持遷移功能,所謂遷移,具體是指對應配置的屬性名變動,仍可以使用原來的屬性名配置。
    spring-configuration-metadata.json 的信息可以輔助 IDE 進行配置的提示,也可以用來完成配置的遷移。非常的簡單。

    相關文章:

    通過閱讀代碼,獲得以下信息:

    1. 監聽 ApplicationPreparedEvent 事件(即:環境已準備事件),執行以下操作並收集信息
    2. classpath*:/META-INF/spring-configuration-metadata.json 中載入所有配置
    3. 從上下文的 environment 中過濾出提示的配置(滿足條件:1. deprecation 不為 null,且提示 level 為 error)
    4. 判斷是否兼容(兼容條件見下一節),提取出兼容的屬性
    5. 將 value 對應到 replacement 的 key,並將其屬性源命名為:migrate-原名
    6. 將配置遷移的新屬性源添加到 environment 中,且添加到原屬性源之前(優先級高)。
    7. 監聽事件:ApplicationReadyEvent(應用上下文已準備) 或 ApplicationFailedEvent(應用啟動失敗),打印以上步驟收集的遺留配置信息。以 warn 級別打印兼容的配置,以 error 級別打印不兼容的配置

    配置兼容條件

    根據元數據中定義的 type 判斷

    1. 如果舊類型、新類型其中之一為 null(元數據中未指定),則不兼容
    2. 如果兩個類型一樣,兼容
    3. 如果新類型是 Duration,而舊類型是 Long 或 Integer,則兼容
    4. 其他情況視為不兼容
    5. environment 中取配置信息,理論上支持 SpringBoot 所有的配置方式

    效果

    兼容效果:
    棄用屬性(如果還存在)與替換后的屬性都會使用配置文件中的棄用的屬性名所對應的的值。

    總結

    使用配置遷移功能,需要以下步驟:

    1. 引入依賴:spring-boot-properties-migrator(支持配置遷移)、spring-boot-configuration-processor(生成元數據文件,如果已經有完整的,不需要此依賴)
    2. 元數據文件spring-configuration-metadata.json 中棄用屬性名對應的 properties 中必須有 deprecation(在additional-spring-configuration-metadata.json 中添加,相關文章: )
    3. deprecation 中需指定 levelerror
    4. deprecation 中需指定 replacement
    5. replacement 對應的屬性配置在元數據文件中存在,與棄用屬性兼容

    經典示例之配置上下文

    再說回一開始展示的配置上下文示例。

    # 配置 servlet 服務上下文
    server:
      context-path: test

    從 SpringBoot 2.0.0 版本開始,以上配置不支持,點到配置元數據文件中(spring-configuration-metadata.json),發現如下信息:

    {
      "properties": [
        {
          "name": "server.context-path",
          "type": "java.lang.String",
          "description": "Context path of the application.",
          "deprecated": true,
          "deprecation": {
            "level": "error",
            "replacement": "server.servlet.context-path"
          }
        },
        {
          "name": "server.servlet.context-path",
          "type": "java.lang.String",
          "description": "Context path of the application.",
          "sourceType": "org.springframework.boot.autoconfigure.web.ServerProperties$Servlet"
        }

    替換屬性名為:server.servlet.context-path,此屬性在org.springframework.boot.autoconfigure.web.ServerProperties 中,且在類中可以發現,server.context-path 所對應的屬性 ServerProperties#contextPath 在代碼中已不存在,而是在內部類 Servlet 中有,也就是對應 server.servlet.context-path 的屬性才有。

    但是其滿足配置兼容的條件,為什麼實際上使用卻好像不兼容呢?
    其實是因為沒有引入依賴,當引入依賴,就會發現此方式配置可以起作用。

    示例之兩種屬性都存在

    代碼示例見

    1、引入依賴

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-properties-migrator</artifactId>
    </dependency>
    
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-configuration-processor</artifactId>
      <optional>true</optional>
    </dependency>

    2、Java 配置
    此處故意保留棄用屬性

    @Data
    @Configuration
    @ConfigurationProperties(prefix = "my")
    public class MyProperties {
      /** the project name */
      private String name;
    
      private App app;
    
      @Data
      public static class App {
        private String name;
      }
    }

    3、元數據配置,spring-configuration-metadata.json 由程序生成,自定義配置放在 additional-spring-configuration-metadata.json

    {
      "properties": [
        {
          "name": "my.name",
          "type": "java.lang.String",
          "description": "the project name.",
          "deprecation": {
            "reason": "test the properties-migrator feature.",
            "replacement": "my.app.name",
            "level": "error"
          }
        },
        {
          "name": "my.app.name",
          "type": "java.lang.String",
          "sourceType": "com.lw.properties.migrator.config.MyProperties$App",
          "description": "the project name."
        }
      ]
    }

    4、在 properties 或 yml 文件中配置

    my:
      name: lw
      app:
        name: app

    5、打印配置信息

    @Slf4j
    @SpringBootApplication
    public class PropertiesMigratorApplication {
    
      public static void main(String[] args) {
        ConfigurableApplicationContext context =
            SpringApplication.run(PropertiesMigratorApplication.class, args);
        MyProperties myProperties = context.getBean(MyProperties.class);
        log.info("myProperties.name:{}", myProperties.getName());
        log.info(
            "myProperties$app.name:{}",
            Optional.ofNullable(myProperties.getApp()).orElse(new App()).getName());
      }
    }

    6、打印信息如下:

    2019-11-23 21:42:09.580 WARN 109408 — [ main] o.s.b.c.p.m.PropertiesMigrationListener :
    The use of configuration keys that have been renamed was found in the environment:

    Property source ‘applicationConfig: [classpath:/application.yml]’:
    Key: my.name
    Line: 4
    Replacement: my.app.name
    Key: server.context-path
    Line: 2
    Replacement: server.servlet.context-path

    Each configuration key has been temporarily mapped to its replacement for your convenience. To silence this warning, please update your configuration to use the new keys.
    ……… myProperties.name:lw
    ……… myProperties\(app.name:lw ……… serverProperties\)servlet.contextPath:/app

    7、效果解析
    在 yml 中棄用屬性名優先級更高,棄用屬性與新屬性都使用此棄用屬性名對應的值。

    參考資料

    SpringBoot 2.2.1.RELEASE 源碼
    公眾號:逸飛兮(專註於 Java 領域知識的深入學習,從源碼到原理,系統有序的學習)

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

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

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

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

  • 嚇人!在浴池洗浴竟會感染梅毒?很多人都不知情…

    嚇人!在浴池洗浴竟會感染梅毒?很多人都不知情…

      本文專家:田靖博士,南部戰區疾病預防控制中心,主治醫師

      我們都知道艾滋病很可怕,得了基本上就需要終生抗爭。

      最近,僅次於艾滋病的第二大性接觸疾病——梅毒,突然成了微博上最熱門的話題。

      某知名企業創始人稱自己“在浴池洗浴感染梅毒,打了 6 天針后治癒”。


    微博截圖

      先是洗浴感染梅毒驚呆眾網友,只要在公共中心泡過澡、游過泳的都表示瑟瑟發抖。

      還有對 6 天治癒梅毒表示疑問,畢竟我們所知的梅毒是比較可怕的。

      那泡澡到底會不會感染梅毒?梅毒究竟該如何治癒?我們就網友關心的這些問題科普一下。

      洗浴、游泳真會感染梅毒嗎?

      梅毒螺旋體(Treponema pallidum,TP)又稱為蒼白螺旋體,是造成感染梅毒的“罪魁禍首”。

      目前全球每年約有 1200 萬新發梅毒病例,我國梅毒發病率呈上升趨勢。

      梅毒的感染途徑有——

      1、血液傳播和性接觸傳播

      梅毒螺旋體僅可以感染人類,血液傳播和性接觸傳播是主要途徑。95% 以上的感染者通過危險的無保護的性行為感染,而男同性戀人群中的梅毒感染率近年來急劇上升。

      2、母嬰傳播。梅毒可以通過垂直傳播途徑,由感染梅毒的母親傳染給新生兒。

      梅毒螺旋體病毒感染人類需要具備一定的病毒載量,在某些特殊條件下才能發生,如通過性接觸直接接觸梅毒感染者的創面或者血液傳播,同時也取決於被感染者的身體狀況等。

      因此,常規使用公共設施和出入公共場所,如游泳池游泳、接觸馬桶墊、共用餐具、衣物接觸等情況都不會感染梅毒。

      並且游泳池中的水通常含有漂白粉等消毒劑,不適合淋球菌、梅毒螺旋體等性病病原體存活。所以,去正規的游泳館不存在感染梅毒的可能性。

      梅毒有什麼危害?

      按照《梅毒診斷標準》(WS273-2018),根據梅毒感染的不同階段以及出現癥狀的差異可以將梅毒分為I期、II 期、III 期、胎傳和隱形梅毒。

      I 期~III 期梅毒對於患者的損害是不同的,能造成——

    1. 硬下疳、腹股溝或患部近位淋巴結腫大;
    2. 多個部位的瀰漫性皮損,最終造成頭面部以及四肢產生結節性梅毒疹;
    3. 關節出現結節;
    4. 皮膚、口腔、舌咽出現樹膠腫;
    5. 產生骨梅毒、眼梅毒、心血管梅毒、神經梅毒和其他內臟梅毒等。

      胎傳:所有未經有效治療的梅毒母親所生的嬰兒可能感染胎傳梅毒,根據發病時間分為早期胎傳梅毒、晚期胎傳梅毒和隱性胎傳梅毒。

      隱形梅毒:無臨床癥狀與體征的隱性梅毒患者,仍然具有傳染性,部分病人可以發生晚期損害。

      晚期梅毒可導致不可逆的心血管損傷和中樞系統損害,嚴重者可導致死亡。

      中樞神經系統的梅毒感染可以發生在疾病的任何時期,病程越長、精神癥狀越嚴重。

      此外,梅毒與艾滋病常常是一對“好兄弟”。在感染艾滋病的患者中,大約有 42.8% 的患者都曾感染梅毒。

      梅毒感染會造成皮膚破損,增加體液中 CD4+ 細胞的數量,為 HIV 的感染提供更多的靶細胞,促進 HIV 的傳播,因此從這個意義上來說,感染梅毒是艾滋病的“幫凶”。

      梅毒真能 6 天治癒嗎?

      不一定!

      因為涉及個人體質、治療抗生素的使用方案及青霉素是否過敏等問題,治療周期和結果都會因人而已,最重要是嚴格遵循醫囑和臨床檢查結果。

      因此,治癒的時間根據選擇藥物和患者的病情來確定,不能簡單用時間判斷!

      感染梅毒該如何治療?

      青霉素是治療梅毒的首選藥物之一,對病原菌的細胞壁生成進行抑制 , 從而降低抗原反應素,可短期改善認知功能。青霉素過敏者可採用紅黴素治療。

      多西環素是非青霉素的一種,及早治療血清轉陰率可達 83%-100%,成為當前治療早期梅毒(梅毒螺旋體感染<2 年,II 期早期梅毒)的主要手段。

      頭孢曲松鈉及苄星青霉素聯合治療梅毒比單一用藥效果好。

      不過,抗生素治療僅對免疫系統正常的患者有效。當患者產生梅毒血清抵抗時,單獨使用青霉素,無論增加劑量還是延長治療時間,都對患者無效。

      梅毒治療后,15%~41% 的患者可能形成梅毒血清固定,使用免疫調節劑再治療梅毒血清固定患者有一定的效果,但存在爭議。

      所以,治療梅毒需要嚴格遵循醫囑,才能達到有效治癒。

      此外,還要保持健康良好的生活方式,防止不安全的性行為。

     

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

    ※帶您來了解什麼是 USB CONNECTOR  ?

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

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

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

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

  • Facebook改進換臉術:無需“投喂”圖片,從視頻里直接變臉

    Facebook改進換臉術:無需“投喂”圖片,從視頻里直接變臉

      曉查 發自 凹非寺 
      量子位 報道 公眾號 QbitAI

      近兩年來,Deepfakes 讓許多歐美明星吃盡了苦頭,面對自己的頭像被替換到各種視頻中,卻無能為力。

      比如黑寡婦就對自己的臉被替換到小電影中感到很無奈,呼籲大家停止用 AI 作惡。

      而最近,Facebook 人工智能研究院讓換臉技術再次進化。

      過去 Deepfakes 這項技術需要很多準備材料:一是被替換人臉的原視頻,二是來自換臉人面部各個角度的照片。有這兩樣東西才能造出完美無暇的換臉視頻。

      而來自 Facebook 的技術不需要照片,可以從原視頻直接生成換臉視頻,甚至能對實時視頻進行換臉。

      它讓“大表姐”變得不再熟悉。 

      這項技術的換臉實際上是毫無違和感地修改五官特徵,好讓 AI 無法識別出,因此也就不需要照片了。

      而且 Facebook 的研究人員還表示,這項技術修改后的明星臉仍然可以被人識別出來,但是 AI 卻不行。 

      Facebook 研發這項技術可不是為了換臉好玩,最近因使用人臉識別技術飽受爭議,這家公司希望通過這項新技術來保護用戶的隱私。

      人臉識別和換臉技術對普通民眾的隱私也造成了很大的威脅。比如前一陣大熱的換臉應用 ZAO,讓每個人都享受到換臉帶來的樂趣,但同時也會收集用戶圖片。

      研究人員在論文摘要中說:“人臉識別可能會導致隱私丟失,而換臉技術可能會被用於製作誤導性視頻。”Facebook 用後者來去除視頻中的隱私信息。

      Facebook 聲稱,該技術屬於業內首創,足以抵禦複雜的人臉識別系統。

      Facebook 將在下周韓國首爾舉行的國際計算機視覺國際會議(ICCV)上介紹該工作。

      本周,Facebook 還聯合微軟和亞馬遜,提供 Deepfakes 換臉挑戰數據集,希望能夠提高識別換臉視頻算法的魯棒性,以控制假視頻的傳播。

      此舉頗有些以彼之矛攻彼之盾的意味。

      原文鏈接:

      https://venturebeat.com/2019/10/25/facebook-alters-video-to-make-people-invisible-to-facial-recognition/

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

    ※為什麼 USB CONNECTOR 是電子產業重要的元件?

    網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

    ※想要讓你的商品成為最夯、最多人討論的話題?網頁設計公司讓你強力曝光

    ※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

  • 國家電網預計將於2020年6月前全面實現即插即沖新技術

    國家電網預計將於2020年6月前全面實現即插即沖新技術

      作者:JoJo

      【TechWeb】10 月 27 日,近日,國網電動汽車服務有限公司發布了充電服務創新模式“車電服務包”。國網電動汽車公司總經理沈建新表示,國網電動汽車公司將加大車聯網的規模,擴大平台充電樁的數量。同時,國網電動汽車公司將在半年內實現“即插即充、無感支付”在公共場站、專用場站、私人充電樁業務場景全覆蓋,加速布局主要城市充電網絡。

      該措施首先是提供主機廠車電包服務範圍內場景全覆蓋、布局更密集的充電設施服務網絡。 國網目前已建成 9 萬自營充電樁,其中高功率直流快充 6.5 萬根。對此,沈建新表示,未來還將引入更多社會資源,擴大充電樁規模,保證主要城市充電站布點半徑不超過 500 米,同一站點充電等候不超過 30 分鐘,確保充電服務套餐用戶實現區域內充電暢行。

      其次,是加快即插即充、無感支付新技術全覆蓋。2020 年 6 月前,通過技術升級及硬件改造,國網電動汽車公司將完成國網系統充電樁全面支持即插即充,新投入車聯網平台的充電樁全部滿足“即插即充、無感支付”要求,實現“充綠色電,比加油更方便”。

      此次發布的“車電服務包”是與四家車企聯合推出與新車綁定銷售的充電產品,用戶一次付費購買“車電服務包”並綁定車輛后,即可在國網充電樁上享受“即插即充、無感支付”。電動汽車插入充電槍后,充電過程不需要人為干預,自動完成認證、充電啟動、充電停止以及訂單生成與結算,實現了車、樁、網、能源的泛在互聯與高效互動,是國家電網公司泛在電力物聯網建設的典型終端。

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

    ※為什麼 USB CONNECTOR 是電子產業重要的元件?

    網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

    ※想要讓你的商品成為最夯、最多人討論的話題?網頁設計公司讓你強力曝光

    ※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

  • 是什麼觸發了宇宙大爆炸?

    是什麼觸發了宇宙大爆炸?


    圖片來源:Christine Daniloff, MIT, ESA/Hubble and NASA

      1.

      根據大爆炸理論,我們的宇宙誕生於 138 億年前,從一個無限小的緻密“火球”,不斷地擴張膨脹,並慢慢冷卻。漸漸地,宇宙中形成了第一批恆星、星系,以及我們如今所見到的所有形式的物質。

      物理學家相信,就在大爆炸將宇宙推向不斷膨脹的進程之前,早期宇宙還經歷了另一個更具爆炸性的階段——宇宙暴脹。這個過程持續的時間不到萬億分之一秒,但膨脹的速度卻是以指數級增長的。  


    Guth 的筆記

      上個世紀 80 年代,物理學教授 Alan Guth 首次提出了宇宙膨脹理論,該理論預測宇宙最初是一個極微小的物質點,其大小可能只有質子的千億分之一。這個點中充滿了超高能物質,能量非常之大,以至於內部的壓力產生了一種排斥性的引力——這就是暴脹背後的驅動力。就像火花之於引信一樣,這種引力以前所未有的速度將新生的宇宙向外推,在不到萬億分之一秒的時間內,使宇宙膨脹到接近原始大小的 10²⁷倍。

      許多天文觀測結果都支持了大爆炸和宇宙暴脹理論。但是,這是兩個截然不同的過程,科學家們一直難以理解其中一個是如何緊隨另一個之後出現的。

      在一項新的研究中,物理學家詳細地模擬了早期宇宙中一個可能連接了宇宙暴脹和大爆炸的中間階段。這個階段被稱為“再熱”,這一過程出現在宇宙暴脹末期和大爆炸開始之前的階段,將暴脹產生的冷的、均勻的物質轉變成超熱的、複雜的物質湯。

      論文的作者David Kaiser說:“后暴脹再熱時期為大爆炸創造了條件,在某種意義上,是它啟動了‘爆炸’,正是在這個橋樑時期,所有的事物都開始鬆動,物質的行為變得非常複雜。”

      2.

      對於這個連接了宇宙暴脹和大爆炸的橋樑階段,研究人員很好奇它最初會是什麼樣子。

      Kaiser 說:“再熱的最初階段應該用共振來標記。一種高能物質佔據主導地位,它在廣闊的空間中與自身同步來回擺動,導致爆炸式地產生新的粒子。但這種行為不會永遠持續下去,一旦它開始將能量轉移到另一種形式的物質上,它自身的擺動將在空間中變得更加起伏不平。我們想要測量的是,需要多長的時間共振效應才會破裂,產生的粒子才會彼此分散並且達到某種熱平衡,讓人想起大爆炸發生時的情況。”

      他們的計算機模擬中展示了一個很大的晶格,在這個晶格上,他們繪製了多種形式的物質,並追蹤了當某些條件被改變時,能量和分佈會如何隨之在空間和時間上發生變化。模擬的初始條件是基於一個特定的暴脹模型而設置的,這個模型是一組關於早期宇宙的物質分佈在宇宙暴脹期間的行為得到一系列預測。

      他們之所以選擇這一特定的暴脹模型,是因為它的預測與高精度的宇宙微波背景測量結果非常吻合。

      3.

      在模擬中,他們研究了兩種可能在暴脹期間佔主導地位的物質的行為,這些物質與希格斯玻色子非常相似。

      在進行模擬之前,研究人員對模型中的引力描述進行了一個微小的調整。我們如今看到的普通物質在引力下的作用應正如愛因斯坦廣義相對論中所預測的那樣;但在更高的能量下,比如在宇宙暴脹期間,物質的行為或許會略有不同,與之產生相互作用的引力是由量子力學修正過的。

      在廣義相對論中,引力的強度被表示為一個常數,物理學家稱之為是最小耦合,這意味着,無論一個特定粒子的能量為何,它都會以一個由普適常數所設定的強度對引力效應做出反應。

      然而,在宇宙暴脹的高能量下,物質與引力的相互作用會以一種更為複雜的方式進行。而量子力學效應預測,當與超高能物質發生相互作用時,引力的強度在空間和時間中會發生變化,這是一種被稱為非最小耦合的現象。

      研究人員將這一個非最小耦合項納入了他們的暴脹模型中,並觀察了物質和能量的分佈是如何隨着量子效應的漲落變化的。

      最後他們發現,量子修正過的引力效應對物質的影響越強,宇宙就會越快地從暴脹中寒冷、均勻的物質過渡到更熱、更多樣的大爆炸過程中特有的物質。

      “再熱是一個瘋狂的過程,一切都不受控制。我們發現,當時物質之間的相互作用非常強烈,以至於它可以相應地快速放鬆下來,為大爆炸創造了合適的條件。我們以前並不知道會是這個樣子,但這些都是我們用已知的物理學從模擬中得出的結論。這正是讓我們興奮的地方。”

      對於新的發現,其他物理學家認為,關於造成了暴脹階段的提議有數百種,但從暴脹階段到所謂的‘熱大爆炸’之間的過渡卻是人們最不了解的部分,而這篇論文則通過包含多個獨立的場和複雜的動力學在模型中精確地模擬后暴脹階段,開闢了新的領域。這是極具挑戰性的數值模擬,併為研究早期的宇宙非線性動力學提供了最新的技術。

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

    ※帶您來了解什麼是 USB CONNECTOR  ?

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

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

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

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

  • Class文件結構全面解析(下)

    Class文件結構全面解析(下)

    接上回書

    書接,分享了Class文件的主要構成,同時也詳細分析了魔數、次版本號、主版本號、常量池集合、訪問標誌的構造,接下來我們就繼續學習。

    歡迎關注微信公眾號:萬貓學社,每周一分享Java技術乾貨。

    類索引和父類索引

    類索引(this_class)和父類索引(super_class)都是一個u2類型的數據,類索引用於確定這個類的全限定名,父類索引用於確定這個類的父類全限定名。由於java語言不允許多重繼承,所以父類索引只有一個。

    類索引和父類索引各自指向常量池中類型為CONSTANT_Class_info的類描述符,再通過類描述符中的索引值找到常量池中類型為CONSTANT_Utf8_info的字符串。再來看一下之前的Class文件例子:

    歡迎關注微信公眾號:萬貓學社,每周一分享Java技術乾貨。

    結合之前javap分析出來的常量池內容:

       #3 = Class         #17        // OneMoreStudy
       #4 = Class         #18        // java/lang/Object
      #17 = Utf8          OneMoreStudy
      #18 = Utf8          java/lang/Object

    類索引為0x0003,去常量池裡找索引為3的類描述符,類描述符中的索引為17,再去找索引為17的字符串,就是“OneMoreStudy”。

    父類索引為0x0004,去常量池裡找索引為4的類描述符,類描述符中的索引為18,再去常量池裡找索引為18的字符串,就是“java/lang/Object”。

    歡迎關注微信公眾號:萬貓學社,每周一分享Java技術乾貨。

    接口索引集合

    接口索引集合(interface)是一組u2類型的數據的集合,由於java語言允許實現多個接口,所以接口索引也有多個,它們按照implements語句后的接口順序從左到右依次排列在接口索引集合中。接口索引集合的第一項數據是接口集合計數值(interfaces_count),表示有多少接口索引。如果該類沒有實現任何接口,那麼該計數值為0,後面的接口索引表不佔任何字節。之前的例子OneMoreStudy類沒有實現任何接口,所以接口集合計數值就是0,如下圖:

    歡迎關注微信公眾號:萬貓學社,每周一分享Java技術乾貨。

    字段表集合

    字段表(field_info)是用來描述接口或類中聲明的變量。包括類級變量(靜態變量)和實例級變量(成員變量),但是不包括在方法內部聲明的局部變量。具體結構如下錶:

    類型 名稱 數量 描述
    u2 access_flags 1 字段的訪問標誌
    u2 name_index 1 字段的簡單名稱索引
    u2 descriptor_index 1 字段的描述符索引
    u2 attributes_count 1 字段的屬性計數值
    attribute_info attributes attributes_count 字段的屬性

    字段表中的access_flags,和類的access_flags是非常類似的,但是標識和含義是不一樣的。具體如下錶:

    標誌名稱 標誌值 含義
    ACC_PUBLIC 0x0001 字段是否public
    ACC_PRIVATE 0x0002 字段是否private
    ACC_PROTECTED 0x0004 字段是否protected
    ACC_STATIC 0x0008 字段是否static
    ACC_FINAL 0x0010 字段是否為final
    ACC_VOLATILE 0x0040 字段是否volatile
    ACC_TRANSIENT 0x0080 字段是否transient
    ACC_SYNTHETIC 0x1000 字段是否由編譯器自動產生的
    ACC_ENUM 0x4000 字段是否enum

    歡迎關注微信公眾號:萬貓學社,每周一分享Java技術乾貨。

    這裏提到了簡單名稱、描述符,和全限定名有什麼區別呢?稍微說一下。

    簡單名稱是沒有類型和參數修飾的方法或字段名稱,比如OneMoreStudy類中的number字段和plusOne()方法的簡單名稱分別是“number”和“plusOne”。

    全限定名是把類全名中的“.”替換成“/”就可以了,比如java.lang.Object類的全限定名就是“java/lang/Object”。

    描述符是用來描述字段的數據類型、方法的參數列表(包括數量、類型以及順序)和返回值。基礎數據類型和無返回的void類型都有一個大寫字母表示,對象類型用字符L加對象的全限定名來表示,如下錶:

    標識字符 含義
    B 基本類型byte
    C 基本類型char
    D 基本類型double
    F 基本類型float
    I 基本類型int
    J 基本類型long
    S 基本類型short
    Z 基本類型boolean
    V 特殊類型void
    L 對象類型 如 Ljava/lang/Object

    對於數組類型,每一維度使用一個前置的“[”字符來描述,比如java.lang.Object[][]的二維數據,就是“[[Ljava/lang/Object”。在描述方法時,按照先參數列表,后返回值的順序描述,參數列表按照嚴格順序放在“()”值中,比如boolean equals(Object anObject),就是“(Ljava/lang/Object)B”。

    歡迎關注微信公眾號:萬貓學社,每周一分享Java技術乾貨。

    再來看一下之前的Class文件例子:

    OneMoreStudy類中只有一個字段number,所以字段計數值為0x0001。字段number只被private修飾,沒有其他修飾,所以字段的訪問標誌位為0x0002。字段的簡單名稱索引是0x0005,去常量池中找索引為5的字符串,為“number”。字段的描述符索引為0x0006,去常量池中找索引為6的字符串,為“I”,是基本類型int。以下是常量池相關內容:

       #5 = Utf8          number
       #6 = Utf8          I

    字段number的屬性計數值為0x0000,也就是沒有需要額外描述的信息。

    字段表集合中不會列出從父類或者父接口中繼承而來的字段,但有可能列出原版Java代碼中沒有的字段,比如在內部類中為了保持對外部類的訪問性,會自動添加指向外部類實例的字段。

    歡迎關注微信公眾號:萬貓學社,每周一分享Java技術乾貨。

    方法表集合

    方法表的結構和字段表的是一樣的,也是依次包括了訪問標誌(access_flags)、名稱索引(name_index)、描述符索引(descriptor_index)和屬性表集合(attributes)。具體如下錶:

    類型 名稱 數量 描述
    u2 access_flags 1 方法的訪問標誌
    u2 name_index 1 方法的簡單名稱索引
    u2 descriptor_index 1 方法的描述符索引
    u2 attributes_count 1 方法的屬性計數值
    attribute_info attributes attributes_count 方法的屬性

    對於方法的訪問標誌,所有標誌位和取值如下錶:

    標誌名稱 標誌值 含義
    ACC_PUBLIC 0x0001 方法是否public
    ACC_PRIVATE 0x0002 方法是否private
    ACC_PROTECTED 0x0004 方法是否protected
    ACC_STATIC 0x0008 方法是否static
    ACC_FINAL 0x0010 方法是否為final
    ACC_SYNCHRONIZED 0x0020 方法是否sychronized
    ACC_BRIDGE 0x0040 方法是否是由編譯器產生的橋接方法
    ACC_VARARGS 0x0080 方法是否接受不定參數
    ACC_NATIVE 0x0100 方法是否為native
    ACC_ABSTRACT 0x0400 方法是否為abstract
    ACC_STRICT 0x0800 方法是否為strictfp
    ACC_SYNTHETIC 0x1000 方法是否由編譯器自動產生

    方法中的Java代碼,經過編譯器編程成字節碼指令后,放在方法屬性表集合中一個名為“Code”的屬性里,後面會有更多分享。

    歡迎關注微信公眾號:萬貓學社,每周一分享Java技術乾貨。

    再來看一下之前的Class文件例子:

    方法計算值為0x0003,表示集合中有兩個方法(編譯器自動添加的無參構造方法和源碼中的plusOne方法)。第一個方法的訪問標誌是0x0001,表示只有ACC_PUBLIC標誌為true。

    名稱索引為0x0007,在常量池中為索引為7的字符串為“ ”,這就是編譯器自動添加的無參構造方法。描述符索引為0x0008,在常量池中為索引為7的字符串為“()V”,方法的屬性計數值為0x0001,表示該方法有1個屬性,屬性名稱索引為0x0009,在常量池中為索引為7的字符串為“Code”。以下是常量池相關內容:

       #7 = Utf8          <init>
       #8 = Utf8          ()V
       #9 = Utf8          Code

    歡迎關注微信公眾號:萬貓學社,每周一分享Java技術乾貨。

    屬性表集合

    屬性表(attribute_info)在前面的分享中出現了幾次,在Class文件、字段表、方法表都可以有自己的屬性表集合,用來描述某些場景下特有的信息。

    屬性表不在要求具有嚴格的順序,並且只要不與已有的屬性名重複,任何人實現的編譯器都可以寫入自己定義的屬性信息,Java虛擬機在運行時會忽略掉它不認識的屬性。

    我總結了一些比較常見的屬性,如下錶:

    屬性名稱 使用位置 含義
    Code 方法表 Java代碼編譯成的字節碼指令
    ConstantValue 字段表 final關鍵字定義的常量值
    Exceptions 方法表 方法拋出的異常
    InnerClasses 類文件 內部類列表
    LineNumberTable Code屬性 Java源碼的行號與字節碼指定的對應關係
    LocalVariableTable Code屬性 方法的局部變量描述
    SourceFile 類文件 記錄源文件名稱

    對於每個屬性,它的名稱都從常量池中引用一個CONSTANT_Utf8_info類型的常量,而屬性值的結構則是完全自定義的,只需要用一個u4類型來說明屬性值所佔的位數就可以了。具體結構如下:

    類型 名稱 數量 含義
    u2 attribute_name_index 1 屬性名稱索引
    u2 attribute_length 1 屬性值所佔的位數
    u1 info attribute_length 屬性值

    歡迎關注微信公眾號:萬貓學社,每周一分享Java技術乾貨。

    總結

    Class文件主要由魔數、次版本號、主版本號、常量池集合、訪問標誌、類索引、父類索引、接口索引集合、字段表集合、方法表集合和屬性表集合組成。隨着JDK版本的不斷升級,Class文件結構也在不斷更新,學習之路,永不止步。

    歡迎關注微信公眾號:萬貓學社,每周一分享Java技術乾貨。

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

    收購3c,收購IPHONE,收購蘋果電腦-詳細收購流程一覽表

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

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

    ※公開收購3c價格,不怕被賤賣!

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

  • JSON——IT技術人員都必須要了解的一種數據交換格式

    JSON——IT技術人員都必須要了解的一種數據交換格式

    JSON作為目前Web主流的數據交換格式,是每個IT技術人員都必須要了解的一種數據交換格式。尤其是在Ajax和REST技術的大行其道的當今,JSON無疑成為了數據交換格式的首選

    今天大家就和豬哥一起來學習一下JSON的相關知識吧!

    一、XML

    在講JSON之前,我覺得有必要先帶大家了解一下XML(Extensible Markup Language 可擴展標記語言),因為JSON正在慢慢取代XML。

    1.XML起源

    早期Web發展和負載的數據量並不是很大,所以基本靠HTML(1989誕生)可以解決。但是隨着Web應用的不斷壯大,HTML的一些缺點也慢慢顯現,如:可讀性差、解析時間長、數據描述性差等。

    1998年2月10日,W3C(World WideⅥiebConsortium,萬維網聯盟)公布XML 1.0標準,XML誕生了。

    XML使用一個簡單而又靈活的標準格式,為基於Web的應用提供了一個描述數據和交換數據的有效手段。但是,XML並非是用來取代HTML的。HTML着重如何描述將文件显示在瀏覽器中,它着重描述如何將數據以結構化方式表示。

    XML簡單易於在任何應用程序中讀/寫數據,這使XML很快成為數據交換的唯一公共語言,所以XML被廣泛應用。

    注意: XML是一種數據交換的格式,並不是編程語言。而且他是跨語言的數據格式,目前絕大多數編程語言均支持XML。

    2.XML實例

    XML究竟怎麼用?是什麼樣子的?我們來舉一個簡單的例子吧!

    A公司要和B公司業務對接(A公司要獲取B公司的用戶基本信息),B公司提供接口讓A公司調用,A、B公司對接的開發人員會提前溝通好這個接口的:URL、傳參、返回數據、異常等等。

    但是也許兩個公司使用的技術棧並不相同,所以支持的據格式也可能不同。為了解決因技術棧不同帶來的數據格式不同問題,A、B公司的開發協商使用一種通用的數據格式來傳輸,於是他們想到了XML。

    1. 假設現在A公司需要名稱叫pig的用戶信息,於是A公司調用B公司的接口,並傳參數name=pig。
    2. 然後B公司接口收到請求后,將用戶信息從數據庫拿出來,然後封裝成下面的XML格式,然後再返回給A公司。
    3. 最後A公司收到返回后,使用XML庫解析數據即可
    <?xml version="1.0" encoding="UTF-8"?>
    <person>
      <name>pig</name>
      <age>18</age>
      <sex>man</sex>
      <hometown>
        <province>江西省</province>
        <city>撫州市</city>
        <county>崇仁縣</county>
      </hometown>
    </person>

    3.XML十字路口

    雖然XML標準本身簡單,但與XML相關的標準卻種類繁多,W3C制定的相關標準就有二十多個,採用XML制定的重要的电子商務標準就有十多個。這給軟件開發工程師帶來了極大的麻煩!

    隨着AJax(之前叫XMLHTTP,2005年後才叫Ajax)技術的流行,XML的弊端也越來越顯現:大家都知道XML實現是基於DOM樹實現的,而DOM在各種瀏覽器中的實現細節不盡相同,所以XML的跨瀏覽器兼容性並不好,所以急需一種新的數據負載格式集成到HTML頁面中以滿足Ajax的要求!

    二、JSON

    前面我們說了隨着Ajax的流行,而各種瀏覽器對DOM的實現細節不盡相同,所以會出現兼容性問題,這對前端開發同學來講真的是災難。因為一個功能可能需要用代碼去兼容各種不同的瀏覽器,還要調試,工作量巨大。

    1.JSON誕生

    如何才能將數據整合到HTML中又解決瀏覽器兼容性問題呢?答案就是:利用所有主流瀏覽器中的一種通用組件——JavaScript引擎。這樣只要創造一種JavaScript引擎能識別的數據格式就可以啦!

    2001 年 4 月,首個 JSON 格式的消息被發送出來。此消息是從舊金山灣區某車庫的一台計算機發出的,這是計算機歷史上重要的的時刻。道格拉斯·克羅克福特(Douglas Crockford) 和 奇普·莫寧斯達(Chip Morningstar) 是一家名為 State Software 的技術諮詢公司的聯合創始人(後來都在雅虎任職),他們當時聚集在 Morningstar 的車庫里測試某個想法,發出了此消息。

    document.domain = 'fudco'; 
    
    parent.session.receive( 
        { to: "session", do: "test", text: "Hello world" } 
    ) 

    熟悉js的同學是不是也很驚訝,第一個 JSON 消息它明顯就是 JavaScript!實際上,Crockford 自己也說過他不是第一個這樣做的人。網景(Netscape )公司的某人早在 1996 年就使用 JavaScript 數組字面量來交換信息。因為消息就是 JavaScript,其不需要任何特殊解析工作,JavaScript 解釋器就可搞定一切。

    最初的 JSON 信息實際上與 JavaScript 解釋器發生了衝突。JavaScript 保留了大量的關鍵字(ECMAScript 6 版本就有 64 個保留字),Crockford 和 Morningstar 無意中在其 JSON 中使用了一個保留字:do。因為 JavaScript 使用的保留字太多了,所以Crockford決定:既然不可避免的要使用到這些保留字,那就要求所有的 JSON 鍵名都加上引號。被引起來的鍵名會被 JavaScript 解釋器識別成字符串。這就為什麼今天 JSON 鍵名都要用引號引起來的原因。

    這種數據格式既然可以被JavaScript引擎識別,那就解決了XML帶來的各種瀏覽器兼容性問題,所以這種技術完全可以推廣出去,於是Crockford 和 Morningstar 想給其命名為 “JSML”,表示JavaScript 標記語言(JavaScript Markup Language)的意思,但發現這個縮寫已經被一個名為 Java Speech 標記語言的東西所使用了。所以他們決定採用 “JavaScript Object Notation”,縮寫為 JSON,至此JSON正式誕生。

    2.JSON發展

    2005 年,JSON 有了一次大爆發。那一年,一位名叫 Jesse James Garrett 的網頁設計師和開發者在博客文章中創造了 “AJAX” 一詞。他很謹慎地強調:AJAX 並不是新技術,而是 “好幾種蓬勃發展的技術以某種強大的新方式彙集在一起。” AJAX 是 Garrett 給這種正受到青睞的 Web 應用程序的新開發方法的命名。他的博客文章接着描述了開發人員如何利用 JavaScript 和 XMLHttpRequest 構建新型應用程序,這些應用程序比傳統的網頁更具響應性和狀態性。他還以 Gmail 和 Flickr 網站已經使用 AJAX 技術作為了例子。

    當然了,“AJAX” 中的 “X” 代表 XML。但在隨後的問答帖子中,Garrett 指出,JSON 可以完全替代 XML。他寫道:“雖然 XML 是 AJAX 客戶端進行數據輸入、輸出的最完善的技術,但要實現同樣的效果,也可以使用像 JavaScript Object Notation(JSON)或任何類似的結構數據方法等技術。 ”

    這時JSON便在國外的博客圈、技術圈慢慢流行起來!

    2006 年,Dave Winer,一位高產的博主,他也是許多基於 XML 的技術(如 RSS 和 XML-RPC)背後的開發工程師,他抱怨到 JSON 毫無疑問的正在重新發明 XML。

    Crockford 閱讀了 Winer 的這篇文章並留下了評論。為了回應 JSON 重新發明 XML 的指責,Crockford 寫到:“重造輪子的好處是可以得到一個更好的輪子”。

    3.JSON實例

    還是以上面A、B公司業務對接為例子,兩邊的開發人員協商一種通用的數據交換格式,現在有XML與JSON比較流行的兩種數據格式,於是開發人員又將用戶信息以JSON形式展現出來,然後比較兩種數據格式:

    {
      "person": {
        "name": "pig",
        "age": "18",
        "sex": "man",
        "hometown": {
          "province": "江西省",
          "city": "撫州市",
          "county": "崇仁縣"
        }
      }
    }

    比較XML與JSON的數據格式之後,開發人員發現:JSON可閱讀性、簡易性更好而且相同數據負載JSON字符數更少,所以兩個開發人員一致同意使用JSON作為接口數據格式!

    而且還有重要的一點,在編寫XML時,第一行需要定義XML的版本,而JSON不存在版本問題,格式永遠不變!

    4.當今JSON地位

    當今的JSON 已經佔領了全世界。絕大多數的應用程序彼此通過互聯網通信時,都在使用 JSON。它已被所有大型企業所採用:十大最受歡迎的 web API 接口列表中(主要由 Google、Facebook 和 Twitter 提供),僅僅只有一個 API 接口是以 XML 的格式開放數據的。

    JSON 也在程序編碼級別和文件存儲上被廣泛採用:在 Stack Overflow上,關於JSON的問題越來越多,下圖是關於Stack Overflow上不同數據交換格式的問題數和時間的曲線關係圖。
    從上圖我們可以看出在Stack Overflow上越來越多JSON的問題,從這裏也可以反映出JSON越來越流行!

    更詳細的關於創造JSON的故事可閱讀:

    3、總結

    由於篇幅原因我們今天只學習了JSON的誕生和起源相關知識,知道了JSON的誕生是因為XML無法滿足Ajax對瀏覽器兼容性問題,所以就有人想創造一種瀏覽器通用組件:JavaScript引擎 能識別的數據格式,這樣就可以解決瀏覽器不兼容問題,所以就從Js數據格式中提取了一個子集,取名為JSON!

    我們還知道了為什麼JSON鍵為什麼需要用雙引號引起來,是因為JS中存在許多的關鍵字和保留關鍵字,為了避免與JS關鍵字衝突,所以Crockford就要求在所有的鍵名上加上雙引號,這樣JS引擎會將其識別為字符串,就避免與JS中關鍵字衝突!

    下期我們會詳細介紹JSON數據結構、JSON序列化、JSON在Python中的使用等知識。

    了解技術誕生與發展背後的故事同樣重要,因為這些可以作為你吹逼的資本!

    參考資料:
    百度百科:XML
    Daniel Rubio:JSON 簡介

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

    ※高價收購3C產品,價格不怕你比較

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

    網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

    3c收購,鏡頭 收購有可能以全新價回收嗎?

    ※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

  • 超越競爭框架!豐田攜手比亞迪研發 EV,ADR 創一年高

    超越競爭框架!豐田攜手比亞迪研發 EV,ADR 創一年高

    日本汽車業龍頭豐田汽車(Toyota)19 日發新聞稿,已和中國電動車(EV)廠商比亞迪(BYD)簽署共同研發契約,雙方將攜手研發 EV,研發搭載於 EV 等車款的電池產品。豐田指出,雙方將攜手研發轎車及低底盤 SUV 類型 EV,目標在 2025 年前在中國市場推出豐田品牌 EV。

    豐田表示,此次會和比亞迪攜手研發 EV,主要是因為為了抑制地球暖化、縮減二氧化碳排放,研判有必要進一步促進 EV 普及,因而認為必須超越競爭關係框架合作。

    據豐田指出,比亞迪於 2008 年開始販售全球首款插電式油電混合車(PHV),2015 年起 EV 和 PHV 的合計銷售量連續 4 年位居全球車廠之冠;而豐田於 1997 年開始販售全球首款量產款油電混合車(HV)。

    日經新聞報導,豐田和比亞迪攜手研發的 EV 考慮透過豐田現有的合資夥伴生產或是委託比亞迪生產。

    豐田 ADR 19 日上揚 0.28%,收 130.17 美元,創近一年來(2018 年 8 月 3 日以來)收盤新高。

    日本市調機構富士經濟(Fuji Keizai)調查報告指出,在中國、歐洲、美洲需求加持下,預估 2035 年全球電動化車款(xEV;含 EV、PHV、HV、輕型 HV 和 FCV)市場規模(銷售量)預估為 6,341 萬台,將較 2017年 442 萬台飆增 13.3 倍(1,330%)。

    (本文內容由  授權使用。首圖來源: CC BY 2.0)

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※帶您來了解什麼是 USB CONNECTOR  ?

    平板收購,iphone手機收購,二手筆電回收,二手iphone收購-全台皆可收購

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

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

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

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

  • Gogoro Network 拆分成為獨立事業體,聚焦電池交換與能源管理

    Gogoro Network 拆分成為獨立事業體,聚焦電池交換與能源管理

    Gogoro 於開放式 Gogoro Network 智慧電池交換平台上,發展出多款電動機車於市場上熱賣,進一步帶動合作夥伴包括 YAMAHA、宏佳騰、PGO 開發出 Powered by Gogoro Network 電動機車。在 Gogoro Network 提供的電池交換模式即將邁向服務 20 萬名用戶之際,Gogoro 22 日宣布將 Gogoro Network 獨立成全新事業體,更加專注於開放式智慧電池交換平台以及智慧移動服務上。

    Gogoro Network 智慧電池交換平台以電池交換為主、充電為輔的模式,翻轉了過去電動機車充電時間漫長的現象。從 2015 年以來,全台購買電動機車的消費者逾 95% 的車主選擇以「電池交換」為基礎的電動車。Gogoro Network 在其雙軌並行的模式下,僅約 1% 左右的車主加購,也證明電池交換是電動機車車主補充動力能源的主流方式。目前 Gogoro Network 平台已累計突破 4,400 多萬次的電池交換次數,平均每日交換次數高達 10 萬餘次。

    Gogoro 發展出「Powered by Gogoro Network」,讓可在 Gogoro 電控系統、智慧電池、電池交換平台等基礎上開發電動機車,其中 YAMAHA 日前正式推出新款電動機車 ,與 PGO 摩特動力也預計在今年下半年接續發表新車。

    Gogoro Network 涵蓋了電動機車解決方案的 4 大關鍵要素:

    雲端基礎設施

    Gogoro Network 整合了 AI 人工智慧、機器學習等技術,創造了新一代智慧電池交換平台。搭配 24 小時 Network Operation Center(NoC)雲端網路管理中心,是全球最穩定、具規模的電池交換系統。

    GoStation 電池交換站

    車主於城市中隨處可見 GoStation 電池交換站點進行交換電池,目前 Gogoro Network 於全台灣的電池交換站,包括即將啟用的站點已突破 1,292 站,合作夥伴包括中油、台塑等直營或加盟加油站逾 390 站,7-ELEVEN、全家、全聯、萊爾富等超商逾 400 站,還有桃園市政府停車場、台北捷運等政府單位逾 100 站。預計年底前,全台將達 1,500 站電池交換站,在人口密集的都會區,車主平均騎車 3 分鐘就有一座電池交換站。

    Gogoro Network 智慧電池

    Gogoro 採用的智慧電池結合了多項突破性專利技術,在安全與效能方面均領先業界;此外,智慧電池具備完善的自我防護機制,可持續更新、優化並且執行電池健康診斷。從今年 7 月底開始,Gogoro Network 也將逐步投放採用 21700 電池芯的,與特斯拉(Tesla)使用的電芯同級,車主們將有機會交換到性能提升達 27%、比競品多出 2.8 倍電力容量的電池,騎乘里程數可達 170 公里。

    Gogoro Network App

    不僅在基礎建設等硬體方面,也透過 、 平台全新推出《Gogoro Network》App,引領用戶迅速且輕鬆地找到最近的電池交換站,並且隨時進行電池服務資費方案變更、疑難排除以及帳務管理,更能查詢歷史騎乘紀錄,這種一站式的解決方案可以確保 Gogoro Network 用戶獲得最多與最有價值的資訊。

    升任 Gogoro Network 總經理的潘璟倫表示,Gogoro Network 是目前全球最大的智慧電池交換平台,接下來除了持續專注於智慧電池技術的提升,並透過人工智慧優化電池交換服務以及電池交換站步局以外,也將全力支援更多合作夥伴開發 Powered by Gogoro Network 智慧電動機車,也將開發更多以此平台與電池技術為基礎的創新服務型態。

    (合作媒體:。圖片來源:Gogoro)

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※為什麼 USB CONNECTOR 是電子產業重要的元件?

    收購3c,收購IPHONE,收購蘋果電腦-詳細收購流程一覽表

    網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

    ※想要讓你的商品成為最夯、最多人討論的話題?網頁設計公司讓你強力曝光

    ※高價收購3C產品,價格不怕你比較

    ※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

  • Gogoro 2 2020 年式全新改款,前方置物箱、智慧鑰匙卡、速度升級一次滿足

    Gogoro 2 2020 年式全新改款,前方置物箱、智慧鑰匙卡、速度升級一次滿足

    2019 年 Gogoro 除了推出新車款 Gogoro 3,也宣布迎接 Gogoro 2 系列的改版。Gogoro 2 2020 年式車款將為消費者帶來速度更快、使用更便利的新版 Gogoro 2,一起來看看改版後有什麼不同。

    截至目前為止 Gogoro 旗下掛牌的機車數量已經逼近 20 萬台,最近更連續 3 個月單月掛牌數超過 1.1 萬台。Gogoro 2 系列也成為全台同級車銷售冠軍,如果與 125cc 中高階同級車款銷售量相比,Gogoro 2 系列產品線的總銷售量可以達到中高階車款市佔率的 27%。

    Gogoro 2 2020 年式車款標榜更快、更智慧、更實用,帶來全方位的升級。改版後全面導入 iQ system 智慧鑰匙卡,只要輕輕觸碰就能進行解鎖。Gogoro 2 2020 年式也針對引擎進行調校,讓車速變得更快,所有車款靜止加速到時速 50 公里需要的時間全部縮短 0.1 秒。

    由於 Gogoro 3 的置杯架頗受好評,Gogoro 2 2020 年式也配備了多功能置物箱,可以擺放手機和手套等物品,也能做為飲料置杯架使用。置物箱也內附 USB 充電插槽,可以在放置手機時一邊充電。此外,新的電池已經陸續上線,單次電池交換可以騎乘的里程達到 170 公里。

    Gogoro 2 2020 年式改版將全面配置智慧鑰匙卡。

    前方多功能置物箱位於左邊,按壓之後即可開啟。

    前方多功能置物箱可以放置手機等物品。

    置物箱也能做為飲料置杯架使用。

    除了 Gogoro 2 系列改頭換面以外,元老級的 Gogoro 1 系列也有 2020 年式改版。同樣全面導入 iQ system 智慧鑰匙卡,不過感應位置位於車體尾端。原本需要加購的 Y 架也改為直接配置,方便車主掛放物品。

    在 Gogoro 眾多車種當中,2018 年度最暢銷車款就是 Gogoro 2 Delight。Gogoro 2 Delight 在女性用車級距獲得銷售第一的寶座,2019 年佔比更達到 32%。12 吋輪圈適應各種身型,省力 25% 的駐車架和輔助倒車功能獲得眾多車主的喜愛。為了回應消費者的愛好,Gogoro 宣布 Gogoro 2 Delight 將加入新的顏色,而且是已經停售的 Gogoro 2 Deluxe 的經典配色白色款和灰色款。

    Gogoro 2 Delight 2020 年式白色款。

    Gogoro 2 Delight 2020 年式灰色款。

    為了推廣車款改版,Gogoro 推出了新的購車優惠,即日起到 8 月 31 日購買 Gogoro 任何車款,就贈送 6 個月電池服務資費 299 元。如果選擇 299 元資費就代表可以享受 6 個月免費電持服務,如果選擇更高的資費就每月折抵 299 元。因應 2020 年式的改版,各車款將進行微幅的價格調整,預計上調台幣 1,180 元起。

    (合作媒體:。圖片來源:)

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

    ※高價3c回收,收購空拍機,收購鏡頭,收購 MACBOOK-更多收購平台討論專區

    ※評比前十大台北網頁設計台北網站設計公司知名案例作品心得分享

    收購3c瘋!各款手機、筆電、相機、平板,歡迎來詢價!

    ※智慧手機時代的來臨,RWD網頁設計已成為網頁設計推薦首選