成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java語言十五講(前言)

endless_road / 1260人閱讀

摘要:發(fā)布史年月日,公司正式發(fā)布語言,這一天是的生日。年月日,發(fā)布,成為語言發(fā)展史上的又一里程碑。年月,發(fā)布,三個版本分別改為,,,。年月日,以億美元收購公司,并取得了的版權(quán)。年月日,發(fā)布,并改用的命名方式。

特此聲明:本文為本人公司郭總原創(chuàng)書籍的前言,該書還未出版,作為該書籍的初版在接下來的時間里,將免費在本人微信公眾號內(nèi)不間斷更新與大家一起學(xué)習(xí)閱讀。喜歡學(xué)習(xí)的小伙伴可以搜索微信公眾號:程序員Hotel 或者在文末處微信掃描二維碼識別關(guān)注

前言

每年技術(shù)媒體都會評選最受歡迎的編程語言,Java總是高居前位。自然,沒有辦法說一個語言絕對比另一種語言好,這個話題一如既往地會引起大家無謂的爭論不休。對別的行業(yè)的人來講也許會覺得莫名其妙,但是對我們程序員來講,捍衛(wèi)某種語言是一件很動感情的事情。就跟捍衛(wèi)自己的母校一樣,只能自己說不好,別人不能說不好的。

Java從正式出生以來(1995.05.23),已經(jīng)過了24年時間了,它現(xiàn)在仍在全世界廣泛被使用,擁有大量程序員和工作機會,這一個事實毫無疑義地證明了Java的成功。

但是,大家切記的是,討論Java,不能當(dāng)它只是一門編程語言,它還是一個平臺,同時是一個生態(tài)。我二十多年前在Sun公司技術(shù)研發(fā)中心的時候,一個工作任務(wù)之一就是告訴大家Java不僅僅是一門語言。我們的技術(shù)總監(jiān)曾經(jīng)說,如果一定要認(rèn)為Java是一門語言,可以說“Java是服務(wù)端的語言”。我把這個歷史說出來,就是讓大家在學(xué)習(xí)語言的時候記住Java有其更加廣泛的空間。

不過,本系列講座又確實主要從語言本身的層面介紹Java。針對的對象是初步了解Java語言的程序員,如本專業(yè)的大學(xué)畢業(yè)生或者是從事編程工作一年時間的程序員們。希望對Java語言有一個進(jìn)階的理解。

就跟世界上任何自然語言一樣,人為發(fā)明約定的編程語言也是不斷與時皆進(jìn)的。從一個嬰兒慢慢長大成人。

我本人曾經(jīng)身在Sun Java團(tuán)隊之中,雖然沒有為Java發(fā)展做出什么貢獻(xiàn),沒有開辟新大陸,就像是一個跟隨哥倫布船隊的小船員,也是見證了一段歷史。但是對新大陸熱愛的心卻一直在澎拜。希望這個系列講座為Java布道,對后來的年輕人能有所幫助。

我們來看看Java的成長歷史。

Java前傳

1990年,Sun公司啟動“Green計劃”,旨在開發(fā)智能家電的嵌入式控制系統(tǒng)。

1991年,Green項目組發(fā)現(xiàn)家用設(shè)備太多樣化,C++移植過于繁瑣,無法統(tǒng)一編程,Gosling決定開發(fā)一種新的可移植語言,開頭想叫C-,后來命名為“Oak”。名字來自于辦公室窗口的一棵樹。

1994年,Gosling將Oak更名為Java,名字來自于工作間隙Gosling去飲水機沖咖啡時候的一閃念。接著團(tuán)隊完成JVM實現(xiàn),完成第一個Java編譯器,完成Java實現(xiàn)的瀏覽器WebRunner(后來的HotJava)。這個團(tuán)隊總共三個人。

這就是創(chuàng)世時刻的樣子。

Java發(fā)布史

1995年5月23日,Sun公司正式發(fā)布Java語言,這一天是JAVA的生日。

1996年,JDK1.0發(fā)布,這是重要里程碑,標(biāo)志著它成為一種獨立的開發(fā)工具。在1996年5月底,Sun公司于美國舊金山舉行了首屆JavaOne大會,這成為歷史上傳統(tǒng)的經(jīng)典盛會。

1998年12月,第二代Java平臺的企業(yè)版J2EE發(fā)布。

1999年6月,Java2被分成三個版本:J2SE(標(biāo)準(zhǔn)版)、J2EE(企業(yè)版)、J2ME(微型版),有一個重要的里程碑,標(biāo)志著Java的應(yīng)用開始普及。

2001年9月24日,J2EE1.3發(fā)布。

2002年2月,J2SE1.4發(fā)布,各種開源框架大量出現(xiàn)。

2004年9月30日18:00PM,J2SE1.5發(fā)布,成為java語言發(fā)展史上的又一里程碑。

2005年6月,Java SE 6.0發(fā)布,三個版本分別改為:JavaSE, JavaEE,, JavaME。

2009年4月20日,Oracle以74億美元收購Sun公司,并取得了Java的版權(quán)。

2011年7月,JavaSE7發(fā)布。

2014年3月,JavaSE8發(fā)布。

Java特性演化史

1996年,JDK 1.0主要包括的特性:Applet、AWT等。在網(wǎng)頁上動態(tài)變換的小動畫震驚了整個Internet技術(shù)圈。

1997年,JDK 1.1,引入了一些后來常用的技術(shù)點,如:JAR文件格式、JDBC、JavaBeans、RMI,Inner Class和Reflection。

1998年12月4日,史詩巨獻(xiàn)的JDK 1.2發(fā)布,包含的主要技術(shù),如EJB、Java Plug-in、Java IDL、Swing等以及后來常用的Collections集合類。

2000年中,JDK 1.3發(fā)布,主要改進(jìn)和引入了一些類庫上,如數(shù)學(xué)運算和新的Timer API,JNDI服務(wù),CORBA IIOP,Java 2D。

2002年,JDK 1.4發(fā)布,標(biāo)志著Java的成熟,引入了一些新技術(shù)特性,如正則表達(dá)式、NIO、日志類、XML解析器等。

2004年,JDK 1.5發(fā)布,改進(jìn)包括了自動裝箱、泛型、動態(tài)注解、枚舉、可變長參數(shù)、foreach循環(huán),還提供了java.util.concurrent并發(fā)包等。

2006年12月11日,JDK 1.6發(fā)布,并改用Java SE 6、Java EE 6、Java ME 6的命名方式。重大的改進(jìn)包括動態(tài)語言支持、提供編譯API等。虛擬機層面,包括鎖與同步、垃圾收集、類加載等方面的算法都有很多改動。

后來,由于經(jīng)濟(jì)危機和收購案,Java發(fā)展遇到諸多挫折,Java7難產(chǎn)。

2011年Oracle發(fā)布的Java7采用了B計劃,沒有按照原先的設(shè)計推出。重要的改進(jìn)包含:動態(tài)類型語言在 JVM 上的執(zhí)行效率得到大幅提升,G1 垃圾回收器性能, 主要用于 Server 端,核心類庫改進(jìn): ClassLoader, URLClassLoader, Concurrent, i18n

2014年,發(fā)布Java8,主要的改進(jìn)終于引入了Lambda表達(dá)式。

歷史評價

Java是一個劃時代的跨平臺產(chǎn)品,這個最基礎(chǔ)最根本的設(shè)計初衷已經(jīng)完全達(dá)到;

Java衍生出來的框架及其生態(tài)是世界上最成功的技術(shù)平臺之一,這一點超出了設(shè)計初衷;

Java最功敗垂成的設(shè)計是EJB,這是Java企業(yè)版本中最重大最著力的技術(shù)革新,由于設(shè)計和實現(xiàn)的復(fù)雜,推廣困難,被悉尼大學(xué)的Rod Johnson這個音樂學(xué)博士單槍匹馬挑下馬,最后完敗于輕量級框架。

Java是Sun公司及James Gosling對人類的偉大貢獻(xiàn),而沒有獲取到什么利益。

本系列講座,我打算講十五個主題:

主題 1 - Generic Programming

1.1 Generic Class

1.2 Generc Methods

1.3 Bounds & Wildcard Types

1.4 Ceneric Code & VM

1.5 Reflection and Generics

主題 2 - Reflection

主題 3 - Proxy

主題 4 - ClassLoader

主題 5 - Inner Class

主題 6 - Event

6.1 Event Object

6.2 Actions

6.3 Event Handling

主題 7 - Exception

7.1 Exception

7.2 Assertion

7.3 Logging

7.4 Debugging

主題 8 - RE

主題 9 - Multi-Thread

9.1 Threads

9.2 Synchornization

9.3 Thread-Safe Collections

9.4 Executors

主題 10 - Collections

10.1 Interfaces

10.2 Collections

10.3 Framwork

10.4 Algorithms

主題 11 - IO

11.1 Streams

11.2 Text

11.3 Binary Data

11.4 Files

主題 12 - Network

12.1 Sockets

12.2 Implementing Servers

12.3 Web

12.4 E-Mail

主題 13 - Enum

主題 14 - Annotation

主題 15 - Script

編程,不僅僅是學(xué),還是做,說到底是一個手工藝活兒。曾經(jīng)有好些入門的年輕人問我如何編得一手好程序?我的回答總是“無他無他,惟手熟爾?!币胩岣呔幊趟?,唯一的方法就是動手去編。只要結(jié)合“眼”“腦””手”三者,不斷學(xué),不斷想,不斷做,就能大有成效。堅持兩三年,邁上一個嶄新的臺階,到了那時,定會體會到“雖人不我知,而胸中自有溝壑”的美妙境界。

荀子云:學(xué)不可以已。

原創(chuàng)書籍目錄傳送門:《Java十五講》

微信掃描下方二維碼(微信公眾號:程序員Hotel),?更多優(yōu)質(zhì)資源及優(yōu)質(zhì)文章及時獲取,請大家多多支持哦!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/73995.html

相關(guān)文章

  • 《On Java 8》中文版,又名《Java 編程思想》中文第五版

    摘要:基于版本基于版本。由于中英行文差異,完全的逐字逐句翻譯會很冗余啰嗦。譯者在翻譯中同時參考了谷歌百度有道翻譯的譯文以及編程思想第四版中文版的部分內(nèi)容對其翻譯死板,生造名詞,語言精煉度差問題進(jìn)行規(guī)避和改正。 來源:LingCoder/OnJava8 主譯: LingCoder 參譯: LortSir 校對:nickChenyx E-mail: 本書原作者為 [美] Bru...

    BingqiChen 評論0 收藏0
  • 【數(shù)據(jù)結(jié)構(gòu)_浙江大學(xué)MOOC】第三四五講

    摘要:然而,一棵給定的二叉搜索樹卻可以由多種不同的插入序列得到。輸出格式對每一組需要檢查的序列,如果其生成的二叉搜索樹跟對應(yīng)的初始序列生成的一樣,輸出,否則輸出。 本篇為關(guān)于樹的編程題,給出編譯器 C++(g++)的解答。主要記錄題意理解和代碼學(xué)習(xí)過程。 1 樹的同構(gòu) 題目 給定兩棵樹T1和T2。如果T1可以通過若干次左右孩子互換就變成T2,則我們稱兩棵樹是同構(gòu)的。例如圖1給出的兩棵樹就是...

    happyfish 評論0 收藏0
  • 爬蟲入門到精通-網(wǎng)頁的解析(xpath)

    摘要:起初的提出的初衷是將其作為一個通用的介于與間的語法模型。的基本使用要使用我們需要下載,在爬蟲入門到精通環(huán)境的搭建這一章也說明怎么裝,如果還沒有安裝的話,那就去下載安裝吧直接看代碼實戰(zhàn)吧。 本文章屬于爬蟲入門到精通系統(tǒng)教程第六講 在爬蟲入門到精通第五講中,我們了解了如何用正則表達(dá)式去抓取我們想要的內(nèi)容.這一章我們來學(xué)習(xí)如何更加簡單的來獲取我們想要的內(nèi)容. xpath的解釋 XPath即為...

    ispring 評論0 收藏0
  • JAVA筆記 - 收藏集 - 掘金

    摘要:動態(tài)代理個經(jīng)紀(jì)人如何代理個明星掘金在代理模式女朋友這么漂亮,你缺經(jīng)紀(jì)人嗎中我們用寶強的例子介紹了靜態(tài)代理模式的概念。掘金使用從頭創(chuàng)建一個,這種方法比較簡單。 動態(tài)代理:1 個經(jīng)紀(jì)人如何代理 N 個明星 - Android - 掘金在 代理模式:女朋友這么漂亮,你缺經(jīng)紀(jì)人嗎? 中我們用寶強的例子介紹了靜態(tài)代理模式的概念。 本來我的目的是通過大家耳熟能詳?shù)睦觼砑由罾斫?,但是有些網(wǎng)友指責(zé)...

    kamushin233 評論0 收藏0
  • SpringBoot 實戰(zhàn) (十五) | 服務(wù)端參數(shù)校驗之一

    摘要:前言估計很多朋友都認(rèn)為參數(shù)校驗是客戶端的職責(zé),不關(guān)服務(wù)端的事。輕則導(dǎo)致服務(wù)器宕機,重則泄露數(shù)據(jù)。所以,這時就需要設(shè)置第二道關(guān)卡,服務(wù)端驗證了。老項目的服務(wù)端校驗不能為空不能為空看以上代碼,就一個的校驗就如此麻煩。 前言 估計很多朋友都認(rèn)為參數(shù)校驗是客戶端的職責(zé),不關(guān)服務(wù)端的事。其實這是錯誤的,學(xué)過 Web 安全的都知道,客戶端的驗證只是第一道關(guān)卡。它的參數(shù)驗證并不是安全的,一旦被有心人...

    QiShare 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<