JAVA程序設(shè)計(jì) 第二課_第1頁
JAVA程序設(shè)計(jì) 第二課_第2頁
JAVA程序設(shè)計(jì) 第二課_第3頁
JAVA程序設(shè)計(jì) 第二課_第4頁
JAVA程序設(shè)計(jì) 第二課_第5頁
已閱讀5頁,還剩46頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

Java程序設(shè)計(jì)西南財(cái)經(jīng)大學(xué)天府學(xué)院Tianfu

College

of

Southwestern

University

ofFinance

and

Economics郭進(jìn)西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)第一章java概述計(jì)算機(jī)基礎(chǔ)知識回顧程序設(shè)計(jì)概述Java概述3Java環(huán)境搭建4第一個(gè)java程序編寫實(shí)現(xiàn)5西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)計(jì)算機(jī)基礎(chǔ)知識回顧——計(jì)算機(jī)系統(tǒng)計(jì)算機(jī)系統(tǒng)由硬件和軟件構(gòu)成馮·諾依曼的通用計(jì)算機(jī)方案:

計(jì)算機(jī)硬件由??個(gè)基本部分組成:運(yùn)算器、控制器、存儲器、輸入設(shè)備和輸出設(shè)備;用二進(jìn)制表示計(jì)算機(jī)的指令和數(shù)據(jù);

存儲程序和程序控制:將程序和數(shù)據(jù)放在存儲器中,并讓計(jì)算機(jī)自動地執(zhí)行程序。西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)計(jì)算機(jī)基礎(chǔ)知識回顧——計(jì)算機(jī)系統(tǒng)西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)程序設(shè)計(jì)概述 程序員用各種程序設(shè)計(jì)語言編寫計(jì)算機(jī)指令。某些指令能夠直接被計(jì)算機(jī)執(zhí)行,而其它的指令還需要通過中間的翻譯過程才可被計(jì)算機(jī)執(zhí)行。 當(dāng)今使用的計(jì)算機(jī)語言有上百種,大致可分為如下三類:機(jī)器語言、匯編語言和高級語言。西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)機(jī)器語言、匯編語言和高級語言機(jī)器語言高級語言匯編語言高級機(jī)語器言語用言簡的單每的一英條文語單句詞都和熟悉的數(shù)是學(xué)匯二表編進(jìn)達(dá)語制式言形,用式并助的且記指用符令戶代代不替必機(jī)了解計(jì)算碼機(jī)器,的語從指言屬令的于系操硬統(tǒng)作件,碼設(shè)主,備要例,考如一慮解題算法般的A隨D實(shí)DC現(xiàn)PU。加的高不級同語而言不編同寫。的源程序可例以如在不同的計(jì)算機(jī)上使用,但是必須但經(jīng)是01過匯01編0編1譯1語成言加機(jī)還器是語面言向才機(jī)能執(zhí)行。器的01。01而101且因減機(jī)而異西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)匯編或高級語言

機(jī)器語言的方式:編譯:將原程序(高級語言編寫)翻譯成目標(biāo)代碼(機(jī)器語言)。計(jì)算機(jī)執(zhí)行程序時(shí)執(zhí)行的是目標(biāo)代碼。高級語言源程序編譯程序機(jī)器語言目標(biāo)代碼鏈接執(zhí)行(編譯)解釋:計(jì)算機(jī)在執(zhí)行程序時(shí),邊解釋邊執(zhí)行。高級語言源程序解釋程序執(zhí)行(解釋)西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)庫文本編輯器#include<stdio.h>int

main(){……編譯器連接器運(yùn)行器001100010110000111……001100010110000111……------------------------------源代碼目標(biāo)代碼可執(zhí)行代碼結(jié)果程序員西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)source

program…………ccoommpplliieerrobject

programother

objectfiles/librarieslliinnkkeerr………………………………executable

file編譯過程西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)一個(gè)程序應(yīng)包括兩方面的內(nèi)容一個(gè)程序應(yīng)包括兩方面的內(nèi)容數(shù)據(jù)類型(Data

types)數(shù)據(jù)結(jié)構(gòu)(Data

structure)數(shù)據(jù)結(jié)構(gòu)+算法=程序1、對數(shù)據(jù)的描述算法(algorithm)2、對操作的描述西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)設(shè)計(jì)、書寫及檢查調(diào)試程序的過程。數(shù)據(jù)結(jié)構(gòu)確定算法編寫代碼調(diào)試運(yùn)行整理結(jié)果

并攥寫文檔程序=數(shù)據(jù)結(jié)構(gòu)+算法+程序設(shè)計(jì)方法+文檔程序=數(shù)據(jù)結(jié)構(gòu)+算法+程序設(shè)計(jì)方法+文檔EXAMPLE[1-1]:0021班

學(xué)生成績表單姓

名英語高數(shù)總分春風(fēng)8867夏天8079秋雨9283冬雪7690請計(jì)算下列給出的成績表單中“春風(fēng)”的總成績姓

名英語高數(shù)總分春風(fēng)8867夏天8079秋雨9283冬雪7690英語和高數(shù)成績均用整型數(shù)據(jù)表示:int score1,

score2,

sum;score1=88score2=67數(shù)據(jù)結(jié)構(gòu)確定算法sum=score1+score2sum=0score1=88Score2=67sum=score1+score2Begin輸出sumEnd姓

名英語高數(shù)總分春風(fēng)8867夏天8079秋雨9283冬雪7690數(shù)據(jù)結(jié)構(gòu)確定算法編寫代碼main(){

int

score1,

score2,sum=0;score1=88;score2=67;sum=score1+score2;printf(“sum=%d\n”,

sum);}main(){

int

score1,

score2,sum=0;score1=88;score2=67;sum=score1+score2;printf(“sum=%d\n”,

sum);}sum=0score1=88Score2=67sum=score1+score2Begin輸出sumEnd姓

名英語高數(shù)總分春風(fēng)8867155夏天8079秋雨9283冬雪7690數(shù)據(jù)結(jié)構(gòu)確定算法編寫代碼main(){

int

score1,

score2,sum=0;score1=88;score2=67;sum=score1+score2;printf(“sum=%d\n”,

sum);}main(){

int

score1,

score2,sum=0;score1=88;score2=67;sum=score1+score2;printf(“sum=%d\n”,

sum);}調(diào)試運(yùn)行整理結(jié)果并攥寫文檔程程序序名名稱稱::ssuumm.c.c程程序序員員::李李曉曉程程序序功功能能::計(jì)計(jì)算算學(xué)學(xué)生生成成績績代代碼碼編編寫寫日日期期::22000088年年99月月77日日該該程程序序算算法法用用下下列列程程序序流流程程圖圖描描述述::…………程序設(shè)計(jì)的過程就是問題求解的過程.應(yīng)用計(jì)算機(jī)求解問題是一個(gè)復(fù)雜的過程,包括問題分析,建立數(shù)據(jù)模型,設(shè)計(jì)算法,編程,調(diào)試和測試,文檔整理等。學(xué)習(xí)程序設(shè)計(jì),要按這個(gè)步驟一步一步地解決問題。掌握和學(xué)會問題求解方法,是學(xué)習(xí)高級語言的重點(diǎn),也是最大難

點(diǎn)。它將貫穿于教學(xué)的整個(gè)過程,滲透到各個(gè)教學(xué)環(huán)節(jié)。問題分析建立數(shù)據(jù)模型設(shè)計(jì)算法編輯調(diào)試和測試文檔整理圖1.

問題求解過程X1起止端點(diǎn)輸入/輸出一般處理預(yù)定義處理?xiàng)l件判斷循環(huán)上界循環(huán)下界流程線sum=0score1=88Score2=67sum=score1+score2Begin輸出sumEnd請用程序流程圖描述求解下列問題的算法姓

名英

語高

數(shù)總分春風(fēng)8867EXAMPLE[1-2]:用程序流程圖表示的三種基本結(jié)構(gòu)用程序流程圖表示的三種基本結(jié)構(gòu)ABC順序結(jié)構(gòu)AexpT選擇結(jié)構(gòu)BAexpTFcase

expcase

1case

2……case

n選擇結(jié)構(gòu)expTAF循環(huán)結(jié)構(gòu)expTAFN--S圖表示算法的優(yōu)點(diǎn):比文字描述直觀、形象、易于理解;比傳統(tǒng)流程圖緊湊易畫,而且廢除了流程線,整個(gè)算法結(jié)構(gòu)是由各個(gè)基本結(jié)構(gòu)按順序組成的。N--S流程圖中的上下順序就是執(zhí)行時(shí)的順序,寫算法和讀算法只需從上到下,十分方便。用N--S圖表示的算法都是結(jié)構(gòu)化的算法,因?yàn)樗豢赡艹霈F(xiàn)流程無規(guī)律的跳轉(zhuǎn),而只能自上而下地順序執(zhí)行。西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)第一篇Java語言基礎(chǔ)第二篇面向?qū)ο蠹夹g(shù)第三篇Java異常處理第四篇輸入輸出與多線程第五篇Java的應(yīng)用西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)Java概述——產(chǎn)生背景1991年,電視機(jī),機(jī)頂盒,錄象機(jī)的開發(fā)設(shè)計(jì)需要一種可移植、方便、高效的計(jì)算機(jī)語言。為了滿足這種需求,由Sun公司的

PatrickHaughton和James

Gosling領(lǐng)導(dǎo)的技術(shù)小組開發(fā)了JAVA。西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)Java概述——發(fā)展歷史SunMicrosystem公司為了發(fā)展消費(fèi)性電子產(chǎn)品而進(jìn)行了一個(gè)名為Green的項(xiàng)目計(jì)劃。這個(gè)計(jì)劃的負(fù)責(zé)人是James

Gosling。起初他以C++來寫一種內(nèi)嵌式軟件,可以放在烤面包機(jī)或PAD等小型電子消費(fèi)設(shè)備里,使得機(jī)器更聰明,更具有人工智能。但后來他發(fā)現(xiàn)C++并不適合這類的任務(wù)!因?yàn)镃++常 會有使系統(tǒng)失效的程序錯(cuò)誤,尤其是內(nèi)存管理。西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)Gosling最后決定要發(fā)展一種新的語言,來解決C++的潛在性危險(xiǎn)問題,這個(gè)語言名叫Oak(橡樹)。它保留了大部分與C++相似的語法,但卻把些較具危險(xiǎn)性的功能加以改進(jìn),像內(nèi)存資源管理,便由語言本身來管理,以減少程序設(shè)計(jì)師的負(fù)擔(dān)及錯(cuò)誤的產(chǎn)生。Oak是一種可移植性(portable)語言,也就是一種平臺獨(dú)立(platform-independent)的語言,能夠在各種芯片上運(yùn)行。這樣子各家廠商就可降低研發(fā)成本,直接把應(yīng)用程序應(yīng)用在自家的產(chǎn)品上。西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)時(shí)間到了1994年,Oak的技術(shù)已日趨成熟,這時(shí)剛好網(wǎng)絡(luò)也正開始蓬勃發(fā)展。而Oak研發(fā)小組發(fā)現(xiàn)Oak很適合作為一種網(wǎng)絡(luò)程序語言。因此發(fā)展了一個(gè)能與Oak相配合的瀏覽器——WebRunner,后更名為HotJava,它證明了Oak是一種能在網(wǎng)絡(luò)上發(fā)展的程序語言。后來,因?yàn)镺ak這個(gè)商標(biāo)已被注冊走了,工程師們便想到以手中常享用的咖啡(Java)來重新命名,并于SunWorld95中被發(fā)表出來。從此以后,Java就隨著網(wǎng)絡(luò)的快速發(fā)展,而成了一個(gè)程序語言的明日之星。西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)Java概述——技術(shù)分支JAVAEEJSP

/

ServletEJB服務(wù)…JSP

/

ServletJAVA

EEEJB服務(wù)…JAVA

MECLDC、MIDP游戲通訊…JAVA

MECLDC、MIDP游戲通訊…JAVASE面向?qū)ο驤VM底層支持…基礎(chǔ)核心基礎(chǔ)核心JAVA

SE面向?qū)ο驤VM底層支持…西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)Java概述——語言的特點(diǎn) Java語言有下面一些特點(diǎn):簡單、面向?qū)ο?、分布式、解釋?zhí)行、安全、體系結(jié)構(gòu)中立、可移植、高性能、多線程以及動態(tài)性。西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)Java概述——Java工作原理對于大多數(shù)語言,如果要運(yùn)行一個(gè)程序,要么編譯程序要么解釋程序;但是Java語言的程序則既要被編譯又要被解釋。編譯器將Java源程序翻譯為字節(jié)碼(bytecode)程序;解釋器(Java虛擬機(jī))分析并解釋執(zhí)行字節(jié)碼程序。西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)源代碼目標(biāo)碼可執(zhí)行代碼源代碼字節(jié)碼編譯連接運(yùn)行操作系統(tǒng)編譯解釋執(zhí)行Java解釋器西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)Source Code(源程序

*.java)JVM(Java虛擬機(jī))JVM(Java虛擬機(jī))JVM(Java虛擬機(jī))WindowsLinuxUnixcomplie

(編譯)Byte Code(字節(jié)碼文件

*.class)Load

(載入)execute

(解釋)西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)一次編寫,處處運(yùn)行西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)非洲翻譯韓國翻譯美國翻譯非洲商人韓國商人美國商人中國商人問候的話語翻譯成非洲話翻譯成韓國話翻譯成美國話西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)Java概述——Java虛擬機(jī)Java虛擬機(jī)是以Java字節(jié)碼為指令組的軟CPU,負(fù)責(zé)對本地*.class文件進(jìn)行解釋執(zhí)行。JVM的定義:An

imaginary

machine

that

is

implemented

by

emulating

it

insoftware

on

a

real

machine.

Code

for

the

Java

Virtual

Machine

isstored

in

.class

files.JVM的構(gòu)成:類加載器:用來取得從網(wǎng)絡(luò)或本地的類文件。字節(jié)確認(rèn)器:確認(rèn)類文件是否有正確的格式。JIT實(shí)時(shí)編譯器:使虛擬機(jī)能達(dá)到編譯式的運(yùn)行效率。西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)JVM

(Java

Virtual

Machine)在一臺計(jì)算機(jī)上由軟件或硬件模擬的計(jì)算機(jī)。

Java虛擬機(jī)(JVM)讀取并處理經(jīng)編譯過的平臺無關(guān)的字節(jié)碼class文件。Java編譯器針對Java虛擬機(jī)產(chǎn)生class文件,因此是獨(dú)立于平臺的。Java解釋器負(fù)責(zé)將Java虛擬機(jī)的代碼在特定的平臺上運(yùn)行。西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)Java概述——Java平臺平臺(Platform)是程序在其中運(yùn)行的硬件或軟件環(huán)境最流行平臺:Windows,Linux,Solaris,MacOS

Java既是一種程序語言也是一個(gè)平臺。Java平臺是一種運(yùn)行在其它硬件平臺上的純軟件平臺,它有兩個(gè)組件:Java虛擬機(jī)(Java

Virtual

Machine,JVM)和Java應(yīng)用編程接口(Java

API)Java

API

和JVM

將程序與硬件分離西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)Java

API

和JVM

將程序與硬件分離西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)Java平臺又稱Java

運(yùn)行時(shí)環(huán)境(Java

RuntimeEnvironment,JRE)。一臺計(jì)算機(jī)要想運(yùn)行Java程序,則必須首先安裝

JRE。目前Java平臺有3種版本,以適應(yīng)各種需求:JavaTM

2

Platform,

Standard

Edition

(J2SE)

(標(biāo)準(zhǔn)版)JavaTM

2

Platform,

Enterprise

Edition

(J2EE)

(企業(yè)版)JavaTM

2

Platform,

Micro

Edition

(J2ME)

(小型家電版)借助這些平臺版本,使得Java程序能在各式大小型機(jī)器及操作系統(tǒng)上運(yùn)行,達(dá)成所謂程序可移植性、跨平臺的目標(biāo)。Java平臺的這些特性,使得微軟倍感威脅。微軟現(xiàn)今所提出的.Net,便是視Java平臺為強(qiáng)力競爭對手之一。西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)JRE西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)Java概述——Java的垃圾回收機(jī)制(GC)不再使用的內(nèi)存空間應(yīng)回收----垃圾收集。 在C/C++等語言中,由程序員負(fù)責(zé)回收無用內(nèi)存。 Java語言解除了程序員回收無用內(nèi)存空間的責(zé)任。它提供一種系統(tǒng)級線程跟蹤存儲空間的分配情況。并在JVM的空閑時(shí),檢查并釋放那些可被釋放的存儲器空間。 垃圾收集在Java程序運(yùn)行過程中自動進(jìn)行,程序員無法精確控制和干預(yù)。西南財(cái)經(jīng)大學(xué)天府學(xué)院—java程序設(shè)計(jì)Java環(huán)境搭建Java開發(fā)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論