本節書摘來異步社群《21天學通java(第7版)》一書中的第1章,第1.1節,作者: 【美】rogers cadenhead(羅格斯 卡登海德),更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。
java試圖解決衆多領域的問題,實際上也确實在這方面取得了極大的成功。它讓程式員能夠開發應用程式伺服器和手機程式、進行科學程式設計、編寫軟體以及進行星際導航等。
——java語言之父james gosling如是說
1995年首次釋出時,java程式設計語言是一個用于網際網路的頗具創意的玩具,但有很大的發展潛力。
“潛力”是一個有時限的恭維之詞。潛力遲早需要變成現實,否則将被“衰弱”、“浪費”、“失望”等取代。
通過閱讀本書,讀者在提高自身技能的同時,将能夠對java語言是否像它多年來被宣傳的那樣做出客觀判斷。
讀者還将成為極具潛力的java程式員。
現在的java是第9個主要版本,它沒有辜負當時人們對它的期望。在諸如nasa、ibm、kaiser permanente和google等企業群組織中,有超過400萬程式員學習了該語言并正在使用它。遍布世界各地的衆多大學的計算機科學系将其列為标準教學課程。java最初用于在網頁中建立簡單程式,而現在已被用于衆多領域,其中包括:
web伺服器;
關系型資料庫;
軌道望遠鏡;
電子圖書閱讀器;
手機。
對web開發人員來說,java仍很有幫助,但其應用領域已遠遠超出web,成為最流行的通用程式設計語言之一。
現在,有關java語言的故事已是家喻戶曉。20世紀90年代中期,sun公司的james gosling和一個開發人員團隊緻力于開發一個互動式tv項目,gosling對正在使用的c++感到失望。c++是一種面向對象程式設計語言,于20世紀80年代(比java早了10年)在c語言的基礎上開發。
gosling把自己關在辦公室,建立了一種适合其項目的語言,該語言解決了c++中一些令其失望的問題。
這個互動式tv項目以失敗告終,但出乎人們意料的是,在此期間開發出來的新語言卻适用于此時逐漸流行的一種新媒體——網際網路。
java于1995年首次與公衆見面。雖然與c++(以及當今的java)相比,該語言的大多數特性太初級,但被稱作小程式(applet)的java程式可作為網頁的一部分運作在當時最流行的浏覽器netscape navigator中。
這種功能——第一種用于web的互動式程式設計技術——給這種新語言提供了極大的輿論攻勢,在短短的6個月内便吸引了數十萬開發人員。
在人們對java web程式設計技術的好奇過後,該語言的整體優勢逐漸明朗,程式員們仍在繼續使用它。有些調查表明,目前java程式員人數超過了c++程式員。
自面世以來,java語言的發展始終受sun公司控制,但到2010年,情況發生了變化。2010年,sun公司被資料庫和企業軟體巨頭oracle以74億美元的價格收購。長期以來,oracle一直在其産品中使用java,存在支援java的強烈願望,并不斷在新版本中改善其功能。
java是一種面向對象的、獨立于平台的安全語言,它比c++更容易學習,且比c和c++更能避免被誤用。
面向對象程式設計(oop)是一種軟體開發方法,将程式視為一組協同工作的對象。對象是使用被稱作類的模闆建立的,它們由資料和使用資料所需的語句組成。java是完全面向對象的,在本章後面,當您建立第一個類并使用它來建立對象時将明白這一點。
獨立于平台指的是程式無須修改便能運作在不同的計算環境中。java程式被編譯成一種名為位元組碼的格式,而位元組碼可被任何帶java虛拟機(jvm)的計算機或裝置運作。您可以在windows 10機器上建立java程式,然後在linux web伺服器、使用os 10.10的apple mac和三星android手機上運作。隻要平台安裝了jvm,就能運作位元組碼。
雖然比其他語言更容易學習是程式員們争論的焦點之一,但java主要在以下方面比c++更容易。
java自動負責記憶體的配置設定和釋放,将程式員從這種容易出錯而複雜的工作中解放出來。
java沒有指針。對經驗豐富的程式員來說,指針是一種功能強大的特性,但也容易誤用以及帶來嚴重的安全隐患。
java隻具備面向對象程式設計中的單繼承。
java之是以安全的兩個關鍵因素是沒有指針且能自動管理記憶體。
介紹java後,接下來應用其中的一些概念,建立您的第一個java程式。
在讀者從頭到尾閱讀本書後,将對java的功能有深入了解,包括圖形、檔案輸入和輸出、xml處理和android應用程式開發。您将能編寫運作在網頁、個人計算機和web伺服器以及其他計算環境中的java程式。
開始編寫程式之前,您必須在計算機上安裝用于編輯、編譯和運作java程式(這些程式使用的是最新的java 8版本)的軟體。
有多種流行的內建開發環境(ide)支援java 8,如intellij idea和開源軟體eclipse。
如果您在學習java語言的同時學習使用這些工具,将是一項非常艱巨的任務。大多數ide主要針對的是需要提高效率的、經驗豐富的程式員,而不是剛開始學習一門新語言的新手。
最簡單的java開發工具是java開發包。
每當oracle釋出新的java版本時,都會在網上提供一個支援該版本的免費開發包。最新的版本為java se development kit 8。
出于簡化的目的,本書通常将該語言及其開發包簡稱為java和jdk。
使用jdk開發java程式的缺點在于,這是一組指令行工具,是以沒有用于編輯程式、将其轉換為java類并進行測試的圖形使用者界面。指令行是用于輸入文本指令的提示符,在windows中為程式“指令提示符”。
oracle向java程式員提供了優秀的免費ide——netbeans。對大多數人來說,netbeans都比jdk更易于使用,是以本書将使用netbeans。
如果您的計算機沒有安裝任何java開發工具,而您又想嘗試一下netbeans,可參閱附錄a,它簡要地介紹了如何使用該軟體,包括如何下載下傳并安裝netbeans,以及如何使用它來建立一個java程式,以確定該程式能正确運作。
在計算機上安裝支援java 8的java開發工具後,便可以開始學習使用該語言了。如果您的計算機沒有安裝這樣的工具,現在該安裝了——最好是netbeans。
在本書的第21章,将使用ide android studio(一種intellij idea)來建立移動應用。