Java學習筆記(0)——了解Java

文 / 我沒有三顆心臟

前言:

這里是一些關于寫文的原因,目的和其他的有的沒的,跟Java沒有一點關系,如果是想要學習干貨的童鞋可以直接跳過。

系列文章最開始的名字是:從零開始學習Java,一來是覺得太長了(改了之后也不短),另外一個一覺醒來覺得好像這個名字不能準確反映自己寫文的目的,并且我發現要把一些概念解釋得特別清楚給沒有編程基礎的人看,對我來說是很有難度的一件事情,所以決定把名字改了,筆記是可以改的,就像今天突然想起這一篇有些東西還需要添加就來改了,這也是我喜歡的并樂意做的事情,share?!?7.9.18更新

寫文的幾個原因:

這學期筆者也開了Java的課,上的第一節課老師說:教材,你們花兩個星期大概看一下就可以扔了。有些同學當笑話聽了,有些同學不以為然,而我當真了,我真的把鄭莉著的教材《Java語言程序設計》(第2版)“看了一遍”,還不到兩個星期,當然其中有一些問題沒有去深究,比如數據庫還有線程的東西,因為老師說的后面一句話我也認真聽了:可以申請不來上課。所以就著筆者c++微薄的基礎拉完了一遍教材,很是粗糙,想要重新學習一下,這是一個原因。

昨晚看到簡書上的一位博主:CleverFan。他寫下的重新認識Java系列,很是受用,本來保持得很好的生物鐘,也因為看到他的文章,硬是看到了接近2點,(在此推薦一下)也由此也產生了寫文的沖動,這也是一個原因。

今天去看了一下關于Java方面比較權威的兩本兒書,一本《Thinking in Java》、《Java核心技術 卷Ⅰ》,覺得寫得特別棒,也產生了一些自己的想法,想要分享。

寫文的目的:

首先需要說的是筆者是一名學渣渣。我也是正在學習,寫文更多的目的是在于交流想法,分享學習成果,也是給自己增加一些積累。還有就是覺得有些教材講得太生澀難懂,這一點也是我看CleverFan的博文想到的,希望自己能通過一些更加好玩的方式寫出來。也希望文章有什么問題能夠及時反饋給我。

關于更新:

因為個人性格的原因,我總是希望能把一件事情做得很好,所以如果有很久沒有更新的情況,那就當我正在努力想怎么寫文吧...hhh

我會盡可能快的更新文章,也盡可能用通俗易懂的方式說明,會把讀者大大們當成是第一次接觸Java去細致的講解,也希望讀者大大們能支持我的文章,關于后期維權的東西還沒有去想,所以希望如果有轉載的請注明一下原文出處謝謝。

正式開始之前

先問自己一個問題:Java是什么?如果你的答案僅僅是停留在:是一門編程語言的話,希望看完這篇文章的你,對Java有一個更加全面深入的了解。至少在學習一門語言之前,了解一下自己要學的是什么,對吧?

Java的簡單描述

以下大內容部分提煉自Java核心技術 卷Ⅰ 。

Java最初的設計初衷是:

能夠用于像有線電視轉換盒一類處理能力和內存都很有限,并且CPU廠商各不相同的一些消費設備上。
然而時至今日在Java的開發者編寫的白皮書中(這是Java設計者用來解釋設計的初衷以及完成的情況的簡短摘要),對Java的描述卻是這樣的:

來自官方網站

你不必全部都讀一遍,筆者讀來大體的感覺是:為使用者創造了一個更加容易,甚至是dead simple的面向對象的語言,并同時具有移植性好,安全,開發周期短等一系列優點,也為你在煩惱c/c++的復雜性的時候提供了一個新的選擇。白皮書的描述更偏向于講述這是一個更加簡單友好的工具,Sun對Java的設計目標就是:微程序員減少復雜性。用他們的話說就是:我們關心的是,減少開發健壯代碼所需的時間以及困難。

事實上,Java的成功也源于其類庫能夠讓人們輕松地完成原本有一定難度的事情。例如:聯網和多線程。盡管Java對于解決傳統的單機程序設計問題非常有用,但同樣重要的是,它解決了在萬維網(WWW)上的程序設計問題(把超文本頁面轉換到屏幕上的瀏覽器)。在白皮書的最后提到了HotJava TM Browser,這是Java開發者使用Java開發的一款用來炫耀Java的強大之處的瀏覽器,HotJava瀏覽器具有的在執行網頁中內嵌代碼的能力在1995年的SunWorld大會上,引發了人們延續至今的對Java的狂熱追逐。

Java的成功源自語言本身的一些特性,以及Sun公司的進一步研發和推廣。白皮書中對于Java的11個關鍵術語進行了組織:

11個關鍵術語

關于這一段的描述,《Java核心技術 卷Ⅰ》有有趣簡單的描述,感興趣的可以去百度一下。然而筆者認為,事實上,這些特性現在瀏覽一遍,心里面知道就行了,沒必要去深入,也沒有什么用。事實上這一篇文章都是。

Java與其他語言的區別

  • Java是由c++發展而來的,因為最初開發Java的是Sun公司那一批擁有UNIX應用背景的人,Java更像是C++語法的一個“純凈”版本。這里沒有頭文件、指針運算(甚至指針語法,但并不代表取消了指針機制,這在后面會講到)、結構、聯合、操作符重載、虛基類等。然而,設計者并沒有試圖清除C++中所有不適當的特性。例如,switch語法的語法在Java中就沒有改變。事實上,Java還有許多奇怪的語法,后面也會提到。
  • JavaScript和Java除了語法類似,名字類似 ,其他再無什么關系。JavaScript是一種在網頁中使用的腳本語言,而Java則是一種強大的面向對象的語言,重點在對象和對象的接口上,而并非所使用的工具上。

面向對象設計是一種程序設計技術。用木匠打一個比方,一個“面向對象的”木匠始終關注的是所制作的椅子,第二位才是使用的工具;一個“非面向對象的”木匠首先考慮的是自己的工具。

關于Java applet

其實很簡單,網頁中運行的Java程序就是applet,只不過需要一些特別的語法來說明。網頁中的嵌入的applet程序就如同在網頁中嵌入了一副圖片,不同的是,這幅圖片能夠對于用戶的操作作出響應,改變外觀、傳遞數據等。關于這方面可以做一些相關的了解,但筆者并不打算深入研究這方面的東西。

了解面向對象

所有的編程語言都提供抽象的機制。就像匯編語言是對于底層機器的輕微抽象。接著出現了所謂的“命令式”語言(如FORTRAN、BASIC、C等)都是對匯編語言的抽象。這些語言在匯編語言的基礎上有了大幅的改進,但是它們所作的主要抽象仍要求在解決問題的時候要基于計算機的結構,而不是基于所要解決問題的結構來考慮。程序員必須建立起在機器模型和實際待解問題之間的模型的聯系。而建立這種映射是費力的,這不是屬于編程語言的固有的功能,這使得程序難以編寫,并且維護代價高昂。

面向對象的方式通過向程序員提供表示問題空間中的元素的工具而更進一步。那么什么是面向對象呢?所謂對象,其實就是抽象化的數據本身。萬物皆是對象,一只狗,一個人,一棟建筑,而這些對象擁有他們自己的一些行為,比如狗要吃飯,要跑,把這些稱為屬于狗的方法,然后把用一個叫做“類”的東西來打包(封裝)好狗這個對象還有屬于它的方法,也就是數據和功能。這就是面向對象,它的本質就是:程序可以通過添加新類型的對象使自身適用于某個特定的問題。僅此而已。

寫在文章的最后:整篇文章讀了好幾遍,最開始本來是打算把整一段《Java核心技術 卷Ⅰ》關于Java簡史的東西貼出來的,但發現好像用處并不會很大,只有增加篇幅的作用。文章的大部分內容來自于上文提到的兩部經典教材,第一次寫文,希望喜歡的多多支持,有什么不足也能及時提出,謝謝。


按照慣例黏一個尾巴:

歡迎轉載,轉載請注明出處!
簡書ID:@我沒有三顆心臟
github:wmyskxz
歡迎關注公眾微信號:wmyskxz
分享自己的學習 & 學習資料 & 生活
想要交流的朋友也可以加qq群:3382693

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,885評論 6 541
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,312評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 177,993評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,667評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,410評論 6 411
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,778評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,775評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,955評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,521評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,266評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,468評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,998評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,696評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,095評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,385評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,193評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,431評論 2 378

推薦閱讀更多精彩內容

  • Java是一個支持并發、基于類和面向對象的計算機編程語言。下面列出了面向對象軟件開發的優點: 代碼開發模塊化,更易...
    安安靜靜寫代碼閱讀 1,101評論 0 8
  • Java 面試題 整理自??途W 什么是Java虛擬機?為什么Java被稱作是“平臺無關的編程語言”? Java虛擬...
    GuaKin_Huang閱讀 10,676評論 19 265
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,733評論 18 399
  • 初夏的早晨,太陽迫不及待的張開了笑臉,燦爛如新,耀目如火!我一如既往的漫步于淺夏微涼的初陽,過馬路時,腳步飛...
    暮靄夕顏閱讀 198評論 4 1
  • 現在安卓項目開發中,butterknife是比較常用的注解框架,從而簡化了findViewById的重復使用,提高...
    smileNicky閱讀 1,205評論 2 3