標籤:
PS:彌補那些錯過的時間,彌補那些本是決定做而沒有做的事情,當初說好了學習編程要把自己學到的或是理解的寫到部落格中記錄下來,可是由於各種緣由最終是沒有實現...經過幾番周折決定把那些丟掉的重新撿起來。對於Java的文章已經是大雪紛紛滿天飛到處都是,但那畢竟不是屬於自己的,只有當自己能說出來,能夠表達出來那才算是真正屬於自己的,所以決定自己也來扯扯,再次來過並且記錄下,彌補那些已經錯過的,並且告誡自己不要在找各種借口了,在找各種借口就要被淘汰了...以此時刻提醒自己,激勵自己,部落格要堅持進行下去。
看著題目也許覺得很老套,已沒有什麼新鮮感了(畢竟Java發展已經很多年,文章和資源很多很多),也許會說這麼基礎的有必要寫嘛,有必要在部落格園發表嘛,其實我也是糾結到底要不要發表,糾結糾結,算了吧還是發表,算是自我安慰和激勵吧!誰都不是天生就是大神,都是通過慢慢的學習,由簡單然後一步二步漸漸的漸漸的深入,學習亦是如此寫文章也應該如此,循序漸進吧,走自己的路,讓別人去說吧...
一千個人一千個哈姆雷特,也就是每個人都有自己的想法,所以在九十年代雖然當時有很多編程的語言但還是成就了紅遍世界的編這一程式設計語言——Java,文章內容絕非原創有些是摘自所看的書中的內容。
Java"白皮書"關鍵術語
Java的設計者們對Java編寫了頗詳細的"白皮書"用來解釋設計的初衷以及情況,並且發布了一個簡短的摘要,可以使用下面11個關鍵術語進行概括:簡單性、物件導向、網路技能(Network-Savvy)、健壯性、安全性、體繫結構中立、可移植性、解釋型、高效能、多線程、動態性,下面就這幾個關鍵術語做一件單的說明。
簡單性:相對C++而言,Java剔除了C++中難以理解、容易混淆的特性,所以Java文法相當於是C++的"純淨"版本,當然也不是全部剔除了C++中所有的不適當的特性,任然是保留了一些使用的文法,例如switch。雖然Java簡單易上手,但是實現功能需要編寫大量的代碼。
物件導向:簡單的說,其實物件導向是一種程式設計技術,重點是放在了資料和對象的介面上,用一名遊者從A目的到B目的,"物件導向"的看遊者是從A到 B了至於是如何到而是其次想的,而用"非物件導向"的看遊者則是首先想的是該如何到達目的地B,是走過去還是坐車還是其它方式,物件導向思想更加的接近於人們的對問題的思考。Java與C++的主要不同點在於多繼承,Java使用了簡單的介面概念和元素模型取而代之。
網路技能:Java對於處理想HTTP和FTP等之類的TCP/IP協議擴充了強大的類庫,通過URL訪問和開啟網路上的對象,當你深入學習Java的時候就會發現Java竟然把開啟scoket如此繁重的任務變得如此簡單了。也可以進行分布式對象中間通訊。
健壯性:Java對於早期的問題檢測、後期動態(運行時)檢測以及有出錯傾向的狀態做了大量的設定和判斷,Java編譯器能夠識別許多早期的和運行時的問題。
安全性:Java從一開始就設計許多能夠防範的各種攻擊,例如未經授權就讀寫檔案、在自己處理空間之外破壞記憶體,當然人任何事情不是絕對的,Java中也是有bug的,但任然在不斷完善中。
體繫結構中立:編譯器產生一個體繫結構中的目標檔案格式,這是被編譯過的代碼,只要有Java運行時環境就可以在許多處理器上執行,Java編譯器通過產生由於特定的電腦體繫結構無關的位元組碼指令實現了這一特性。解釋位元組碼相對全速運行機器指令較慢,但是通過虛擬機器採用即時編譯可以較為友好的解決這一問題。
可移植性:Java規範中沒有依賴的具體實現在加上基礎資料型別 (Elementary Data Type)的大小以及相關演算法的說明,致使Java一處編譯到處運行這一強大的可移植性。
解釋型:Java解譯器可以在任何移植瞭解釋器的機器上執行Java位元組碼,早期Java開發工具速度相當的慢,但是Java採用虛擬機器的即時編譯減緩了執行較慢這一問題。
高效能:位元組碼可以(在運行時刻)快速的翻譯成運行這個應用程式特定的CPU的機器碼,而Java正是通過編譯器產生了體繫結構中立的位元組碼,體現了其高效能。
多線程:Java中對線程進行大量的處理,只要系統支援Java中的線程就可以利用多個處理器。
動態性:Java庫中可以自由的添加新的方法和執行個體變數,然而對客戶卻沒有任何的影響,體現了Java語言動態性的強大。
Java發展史簡介
此話題要追溯到1991年由Patrick Naughton以及其夥伴James Gosling(一個全能的電腦奇才)帶領的sun公司工程師打算設計一一種小型的電腦語言,主要用於有線電視轉換盒這類的消費裝置,由於這些消費裝置所面臨的問題的緣故,這才促使了Java語言的誕生,初期項目被命為"Green",經過重重困難突破,Java語言就這樣出現了,開始這門語言被叫做Oak(可能是Gosling很喜歡自己辦公室的橡樹吧),後來由於sun公司發現Oak已經有這種語言了,於是就就被命名為Java,由此Java語言就誕生了。1996年sun發布了Java的第一個版本, 1998年12月發布了Java1.2版本並稱其為Java2標準版本軟體開發工具箱。除了這個版本外,另外還有兩個版本,一個是用於手機等嵌入式裝置的"微型版",一個是用於伺服器端處理的"企業版"。後期發布了1.3版本1.4版本主要是對Java1.2版本做了寫改進以及擴充了標準的類庫。在2004年發布的1.5版本(後期改為5.0版本)做了一次重大的改進,該版本添加了泛型,還有for ench迴圈、自動裝箱以及中繼資料等改動。2011年oracle(sun公司後來被oracle公司收購了)發布了Java7這一新版本,只是做了一些簡單的改進,如今Java已經更新到版本Java8了。
Java中的關鍵字
abstact:抽象類別或是方法 assert:用來尋找內部程式錯誤
boolean:布爾類型 break:跳出一個switch或是迴圈
byte:8為資料類型 case:switch的一個分支
char:Unicode字元類型 class:定義一個類
const:未使用 continue:在迴圈末尾繼續
default:switch的預設子句 do:do/while迴圈最前的語句
double:雙精確度浮點數類型 else:if語句的else子句
enum:枚舉類型 extends:定義一個類的父類
final:一個常量,不能覆蓋的類或是方法 finally:try塊中總會執行的部分
float:單精確度浮點數類型 for:一種迴圈類型
goto:未使用 if:一個條件陳述式
implements:定義一個類實現的介面 import:匯入一個包
instanceof:測試一個對象是否為一個類的執行個體 int:32位整數類型
interface:一種抽象類別型,其中包含可以由類實現的方法,介面 long:64位長整數型別
native:友宿主系統實現的一個方法 new:分配一個新對象或是數組
null:一個Null 參考(需要說明,nul從技術上講是一個直接量,而不是關鍵字) package:包含一個類的包
private:這個特性只能由該類的方法訪問 protected:這個特性只能由該類、其子類以及同一包中的其它類的方法訪問
public:這個特性可以由所有的類的方法訪問 return:從一個方法返回
short:16位整數類型 static:這個特性是這個類特有的,而不屬於這個類的對象
strictfp:對浮點數計算使用嚴格的規則 super:超類對象或是建構函式
switch:一個選擇語句 synchronized:對線程而言是原子的方法或是代碼塊
this:當前類的一個方法或是建構函式的隱含參數 throw:拋出一個異常
throws:一個方法可能拋出異常 transient: 標誌非永久的資料
try:捕獲異常的代碼塊 void:指示一個方法不返回任何值
volatile:確保一個欄位可以由多個線程訪問 while:一種迴圈
Java的初步認識