1. 程式人生 > >Java學習第一週

Java學習第一週

Java與c語言的比較

c語言

C語言是一門通用計算機程式語言,廣泛應用於底層開發。C語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。
儘管C語言提供了許多低階處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規格寫出的C語言程式可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱MCU)以及超級電腦等作業平臺。
二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標準局為C語言制定了一套完整的美國國家標準語法,稱為ANSI C,作為C語言最初的標準。目前2011年12月8日,國際標準化組織(ISO)和國際電工委員會(IEC)釋出的C11標準是C語言的第三個官方標準,也是C語言的最新標準,該標準更好的支援了漢字函式名和漢字識別符號,一定程度上實現了漢字程式設計。
C語言是一門面向過程的計算機程式語言,與C++,Java等面向物件的程式語言有所不同。

20世紀60年代,美國AT&T公司貝爾實驗室(AT&T Bell Laboratory)的研究員Ken Thompson閒來無事,手癢難耐,想玩一個他自己編的,模擬在太陽系航行的電子遊戲——Space Travel。他揹著老闆,找到了臺空閒的機器——PDP-7。但這臺機器沒有作業系統,而遊戲必須使用作業系統的一些功能,於是他著手為PDP-7開發作業系統。後來,這個作業系統被命名為——UNIX。

1971年,同樣酷愛Space Travel的Dennis M.Ritchie為了能早點兒玩上游戲,加入了Thompson的開發專案,合作開發UNIX。他的主要工作是改造B語言,使其更成熟。

(為了玩遊戲寫個系統,也是夠閒)
以上均引自百度百科
C語言是一個有結構化程式設計、具有變數作用域(variable scope)以及遞迴功能的過程式語言。
C語言傳遞引數均是以值傳遞(pass by value),另外也可以傳遞指標(a pointer passed by value)。
不同的變數型別可以用結構體(struct)組合在一起。
只有32個保留字(reserved keywords),使變數、函式命名有更多彈性。
部份的變數型別可以轉換,例如整型和字元型變數。
通過指標(pointer),C語言可以容易的對儲存器進行低階控制。
預編譯處理(preprocessor)讓C語言的編譯更具有彈性。

個人直觀感受,C語言作為面向過程的程式語言,能夠較為容易的讓初學者掌握基本語法,其中對於很多語句結構的學習,以及對於資料結構、演算法的瞭解,為之後的更深入學習打下基礎,讓之後的學習更加簡單,就目前的教材來說,C語言更偏向程式設計入門和對演算法的初步瞭解,

Java:

Java是一門面向物件程式語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向物件程式語言的代表,極好地實現了面向物件理論,允許程式設計師以優雅的思維方式進行復雜的程式設計 。
Java具有簡單性、面向物件、分散式、健壯性、安全性、平臺獨立與可移植性、多執行緒、動態性等特點 。Java可以編寫桌面應用程式、Web應用程式、分散式系統和嵌入式系統應用程式等 。

面向物件(Object Oriented,OO)是軟體開發方法。面向物件的概念和應用已超越了程式設計和軟體開發,擴充套件到如資料庫系統、互動式介面、應用結構、應用平臺、分散式系統、網路管理結構、CAD技術、人工智慧等領域。面向物件是一種對現實世界理解和抽象的方法,是計算機程式設計技術 [1] 發展到一定階段後的產物。

以上均引自百度百科
通過目前的學習,能感覺到Java作為Clike語言和C語言之間的聯絡,也能感覺出又有所不同。
兩種語言之間的相同點讓之前的C語言學習對於Java的上手有所幫助,比如各種語法結構,順序結構,選擇結構(if),迴圈結構(while 、do while、for)基本一致,之前學到的各種演算法也同樣適用。
而兩種語言又有很多不同點(否則怎麼一個叫C語言,一個叫Java呢?),首先,Java是一種面向物件的語言,與C語言的面向過程不同,Java語言作為靜態面向物件程式語言的代表,極好地實現了面向物件理論,允許程式設計師以優雅的思維方式進行復雜的程式設計(很喜歡優雅這個詞)。而且Java放棄了通過指標進行靠近硬體的操作,增加了安全性,Java相較於C語言的一個顯著特點是需要執行環境的支援,而且Java程式基於Java模擬機執行程式,所以和C++相比而言執行速度可能較慢。

這些是我學習第一週對於Java的認識。