Java程序設(shè)計教程及實驗指導(dǎo) 課件第1章 Java語言概述_第1頁
Java程序設(shè)計教程及實驗指導(dǎo) 課件第1章 Java語言概述_第2頁
Java程序設(shè)計教程及實驗指導(dǎo) 課件第1章 Java語言概述_第3頁
Java程序設(shè)計教程及實驗指導(dǎo) 課件第1章 Java語言概述_第4頁
Java程序設(shè)計教程及實驗指導(dǎo) 課件第1章 Java語言概述_第5頁
已閱讀5頁,還剩55頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1.1Java簡介

——歷史1991年

,SUN

MicroSystem公司想了進(jìn)軍家用消費類電子產(chǎn)品市場。成立了由

James

Gosling、

Bill

Joe等人組成的Green開發(fā)小組。開發(fā)了基于C++的一個名為Oak的軟件,但當(dāng)時并沒有取得商業(yè)上的成功。1994年,隨著WWW(萬維網(wǎng))的快速發(fā)展,Sun公司將Oak技術(shù)應(yīng)用于Internet網(wǎng)絡(luò),完成了一個用Oak編寫的早期Web查看器,稱為WebRunner,后被改名為HotJava。并將Oak改名為Java。1995年,Sun公司正式發(fā)表了Java語言,MicroSoft、IBM、NETSCAPE、NOVELL、APPLE、DEC、SGI等公司紛紛購買Java語言的使用權(quán)?!禤C

Magazine》評為

1995年十大優(yōu)秀科技產(chǎn)品。

1996年,SUN公司成立Javasoft分公司來維護(hù)和發(fā)展Java。JamesGoslingJavaOne大會1996年5月,第一界JavaOne大會在舊金山召開。——評價比爾·蓋茨:“Java是長時間以來最卓越的程序設(shè)計語言?!比f維網(wǎng)www的創(chuàng)始人TimBerners-Lee:“計算機(jī)事業(yè)發(fā)展的下一個浪潮就

Java,并且將很快會發(fā)生的。”TimBerners-LeeSUNMicrosystem公司的總裁ScottMcNealy認(rèn)為:“Java為Internet和WWW開辟了一個嶄新的時代。”工業(yè)界預(yù)言:“Java語言的出現(xiàn),將會引起一場軟件革命?!庇腥祟A(yù)言:“Java將是網(wǎng)絡(luò)上的‘世界語’,今后所有的用其他語言編寫的軟件統(tǒng)統(tǒng)都將要用Java語言來改寫?!?/p>

——發(fā)展IBM公司提出“高舉Java大旗,全力以赴”的口號,它在全世界的11個國家有28個實驗室,集聚了2500余名技術(shù)人員,全天侯24小時進(jìn)行全方位開發(fā);芯片巨人Intel提出“抓住時機(jī),占領(lǐng)Java陣地”!決心使Intel芯片系統(tǒng)成為開發(fā)Java應(yīng)用運行的最佳平臺;Novell則宣稱“Java是Novell的未來,未來是服務(wù)器端Java的市場”;一年一度在美國舊金山召開的世界JavaOne語言開發(fā)者大會(JavaOneDeveloperConference)盛況空前;會議內(nèi)容:Java開發(fā)工具軟件、企業(yè)信息管理解決方案軟件、基于Java技術(shù)的信息家電、個人信息綜合服務(wù)、社會信息綜合查詢亭、電子商務(wù)軟件、智能卡、JavaCardAPI、網(wǎng)絡(luò)計算環(huán)境下的Java服務(wù)器軟件、遠(yuǎn)程方法調(diào)用(RMI)、基于Java技術(shù)的移動計算設(shè)備等;Java根植于Internet,與之有密切的聯(lián)系Internet簡介:資源共享是Internet的最主要特點;Internet的服務(wù):應(yīng)用最廣泛的有WWW(worldWideWeb)世界萬維網(wǎng)服務(wù),Gopher服務(wù),文件傳輸服務(wù)ftp,遠(yuǎn)程終端服務(wù)telnet,Email電子郵件服務(wù),網(wǎng)絡(luò)論壇,各電子公告欄bbs信息服務(wù),網(wǎng)上購物,電子商務(wù)等。網(wǎng)絡(luò)服務(wù)對程序代碼的基本的要求:安全、可靠,同時要求能與運行于不同平臺機(jī)器的全世界客戶開展業(yè)務(wù)。Java憑借它在語言上無法比擬的優(yōu)勢成為網(wǎng)絡(luò)編程語言,并以其強(qiáng)安全性、平臺無關(guān)性、硬件結(jié)構(gòu)無關(guān)性、語言簡潔同時集面向?qū)ο蟮忍匦?,?yīng)用于電子商務(wù)。Java應(yīng)用領(lǐng)域嵌入式技術(shù)(如嵌入式設(shè)備、移動通訊設(shè)備、手持式設(shè)備、測試儀器等);基于Application/Applet、JavaBean的PC應(yīng)用;基于CORBA/RMI的分布式應(yīng)用、Servlet、JSP實現(xiàn)電子商務(wù)—電子現(xiàn)金、電子支票和智能現(xiàn)金卡等;基于EJB的Java2企業(yè)級信息系統(tǒng)(如ERP,CRM),SCM等解決方案設(shè)計(Java服務(wù)器端服務(wù)框架的規(guī)范)。訪問目錄服務(wù)所需的JNDI(JavaNamingAndDirectoryInterface);支持分布式事務(wù)的JTS(JavaTransactionService)等。Java提供三類開發(fā)平臺JavaME(JavaMicroEdition),主要應(yīng)用于嵌入是系統(tǒng)開發(fā),如手機(jī)和PDA的編程;JavaSE(JavaStandardEdition),針對桌面計算機(jī)開發(fā)(主要有JavaApplet----網(wǎng)頁中內(nèi)嵌的小程序及JavaApplication---應(yīng)用程序);JavaEE(JavaEnterpriseEdition),主要用于分布式的網(wǎng)絡(luò)程序的開發(fā),如電子商務(wù)網(wǎng)站和ERP系統(tǒng)。(主要有JDBC、CORBA、EJB、JavaServlets、JSP以及對XML的支持)。(注:2017年8月,Oracle(甲骨文)決定將JavaEE移交給開源組織,最后Eclipse基金會接手更名為JakartaEE(雅加達(dá))。)1.2Java的特性

——語言1、簡單性Java的風(fēng)格類似于C++,因而C++程序員是非常熟悉的。C++程序員可以很快就掌握J(rèn)ava編程技術(shù)。Java摒棄了C++中容易引發(fā)程序錯誤的地方,如指針和內(nèi)存管理;略去了運算符重載、多重繼承等模糊的概念2、面向?qū)ο驤ava語言的設(shè)計完全是面向?qū)ο蟮?,它不支持類似C語言那樣的面向過程的程序設(shè)計技術(shù)。封裝性實現(xiàn)了模塊化和信息隱藏,繼承性實現(xiàn)了代碼的復(fù)用,所有元素都要通過類和對象來訪問。3、魯棒性(Robustness:健壯性)Java致力于檢查程序在編譯和運行時的錯誤。類型檢查幫助檢查出許多開發(fā)早期出現(xiàn)的錯誤。Java自已操縱內(nèi)存減少了內(nèi)存出錯的可能性。Java還實現(xiàn)了真數(shù)組,避免了覆蓋數(shù)據(jù)的可能。自動垃圾收集避免了管理內(nèi)存時容易出現(xiàn)的許多錯誤。4、安全性Java語言指針刪除了指針和內(nèi)存等C++功能,避免了非法內(nèi)存操作;當(dāng)Java運行時,嚴(yán)格檢查訪問數(shù)據(jù)的權(quán)限。5、結(jié)構(gòu)中立

Java解釋器生成與體系結(jié)構(gòu)無關(guān)的字節(jié)碼的文件格式,只要提供相應(yīng)的Java運行環(huán)境,便可以在任何類型的處理器上運行。6、可移植性Java語言的基本數(shù)據(jù)類型的范圍是確定的,不依賴于具體平臺的實現(xiàn);Java語言環(huán)境本身可移植;Java類庫也支持可移植性。7、解釋執(zhí)行

Java解釋器能直接對Java字節(jié)碼解釋執(zhí)行,字節(jié)碼本身攜帶了許多編譯信息,使得連接過程更加簡單。8、高性能Java字節(jié)碼可以極快地轉(zhuǎn)換成機(jī)器碼,由于Java字節(jié)碼格式的設(shè)計就是針對著機(jī)器碼的轉(zhuǎn)換,所以實際轉(zhuǎn)換相當(dāng)簡便,自動寄存器分配與編譯器對字節(jié)碼的一些優(yōu)化使之生成高質(zhì)量的代碼。9、多線程

Java提供的多線程功能使得在一個程序里可同時執(zhí)行多個小任務(wù)。線程——有時也稱小進(jìn)程——是一個大進(jìn)程里分出來的小的獨立的進(jìn)程。因為Java實現(xiàn)的多線程技術(shù),所以比C和C++更鍵壯。多線程帶來的更大的好處是更好的交互性能和實時控制性能。

10、動態(tài)性

Java的動態(tài)性是其面向?qū)ο笤O(shè)計方法的擴(kuò)展。它允許程序動態(tài)地裝入運行過程中所需要的類,而不影響使用這一類庫的應(yīng)用程序的執(zhí)行。

硬件操作系統(tǒng)應(yīng)用程序用戶USERJava以前的高級語言1.3Java程序的運行機(jī)制編譯后執(zhí)行的高級語言程序的問題問題Program為特定的平臺編寫的程序在其他平臺上無法使用解決辦法解釋器解釋器解釋器Program為解決這個問題,我們使用了“解釋器”。這樣在解釋器的幫助下,可以編寫一次代碼而在不同的平臺上運行解釋執(zhí)行環(huán)境硬件操作系統(tǒng)高級語言程序用戶USER解釋器編譯型源程序字節(jié)碼程序Java源程序可執(zhí)行程序EXE裸機(jī)操作系統(tǒng)解釋器編譯連接編譯執(zhí)行解釋執(zhí)行.java.classJava虛擬機(jī)Java是解釋執(zhí)行的高級編程語言兩種過程比較——JAVA跨平臺原理“一次編譯,到處運行”與C/C++的比較1、全局變量Java程序中不能定義全局變量,只能通過類中的公用、靜態(tài)的變量實現(xiàn)全局變量。2、無條件轉(zhuǎn)移指令Java不支持goto語句,而是通過例外處理語句try、catch、final等來代替,來處理遇到錯誤時的跳轉(zhuǎn)情況。3、指針Java中不支持指針操作,避免了C/C++中常因為指針操作引起的不可預(yù)知的錯誤。4、內(nèi)存管理Java中所有的數(shù)據(jù)結(jié)構(gòu)都是對象,通過運算符new分配內(nèi)存并得到對象的使用權(quán),之后Java自動進(jìn)行管理并進(jìn)行垃圾回收,更好利用系統(tǒng)資源。5、數(shù)據(jù)類型的一致性Java中對某種數(shù)據(jù)類型總是分配固定的位數(shù),保證了Java的平臺無關(guān)性和可移植性。6、類型轉(zhuǎn)換Java中系統(tǒng)對對象處理進(jìn)行相容性檢查,防止不安全的轉(zhuǎn)換。7、頭文件Java中不支持頭文件,類成員的類型聲明和訪問權(quán)限都封裝在一個類中,Java中用import語句與其他類進(jìn)行通信來使用他們的方法。8、結(jié)構(gòu)和聯(lián)合Java中不支持結(jié)構(gòu)和聯(lián)合類型,所有的內(nèi)容都封裝在類中。9、預(yù)處理Java不支持宏定義,以關(guān)鍵字final聲明常量。1.4Java開發(fā)工具JDKSUN推出的免費的Java開發(fā)工具集(JavaDevelopersKits,簡稱JDK);需使用大量的命令行工具,在Windows環(huán)境下要打開DOS,敲入正確的命令行參數(shù)?!狫DK1、為什么選擇標(biāo)準(zhǔn)的JDK來開發(fā)?因為JavaSDK是免費的;它是最新的,標(biāo)準(zhǔn)的JDK支持所有的Java語言的最新的特性;它能給您一個百分之百的純Java開發(fā)環(huán)境。2、JDK簡介javac:Java語言編譯器,輸出結(jié)果為java字節(jié)碼;

java:Java字節(jié)碼解釋器;jdb:Java調(diào)試器;javadoc:API文檔生成器;javapDisassembeler:Java字節(jié)碼分解程序,本程序返回Java程序的成員變量及方法等信息。

javaprof資源分析工具,用于分析Java程序在運行過程中調(diào)用了哪些資源,包括類和方法的調(diào)用次數(shù)和時間,以及各數(shù)據(jù)類型的內(nèi)存使用情況等。javahC代碼處理工具,用于從Java類調(diào)用C++代碼;javaAppletViewer小應(yīng)用程序瀏覽工具,用于測試并運行Java小應(yīng)用程序;javaDebuggerAPIJava調(diào)試工具;APIPrototypeDebuggerJava調(diào)試工具原型;Java類庫(包括I/O類庫、用戶界面類庫、網(wǎng)絡(luò)類庫等);3、JDK的安裝JDK的下載地址是:/technetwork/java/javase/downloads/index.html,將

jdk-11.0.1_windows-x64_bin.exe下載到本地,然后雙擊此軟件進(jìn)行安裝。設(shè)置環(huán)境變量步驟在我的電腦圖標(biāo)上點擊鼠標(biāo)右鍵,在彈出菜單上選擇“屬性”,然后選擇高級--->系統(tǒng)變量--->環(huán)境變量,在系統(tǒng)變量中配置如下:圖1-5環(huán)境變量對話框圖1-6設(shè)置JAVA_HOME變量圖1-7設(shè)置PATH變量4、Java編譯、解釋執(zhí)行過程編輯:一般編輯java程序用UltraEdit來配合,形成.java文件編譯:用javac命令*.java*.class

(注意是類文件不是*.exe文件)解釋執(zhí)行:用java命令(1)代碼的裝入(通過類裝載器來實現(xiàn));(2)代碼的檢驗;(3)代碼的執(zhí)行。編寫第一個Java程序JavaApplication

以main()方法作為程序入口,由Java解釋器加載執(zhí)行。JavaApplet

沒有main()方法作為程序入口,由瀏覽器或appletviewer加載執(zhí)行。1)Java程序分類2)Java應(yīng)用程序(Application)舉例publicclassHelloWorldApp//anApp{publicstaticvoidmain(Stringargs[]){ System.out.println("HelloWorld!");} }3)HelloWorldApp應(yīng)用程序分析類定義

Java程序的基本組成部分是類(class),如本例中的HelloWorldApp類:publicclassHelloWorldApp{……}public表示這是一個公共類,java程序中可以定義多個類,但是最多只能有一個公共類。main()方法

JavaApplication程序的入口是main()方法。它有固定的書寫格式:

publicstaticvoidmain(Stringargs[]){ …… }Public

表示訪問權(quán)限,表明所有的類都可以使用這一方法;

static

指明該方法是一個類方法,它可以通過類名直接調(diào)用

void

則指明main()方法不返回任何值

;括號中的Stringargs[]是傳遞給main()方法的參數(shù),名為args,是類String的一個實例,參數(shù)可以是一個或多個,可以用“類名參數(shù)名”來指定,多個參數(shù)間用逗號分隔。publicclassHelloWorldApp{publicstaticvoidmain(Stringargs[]){……}}程序內(nèi)容

由方法體實現(xiàn)程序要完成的功能,方法體由一條條語句組成,本例中只有一條語句:

System.out.println("HelloWorld!");注釋

與C++相同,一行中‘//’后的內(nèi)容為注釋,‘/*’和‘*/’中的內(nèi)容也是注釋,例如:

publicclassHelloWorldApp{//公共類

publicstaticvoidmain(Stringargs[]){ /*這是 主方法*/}}將以上文件編輯好之后存盤,文件名必須與類名相同,文件后綴為.java。路徑設(shè)定為C:\javawork下。即:C:\javawork\HelloWorldApp.java在命令行中使用javac命令,例如:C:\javawork>javacHelloWorldApp.java

源文件名為HelloWorldApp.java,注意:文件名必須與公共類名相同;由javac編譯器編譯源程序,產(chǎn)生字節(jié)碼文件(.class文件)。本例中產(chǎn)生HelloWorldApp.class文件。在命令行中使用java命令,例如:C:\javawork>javaHelloWorldApp此命令將啟動Java虛擬機(jī),由java解釋器解釋執(zhí)行。執(zhí)行結(jié)果就是在屏幕上打印出HelloWorld!在記事本編輯Java程序單擊開始依次選擇程序->附件->記事本//這是名稱為“HelloWorld.java”的簡單程序importjava.io.*;classHelloWorld{ publicstaticvoidmain(Stringargs[]){ System.out.println(“歡迎訪問Java世界!“);}}編譯和運行單擊開始依次選擇程序->附件->命令提示符進(jìn)入程序所保存的目錄輸入命令編譯HelloWorld輸入命令執(zhí)行HelloWorld輸出結(jié)果4)Java程序結(jié)構(gòu)命名 如果.java文件包含一個public類,它必需按該類名命名。類個數(shù) 一個源文件中最多只能有一個public類。其它類的個數(shù)不限。結(jié)構(gòu)

package語句//0或1個,必須放在文件開始

import語句//0或多個,必須放在所有類定義之前

publicclassDefinition//0或1個

//文件名必須與該類的類名完全相同

classDefinition //0或多個

interfaceDefinition //0或多個packagejavawork.helloworld;importjava.awt.*;importjavawork.newcentury;publicclassHelloWroldApp{……}//0~1個classTheFirstClass{……}classTheSecondClass{……}……interfaceTheFirstInterface{……}……給java文件打包(生成.jar文件)假設(shè)d:\test目錄下面有兩個類A、B,其中A是主類。1、用文本編輯器編寫一個清單文件:Mymoon.mf。內(nèi)容如下:

Manifest-Version:1.0

Main-Class:A

Created-By:1.2.2(SunMicrosystemsInc.):

各行中間要有空格。保存到d:\test下2、生成jar文件。

D:\test\jarcfmw.jarMymoon.mfA.classB.class

完成以后就會生成w.jar的文件了,可以放到任何地方運行。Eclipse:IBM公司;MyEclipse:

Genuitec公司;NetBeans:Oracle(甲骨文)公司;主流集成開發(fā)工具1.5Eclipse集成開發(fā)環(huán)境可以從/downloads/eclipse-packages/免費下載Eclipse軟件,下載時選擇“EclipseIDEforJavaDevelopers”,再根據(jù)你的操作系統(tǒng)選擇32位或64位版本。演示Eclipse使用方法Eclipse的常見設(shè)置問題如下:1.問題:Eclipse為什么自己總是會彈出錯誤對話框:Aninternalerroroccurredduring:"Pollingnewsfeeds"?解決方法:window菜單→perferences→general→News→找到Enableautomaticnewspolling,然后把對勾取消就行了。2.問題:如何設(shè)置編輯器字體大???解決方法:window菜單→perferences→general→Appearence→ColorsandFonts→選擇JavaEditorTextFont,點擊“Edit...”按鈕,就彈出了字體設(shè)置對話框了。3.問題:Eclipse窗口如何恢復(fù)到初始格局樣子?解決方法:可以選擇菜單Window->Perspective->ReSet

Perspective恢復(fù)原始視圖。1.6Java控制臺輸入/輸出1.6.1System類與標(biāo)準(zhǔn)I/O流對象System類是java.lang包中的一個常用類,包含了很多系統(tǒng)級屬性和方法,其中有三個常用的標(biāo)準(zhǔn)I/O流對象:(1)System.in:標(biāo)準(zhǔn)輸入對象,默認(rèn)對應(yīng)于鍵盤。(2)System.out:標(biāo)準(zhǔn)輸出對象,默認(rèn)對應(yīng)于顯示器。(3)System.err:標(biāo)準(zhǔn)錯誤輸出對象,默認(rèn)對應(yīng)于顯示器。

16.2使用println()和print()方法輸出System.out和System.err實際上是PrintStream類(在java.io包中)的對象,PrintStream類有兩個重要的方法println()和print()方法,可以方便地進(jìn)行各種類型數(shù)據(jù)的輸出,二者的區(qū)別是println()在輸出的最后添加了一個換行,而print()不在最后添加換行。例如:System.out.print("Hello");System.out.println("java!");System.out.println("Let'sgetstarted!");輸出如下:Hellojava!Let'sgetstarted!16.3使用read()方法從鍵盤輸入字符System.in是InputStream類(在java.io包中)的對象,有一個read()方法,可以從鍵盤輸入一個字符,read()方法返回

0到

255范圍內(nèi)的

int字節(jié)值?!緦嵗?-1】使用read()方法從鍵盤輸入字符publicclassReadDemo{ publicstaticvoidmain(String[]args){ charch; System.out.print("請輸入一個字符:"); try{ ch=(char)System.in.read(); System.out.println(ch); }catch(Exceptione){ e.getMessage(); } }}

16.4使用Scanner類進(jìn)行鍵盤輸入Scanner類(在java.util包中)是JDK1.5新增的一個類,它可以讀取用戶在命令行輸入的各種數(shù)據(jù)類型?!緦嵗?-2】使用Scanner類進(jìn)行鍵盤輸入importjava.util.Scanner;//引入Sca

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論