




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
NeusoftCo.,Ltd.
Java基礎
教師:張芳芳
sunnyzff@163.com
NeusoftCo.,Ltd.
Java的由來
>對于計算機語言的發(fā)展史,業(yè)界一般認為:B語言導致了C語
言的誕生,C語言演變出了C++語言,而C++語言將讓位于
Java語言。
>計算機語言的革新和發(fā)展需要2個基本因素的驅(qū)動:
適應正在變化的環(huán)境和需求
實現(xiàn)編程藝術的完善與提高
NeusoftCo.,Ltd.
Java的由來
>程序越來越復雜這一事實貫穿編程語言的歷史。C++正是適應
了這一需求。
效計算機剛發(fā)明出來,編程是通過面板觸發(fā)器用人工打孔的
辦法輸入二進制機器指令來實現(xiàn)的。隨著程序不斷增大,
人們發(fā)明了匯編語言,通過使用符號代替機器指令。隨著
程序的進一步增大,高級語言產(chǎn)生了,它給程序員提供了
更多的工具來處理復雜性問題。
謝C是世界上偉大的編程語言之一,但它處理復雜性的能力
有限。一旦一個程序的代碼超過25000~100000行,就很難
從總體上把握它的復雜性了,C++突破了這個限制。一段
時間程序員似乎都認為已經(jīng)找到了一種完美的語言。因為
C++有面向?qū)ο蟮奶卣?,又有C語言高效和格式上的優(yōu)點,
因此它是一種可以被廣泛應用的編程語言。
NeusoftCo.,Ltd.
Java的產(chǎn)生
>Java的最初推動力是源于對獨立于平臺語言的需要。這種語言
可創(chuàng)建能夠嵌入微波爐、遙控器等各種家用電器設備的軟件。
用作控制器的CPU芯片是多種多樣的,但C和C++以及其他絕
大多數(shù)語言的缺點是只能對特定目標進行編譯。Gosling和其
他人開始一起致力于開發(fā)一種可移植、跨平臺的語言,該語言
能夠生成運行于不同環(huán)境、不同CPU芯片上的代碼。他們的努
力最終促成了Java的誕生。
>在Java的一些細節(jié)被設計出來的同時,第二個并且也是最重
要的因素出現(xiàn)了,該因素將對Java的未來起著至關重要的作用。
這第二個因素當然就是萬維網(wǎng)(WWW)。
NeusoftCo.,Ltd.
Java的發(fā)展史
>1991.4Sun成立Green小組,在C++基礎上開發(fā)新的程序語
言,最初取名為Oak
>1992.10Green小組升格為FirstPerson公司,由于一次項目
失敗,去爪哇島度假喝咖啡時靈機一動,Java誕生。
>1993-94Web在Internet流行,Java成名。
>1995.5Sun公司正式發(fā)布Java產(chǎn)品
>1995.10Netscape支持Java
NeusoftCo.,Ltd.
>1996.2Javal.O版本誕生
>1997.2升級為1.1版本
>1999.7升級為1.2版(改名為Java2)
>2000.9升級為1.3版
>2001.7升級為1.4版并形成了Java體系
>目前為1.6版
NeusoftCo.,Ltd.
消除誤解
>由于Java和C++之間的相似性,容易使人將Java簡單地想象為
“C++的版本”。但其實這是一種誤解。Java在實踐和理論上
都與C++有重要的不同點。盡管Java受到C++的影響,但它并
不是C++的增強版。例如,Java與C++既不向上兼容,也不向
下兼容。當然,Java與C++的相似之處也是很多的,如果你是
一個C++程序員,你會感覺到對Java非常熟悉。另外一點是:
Java并不是用來取代C++的,設計Java是為了解決某些特定的
問題,而設計C++是為了解決另外一類完全不同的問題。兩者
將長時間共存。
NeusoftCo.,Ltd.
Java技術體系結構
>JavaSE標準版:包含構成java語言核心的類,比如:數(shù)據(jù)庫
連接、接口定義、輸入/輸出、網(wǎng)絡編程。適用于桌面系統(tǒng)開
發(fā)的Java2平臺標準版。
>JavaME微縮版:包含J2SE中一部分類,用于消費類電子產(chǎn)品
的軟件開發(fā),比如:呼機、智能卡、手機、PDA、機頂盒的
Java2平臺微縮版。
AJavaEE企業(yè)版:包含J2SE中的類,并且還包含用于開發(fā)企業(yè)
級應用的類。比如:EJB、servlet、JSP、XML、事務控制。
用于創(chuàng)建服務器應用程序和服務的Java2平臺企業(yè)版
NeusoftCo.,Ltd.
Java語言的特性
>簡單性
效Java設計目的是讓專業(yè)程序員覺得既易學又好用.因為
Java承C/C++語法和許多C++面向?qū)ο蟮奶匦?,大多?shù)
程序員在學習Java時都不會覺得太難。另外,C++中許多
容易混淆的概念,或者被Java棄之不用了,或者以一種更
清楚、更易理解的方式實現(xiàn)。
NeusoftCo.,Ltd.
Java語言的特性
>面向?qū)ο螅ê竺嬖敿氈v其概念)
效Java設法在純進化論者的“任何事物都是一個對象”和實
用主義者的“不討論對象不對象”的論點之間找到了平衡。
Java的對象模型既簡單又容易擴展,對于簡單數(shù)據(jù)類型,
例如整數(shù),它保持了高性能,但不是對象。
NeusoftCo.,Ltd.
Java語言的特性
>平臺無關性(一次編寫,到處運行)
效Java設計者考慮的一個主要問題是程序代碼的持久性和可
移植性。程序員面臨的一個主要問題是,不能保證今天編
寫的程序明天能否在同一臺機器上順利運行。操作系統(tǒng)升
級、處理器升級以及核心系統(tǒng)資源的變化,都可能導致程
序無法繼續(xù)運行。Java設計者對這個問題做過多種嘗試,
Java虛擬機(JVM)就是試圖解決這個問題的。他們的目
標是“只要寫一次程序,在任何地方、任何時間該程序永
遠都能運行”。在很大程度上,Java實現(xiàn)了這個目標。
NeusoftCo.,Ltd.
Java語言的特性
>代碼更健壯
效Java在一些關鍵的地方限制你,強迫你在程序開發(fā)過程中
及早發(fā)現(xiàn)錯誤。它不但在編譯時檢查代碼,而且在運行時
也檢查代碼。使程序失敗的兩個主要原因:內(nèi)存管理錯誤
和誤操作引起的異常情況(也就是運行時錯誤)。在傳統(tǒng)的編
程環(huán)境下,內(nèi)存管理是一項困難、乏味的任務。例如,在
C/C++中,程序員必須手工地分配并且釋放所有的動態(tài)內(nèi)
存。這有時會導致問題,因為程序員可能忘記釋放原來分
配的內(nèi)存,或者釋放了其他部分程序正在使用的內(nèi)存。
Java通過替你管理內(nèi)存分配和釋放,可以從根本上消除這
些問題。在傳統(tǒng)的環(huán)境下,異常情況可能經(jīng)常由“被零除”
或“文件未找到”這樣的情況引起,而我們又必須用既繁
多又難以理解的一大堆指令來對它們進行管理。Java通過
提供面向?qū)ο蟮漠惓L幚頇C制來解決這個問題
NeusoftCo.,Ltd.
Java語言的特性
>更安全
效當使用一個兼容Java的Web瀏覽器時,你可以安全地下載
Java小應用程序,不必擔心病毒的感染或惡意的企圖。
Java實現(xiàn)這種保護功能的方式是,將Java程序限制在Java
運行環(huán)境中,不允許它訪問計算機的其他部分
NeusoftCo.,Ltd.
Java語言的特性
>解釋執(zhí)行
效字節(jié)碼是一套在Java運行時系統(tǒng)下執(zhí)行的高度優(yōu)化的指令
集,該Java運行時系統(tǒng)稱為Java虛擬機(JavaVirtual
Machine,JVM)O在其標準形式下,JVM是一個字節(jié)碼解
釋器。通過把程序編譯為Java字節(jié)碼這樣一個中間過程,
Java可以產(chǎn)生跨平臺運行的程序。字節(jié)碼可以在提供Java
虛擬機(JVM)的任何一種系統(tǒng)上被解釋執(zhí)行。安全性和
可移植性的關鍵在于Java編譯器的輸出并不是可執(zhí)行的代
碼,而是字節(jié)碼(bytecode)。因為每個Java程序的運
行都在Java虛擬機的控制之下,Java虛擬機可以包含這
個程序并且能阻止它在系統(tǒng)之外產(chǎn)生副作用。
NeusoftCo.,Ltd.
Java語言的特性
>多線程
效為了滿足人們對創(chuàng)建交互式網(wǎng)上程序的需要。為此,Java
支持多線程編程,因而用Java編寫的應用程序可以同時執(zhí)
行多個任務。Java運行時系統(tǒng)在多線程同步方面具有成熟
的解決方案,這使你能夠創(chuàng)建出運行平穩(wěn)的交互式系統(tǒng)。
NeusoftCo.,Ltd.
Java語言的特性
>動態(tài)性
效Java程序帶有多種的運行時類型信息,用于在運行時校驗
和解決對象訪問問題。這使得在一種安全、有效的方式下
動態(tài)地連接代碼成為可能,對小應用程序環(huán)境的健壯性也
十分重要,因為在運行時系統(tǒng)中,字節(jié)碼內(nèi)的小段程序可
以動態(tài)地被更新。
NeusoftCo.,Ltd.
Java語言的特性
A分布性
效Java為Internet的分布式環(huán)境而設計,因為它處理TCP/IP
協(xié)議。事實上,通過URL地址存取資源與直接存取一個文
件的差別是不太大的。允許位于兩臺不同的計算機上的對
象可以遠程地執(zhí)行過程。Java發(fā)布了叫做遠程方法調(diào)用
(RemoteMethodInvocation,RMI)的軟件包,這個特
性使客戶機/服務器編程達到了無與倫比的抽象級。
NeusoftCo.,Ltd.
一般計算機語言的的運行機制
>編譯型
4源程序經(jīng)過編譯器一次“翻譯”成機器碼(C++)
>解釋型
磁源程序經(jīng)過解釋器逐行解釋成特定平臺的機器碼(Basic)
NeusoftCo.,Ltd.
程序的運行機制
NeusoftCo.,Ltd.
Java語言的運行機制
>編譯型+解釋型
效源程序先被編譯成一種中間代碼,后經(jīng)解釋為特定平臺的
機器碼
NeusoftCo.,Ltd.
JVM(JavaVirtualMachine)
>在一臺計算機上由軟件或硬件模擬的計算機。Java虛擬機
(JVM)讀取并處理經(jīng)編譯過的平臺無關的字節(jié)碼class文件。
>Java編譯器針對Java虛擬機產(chǎn)生class文件,因此是獨立于平
臺的。
>Java解釋器負責將Java虛擬機的代碼在特定的平臺上運行。
NeusoftCo.,Ltd.
Java程序的分類
>Javaapplication(主流)
教特定平臺上的程序
?服務器端程序
?客戶端程序
>Javaapplet(很少使用)
邈內(nèi)嵌在html文件中,必須搭配瀏覽器使用
NeusoftCo.,Ltd.
Java運行時環(huán)境
>Java運行環(huán)境的三項主要功能
效加載代碼:由classloader完成;
笠校驗代碼:由bytecodeverifier完成;
族執(zhí)行代碼:由runtimeinterpreter完成。
>主流平臺:
效JBuilder
力Eclipse
效JCreator
族VisualJ#.NET
NeusoftCo.,Ltd.
Java運行時環(huán)境
>Java開發(fā)工具集JDK—JavaDevelopmentKits
效Java編譯器
教Java運行時解釋器
教Java應用程序編程接口
效Java文檔化化工具
驗其它工具及資源
下載JDK,最新版本和文檔的站點:
官方:
已變?yōu)閔ttp:〃www.o「/technntwork/iava/index.html
NeusoftCo.,Ltd.
Java運行時環(huán)境
>環(huán)境變量Path
磁作用:指定操作系統(tǒng)的可執(zhí)行指令的路徑。在命令行下面
執(zhí)行命令如javac編譯java程序時,它會到PATH變量所指
定的路徑中查找看是否能找到相應的命令程序。我們需要
把jdk安裝目錄下的bin目錄增加到現(xiàn)有的PATH變量中,bin
目錄中包含經(jīng)常要用到的可執(zhí)行文件如javac、java、
javadoc等待,設置好PATH變量后,就可以在任何目錄下
執(zhí)行javac、java等工具了。
效設置方法:鼠標右鍵單擊“我的電腦”,選擇“屬性”命
令,在“系統(tǒng)特性”對話框單擊高級選項,再單擊“環(huán)境
變量”,編輯“系統(tǒng)環(huán)境變量”。
變量名:path變量值:C:\jdk1.5\bin;
NeusoftCo.,Ltd.
Java運行時環(huán)境
>環(huán)境變量CLASSPATH
效作用:用于指定Java的類文件存放路徑。我們需要把jdk安
裝目錄下的lib子目錄中的dt.jar和tools.jar設置到
CLASSPATH中,當然,當前目錄”.”也必須加入到該變量
中。是指可以加載應用程序當前目錄中的類
效設置方法:在上述對話框中按“新建”按鈕,彈出的對話
框中新建環(huán)境變量
變量名:classpath
變量值:C:\jdk1.5\lib;.;
NeusoftCo.,Ltd.
JDK的安裝與配置
NeusoftCo.,Ltd.
Java程序的編寫、編譯和執(zhí)行
>編寫代碼
4可使用任何文本編輯軟件編寫,比如記事本
爨源代碼文件的擴展名為Java
>編譯
效使用JDK的編譯器javac.exe進行編譯
軟編譯后生成擴展名為?ass的字節(jié)碼
>運行
效使用JDK的解釋器java.exe運行
NeusoftCo.,Ltd.
開始簡單的Java程序編寫
>應用程序(Javaapplication)
效Application是獨立程序,與其他高級語言編寫的程序相同。
Application能夠在任何具有Java解釋器的計算機上運行。
>小程序(Javaapplet)
心Applet是一種特殊的Java程序,它可以在兼容Java的Web
瀏覽器中直接運行。
NeusoftCo.,Ltd.
一個簡單的application
//Welcome.java
publicclassWelcome
(
publicstaticvoidmain(String[]args)
(
System.out.println("WelcometoJava!1');
)
)
周折:灌舞、保留室、修飾符、語句、塊、類、方法我小以方法
NeusoftCo.,Ltd.
編寫Java源程序的注意事項
>Java語言區(qū)分大小寫,包括文件名
>源文件必須以源代碼中public類命名,如果沒有public類可以
任意命名(不推薦)。
>源文件擴展名必須為Java
NeusoftCo.,Ltd.
使用JDK編譯、執(zhí)行Java程序
>下述命令用來編譯源程序:
效javacfilename.java
>下述命令用來運行字節(jié)碼:
效javaclassname
NeusoftCo.,Ltd.
編譯、運行Java程序的注意事項
>用Javac編譯源文件,如果有錯誤,必須修改錯誤后,重新編
譯,才能生成.class文件
>用Java命令運行Java程序,注意Java命令后的classname不包
括擴展名。
NeusoftCo.,Ltd.
一個簡單的applet
/*WelcomeApplet*/
importjava.awt.Graphics;
publicclassWelcomeAppletextendsjava.applet.Applet
(
publicvoidpaint(Graphicsg)
(
g.drawString("WelcometoJava!",10,10);
)
)
NeusoftCo.,Ltd.
創(chuàng)建一個HTML文件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 超市衛(wèi)生與健康構建和諧消費環(huán)境
- 足浴店衛(wèi)生規(guī)范與顧客體驗提升
- 鋼框架安裝施工鋼框架結構安裝課件
- 首都經(jīng)濟貿(mào)易大學《鄉(xiāng)土地理魯菜文化》2023-2024學年第二學期期末試卷
- 石家莊城市經(jīng)濟職業(yè)學院《普通生態(tài)學》2023-2024學年第二學期期末試卷
- 長沙醫(yī)學院《衛(wèi)星導航原理》2023-2024學年第二學期期末試卷
- 高效財務決策-決策支持系統(tǒng)實戰(zhàn)應用
- 2025福建漳州市漳州市薌江人力資源服務有限公司招聘2人筆試參考題庫附帶答案詳解
- 長春醫(yī)學高等專科學校《視頻信號處理》2023-2024學年第二學期期末試卷
- 圖們市2025屆四年級數(shù)學第二學期期末統(tǒng)考試題含解析
- 2024屆江蘇省蘇北七市(南通)高三二??荚囉⒄Z試題讀后續(xù)寫思路分析My best examination 講義
- 2024年益陽醫(yī)學高等??茖W校單招職業(yè)技能測試題庫及答案解析
- 《新能源發(fā)電技術第2版》 課件全套 朱永強 第1-10章 能源概述- 分布式發(fā)電與能源互補
- 【音樂】繽紛舞曲-青年友誼圓舞曲課件 2023-2024學年人音版初中音樂七年級上冊
- DB-T29-260-2019天津市建筑物移動通信基礎設施建設標準
- 水利工程施工方案(完整版)
- DB11-T 1200-2023 超長大體積混凝土結構跳倉法技術規(guī)程
- 2024年內(nèi)蒙古化工職業(yè)學院高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
- 城市智慧交通管理系統(tǒng)
- 青少年人工智能技術水平測試一級04
- 心肌病中醫(yī)護理查房課件
評論
0/150
提交評論