版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Java 程序設計概述n 計算機與程序設計n 程序設計語言n Java 語言介紹n 第一個Java程序(編輯、編譯與運行)計算機與程序設計只有學會編程,才能真正理解計算機 現(xiàn)實世界其實是由一個名叫“母體”的計算機人工智能系統(tǒng)控制,人們就像他們飼養(yǎng)的動物,沒有自由和思想,到底哪里才是真實的世界?,這是黑客的帝國,程序和代碼程序和代碼歡迎大家的到來。 黑客帝國這是一個未來的世界,天下已經(jīng)由機器人來操控。機器人想完全占有這個世界,把人類趕盡殺絕,然而,于是,終結(jié)者機器人T-800(阿諾施瓦辛格 Arnold Schwarzenegger飾)受命 終結(jié)者/未來戰(zhàn)士世界上有兩種人,一種是懂二進制的,一種
2、不懂。 中國網(wǎng)友計算機模型計算機模型:馮諾依曼結(jié)構(gòu)計算機模型:現(xiàn)代版馮諾依曼“計算機之父計算機之父”,最先提出“存儲程序存儲程序”與“二進制二進制”的概念n存儲程序存儲程序是將根據(jù)特定問題編寫的程序存放在計算機存儲器中,然后按存儲器中的存儲程序的首地址執(zhí)行程序的第一條指令,以后就按照該程序的規(guī)定順序執(zhí)行其他指令,直至程序結(jié)束執(zhí)行。 還是“博弈論之父”馮諾伊曼結(jié)構(gòu)的設計概念 n馮馮諾伊曼結(jié)構(gòu)諾伊曼結(jié)構(gòu)與儲存程式型電腦是互相通用的名詞,其用法將于下述。而哈佛結(jié)構(gòu)哈佛結(jié)構(gòu)則是一種將程式資料與普通資料分開儲存的設計概念。n儲存程式型概念也可讓程式執(zhí)行時自我修改程式的運算內(nèi)容。本概念的設計動機之一就是可
3、讓程式自行增加內(nèi)容或改變程式指令的內(nèi)存位置。存儲器n程序程序計算機程序或者軟件程序(通常簡稱程序)是指一組指示計算機每一步動作的指令,通常用某種程序設計語言編寫,運行于某種目標體系結(jié)構(gòu)上。打個比方,一個程序就像一個用漢語(程序設計語言)寫下的紅燒肉菜譜(程序),用于指導懂漢語的人(體系結(jié)構(gòu))來做這個菜。 通常,計算機程序要經(jīng)過編譯和鏈接而成為一種人們不易理解而計算機理解的格式,然后運行。未經(jīng)編譯就可運行的程序通常稱之為腳本程序(script)。n數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)可以被定義為被程序處理的信息。當我們考慮到整個計算機系統(tǒng)時,有時程序和數(shù)據(jù)的區(qū)別就不是那么明顯了。中央處理器有時有一組微指令控制硬件,數(shù)據(jù)
4、可以是一個有待執(zhí)行的程序(參見腳本編程語言),程序可以編寫成去編寫其它的程序;所有這些例子都使程序和數(shù)據(jù)的比較成為一種視角的選擇。有人甚至斷言程序和數(shù)據(jù)沒有區(qū)別。 程序數(shù)據(jù)存儲器程序=算法+數(shù)據(jù)結(jié)構(gòu)n算法算法指解決某個問題的嚴格方法,通常還需輔以某種程度上的運行性能分析。算法可以是純理論的,也可以由一個計算機程序?qū)崿F(xiàn)。理論算法通常根據(jù)復雜性分為不同類別;實現(xiàn)的算法通常經(jīng)過頗析(Profiling )以測試其性能。請注意雖然一個算法在理論上有效可行,但是一個糟糕的實現(xiàn)仍會浪費寶貴的計算機資源。(更詳細信息,參見算法信息論,Algorithmic Information Theory ) 。n數(shù)據(jù)
5、結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)是計算機存儲、組織數(shù)據(jù)的方式。數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。通常情況下,精心選擇的數(shù)據(jù)結(jié)構(gòu)可以帶來更高的運行或者存儲效率的算法。數(shù)據(jù)結(jié)構(gòu)往往同高效的檢索算法和索引技術(shù)有關(guān)。 編程過程n問題建模n算法設計n編寫代碼n編譯調(diào)試n運行Problem設有一頭小母牛,從出生第四年起每年生一頭小母牛,按此規(guī)律,第N年時有幾頭母牛? Input本題有多組數(shù)據(jù)。每組數(shù)據(jù)只有一個整數(shù)N,獨占一行。(1N50) Output對每組數(shù)據(jù),輸出一個整數(shù)(獨占一行)表示第N年時母牛的數(shù)量 Sample InputSample Output11425320872 程序設計語言n機
6、器語言機器語言 指一臺計算機全部的指令集合,一條機器語言成為一條二進制指令。指令是不可分割的最小功能單元。而且,由于每臺計算機的指令系統(tǒng)往往各不相同。n匯編語言匯編語言 用一些簡潔的英文字母、符號串來替代一個特定的指令的二進制串,比如,用ADD代表加法。負責將這些符號翻譯成二進制機器指令的程序被稱為匯編器匯編器。n高級語言高級語言 接近于數(shù)學語言或人的自然語言(如if,+),同時又不依賴于計算機硬件,編出的程序能在所有機器上通用。負責將高級語言源代碼翻譯成匯編語言或機器指令的程序叫編譯器編譯器。最早流行的高級語言是C語言。高級語言分類1.命令式語言命令式語言。這種語言的語義基礎(chǔ)是模擬“數(shù)據(jù)存儲
7、/數(shù)據(jù)操作”的圖靈機可計算模型,十分符合現(xiàn)代計算機體系結(jié)構(gòu)的自然實現(xiàn)方式。其中產(chǎn)生操作的主要途徑是依賴語句或命令產(chǎn)生的副作用?,F(xiàn)代流行的大多數(shù)語言都是這一類型,比如 Fortran、Pascal、Cobol、C、C+、Basic、Ada、Java、C# 等,各種腳本語言也被看作是此種類型。2.函數(shù)式語言函數(shù)式語言。這種語言的語義基礎(chǔ)是基于數(shù)學函數(shù)概念的值映射的算子可計算模型。這種語言非常適合于進行人工智能等工作的計算。典型的函數(shù)式語言如 Lisp、Haskell、ML、Scheme 等。3.邏輯式語言邏輯式語言。這種語言的語義基礎(chǔ)是基于一組已知規(guī)則的形式邏輯系統(tǒng)。這種語言主要用在專家系統(tǒng)的實現(xiàn)
8、中。最著名的邏輯式語言是 Prolog。4.面向?qū)ο笳Z言面向?qū)ο笳Z言?,F(xiàn)代語言中的大多數(shù)都提供面向?qū)ο蟮闹С郑行┱Z言是直接建立在面向?qū)ο蠡灸P蜕系?,語言的語法形式的語義就是基本對象操作。主要的純面向?qū)ο笳Z言是 Smalltalk。高級語言的處理過程C 語言家族Java 特點:跨平臺nJVM - Java虛擬機Java Virtual Machine是一個虛構(gòu)出來的計算機,通過在實際的計算機上仿真模擬各種計算機功能來實現(xiàn)的。Java虛擬機有自己完善的硬體架構(gòu),如處理器、堆棧、寄存器等,還具有相應的指令系統(tǒng)。JVM屏蔽了與具體操作系統(tǒng)平臺相關(guān)的信息,使得Java程序只需生成在Java虛擬機上
9、運行的目標代碼(字節(jié)碼),就可以在多種平臺上不加修改地運行。 Java 平臺介紹nJava SE(Java Platform,Standard Edition)。Java SE 以前稱為 J2SE。它允許開發(fā)和部署在桌面、服務器、嵌入式環(huán)境和實時環(huán)境中使用的 Java 應用程序。Java SE 包含了支持 Java Web 服務開發(fā)的類,并為 Java Platform,Enterprise Edition(Java EE)提供基礎(chǔ)。 nJava EE(Java Platform,Enterprise Edition)。這個版本以前稱為 J2EE。企業(yè)版本幫助開發(fā)和部署可移植、健壯、可伸縮且安
10、全的服務器端 Java 應用程序。Java EE 是在 Java SE 的基礎(chǔ)上構(gòu)建的,它提供 Web 服務、組件模型、管理和通信 API,可以用來實現(xiàn)企業(yè)級的面向服務體系結(jié)構(gòu)(service-oriented architecture,SOA)和 Web 2.0 應用程序。 nJava ME(Java Platform,Micro Edition)。這個版本以前稱為 J2ME。Java ME 為在移動設備和嵌入式設備(比如手機、PDA、電視機頂盒和打印機)上運行的應用程序提供一個健壯且靈活的環(huán)境。Java ME 包括靈活的用戶界面、健壯的安全模型、許多內(nèi)置的網(wǎng)絡協(xié)議以及對可以動態(tài)下載的連網(wǎng)和
11、離線應用程序的豐富支持?;?Java ME 規(guī)范的應用程序只需編寫一次,就可以用于許多設備,而且可以利用每個設備的本機功能。 我的第一個Java程序n編輯(區(qū)分大小寫區(qū)分大小寫)n編譯(命令 javac.exe)n解釋運行(命令 java.exe)(JVM)準備Java開發(fā)環(huán)境JDK, Java Development Kit(內(nèi)置編譯器、解釋/運行器、JRE)n下載 Java SE http:/常見錯誤錯誤原因:1-未安裝JDK,或,2-未正確地將JDK的bin路徑添加到path環(huán)境變量找到安裝后javac.exe 所在的位置設置path1.“我的電腦”右鍵“屬性”2.高級3.編輯“pat
12、h”系統(tǒng)變量4.將 javac.exe 所在目錄(包含bin)添加于前5.打開一個新的 cmd 命令行窗口常見命令(運行“cmd”進入命令窗口)切換到 D 盤cd 進入當前目錄下的子目錄dir顯示當前目錄內(nèi)容javac 編譯源代碼文件java 運行字節(jié)碼文件編譯成功生產(chǎn)的字節(jié)碼文件思考作業(yè):養(yǎng)牛問題Problem設有一頭小母牛,從出生第四年起每年生一頭小母牛,按此規(guī)律,第N年時有幾頭母牛? Input本題有多組數(shù)據(jù)。每組數(shù)據(jù)只有一個整數(shù)N,獨占一行。(1N50) Output對每組數(shù)據(jù),輸出一個整數(shù)(獨占一行)表示第N年時母牛的數(shù)量 Sample InputSample Output11425
13、320872 參考程序一public class Test public static void main(String args) int n=5;int a=1, b=1, temp; int sum=2; for(int i=3; i=n; i+) temp=a+b; a=b; b=temp; sum=sum+temp; System.out.println(sum= + sum); 參考程序二public class Test public static void main(String args) int n = 5; long a1 = 1; long a2 = 1; long a3 = 1 long a4 = 1; int i = 0; long sum = 0; for (i = 4; i n + 1; i+) a4 = a1 + a3; a1 = a2; a2 = a3; a3 = a4; sum
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB51T 1517-2012 小麥品種描述規(guī)范
- DB51T 1083-2010 豬人工授精站建設規(guī)范
- DB51T 985-2010 游牧用框架式帳篷
- 新建印刷機項目可行性研究報告
- 莠去津原藥生產(chǎn)加工項目可行性研究報告
- 新建礦井風機項目立項申請報告
- 新建電容器紙項目立項申請報告
- 大學三相電機課程設計
- 2024-2030年新版中國鋼鋼絲項目可行性研究報告
- 幼兒園靈魂樂隊課程設計
- 支氣管動脈造影護理
- 2024年度建筑工程有限公司股權(quán)轉(zhuǎn)讓合同3篇
- 校園春季安全
- 2024-2025學年度上學期九年級十二月聯(lián)考英語試卷
- 2024年債權(quán)投資協(xié)議6篇
- 2024-2025學年北師大版八年級數(shù)學上冊期末綜合測試卷(含答案)
- 2024廣州租房合同范本
- 菏澤學院中外教育史(高起專)復習題
- 分數(shù)的初步認識(單元測試)-2024-2025學年三年級上冊數(shù)學期末復習 人教版
- AI服務器BOM表解密報告
- 廣東省梅州市2023-2024學年高一上學期期末考試 生物 含解析
評論
0/150
提交評論