Java語言程序設(shè)計(jì)基礎(chǔ)_第1頁
Java語言程序設(shè)計(jì)基礎(chǔ)_第2頁
Java語言程序設(shè)計(jì)基礎(chǔ)_第3頁
Java語言程序設(shè)計(jì)基礎(chǔ)_第4頁
Java語言程序設(shè)計(jì)基礎(chǔ)_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Java語言程序設(shè)計(jì)基礎(chǔ)8/2/20211上課要求8/2/20212請保持安靜Java簡介

Sun公司(2009年被Oracle公司收購)1995年推出8/2/20213Java簡介8/2/20214Java的出現(xiàn)推動(dòng)了Web迅速發(fā)展·

Struts、Hibernate、Spring等開發(fā)框架Java語言的出現(xiàn)推動(dòng)了開源軟件的發(fā)展·

SourceForge8/2/20215Java語言特點(diǎn)8/2/20216簡單沒有C、C++語言中的指針;沒有多重繼承;沒有操作符重載;純面向?qū)ο蠓植际秸Z言提供網(wǎng)絡(luò)編程類庫;提供RMI(Remote

MethodInvocation)機(jī)制健壯性強(qiáng)類型機(jī)制、異常處理、垃圾內(nèi)存自動(dòng)搜集機(jī)制等Java語言特點(diǎn)8/2/20217安全性在網(wǎng)絡(luò)環(huán)境下,提供安全機(jī)制防止惡意代碼攻擊跨平臺Java虛擬機(jī)機(jī)制;代碼編譯為字節(jié)碼方式解釋型語言高性能多線程直接提供類庫支持多線程編程Java的創(chuàng)始人James

GoslingSun副總裁及研究院院士8/2/20218名字起源

Java是印度尼西亞爪哇島的英文名稱,因盛產(chǎn)咖啡而聞名。

Java語言中的許多庫類名稱,多與咖啡有關(guān),如

JavaBeans(咖啡豆)、NetBeans(網(wǎng)絡(luò)豆)以及

ObjectBeans(對象豆)等等。

SUN和JAVA的標(biāo)識也正是一杯正冒著熱氣的咖啡。8/2/20219Java平臺體系8/2/202110Java

SE(Standard

Edition)針對桌面程序Java

EE

(Enterprise

Edition)針對企業(yè)級軟件Java

ME

(Micro

Edition)針對移動(dòng)設(shè)備和嵌入式設(shè)備不斷擴(kuò)展的平臺8/2/202111參考教材Thinking

in

Java

4th

by

Bruce

Eckel8/2/202112參考教材Core

Java

8th

Vol1,

Vol28/2/202113參考教材Effective

Java

2nd

by

Joshua

Bloch8/2/202114Java虛擬機(jī)8/2/202115

在一臺計(jì)算機(jī)上由軟件模擬的假想的計(jì)算機(jī)。

Java虛擬機(jī)的代碼存儲在class文件中(也稱為字節(jié)碼文件)。

Java編譯器針對Java虛擬機(jī)產(chǎn)生class文件,因此是獨(dú)立于平臺的。

Java解釋器負(fù)責(zé)將Java虛擬機(jī)的代碼在特定的平臺上運(yùn)行。Java虛擬機(jī)任何一個(gè)編譯器,不是JVM的內(nèi)容。8/2/202116JVM執(zhí)行步驟8/2/202117Step1:編輯源代碼Step2:JAVA編譯器將其編譯為class文件(JVM規(guī)范的字節(jié)碼)Step3:JAVA解釋器負(fù)責(zé)將class文件解釋運(yùn)行(解釋器有兩個(gè)功能:執(zhí)行字節(jié)碼、對底層硬件平臺做適合調(diào)用)3

加載代碼:由class

loader完成3

校驗(yàn)代碼:由bytecode

verifier完成3

執(zhí)行代碼:由runtime

interpreter完成Java虛擬機(jī)的建立

Java虛擬機(jī)的建立需要針對不同的軟硬件平臺做專門的實(shí)現(xiàn)。8/2/202118無用內(nèi)存自動(dòng)回收機(jī)制8/2/202119面向過程的編程風(fēng)格8/2/202120int

maxSoFar=0,price=1;while(price>0){if

(price>maxSoFar)maxSoFar=price;//最大值maxSoFar的初值為0//price是輸入的值//循環(huán)輸入price的值//輸入的值price大于最大值maxSoFar//則maxSoFar的值為price的值String

input=JoptionPane.showInputDialog("Enter

the

next

price");//繼續(xù)輸入priceprice=Double.parseDouble(input);}//把字符串input轉(zhuǎn)換成整數(shù)priceSystem.out.println(“The

maximum

is”+maxSoFar);//打印最大值maxSoFar}面向?qū)ο蟮木幊田L(fēng)格8/2/202121Max

max=new

Max();

//max是類Max的一個(gè)對象while(price>0){max.updateMax(price);//對象max調(diào)用updateMax方法,更新最大值price=max.getPrice();//對象max調(diào)用getPrice獲得下一個(gè)price的值}System.out.println("The

maximum

is

"+max.getMax(

));//對象max調(diào)用getMax方法獲得最大值,并打印出來Java程序分類Java

Application通常稱為Java應(yīng)用程序,以main()方法作為程序入口,由Java解釋器加載執(zhí)行。Java

Applet通常稱為Java小應(yīng)用程序,通過瀏覽器或者是appletviewer命令加載執(zhí)行。Applet是Java最

獲得成功的應(yīng)用。8/2/202122Java應(yīng)用程序(Application)舉例//這是我們的第一個(gè)java

application,該程序保存在文件Property.java中import

java.util.*;/*下面我們用到了Date和Properties這兩個(gè)類,是屬于java.util這個(gè)包的;而System和Runtime這兩個(gè)類,是屬于java.lang這個(gè)包的。*/public

class

Property{//程序員給這個(gè)類取名為Propertypublic

static

void

main(String

args[]){//main是類的主方法System.out.println(new

Date());//在命令行下面打印出日期Properties

p=System.getProperties();//獲得系統(tǒng)的Properties對象pp.list(System.out);//在命令行下打印出p中的各個(gè)系統(tǒng)變量的值System.out.println("---Memory

Usage:");/*打印一行字符串---MemoryUsage*/Runtime

rt=Runtime.getRuntime();//獲得系統(tǒng)的Runtime對象rtSystem.out.println("Total

Memory="+rt.totalMemory()//打印總內(nèi)存大小+"

Free

Memory

=

"+rt.freeMemory());//打印空閑內(nèi)存大小}}8/2/202123Java

Application的編輯8/2/202124Java

Application的編譯Java編譯器命令:javac命令行中輸入:javac

Property.java

源文件名為Property.java,注意:文件名必須與公共類名相同;由javac編譯器編譯源程序,產(chǎn)

生字節(jié)碼文件(.class文件)。本例中產(chǎn)生

Property.class文件。8/2/202125Java

Application的執(zhí)行Java執(zhí)行命令:java命令行中輸入:java

Property

該命令將啟動(dòng)Java虛擬機(jī),由Java解釋器解釋執(zhí)行。8/2/202126Java小應(yīng)用程序(Applet)舉例8/2/202127//這是我們的第一個(gè)java

applet,該程序保存在文件HelloEducation.java中import

java.awt.Graphics;//在進(jìn)行顯示輸出時(shí),需要用到類Graphics的對象;import

java.applet.Applet;//Applet類是所有的java

applet的父類;public

class

HelloEducation

extends

Applet

{//程序員給這個(gè)類取名為HelloEducation所有的applet程序都是Applet類的子類public

String

s;public

void

init()

{s=new

String(“Welcome

to

Tongfang

Education”);//生成一個(gè)字符串對象}public

void

paint(Graphics

g){g.drawString(s,25,25);//在瀏覽器中坐標(biāo)為(25,25)的位置顯示字符串s}}Java

Applet的執(zhí)行8/2/202128

Java

Applet不能字節(jié)執(zhí)行,需要編寫html文件,把Applet嵌入其中。例如HelloEducation.html文件<html><applet

code=HelloEducation.class

width=250

height=250></applet></html>Java

Applet的執(zhí)行

用appletviewer來運(yùn)行,在命令提示符下輸入:

appletviewer

HelloEducation.html彈出窗口運(yùn)行該程序8/2/202129Java

Applet的執(zhí)行

在支持Java的瀏覽器上運(yùn)行。如在IE或Netscape中打開HelloEducation.html程序。8/2/202130Java程序結(jié)構(gòu)8/2/202131package語句//0或1條,必須放在文件開始import語句//0或多條,必須放在所有類定義之前public

classDefinition//0或1個(gè)。文件名必須與該類的類名完全相同classDefinition//類定義,個(gè)數(shù)不限interfaceDefinition//接口定義,個(gè)數(shù)不限Java程序結(jié)構(gòu)示例8/2/202132package

javawork.helloworld;/*把編譯生成的所有.class文件放到包javawork.helloworld中*///告訴編譯器本程序中用到系統(tǒng)的AWT包/*告訴編譯器本程序中用到用戶自定義的包javawork.newcentury*/import

java.awt.*;import

javawork.newcentury;public

class

HelloWorldApp{......}/*公共類HelloWorldApp的定義,名字與文件名相同*///第一個(gè)普通類TheFirstClass的定義//第二個(gè)普通類TheSecondClass的class

TheFirstClass{......}class

TheSecondClass{......}定義......//其它普通類的定義interface

TheFirstInterface{......}

//第一個(gè)接口TheFirstInterface的定義......

//其它接口定義package語句8/2/202133包(package)是用于管理生成的java字節(jié)碼文件(.class),其對應(yīng)于文件系統(tǒng)中的目錄,目的是把編譯生成的.class文件放入該目錄。例如:javawork.helloworld對應(yīng)于目錄

“path\javawork\helloworld,其中path需在編譯時(shí)指定,且該目錄須存在;如果

javawork\helloworld不存在則創(chuàng)建該目錄。例如:javac-d

f:\javaproject

HelloWorldApp.java則生成的HelloWorldApp.class文件將放在目錄

f:\javaproject\javawork\helloworld\中package語句8/2/202134

如果程序中沒有package語句,或者有package語句但是在編譯時(shí)不用-d選項(xiàng),則生成的.class文件放入當(dāng)前目錄。Import語句8/2/202135

在程序中用到了標(biāo)準(zhǔn)類庫或自定義包中的類,需要用import語句來聲明。可以聲明一個(gè)包:import

java.awt.*

在引用到類或者包時(shí),將沿著類路徑classpath開始尋找相應(yīng)的.class文件,因此需要事先設(shè)置環(huán)境變量classpath:classpath=.;d:\jdk1.3\lib\Java程序結(jié)構(gòu)8/2/202136源文件的命名規(guī)則如果.java文件包含一個(gè)public類,它必須按該類名命名。一個(gè)源文件中最多只能有一個(gè)public類,其他類的個(gè)數(shù)不限。Java編程規(guī)范8/2/202137包名3

全小寫,一般為名詞,如:java.awt.event;類名3

首字母大寫,每個(gè)單詞的首字母大寫,如:class

HelloWorldApp;接口名3

同類名,如:interface

Collection;方法名3

一般為動(dòng)詞,小寫字母開頭,每個(gè)單詞的首字母都要大寫,如:balanceAccount,

isButtonPressed;變量名3

全小寫,一般為名詞,如:length;常量名–

基本類型的常量名為全大寫,如:int

YEAR,intWEEK_OF_MONTH;對象常量大小寫混合。Java幫助文檔Jdk1.3\docs\index.html8/2/202138Java幫助文檔查閱JDK命令,選擇Tool

Documentation8/2/202139Java幫助文檔Java、javac、javadoc、appletviewer8/2/202140Java幫助文檔

查閱類庫

溫馨提示

  • 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

提交評論