ibm公司java培訓ppt下載看看也好_第1頁
ibm公司java培訓ppt下載看看也好_第2頁
ibm公司java培訓ppt下載看看也好_第3頁
ibm公司java培訓ppt下載看看也好_第4頁
ibm公司java培訓ppt下載看看也好_第5頁
已閱讀5頁,還剩302頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第一章Java語言概述華中科技大學IBM技術中心 2008HUST & IBM Computer Tech. Center華中科技大學IBM技術中心HUST & IBM Computer Tech. Center華中科技大學IBM技術中心HUST & IBM Computer Tech. Center華中科技大學IBM技術中心HUST & IBM Computer Tech. Center華中科技大學IBM技術中心Java程序相關問題Java虛擬機HUST & IBM Computer Tech. Centerv Java虛擬機在真實機器中用軟件模擬實現的一種抽象的機器。(Java虛擬機規(guī)范)

2、v Java虛擬機主要由五個部分組成:指令系統(tǒng)、寄存器、棧、存儲區(qū)、碎片回收區(qū)v 解釋和執(zhí)行Java程序編譯后產生的字節(jié)碼華中科技大學IBM技術中心Java程序Java APIJava虛擬機操作系統(tǒng)硬件平臺Java程序相關問題Java APIHUST & IBM Computer Tech. Centerv Java API是Java系統(tǒng)提供的預先定義好的軟件組件的集合,它們提供了許多可供程序員調用的常用功能v 豐富的API為程序員提供了極大的方便,但也是學習的難 點v 要學會使用Java API手冊(The Java 2 Platform API Specification ) http:/

3、/j2se/1.5/docs/api/index.html華中科技大學IBM技術中心Java程序Java APIJava虛擬機操作系統(tǒng)硬件平臺Java程序相關問題 Java程序的運行機制HUST & IBM Computer Tech. Center編譯連接運行操作系統(tǒng)傳統(tǒng)語言的運行機制編譯解釋執(zhí)行Java解釋器Java語言的運行機制華中科技大學IBM技術中心字節(jié)碼源代碼可執(zhí)行代碼目標碼源代碼Java程序相關問題Java程序類型HUST & IBM Computer Tech. Centerv Java應用程序(Java Application) 是獨立完整的程序 在命

4、令行調用獨立的解釋器軟件即可運行 主類必須有main方法,這也是程序的入口v Java小程序 Java Applet是指在客戶端運行的Java小程序, 一般來說客戶端是指用戶所使用的瀏覽器 Java Servlet是在服務器端執(zhí)行的Java小程序, 為了能夠支持Servlet的運行,服務器端必須安裝包含Java虛擬機的服務器軟件,這種能夠支持服務端小程序的服務器一般被稱為應用服務器華中科技大學IBM技術中心Java開發(fā)環(huán)境HUST & IBM Computer Tech. Centerv JDK/J2SDK(Java Developer Kit) JDK1.02 JDK1.1.x JDK1.2

5、/J2SDK1.3/J2SDK1.4/JDK5.0(J2SDK1.5)v Java集成開發(fā)環(huán)境(IDE) NetBeans JBuilder Eclipse JCreator Forte for Java Visual J+ WSAD 華中科技大學IBM技術中心JDK的安裝與設置HUST & IBM Computer Tech. Centerv 從/可以下載相關版 本的JDK(本課程采用J2SDK1.3以上版本)v 在Windows平臺上運行安裝程序,以安裝JDKv 設置PATH(文件路徑)參數。由于JDK提供的實用程序都在安裝目錄下的子目錄bin 下,為了

6、能在任何目錄下直接使用文件名調用這些程序,必須設置操作系統(tǒng)的文件路徑參數華中科技大學IBM技術中心環(huán)境設置HUST & IBM Computer Tech. Centerv 在Windows環(huán)境下,為了快速進入指定目錄的命令行窗口,可在注冊表中增加項目:HKEY_CLASSES_ROOTDirectoryshell進入命令行command默認值設為:cmd/kcd%1華中科技大學IBM技術中心JDK的目錄結構HUST & IBM Computer Tech. Center bin目錄中包含了所有JDK5.0提供的實用程序 demo目錄中包含了JDK5.0自帶的實例程序 inculde目錄中包含

7、了一些支持Java native方法的CC+頭文件 jre目錄中包含了Java運行環(huán)境所需的所有文件,這個目錄中所包含的java運行環(huán)境是JDK私有的, 它只為JDK的實用程序提供支持 lib目錄中包含了Java開發(fā)環(huán)境所需的庫文件,它們以jar文件的形式保存 sample目錄中包含的是體現JDK5.0新特性的一些例程華中科技大學IBM技術中心JDK實用程序簡介HUST & IBM Computer Tech. Centerv javac:Java編譯器,將Java源代碼編譯為字節(jié)碼;v java:Java解釋器,用來解釋執(zhí)行Java程序的字節(jié)碼文件;v appletviewer(小程序瀏覽器

8、):一種執(zhí)行HTML文件上的Java小程序類的Java瀏覽器;v javadoc:根據Java源代碼及其說明語句生成的HTML文 檔;v jdb:Java調試器,可以逐行地執(zhí)行程序、設置斷點和檢 查變量;v javah:產生可以調用Java過程的C過程,或建立能被Java程序調用的C過程的頭文件;v javap:Java反匯編器,顯示編譯類文件中的可訪問功能和數據,同時顯示字節(jié)代碼含義。華中科技大學IBM技術中心Java程序的開發(fā)過程HUST & IBM Computer Tech. Centerv 編輯源代碼v 編譯源代碼文件v 運行程序華中科技大學IBM技術中心Java程序的開發(fā)過程編輯源

9、代碼HUST & IBM Computer Tech. Centerv 一般情況下,我們可以使用系統(tǒng)平臺下的任何文本編輯器 進行源代碼的編輯,在Windows平臺下常用的是Window系統(tǒng)自帶的“記事本”程序或“寫字板”程序v Java源碼大小寫敏感v Java源碼文件的擴展名:.javav Java源程序文件也不能隨意命名,其文件名必須與程序 中主類的類名完全相同,包括大小寫在內華中科技大學IBM技術中心public class MyFirstJavaApp public static void main(String args) System.out.println(“This is My

10、 First Java Application!”);Java程序的開發(fā)過程編譯源代碼HUST & IBM Computer Tech. Centerv 使用JDK實用程序javac對源代碼文件進行編譯C:MyJavajavac MyFirstJavaApp.java如果系統(tǒng)提示符再次出現并且沒有任何消息產生,那 么編譯便成功了如果有系統(tǒng)報錯消息產生,則表示程序編譯出錯,程序員必須閱讀報錯信息,并根據這些信息對程序進行 修改v 程序成功編譯后,在與源代碼文件同一目錄下會生成一個新的文件,其文件名與源代碼文件名相 同,擴展名為“.class”。這個文件就是源代碼文件編譯產生的程序字節(jié)碼文件 My

11、FirstJava.class華中科技大學IBM技術中心Java程序的開發(fā)過程運行程序HUST & IBM Computer Tech. Centerv 要執(zhí)行一個Java程序非常簡單,只需在字節(jié)碼文件所在目錄下輸入下列命令就可以了: java 字節(jié)碼文件名華中科技大學IBM技術中心第2章 面向對象的編程概念華中科技大學IBM技術中心 2006HUST & IBM Computer Tech. Center華中科技大學IBM技術中心面向對象vs. 面向過程HUST & IBM Computer Tech. Centerv 面向對象(OOP)Object-Oriented Programming

12、 用類class封裝數據以及與數據相關的操作 用類的繼承性來實現類的重用性 多態(tài)性 面向“對象”,由對象提供服務v 面向過程(POP)Procedure-Oriented Programming 以功能為組織單元 通過數據結構來描述具體的問題 數據在功能(函數)之間以參數的形式被傳送華中科技大學IBM技術中心現實世界中的對象HUST & IBM Computer Tech. Centerv 現實世界是由對象構成的v 現實世界中任何實體都可以看作是對象v 現實世界中的對象有兩個共同特征:狀態(tài)行為華中科技大學IBM技術中心HUST & IBM Computer Tech. Center華中科技大學

13、IBM技術中心HUST & IBM Computer Tech. Center華中科技大學IBM技術中心HUST & IBM Computer Tech. Center華中科技大學IBM技術中心HUST & IBM Computer Tech. Center華中科技大學IBM技術中心HUST & IBM Computer Tech. Center華中科技大學IBM技術中心消息的性質HUST & IBM Computer Tech. Centerv 同一對象可接收不同形式的多個消息,產生不同的響應v 同一個消息可以發(fā)給不同的對象,所做出的響應可以截然不同v 發(fā)送方不需要知道接受方如何對請求予以響

14、應的華中科技大學IBM技術中心HUST & IBM Computer Tech. Center華中科技大學IBM技術中心實例(Instance)HUST & IBM Computer Tech. Centerv 定義:特定類所描述的一個具體對象華中科技大學IBM技術中心HUST & IBM Computer Tech. Center華中科技大學IBM技術中心HUST & IBM Computer Tech. Center華中科技大學IBM技術中心單重繼承與多重繼承HUST & IBM Computer Tech. Centerv 單重繼承:一個子類只有一個唯一確定的父類 單重繼承所構成的類的關

15、系結構是一棵樹v 多重繼承:一個子類可以有多個不同的父類 多重繼承所構成的類的關系結構是一個格v Java語言僅支持單重繼承華中科技大學IBM技術中心繼承的作用HUST & IBM Computer Tech. Centerv 使軟件系統(tǒng)具有開放性v 更好地進行抽象與分類v 實現代碼的復用v 提高可維護性華中科技大學IBM技術中心類型(Type)HUST & IBM Computer Tech. Centerv 在面向數值的編程中,類型通常用作數據的表示。在Java這樣的強類型語言中,在編譯期,每一個變量和表達式都有一個類型與之相對應v Java中的類型:基本類型、類、接口華中科技大學IBM技

16、術中心接口(Interface)HUST & IBM Computer Tech. Centerv 接口和類一樣也是一種類型,也同樣包含一些方 法的定義。但與類不同的是:接口中所定義的所 有方法都是抽象方法(即沒有實現的方法)。v 接口中所定義的方法由實現(implement)該接口的類來實現,一個類可以同時實現多個接口v 接口機制使Java的面向對象編程變得更加靈活。 解決了單重繼承帶來的問題v 接口定義了對象的行為模型,相當于一個協議。 實現接口的各個類負責實現接口所定義的行為。雖然實現細節(jié)各不相同,但對用戶來說是一樣的 行為。華中科技大學IBM技術中心面向對象的示例HUST & IBM

17、Computer Tech. Centervv 代碼:ClickMeApp.java , ClickMe.java,Spot.java華中科技大學IBM技術中心Spot類HUST & IBM Computer Tech. Center華中科技大學IBM技術中心public class Spot /instance variables private int size; public int x, y;/constructor public Spot() x = -1;y = -1;size = 1;/methods for access to the size instance variabl

18、e public void setSize(int newSize) if (newSize = 0) size = newSize;public int getSize() return size;Spot對象HUST & IBM Computer Tech. Center華中科技大學IBM技術中心private Spot spot = null;.spot = new Spot();示例中的消息HUST & IBM Computer Tech. Center華中科技大學IBM技術中心g2d.setColor(Color.WHITE);g2d.fillRect(0, 0, getWidth(

19、) - 1, getHeight() - 1);示例中的繼承和接口HUST & IBM Computer Tech. Centerpublic class ClickMe extends JComponent implements MouseListener ./Methods required by the MouseListener interface. public void mousePressed(MouseEvent event) if (spot = null) spot = new Spot();spot.setSize(RADIUS);spot.x = event.getX(

20、); spot.y = event.getY(); repaint();public void mouseClicked(MouseEvent event) public void mouseReleased(MouseEvent event) public void mouseEntered(MouseEvent event) public void mouseExited(MouseEvent event) 華中科技大學IBM技術中心public class ClickMe extends JComponent implements MouseListener .歡迎提問第三章Java語言

21、基礎華中科技大學IBM技術中心變量(Variable)HUST & IBM Computer Tech. Centerv 對象將它的狀態(tài)存儲在變量中v 定義:變量是一個由標識符命名的數據項v 變量名必須是一個合法的標識符 -一個以字母開頭的無限制的Unicode字符序列。v 變量的聲明: 類型 名稱 = 初始值; int i; double pi = 3.1415926; String name;華中科技大學IBM技術中心數據類型HUST & IBM Computer Tech. Centerv 每個變量都必須有一個數據類型. 一個變量的數據類型決定了它能容納的值和在它上面可以進行什么操作。v

22、 Java編程語言有兩大類數據類型: 原始類型(primitive) 引用類(reference)華中科技大學IBM技術中心HUST & IBM Computer Tech. Center華中科技大學IBM技術中心原始類型HUST & IBM Computer Tech. Centerv 原始類型變量包含單個值,其大小和格式與它的類型匹配:數字、字符或布爾值。v Java語言沒有unsigned類型 0xFFFF和0xFF誰大?v Java語言必須強制類型轉換 float f = 0.1; boolean b = 1;華中科技大學IBM技術中心引用類型HUST & IBM Computer T

23、ech. Centerv 數組,類和接口就是引用數據類型.與原始類型變 量的值不同的是,引用類型變量的值是對應變量代表的一個值或一組值的引用(也就是其地址)v 在其他語言里引用被稱為指針或者內存地址。Java不支持顯示地使用地址,而是使用變量的名 稱代替。華中科技大學IBM技術中心變量的引用HUST & IBM Computer Tech. Centerv 通過變量名引用變量的值v 簡單名稱:由單個標識符組成的名稱v 限定名稱:通過類名或對象名引用改類或對象中的成員變量 System.out.println(i+spot.x);華中科技大學IBM技術中心作用范圍HUST & IBM Compu

24、ter Tech. Centerv 變量的作用范圍是可以通過簡單名稱引用該變量的程序區(qū)域v 作用范圍也決定了系統(tǒng)為該變量創(chuàng)建和釋放內存的時間華中科技大學IBM技術中心例子HUST & IBM Computer Tech. Center華中科技大學IBM技術中心int i = 10; if ( i 0) int i = 20;System.out.println(“The value ofi = ” + i);System.out.println(“The value ofi = ” + i);最終變量HUST & IBM Computer Tech. Centerv 你可以在任意范圍里將一個變

25、量定義為最終變量(final)v 最終變量的值一經初始化就不能改變v 類似于C語言中的常量(const)華中科技大學IBM技術中心final int blankfinal;. . .blankfinal = 0;final int aFinalVar = 0;操作符、表達式、語句和塊HUST & IBM Computer Tech. Center自學!華中科技大學IBM技術中心第四章對象基礎和簡單數據對象華中科技大學IBM技術中心HUST & IBM Computer Tech. Center華中科技大學IBM技術中心對象的生命周期HUST & IBM Computer Tech. Cente

26、r華中科技大學IBM技術中心CreateObjectDeomHUST & IBM Computer Tech. Centerpublic class CreateObjectDemo public static void main(String args) /創(chuàng)建一個Point對象和兩個Rectangle對象Point origin_one = new Point(23, 94);Rectangle rect_one = new Rectangle(origin_one, 100, 200); Rectangle rect_two = new Rectangle(50, 100);/ 顯示re

27、ct_one的寬、高以及面積System.out.println(Width of rect_one: + rect_one.width); System.out.println(Height of rect_one: + rect_one.height); System.out.println(Area of rect_one: + rect_one.area();rect_two.origin = origin_one;/ 顯示rect_two的位置/設置rect_two的位置System.out.println(X Position of rect_two: + rect_two.ori

28、gin.x); System.out.println(Y Position of rect_two: + rect_two.origin.y);/ 移動rect_two并且顯示它的新位置rect_two.move(40, 72);System.out.println(X Position of rect_two: + rect_two.origin.x); System.out.println(Y Position of rect_two: + rect_two.origin.y);華中科技大學IBM技術中心HUST & IBM Computer Tech. Center華中科技大學IBM技術

29、中心HUST & IBM Computer Tech. Center華中科技大學IBM技術中心HUST & IBM Computer Tech. Center華中科技大學IBM技術中心HUST & IBM Computer Tech. Center華中科技大學IBM技術中心對象創(chuàng)建的實例HUST & IBM Computer Tech. Center華中科技大學IBM技術中心Point origin_one = new Point(23, 94);public class Point public int x = 0; public int y = 0;public Point(int x,

30、int y) this.x = x;this.y = y;HUST & IBM Computer Tech. Center華中科技大學IBM技術中心構造器的重載(Overload)HUST & IBM Computer Tech. Centerv 一個類可以包含多個構造器,這種情況成為構造器的重載v 同一個類中的多個構造器通過參數的數目及類型的不同來區(qū)分public class Rectangle public int width = 0; public int height = 0; public Point origin; public Rectangle() origin = new P

31、oint(0, 0);public Rectangle(Point p) origin = p;public Rectangle(int w, int h) this(new Point(0, 0), w, h);public Rectangle(Point p, int w, int h) origin = p;width = w; height = h;.華中科技大學IBM技術中心HUST & IBM Computer Tech. Center華中科技大學IBM技術中心實例成員與類成員HUST & IBM Computer Tech. Centerv 實例成員包括實例變量與實例方法實例成員

32、依賴于實例存在同一個類的不同實例都擁有一份實例變量的拷貝,對 某個實例的實例變量的操作不影響到其它實例實例變量遵循對象的生命周期,隨著對象的創(chuàng)建而創(chuàng) 建,隨著對象的消亡而消亡必須通過實例的引用來調用實例方法v 類成員包括類變量與類方法類成員不依賴于實例存在同一個類的不同實例共享同一個類變量,對類變量的 改變會影響到所有實例類變量的生存期不依賴于對象,其它類可以不用通過 創(chuàng)建該類的實例,直接通過類名訪問它們。同樣,類 方法也可以直接通過類名訪問。華中科技大學IBM技術中心實例成員與類成員HUST & IBM Computer Tech. Center華中科技大學IBM技術中心class ABCD

33、 char data;static int share_data;class Demo ABCDa,b,c,d; /實例化實例變量的引用HUST & IBM Computer Tech. Centerv 簡單名稱當實例變量處在作用域內(即對象的類的代碼內) 的時候v 限定名稱objectReference.variableName當實例變量處在作用域外時使用限定名稱華中科技大學IBM技術中心System.out.println(Width of rect_one: + rect_one.width); System.out.println(Height of rect_one: + rect_

34、one.height); int height=new Rectangle().height;關于變量訪問的說明HUST & IBM Computer Tech. Centerv 建議不要通過其它對象或類直接操作對象的變量,可能引起無效值v 理想情況下,類會提供一些方法,其他對象可以通過 他們檢查或修改變量,確保值有效,而且如果變量的類型和名稱發(fā)生了變化,不會影響它的使用者v 在某些情況下,可以允許對對象變量的直接訪問, 以使類更小更簡單,也可使變量適用于更廣泛范 圍;v JAVA編程語言提供了一個訪問控制機制,通過這 種機制,類可以決定那些其它的類可以直接訪問它的變量(第五章中介紹)。華中科

35、技大學IBM技術中心調用對象的方法HUST & IBM Computer Tech. Centerv 使用限定名稱來調用對象的方法objectReference.methodName(argumentList);或者objectReference.methodName();華中科技大學IBM技術中心System.out.println(Area of rect_one: + rect_one.area(); rect_two.move(40, 72);int areaOfRectangle = new Rectangle(100, 50).area();關于方法調用HUST & IBM Com

36、puter Tech. Centerv 方法被聲明為public,就可以被任何其它的類所訪問。有時,類需要限制對它的方法的訪問v 類可以使用與控制變量訪問相同的機制來對它的方法進行訪問控制(第五章中介紹)華中科技大學IBM技術中心對象的清除HUST & IBM Computer Tech. Centerv JAVA運行時環(huán)境在當對象不再被使用的時候清除它們,這個過程就是所謂的“垃圾收集”(garbage collection)v Java的垃圾收集器自動掃描對象的動態(tài)內存區(qū),對被引用的對象加標記,然后把沒有引用的對象作為垃圾收集起來并釋放。v 垃圾收集器作為一個線程運行。當系統(tǒng)的內存用盡或程序

37、中調用System.gc()要求進行垃圾收集時,垃圾收集線程與系統(tǒng)同步運行。否則垃圾收集器在系統(tǒng)空閑時異步地執(zhí)行。華中科技大學IBM技術中心無用對象的判定HUST & IBM Computer Tech. Centerv 當某個對象不在被任何引用變量引用時,該對象 是無用對象,將被清除。一般有如下兩種情況:華中科技大學IBM技術中心引用變量引用了其它對象或引用了空對象StringBuffer s = new StringBuffer(“test1”);s = new StringBuffer(“test2”); / 引用了新的對象s = null; / 引用為空引用變量超出了作用域String

38、Buffer s = newStringBuffer(“thisisatest”);/ 超出對象作用域finalize()方法HUST & IBM Computer Tech. Centerv 在對對象進行垃圾收集前,Java運行時系統(tǒng)會自動調用對象的finalize()方法來釋放系統(tǒng)資源。v 某些情況下,程序員可能需要實現該方法來釋放不由垃圾收集器所控制的資源。但這種情況非常少見v finalize()方法是在Object中有缺省實現, 在用戶自定義的類中,它可以被覆蓋,但一般在最后要調用父類的finalize()方法來清除對象所使用的所有資源華中科技大學IBM技術中心問題一HUST & I

39、BM Computer Tech. Centerv 下列程序的運行結果?華中科技大學IBM技術中心public class SomethingIsWrong public static void main(String args) Rectangle myRect;myRect.width = 40;myRect.height = 50;System.out.println(myRects area is + myRect.area();問題二HUST & IBM Computer Tech. Centerv 現有一個Point和Rectangle對象,代碼執(zhí)行后有多少引用指向它們?有沒有對象

40、需要垃圾收集?華中科技大學IBM技術中心Point point = new Point(2,4);Rectangle rectangle = new Rectangle(point, 20, 20); point = null;字符和字符串HUST & IBM Computer Tech. Centerv Java API提供了三個處理字符數據的類:Character:這個類的實例可以容納單一的字符數值。該類還定義了一些簡潔的方法來操作或者檢查單一字符數據。String:這個類用于處理由多個字符組成的不 可 變 數 據 。 StringBuffer:這個類用于存儲和操作由多個字符組成的可變數據

41、。華中科技大學IBM技術中心字符類(Character)HUST & IBM Computer Tech. Centerv 字符類的對象包含單個字符值v 當需要使用對象時,可以用字符對象替代原始的char類型的變量華中科技大學IBM技術中心字符類構造器和方法HUST & IBM Computer Tech. Centerv Character(char)Character類唯一的構造器,它創(chuàng)建一個字符對象,其中包含由參數提供的值,一旦創(chuàng)建了Character對象,它包含的值就不能改變。v compareTo(Character)這個實例方法比較兩個字符對象包含的值,這個方法返回一個整數值,表示

42、當前對象中的值是大于、等于還是小于參數所包含的值華中科技大學IBM技術中心字符類構造器和方法HUST & IBM Computer Tech. Centerv equals(Object)這個實例方法比較當前對象包含的值與參數對象包含的值,如果兩個對象包含的值相等,那么這個方法返回truev toString()這個實例方法將此對象轉換為字符串v charValue()這個實例方法以原始char值的形式返回此字符對象包含的值v isUpperCase()這個實例方法判斷一個原始char值是否是大寫字母華中科技大學IBM技術中心);字符類例程HUST & IBM Computer Tech. C

43、enter華中科技大學IBM技術中心public class CharacterDemo public static void main(String args) Character a = new Character(a); Character a2 = new Character(a);Character b = new Character(b);int difference = pareTo(b); if (difference = 0) System.out.println(a is equal to b.); else if (difference 0) System.ou

44、t.println(a is greater than b.程序的輸出: a is less than b. a is equal to a2.The character a is lowercase.System.out.println(a is + (a.equals(a2) ? equal : not equal)+ to a2.); System.out.println(The character + a.toString() + is + (Character.isUpperCase(a.charValue() ? upper : lower)+ case.);字符類類方法HUST

45、& IBM Computer Tech. Center華中科技大學IBM技術中心問題HUST & IBM Computer Tech. Center 下列boolean表達式的值是true還是false?(1)pareTo(b)=0(2)a.equals(b)(3)a=b華中科技大學IBM技術中心Character a = new Character(a); Character b = new Character(a);字符串和字符串緩沖區(qū)HUST & IBM Computer Tech. Centerv Java平臺提供兩個類String和StringBuffer,它們用于存儲和操

46、作字符串由多個字符組成的字符數據。v String類用于其值不能改變的字符串;v StringBuffer類用于被修改的字符串,通常用來動態(tài)的構造字符數據。v 字符串是常量,比字符串緩沖區(qū)更高效, 而且字符串可以被共享。華中科技大學IBM技術中心字符串(String)HUST & IBM Computer Tech. Centerv 使用字符串常量時,需要創(chuàng)建String對象,和其 它對象不同,String對象可以通過簡單賦值語句創(chuàng)建: String name = “Petter”;v 此外,也可根據String類的構造函數創(chuàng)建String對象: String name = new Strin

47、g(“Petter”);v 對于程序任何位置出現的雙引號標記的字符串, 系統(tǒng)都會自動創(chuàng)建一個String對象。v 可通過String對象的方法對字符串進行操作華中科技大學IBM技術中心字符串構造器HUST & IBM Computer Tech. Center華中科技大學IBM技術中心字符串的不可變性?HUST & IBM Computer Tech. Centerv String類用于其值不能改變的字符串v 觀察下列程序:v 程序運行結果是abc還是abcdefg?華中科技大學IBM技術中心public class StringTestpublic static void main(Stri

48、ng args) String s=abc;s=s+“defg; System.out.println(s);HUST & IBM Computer Tech. Center華中科技大學IBM技術中心字符串緩沖區(qū)(StringBuffer)HUST & IBM Computer Tech. Centerv String對象表示的是不可更改的字符串對象,如果需要修改String對象所表示的內容,必須重新創(chuàng)建一個對象: String str = “Petter”; str = str + “ & Bob” + “ & Tom”;v 當修改操作頻繁,或字符串的值很大時, 會額外分配大量內存v 因此,

49、Java語言引入了一個StringBuffer 類,用來表示內容可以擴充和修改字符串對象華中科技大學IBM技術中心StringBuffer構造器HUST & IBM Computer Tech. Centerv 必須使用new操作符創(chuàng)建字符串緩沖區(qū)華中科技大學IBM技術中心String s = Dot saw I was Tod; StringBuffer dest = new StringBuffer(s);訪問器方法HUST & IBM Computer Tech. Centerv 用于獲取關于對象的信息的方法被稱為訪問器方法。v 字符串和字符串緩沖區(qū)都可以使用的一個串緩沖區(qū)中包含的字符數

50、。華中科技大學IBM技術中心String palindrome = Dot saw I was Tod; int len = palindrome.length();容量HUST & IBM Computer Tech. Centerv 在StringBuffer類中還有一個capacity()方法,它返回分配給這個字符串緩沖區(qū)的容量,而不是使用量。使用量會改變,但是容量始終是不變的。華中科技大學IBM技術中心通過索引得到字符HUST & IBM Computer Tech. Centerv charAt()訪問器方法,通過索引從字符串或者字符串緩沖區(qū)得到字符,索引值從零開始。華中科技大學IB

51、M技術中心String anotherPalindrome = Niagara. O roar again!;char aChar = anotherPalindrome.charAt(9);substring方法HUST & IBM Computer Tech. Centerv 如果要從字符串或者字符串緩沖區(qū)得到多個字符,可以使用substring方法。v String substring(int)v String substring(int,int)華中科技大學IBM技術中心String anotherPalindrome = Niagara. O roar again!;String roar = anotherPalindrome.substring(11, 15);searchHUST & IBM Computer Tech. Centerv string類提供兩個訪問器方法,返回特定的字符或者子字符串在字符串中的位置。v indexOf()方法從字符串的開頭查找;v lastindexOf()方法

溫馨提示

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

評論

0/150

提交評論