Java的前生今世

Java作為一門編程語言,自誕生以來已經流行了20多年,在學習它之前,我們有必要先了解一下它的歷史,了解它是如何一步步發展到今天這個樣子。

孕育

上世紀90年代,硬件領域出現了單片式計算機系統,比如電視機機頂盒這些消費設備。這些設備的特點是處理能力和內存都有限。如果使用C++編寫程序,則對於這類設備來說過於龐大。

所以需求便來了,為了適應這類設備,需要一種小型的計算機語言,Java便應運而生了。

1991年,Sun公司的James Gosling, Mike Sheridan和Patrick Naughton發起了一個名為“Green”的項目小組,主要用於電視機頂盒這類消費設備。

由於設備的處理能力和內存有限,所以要求語言短小、代碼緊湊。而對於電視機頂盒這類消費設備來說,廠商會選擇各種不同的CPU,所以要求語言可移植、不與特定的平台捆綁在一起

出生

Green項目組以C++為基礎,對C++進行了一些改造,並刪除了一些不太實用、複雜繁瑣的東西,開發出了名為“Oak”的語言,(Oka來自James Gosling辦公室外的橡樹)。

成長

挫折

1992年夏天,Green項目組已經能夠演示Green操作系統、Oak的程序設計語言、類庫和其硬件。

1992年9月,Green項目組發布了它的第一個名為“Start 7”的產品,該產品是一個個人数字助理設備,具有圖形界面和非常智能的遠程控制。

1992年11月,Green項目被剝離,成為Sun Microsystems的全資子公司Firstperson。

但是當時的硬件生產廠商對其項目並不感興趣,Firstperson花了一年多也沒找到希望購買其技術的買家。

1994年,First Person公司解散,被重新納入Sun公司。Oak語言無法進入市場,也被暫時擱置下來。

機遇

在上面的過程中,Internet的萬維網也在不斷髮展。對於客戶機/服務器模型來說,萬維網需要做的是將超文本頁面轉換到屏幕的瀏覽器中。

1994年6月到7月,Sun公司的團隊看到了互聯網的發展,一些圖形Web瀏覽器的出現讓他們認為互聯網可以演變成他們為有線電視所設想的相同的高度交互性媒體。經過三天的頭腦風暴后,該團隊將目標平台重新定位為萬維網平台。

1994年中期,Oak語言的開發者意識到他們可以開發一個瀏覽器,WebRunner瀏覽器誕生。

1995年,互聯網的發展帶給了Oak語言一個機遇。當時的網絡頁面是單調、死板的靜態頁面,業界希望頁面能夠“靈活”起來,並且希望代碼能夠通過網絡傳播進行跨平台運行。Oak的語言短小、可移植的特點和這些需求不謀而合。

Sun公司首先推出了可以嵌入網頁並且可以隨同網頁在網絡上傳輸的Applet(Applet是一種將小程序嵌入到網頁中進行執行的技術)。

設計者在設計WebRunner瀏覽器具有在網頁中執行內嵌代碼的能力,這種能力能讓網頁變得“靈活”。

同年,Sun公司將Oak更名為Java(因為Oak已經被使用了,Java一詞來自咖啡),WebRunner瀏覽器也演變成了HotJava瀏覽器,HotJava瀏覽器完全使用Java開發。

同年5月23日,Sun公司在Sun World會議上展示並正式發布了Java語言和HotJava瀏覽器,各大公司都紛紛停止了自己公司相關項目的開發,競相購買Java的使用許可證,併為自己的產品開發了相應的Java平台。

發展

1996年初,Sun公司發布了Java的第1個開發工具包(JDK1.0),這是Java發展的里程碑,標志著Java成為了一種獨立的開發工具。

同年9月,約8.3萬個網頁應用了Java來製作。

同年10月,Sun公司發布了Java平台的第1個即時編譯器。

但是人們很快意識到Java1.0並不能用來進行真正的應用開發。

1997年2月,JDK1.1面世,它彌補了JDK1.0的大多明顯缺陷,改進了反射能力,但是仍有局限性。

1998年12月,Sun公司發布了第二代Java平台——JDK1.2。此次發布有幾個不同的版本,分別是標準版J2SE、用於手機等嵌入式設備的微型版J2ME、用於服務器端處理的企業版J2EE。

此次發布是Java發展過程中最重要的里程碑,標志著Java的應用開始普及。

2000年5月,JDK1.3、JDK1.4、J2SE1.3相繼發布。

2001年9月,J2EE1.3發布。

2002年2月,J2SE1.4發布。該版本提高了Java的計算能力,擴展了標準類庫,提高了系統性能。

在此期間,Java Applet採用低調姿態,淡化了客戶端的應用,成為服務器端應用的首選平台

2004年9月,J2SE 1.5版本發布,該版本為重大更新,是自1.1版本以來第一個對Java語言做出重大改進的版本。JavaOne會議后,版本数字從1.5改為5.0。

2005年6月,Java SE 6發布。版本名稱發生了改變,如J2SE改為Java SE、J2ME改為Java ME、J2EE改為Java EE。該版本沒有對語言方面再進行改進,但是改進了其他性能,增強了類庫。

2006年11月,Sun公司將Java技術作為免費軟件對外發布。

2007年3月起,全世界所有開發人員均可對Java源代碼進行修改。

隨着數據中心越來越依賴於商業硬件而不是專用服務器,Sun公司在2009年被Oracle收購。

2011年,Oracle發布Java SE 7。

2014年,Java SE 8發布,近20年以來,該版本有了最大改變,Java 8提供了一種“函數式”編程方式,可以很容易地表述併發執行的計算。

2017年,Java SE 9發布。

Java 9之後,Oracle宣布每6月更新一次版本。

2020年3月,Java SE 14發布。

Java Web的發展

Java一路走來,為了適應時代發展,做出了許多改變。

在早期,Java是為了解決傳統的單機程序設計問題,但由於種種原因,Java後來轉向Web。

Web的最初模樣

Web為了提供交互性內容採取了客戶端/服務器系統,但是交互性完全由服務器提供。服務器產生靜態頁面,這些靜態頁面是事先寫好的,將其提供給能夠解釋並显示的客戶端瀏覽器。

但是我們的需求是千變萬化的,事先寫好的靜態頁面肯定不能滿足我們日益增長的需求。

CGI

CGI(Common Gateway Interfa,通用網關接口),它是一段程序,運行在服務器上,提供同客戶端HTML頁面的接口,通俗的講CGI就像是一座橋,把網頁和WEB服務器中的執行程序連接起來,它把HTML接收的指令傳遞給服務器,再把服務器執行的結果返還給HTML頁。

CGI使網頁變得不是靜態的,而是交互式的。

但是CGI程序的響應時間依賴於發送的數據量的大小、服務器和網絡的負載,一旦網站變得複雜起來,響應就會變得非常慢且難以維護。

Applet

Applet是一種將小程序嵌入到網頁中進行執行的技術,含有Applet的網頁的HTML文件代碼中部帶有<applet></applet>這樣一對標記,當支持Java的網絡瀏覽器遇到這對標記時,就將下載相應的小應用程序代碼並在本地計算機上執行該Applet。

在當時,Java Applet 可以大大提高Web頁面的交互能力和動態執行能力。

Java剛出現時,Applet是最受大家歡欣鼓舞的。但是由於當時的網絡環境的問題,安裝Java運行時環境(JRE)所需要的10MB帶寬對當時的用戶來說太過於恐怖。並且微軟的IE瀏覽器並並沒有包含JRE,所以Applet並沒有得到大規模應用。

Servlet

Servlet(Server+Applet),即服務器端小程序。Servlet能夠按照用戶提交的內容處理並返回相應的資源。可以輸出HTML頁面,動態展示數據。Servlet實現正確的接口就能夠處理Http請求。

但是出現了一個很大的問題:HTML代碼需要在Servlet類中用Java代碼一行一行輸出,表現、邏輯、控制、業務等全部在Servlet類中,造成Servlet類代碼混亂(HTML代碼、Java代碼都寫在一起),重複性高、閱讀性差、開發困難。

下面是使用Servlet在瀏覽器中輸出有一個h1標題的Hello World!字符串的HTML頁面。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    PrintWriter out = response.getWriter();
    response.setContentType("text/html;charset=utf-8");
    out.println("<html>");
    out.println("<head>");
    out.println("<title>$Title$</title>");
    out.println("</head>");
    out.println("<body>");
    out.println("<h1>Hello World!</h1>");
    out.println("</body>");
    out.println("</html>");
}

可想而知,更複雜的頁面得寫多少代碼!

JSP

為了解決上面的問題,Sun公司開發出了JSP。

JSP(JavaServer Page)是一種動態網頁技術標準。JSP部署於網絡服務器上,可以響應客戶端發送的請求,並根據請求內容動態地生成HTML、XML或其他格式文檔的Web網頁,然後返回給請求者。JSP技術以Java語言作為腳本語言,為用戶的HTTP請求提供服務,並能與服務器上的其它Java程序共同處理複雜的業務需求。

可以將JSP頁面看成是一個能內嵌Java代碼的HTML頁面。

靜態部分(HTML頁面)是模板,可以提前寫好,動態部分(數據)可以由Java代碼動態生成。這樣一來就避免了在單純使用Servlet時HTML代碼和Java代碼都出現在Servlet類中的混亂情況。

JSP在運行時被轉換成Servlet,因此JSP本質是Servlet。

下面是使用JSP做和上面同樣的事情:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
    <h1>Hello World!</h1>
  </body>
</html>

仍使用HTML模板,但不是用Java語句一行一行“堆”出來,這多方便!

使用了JSP后,雖然不用一行行地“堆”HTML頁面了,但是代碼混亂的問題仍沒有解決。表現、邏輯、控制、業務等代碼仍然寫在一塊了,只不過是從Servlet類中挪到JSP中了。

這樣混亂的代碼極不利於團隊開發,如果項目很小,那還能理順,但如果項目非常大的話,那就“剪不斷,理還亂了”。

所以這時候,我們急需將代碼分門別類的碼放整齊。

JSP + JavaBean(Model1模式)

JavaBean 是用Java語言寫成的可重用組件,JavaBean類要求:

  1. 類是公開的
  2. 具有私有成員變量
  3. 具有無參構造器
  4. 具有setter和getter方法

上面已經說了,單純使用JSP會有大量的HTML代碼和Java代碼耦合在一起,不利於開發、維護、分工協作。

我們舉一個登錄的例子:

登錄大致需要以下幾步:

  1. 在瀏覽器中輸入用戶名、密碼
  2. 獲取數據,交給服務器
  3. 把數據處理成合適的形式
  4. 查詢數據庫的用戶表,看是否有一條用戶名和密碼都符合輸入的記錄。如果有,則登錄成功。

單純使用JSP時,以上步驟全部在JSP登錄頁面中完成,該頁面既需要显示登錄表單、又需要獲取、處理數據、還需要查詢數據庫。太亂了!!

有了JavaBean,我們可以將JSP中大量重複的代碼抽取成可重用的組件,封裝成JavaBean,在一定程度上減輕了代碼的耦合度,也在一定意義上實現了分層

比如,用戶本身就是一個對象,我們可以將其抽取成JavaBean,數據的傳遞、查找都可使用JavaBean來完成。

JSP+Servlet+JavaBean(Model2模式——MVC模式)

上面介紹了Servlet、JSP、JSP+JavaBean,雖然在進步,但是都不盡如人意。那為什麼不讓它們結合起來取長補短?

我們之所以使用JavaBean,就是為了讓Java代碼和HTML代碼分離開了,而Servlet也是一個Java類,為什麼不使用它呢?

JSP+JavaBean已經實現了部分分層,使用MVC(Model-View-Controller)模式能進一步分層。

Model(模型):MVC模式的中心組件,處理數據和邏輯。(比如JavaBean,但不止只有JavaBean)

View(視圖):展示數據,渲染頁面。(前端頁面,比如HTML頁面、JSP頁面)

Controller(控制器):從View接收數據,向Model發送數據,即用於控制數據分發。(比如Servlet)

還用上面的登錄例子:

  1. 將JSP登錄頁面作為View

  2. Servlet類(Controller)用於接收用戶輸入的用戶名、密碼,將其封裝為用戶類(JavaBean),然後去數據庫中查詢。如果能查詢到則登錄成功。

  3. 將查詢結果返回給Controller,Controller根據查詢結果選擇一個合適的View,並將數據渲染到頁面,展示給用戶。(在本例中,如果查詢成功,則進入系統主頁;如果查詢不到,則用戶會看到一個登錄失敗頁面)

使用了MVC設計模式后,代碼有了明顯的分層,結構清晰,各司其職。

框架

為了減輕工作量,各種框架逐漸出現在人們的視野中。

所謂框架,可以把它看做一個半成品的項目/軟件,框架中有許多東西別人都已經幫我們寫好了,比如各種類、方法。

我們要做的就是去了解、學習框架,在寫好的框架的基礎上、遵循框架的制定好的規則、按照自己的思路、結合框架的思想、去開發我們自己的項目。

目前Java的Web開發中最出名的框架就是Spring家族了,比如SpringMVC、Spring、SpringBoot。

熟悉、利用這些框架能夠幫助我們快速、優雅地開發出符合需求的項目。

另,框架是別人寫好的輪子,有了它,我們能夠跑得更快,但是別忘了怎麼走。

總結

說了這麼多,相當於陪着Java從出生到現在走了一遍。我們可以看出Java的發展也不是一帆風順的,我認為Java之所以現在還這麼流行,原因之一就是它能夠一直保持更新,一直在根據時代的需求結合自身的特點不斷地做出改變。正如那句話「窮則變,變則通,通則達」。一門語言能做到這樣,身為人更應該要做到。

如有錯誤,還請指正。

參考資料:

  1. 百度百科
  2. 維基百科
  3. Java官方文檔
  4. Java核心卷一(第10版)
  5. Java編程思想(第4版)

文章首發於公眾號『行人觀學』

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

【其他文章推薦】

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

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

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

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

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

自來水源遭廢油污染 河內數十萬戶受影響

摘錄自2019年10月16日中央社報導

河內市若干區域民眾10日起發現自來水有異味,主管單位獲報後取樣送驗,相關單位隨後查出自來水水源上游小溪被歹徒偷倒廢油,使水質受污染。目擊者說,8日看到一輛貨車在小溪偷倒廢油,當地翌日下大雨,大量廢油流出大河,再往下游流去。

河內市政府15日公布自來水檢驗結果,水中苯乙烯(Styrene)含量超標1.3倍至3.65倍,是水源廢油污染所致,勸告民眾停止飲用遭污染自來水,指示相關單位安排水罐車免費供水給受影響社區民眾。

事件影響當地數十萬戶居民,由於自來水供應商和主管單位對此事處理進度緩慢,引起民眾激烈反應。

 

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

【其他文章推薦】

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

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

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

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

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

【其他文章推薦】

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

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

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

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

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

※超省錢租車方案

Tesla 買氣縮為烏龍一場 實為 9 月全球銷售創新高

昨(28 日)外媒傳出美國電動車大廠特斯拉(Tesla)9 月銷售銳減的消息,但執行長 Elon Musk 今(29 日)火速在 Twitter 上駁斥傳言,表示該則報導「不正確」。   華爾街日報 28 日引述專門追蹤汽車業消息的網站 WARDSAUTO 的說法,指出特斯拉今年 1  至 9 月 在美國的電動車銷售下滑 26%。但特斯拉從未發布每月銷售數字,而是每季進行公布,下次發布報告應是 11 月初。   Musk 在 Twitter 上說:「《華爾街日報》關於特斯拉銷售數字的報導不正確。特斯拉 9 月全球銷售創歷來新高,且北美銷售年增 65%。」Musk 還強調,特斯拉日前推出的新租車方案是基於與 U.S. Bank 的協議,不代表旗下電動車價格打折,且完全不影響特斯拉的營收。

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

【其他文章推薦】

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

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

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

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

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

BMW 積極推動電動車,慕尼黑與首爾雙城並進

  說起電動車,除了特斯拉(Tesla)以外,寶馬(BMW)的 i3、i8 也是代表性車款,BMW 對推動電動車不遺餘力,由於電動車發展最大的關鍵在於充電站網路的建立,而這需要發展充電站技術,以及與各城市的政府政策合作,BMW 同時在自己的家鄉,德國慕尼黑,實驗新的技術,又在南韓的首爾,與首爾進行市政合作,以發展電動車。   在慕尼黑,BMW 推出的想法是充電路燈,讓街上的路燈,不僅裝有 LED 照明,還同時合併 BMW 的 ChargeNow 充電站,隨時沒電了,停在路邊從路燈桿上拉出充電線就能充電,那費用怎麼計算?有專用的智慧型手機 App 來計算費用並收費。  
 
 
(Source:)   目前 BMW 已經打造了 2 座這樣的充電路燈原型,其中 1 座就安裝在 BMW 慕尼黑總部前面,另一座則可能試裝在其他路燈上,測試使用效果。   在南韓,BMW 則和通用汽車(GM)、起亞(Kia),以及雷諾三星(Renault Samsung)一起與首爾市政府合作,首爾市政府推出電動車與充電站的補貼方案,只要首爾市民購買上述 4 家車廠所生產的電動車,首爾市就會補貼 2,000 萬韓圜,約 56.3 萬元新台幣。   除此之外,若企業與組織在停車場安裝充電站,首爾市政府將再額外補貼 700 萬韓圜,約 19.7 萬元新台幣。  
 

   
(Source:)   目前首爾只有 1,500 輛電動車,主因除了價格以外,也來自於充電站不足,BMW 計畫要在首爾設立 120 座充電站,而有了首爾市政府的大舉補貼,以 BMW i3 LUX 而言,在韓國原本售價為 5,750 萬韓圜,約 162 萬元新台幣,補貼 2,000 萬韓圜後,只剩 3,750 萬韓圜,約 105.5 萬元新台幣,可以想見,消費者的購買誘因將會大增。另一方面,BMW 設立充電站也將得到補貼,而若企業大樓停車場都有充電站,對通勤的開車族而言,電動車的便利性將大幅提升。   不過首爾還有一條法規上的障礙,規定電動車禁行最低速限 60 公里以上的高速道路,也就是說電動車上不了高速公路,這嚴重打擊韓國消費者購買電動車的意願,在這條與首爾發展電動車目標自相矛盾的法規修正以前,首爾的努力恐怕效果十分有限。     本文全文授權轉載自《科技新報》─

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

【其他文章推薦】

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

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

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

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

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

電動巴士車廠華德今年拚損益兩平 年底前登錄興櫃

電動巴士車廠華德動能於 11 月 3 日與群益金鼎證券簽訂股票上市櫃輔導契約,目標今年底前登錄興櫃,華德動能董事長蔡易忠表示,今年電動巴士預計出貨 53 輛 ,市占全台第一大,今年力拚損益兩平。   華德為台灣第二家電動巴士掛牌企業,同時也是車王電子轉投資公司,車王電持有比例為 14.9%,華德動能去年合併營收 5,782 萬元,虧損 6,000 萬元,每股虧損 4.73 元。今年上半年營收躍升至 2.28 億元,並順利轉盈,稅後純益 1,300 萬元,每股稅後純益 0.65 元。   蔡易忠表示,公司主要業務為電動巴士、電動商用貨車以及儲能系統三大主軸。華德電動巴士使用的電池為稀土鋰釔電池,不同於 F-立凱電為採用磷酸鐵鋰材料,蔡易忠表示,只要電池材料能讓電動巴士行駛安全、性能佳,都會持續找尋新的電池材料,不會局限在單一材料。   蔡易忠表示,華德積極布局開發海外市場,未來擬將底盤系統或關鍵動力組件出口至東南亞、中國、美國及歐洲地區,近期先出口至馬來西亞。目前公司也積極規劃建廠計畫,擬以租賃方式承租廠房,計劃由年產 80 輛擴大至 500 輛,目標 2015 年第 3 季加入營運。

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

【其他文章推薦】

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

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

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

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

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

宣揚減塑環保 印尼偶戲師回收寶特瓶製玩偶

摘錄自2019年10月29日民視新聞報導

印尼龍目島有一位玩偶大師,為了讓小朋友了解塑膠污染的可怕,因而回收塑膠寶特瓶再廢物利用,製做成演出的玩偶。

劇團的玩偶,從頭到腳,全是塑膠製品。團長拉提夫擔心印尼偶戲傳統失傳,2015年創辦了偶劇團。後來因感到塑膠製品危害無窮,2018年起開始回收塑膠垃圾,主要是寶特瓶,並廢物利用做成玩偶,希望讓小朋友學習從家裡開始管理垃圾,以及養成不亂丟垃圾的習慣。

劇團成員的年齡在7歲到16歲之間。大家先在自家附近撿拾寶特瓶,之後再分類、清洗。接著就發揮創意,將這些瓶子上色、製做耳鼻、手腳等。觀眾不分大人、小孩,都很認同劇團的用心。

劇團原本只在龍目島演出。由於名聲漸漸打開來,開始進軍首都雅加達,也希望能將環保愛地球的理念帶出去。

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

【其他文章推薦】

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

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

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

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

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

2014中國高新汽車國際峰會圓滿閉幕,廣受業界好評

第三屆中國高新汽車國際峰會已於2014年12月9日在上海浦東嘉里大酒店完美落幕。本屆峰會由法蘭克福展覽(上海)有限公司和中國國家發展和改革委員會國際合作中心聯合主辦,共邀請到包括政府官員、行業協會代表和知名整車企業在內的14位重量級演講嘉賓出席,共同探討未來汽車產業革新的重要創新技術、市場趨勢和發展戰略方針。為期一整天的峰會由一個主論壇和兩個分論壇組成,共迎來386位與會代表,專業領域橫跨汽車全產業鏈。

法蘭克福展覽(上海)有限公司總經理李慶新先生表示:“由於整體定位和結構調整,峰會由往年的兩天精簡為一天時間,但是本屆峰會的參會代表人數仍再創新高。由此印證了中國高新汽車國際峰會作為汽車行業的年度盛會,為業內重要政策決策者、企業高管和投資者建立了交流契機和合作機會。與會代表對我們表達了支持和鼓勵,我們非常高興可以收到如此正面的肯定。我們相信中國高新汽車國際峰會將會成為討論汽車行業發展趨勢、最新技術以及業界精英交流討論的高端平台。”

參會代表和演講嘉賓滿意會議定位,共同關注汽車行業未來合作契機

本屆峰會以「關注未來汽車發展趨勢,聚焦零部件產業升級」為主題,共邀請到多位政府領導蒞臨並致辭。其中包括:

  • 鄭惠強先生,全國政協常委、上海市人大副主任
  • 李鋼先生,國家發改委產業協調司處長
  • 徐秉金先生,中歐協會會長、商務部原副部長

峰會由上海市新能源汽車推進辦公室主任劉建華先生擔任首位演講嘉賓,就「發起『新能源汽車走進社區』倡議」議題發表真知灼見。除此之外,強大演講嘉賓陣容包括來自寶馬、特斯拉、沃爾沃、上汽和北汽等國內外知名整車企業。首次擔任演講嘉賓的上海汽車集團股份有限公司汽車工程中心車身開發總監邱國華博士此次主要圍繞上汽集團電動汽車發展戰略展開介紹,並評價道:“中國高新汽車國際峰會是一個高端的汽車行業交流平台,議題定位準確。主題覆蓋整車、能源和材料等一系熱門話題。峰會聚集了汽車行業的技術戰略研究和市場分析等高端人才,我認為這是一個非常出色的活動。”

特斯拉中國區公共政策和充電基礎設施總監高翔先生同樣也分享了他的感想,並表示:“本屆峰會邀請了很多政府政策制定者,他們的政策導向對於未來電動車的發展影響很大。我認為電動汽車產業正得到大眾越來越多的關注。我希望通過中國高新汽車國際峰會這個深入的交流平台,在政策環境和行業環境得到突破,未來能夠制定完善的行業標準,希望有更多的車企投入到電動汽車的開發中。”

上海大眾汽車有限公司信息系統部高級經理邱振捷先生擔任”用互聯網思維造車”主題的演講嘉賓,關注電動汽車行業的前瞻性概念。他認為:“去年我是峰會的參會代表,而今年我非常榮幸可以擔任演講嘉賓出席本屆峰會。中國高新汽車國際峰會是一個齊聚行業精英的平台,活動的整體規劃和安排超出我的預期。在這裏我遇到了很多零部件企業和整車廠,我非常願意和他們互相交流經驗,這給我工作帶來很多幫助。”

已經連續第二年出席的三菱綜合材料管理(上海)有限公司戰略企劃部經理徐冬榮先生對峰會在新能源汽車未來發展前景產生積極作用表示肯定,說道:“演講嘉賓介紹了最新的電動汽車技術和資訊,通過本屆峰會我瞭解到很多高新汽車的最新行業發展趨勢和扶持政策。我認為新能源汽車的未來發展前景是非常巨大的,因此發展速度和技術瓶頸將是最需要關注的問題。”

首次參會的參會代表德國ThyssenKrupp System Engineering GmbH的業務發展專員Elena Kaplun女士希望通過中國高新汽車國際峰會洞察中國汽車行業的最新潛在投資機會,她表示道:“我對中國汽車市場有了深入的認識和瞭解。我對新能源汽車和輕量化汽車技術發展的話題很感興趣,嘉賓的演講內容對市場研究和業務發展戰略規劃很有幫助。除此之外,我還有機會在這裏拓展我的人脈,更可以和卓越的業界人士有進一步的合作機會如特斯拉、BMW和上汽等,我非常高興能夠參加此次活動!”

2014 年中國高新汽車國際峰會同期舉行的 Automechanika Shanghai — 上海國際汽車零配件、維修檢測診斷設備及服務用品展覽會,是亞洲規模最大的汽車零部件、維修檢測診斷設備及汽車用品展覽會。

欲瞭解更多有關峰會詳情,敬請訪問官方網站

或發郵件至。

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

【其他文章推薦】

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

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

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

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

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

2020/6/11 JavaScript高級程序設計 DOM

DOM(文檔對象模型)是針對HTML和XML文檔的一個API(應用程序接口)。他描繪了一個層次化的節點樹,允許開發人員添加、移除和修改頁面的某一部分。

10.1 節點層次

DOM將任何HTML和XML文檔描繪成一個由多層節點構成的結構。

文檔節點(Document)是每個文檔的根節點。文檔節點只有一個子節點(HTML文檔中實終是<html>),我們稱之為文檔元素(每個文檔只能有一個文檔元素)。文檔元素是文檔的最外層元素,其他所有元素都包含在文檔元素中。

每一段標記都能通過樹中一個節點來表示,包括特性、文檔類型、註釋等,共有12種節點類型。這些類型都繼承自一個基類型

10.1.1 Node類型

 JavaScript中的所有節點類型都繼承自Node類型,所有的節點類型都共享相同的基本屬性和方法。

nodeType屬性:表明節點的類型(12種)

eg:Node.ELEMENT_NODE(1);  //元素節點

通過該屬性可以確定一個節點的類型,可以通過類型字面量判等,也可以通過数字值比較。

if (someNode.nodeType == Node.ELEMENT_NODE){  //在IE中無效
    alert("Node is element.");
}

if (someNode.nodeType == 1){  //適用於任何瀏覽器
    alert("Node is element.");
}

1. nodeName和nodeValue屬性

可以了解節點的具體信息。

對於元素節點,nodeName保存的始終是標籤名,nodeValue的值始終是null。

2. 節點關係

 

  • 屬性
1 childNodes屬性 保存NodeList對象(類數組,但不是數組),這個對象也有length屬性。可以通過方括號,也可以通過item()方法訪問節點。可以通過Array.prototype.slice()方法將其轉換為數組。
2 parentNode屬性 指向父節點。
3 previousSibling / nextSibling屬性 訪問同一列表中的其他屬性。即前一個和后一個同胞節點。
4 firstChild / lastChild屬性 指向childNodes列表的第一個和最後一個節點。
  • 方法
1 hasChildNodes() 檢驗是否存在子節點。存在時返回true。
2 ownerDocument() 指向整個文檔的文檔節點。方便直接到達頂端。

3. 操作節點

1 appendChild() 向childNodes列表的末尾添加一個節點。返回新的節點。由於任何一個節點不能同時出現在多個位置上,所以當傳入的節點是父節點的子節點時,這個節點會變成最後一個子節點。
2 insertBefore()

將節點插入到childNodes列表中一個特定的位置。接收兩個參數:要插入的節點和作為參照的節點。

插入節點后,被插入節點會成為參照節點的前一個同胞節點,同時被方法返回。省略參照節點時與appendChild()執行相同的操作。

3 replaceChild() 替換節點(複製所有的關係指針)。接收兩個參數:要插入的節點和要替換的節點。被替換的節點將從文檔樹中移除,但仍然在文檔中,只是沒有了自己的位置(指針)
4 removeChild() 移除節點。返回被移除的節點。同樣被移除的節點仍然在文檔中。

PS1:使用這幾個方法必須取得父節點(使用parentNode屬性)。

PS2:不是所有類型的節點都有子節點。在不支持子節點的節點上調用這些方法,會拋出錯誤。

4. 其他方法

1 cloneNode()

創建調用這個方法的節點的一個完全相同的副本。接受一個布爾值參數,表示是否執行深複製(true則執行深複製)。

  • 深複製:複製節點以及整個子節點樹
  • 淺複製:只複製節點本身

複製后返回的節點歸文檔所有,沒有為他指定父節點。要通過其他的方法把他加入到文檔中。

IE>9及其他瀏覽器會計入空白節點。

2 normalize()

處理文檔樹中的文本節點。

  • 出現文本節點不包含文本 => 刪除空白文本節點
  • 接連出現兩個文本節點 => 合併為一個文本節點

10.1.2 Document類型

Document類型表示文檔。

  • document對象是HTMLDocument的一個實例,表示整個HTML頁面。
  • document對象是window對象的一個屬性,可以作為全局對象來訪問。

Document節點的特徵:

  • nodeType的值為9;
  • nodeName的值是”#document”;
  • nodeValue和parentNode的值為null;
  • ownerDocument的值為null。

1. 文檔的子節點

1 DocumentType(最多一個) <!DOCTYPE>標籤,可以通過document.doctype屬性來訪問他的信息。
2 Element(最多一個)

文檔元素<html>。

通過documentElement屬性childNodes列表(在無處理指令的情況下是firstChild)訪問可快速找到html元素。

document.body屬性可以指向<body>元素(因為該元素使用頻率高,為了便於開發增添該屬性)。

3 ProcessingInstruction 表示處理指令。
4 Comment 註釋。

2. 文檔信息

作為HTMLDocument的實例,document對象還有一些特殊的屬性。

1 title <title>元素中的文本,是當前頁面的標題。
2 URL 完整的URL。
3 domain

頁面的域名。僅domain可以設置。但有一定的限制:

  • 不能設置為URL中不包含的域
  • 如果域名一開始是“鬆散的”(wrox.com),那麼就不能再將其設置回“緊繃的”(p2p.wrox.com)

作用:將每個頁面的document.domain設置為相同的值,就可以互相訪問對方包含的JavaScript對象了。(解決跨域問題)

4 referrer 鏈接到當前頁面的那個頁面的URL。在沒有來源頁面的情況下是空字符串。

3. 查找元素

1 getElementById() 參數為要取得元素的ID。找到返回該元素,沒有找到返回null。如果有多個id值相同,則只會返回第一個。
2 getElementByTagName() 參數為要取得元素的標籤名。返回元素的NodeList。在HTML文檔中,返回的是HTMLCollection對象。可以通過方括號或者item()方法來訪問。
3 nameItem() HTMLCollection對象的方法。通過元素的name屬性取得集合中的項(第一項)。同時HTMLCollection對象還支持按名稱訪問項。
4 getElementByName() 返回帶有給定name屬性的所有元素(一個HTMLCollection)。

4. DOM的一致性檢測

ducument.implementation屬性:提供關於實現了DOM 哪些部分的信息的對象。

 他有一個方法,hasFeature()。接收兩個參數:要檢測的DOM功能的名稱和版本號。如果支持給定名稱和版本的功能,則返回true。

檢驗結果true不意味着現實與規範一致,最好除了檢測hasFeature()之外,同時使用能力檢測

5. 文檔寫入

write() / writeln():接受一個字符串,即寫入輸出流中的文本。write()會原樣寫入,writeln()會在字符串末尾添加一個換行符(\n)。這兩個方法可以向頁面中動態的加入內容。

//在頁面加載過程中輸出當前的日期和時間
document.write("<strong>" + (new Date()).toString() + "</strong>");

同時還可以用來動態的包含外部資源,例如JavaScript文件等。

document.write("<script type=\"text/javascript\" src=\"file.js\"> + "<\/script>");

PS:由於不能直接包含字符串”</script>”(這樣會導致該字符串被解釋為腳本的結束,後面的代碼無法運行),所以要將這個字符串分開寫。

在頁面被呈現的過程中,會直接輸出內容。如果在文檔加載結束后(window.onload)再調用write(),那麼輸出的內容會重寫整個頁面。

方法open()close()分別用於打開和關閉網頁的輸出流。

10.1.3 Element類型

Element類型提供了對元素標籤名、子節點及特性的訪問。Element節點具有以下特徵:

  • nodeType值為1;
  • nodeName的值為元素的標籤名;
  • nodeValue的值為null;
  • parentNode可能是Document或Element;

tagName屬性:返回訪問元素的標籤名(與nodeName相同)。 => 在HTML中標籤名始終以全部大寫表示,需要檢驗標籤類型時最好調用toLowerCase()方法。

1. HTML元素

所有HTML元素都由HTMLElement類型表示。HTMLElement類型直接繼承自Element並添加了一些屬性。

  • id,元素在文檔中的唯一標識;
  • title,有關元素的附加說明信息,一般通過工具提示條显示出來;
  • dir,語言的方向(”ltr”,即left-to-right)或“rtl”;
  • className,與元素的class特性對應,為元素制定的CSS類。

2. 取得特性

 

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

【其他文章推薦】

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

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

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

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

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

深圳今年投254億推新能源車 純電動客車補貼高達254萬

日前,深圳市政府推出了《深圳市新能源發展工作方案》和《深圳市新能源汽車推廣應用若干政策措施》,成為2015年以來中國第一個推出新能源汽車扶持政策的城市。深圳定下「2015年新增1.5萬輛新能源車」的目標,將統籌設立50億元人民幣(折合新台幣約254.25億元)的新能源汽車推廣應用扶持資金。   據《深圳市新能源汽車推廣應用若干政策措施》,深圳將對購買新能源汽車給予1:1配套地方補貼,且不逐年遞減。以純電動客車為例,每輛最高可補貼50萬元(折合新台幣約晝254.25萬元)(車身長度在10公尺以上),而純電動乘用車,標準工況續駛里程在250公里以上補貼則達到6萬元(折合新台幣約30.51萬)。   按照規定,對個人、企業購買使用新能源乘用車的補貼,主要用於機動車交通事故責任強制保險費、路橋費、充電費、自用充電設施及安裝費等方面,其中純電動乘用車最高補貼可達2萬元(折合新台幣約10.17萬元)(標準工況續駛里程在250公里以上)。   為鼓勵計程車運營企業購買使用純電動計程車,除了享受純電動乘用車購車和使用補貼外,對更新為純電動計程車的燃油計程車,另外給予推廣應用補貼5.58萬元(折合新台幣約28.37萬元)。計程車運營企業2015年到期更新為純電動計程車的,更新車輛數以同產權1:1比例置換,另給予置換數10%的純電動計程車指標獎勵。   在充電樁方面,截至目前,深圳累計建設快速充電站81座、慢速充電樁近3000個,但快速充電樁僅完成原計劃的三、四成,慢速充電樁只完成一成。而深圳市發改委明確表示,到2015年底前,深圳市將新增1800個快速充電樁。

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

【其他文章推薦】

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

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

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

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

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

我家也有太陽能:預防鳥害是用戶責任 下了蛋就不能讓牠搬家

文:宋瑞文(加州能源特約撰述)

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

【其他文章推薦】

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

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

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

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

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