




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、常用類1 Object 類1.1 Object 類概述類層次結(jié)構(gòu)的根類所有類都直接或者間接的繼承自該類1.2 構(gòu)造方法public Object()回想面向?qū)ο笾袨槭裁凑f(shuō):子類的構(gòu)造方法默認(rèn)的是父類的無(wú)參構(gòu)造方法講解每個(gè)方法的時(shí)候,查看源碼。1.3 public int hashCode()A:返回該對(duì)象的碼值。默認(rèn)情況下,該方根據(jù)對(duì)象的地址來(lái)計(jì)算。B:不同對(duì)象的,hashCode()一般來(lái)說(shuō)相同。但是,同一個(gè)對(duì)象的 hashCode()值肯定相同。C:不是對(duì)象的實(shí)際地址值,可以理解為邏輯地址值。舉例:物體和編號(hào)。1.4 public final Class getClass()A:返回此 O
2、bject 的運(yùn)行時(shí)類。B:可以通過(guò) Class 類中的一個(gè)方法,獲取對(duì)象的真實(shí)類的全名稱。public String getName()1.5 public String toString()A:返回該對(duì)象的字符串表示。底層源碼。public static String valueOf(Object obj) return (obj = null) ? null : obj.toString();B:它的值等于:getClass().getName() + + Integer.toHexString(hashCode()C:由于默認(rèn)情況下的數(shù)據(jù)對(duì)我們來(lái)說(shuō)沒有意義,一般建議重寫該方法。a:手動(dòng)
3、重寫b:自動(dòng)生成1.6 public boolean equals(Object obj)A:指示其他某個(gè)對(duì)象是否與此對(duì)象“相等”。B:默認(rèn)情況下比較的是對(duì)象的是否相同。C:由于比較對(duì)象的a:手動(dòng)重寫b:自動(dòng)生成沒有意義,一般建議重寫該方法。D:=和 equals()的區(qū)別。(面試題)重寫 equals 和 hashCode 方法equals():this = obj直接 return true obj = null直接 return false1.2.3.4.) 直接 return false!(obj instanceof開始比較 name 和 age1.7 protected Objec
4、t clone()注意:由于是 protected 修飾,與 Object 在不同包下只有子類在需重寫 clone 方法內(nèi)部才能,所以必創(chuàng)建并返回此對(duì)象的一個(gè)副本,這種克隆機(jī)制十分高效,而且二者之間完全自定義類實(shí)現(xiàn)克隆步驟:。A:自定義類實(shí)現(xiàn) Cloneable 接口,這是一個(gè)標(biāo)記性接口,實(shí)現(xiàn)這個(gè)接口的類的對(duì)象可以實(shí)現(xiàn)自我克隆。只有實(shí)現(xiàn)了 Cloneable 接口的類才能被克隆B:自定義類中重寫 Object 類的 clone()方法。C:重寫 clone()方法時(shí)通過(guò) super.clone()調(diào)用 Object 類的clone()方法來(lái)得到該對(duì)象的副本,并返回該副本。注意:克隆和兩個(gè)指向同
5、一個(gè)對(duì)象的區(qū)別?案例演示2 Scanner2.1 Scanner 類概述JDK5 以后用于獲取用戶的鍵盤輸入2.2 構(gòu)造方法public Scanner(InputStream source)2.3 基本格式是否還有下一個(gè)輸入項(xiàng),其中可以是 Int,Double 等。如hasNext果需要()是否包含下一個(gè)字符串,則可以省略獲取下一個(gè)輸入項(xiàng)。的含義和上個(gè)方法中的相同next()默認(rèn)情況下,Scanner 使用空格,回車等作為分隔符案例:2.4 常用方法public int nextInt()public String nextLine()2.5 講一個(gè)/r/n 問(wèn)題2.5.1 問(wèn)題:先獲取一個(gè)
6、 int,再獲取一個(gè) String 才會(huì)出問(wèn)題2.5.2 解決方案:1. 使用新的 Scanner 對(duì)象接收字符串2. 全部用 nextLine 接收,接收到之后再轉(zhuǎn)換成 int3 String(最常見)3.1 String 類概述字符串是由多個(gè)字符組成的一串?dāng)?shù)據(jù)(字符序列)字符串可以看成是字符數(shù)組3.2 構(gòu)造方法public String()public String(byte bytes)public String(byte bytes,int offset,int length) public String(char value)public String(char value,int
7、offset,int count)public String(String original)API:所有字符串字面值(如 abc )都作為此類的實(shí)例實(shí)現(xiàn)。注意:String s = “helloworld”;s 也是一個(gè)對(duì)象。3.2.1 字符串內(nèi)存圖解(重要)String s = “hello”;1.字符串直接賦值的方式是先到字符串常量建并返回。去找,如果有就直接返回,沒有就創(chuàng)2.字符串一旦被賦值就被改變。3.3 面試題 1(字符串創(chuàng)建問(wèn)題)請(qǐng)指出:String s1 = new String(“hello”);和 String s2 = “hello”;的區(qū)別new 出來(lái)的就在堆內(nèi)存,字符
8、串就在方法區(qū)的字符串常量池前者創(chuàng)建了 2 個(gè)對(duì)象,后者 1 個(gè)。3.4 面試題 2:字符串拼接問(wèn)題字符串比較之看程序?qū)懡Y(jié)果:備注 CC:String s1 = new String(hello); String s2 = new String(hello); System.out.println(s1=s2);System.out.println(s1.equals(s2); String s3 = new String(hello); String s4 = hello;System.out.println(s3=s4);System.out.println(s3.equals(s4);St
9、ring s5 = hello;String s6 = hello;System.out.println(s5=s6);System.out.println(s5.equals(s6);字符串拼接之看程序?qū)懡Y(jié)果:備注 DD:String s1 = hello; String s2 = world; String s3 = helloworld;System.out.println(s3=s1+s2);/字符串類型相加實(shí)際是新開辟空間:/s1+s2 編譯后:new StringBuilder(String.valueOf(s1).append(s2).toString() System.out.
10、println(s3.equals(s1+s2);還可以通過(guò) Xjad 查看 class 文件。通過(guò)反編譯,可以看出s3 = “hello”+”world” 已經(jīng)被編譯成: s3 = “helloworld”3.5 String 類的功能boolean equals(Object obj)boolean equalsIgnoreCase(String str) boolean contains(String str)boolean startsWith(String str) boolean endsWith(String str)boolean isEmpty()3.5.1 課堂練習(xí):模擬登
11、錄,給三次機(jī)會(huì),并提示還有幾次。GuessGame:3.6 String 類的獲取功能(自學(xué)+講授)int length()char charAt(int index) int indexOf(int ch)/返回指定字符在此字符串中第一次出現(xiàn)處的索引。參數(shù)類型是int 而不是char 的是:int 可以接受int 和char,而char 只能接受char或 65535 以內(nèi)的 int 值,int 的范圍更大(不需要掌握) int indexOf(String str)int indexOf(int ch,int fromIndex)int indexOf(String str,int fro
12、mIndex) String substring(int start)String substring(int start,int end)3.6.1 課堂練:遍歷獲取字符串中的每一個(gè)字符3.6.2 課堂練習(xí) 2:統(tǒng)計(jì)一個(gè)字符串中大寫字母字符,小寫字母字符,數(shù)字字符出現(xiàn)的次數(shù)。(不考慮其他字符)但是,實(shí)際上不需要轉(zhuǎn)成 ASCII 碼,因?yàn)?char 類型在進(jìn)行關(guān)系運(yùn)算的時(shí)候,自動(dòng)會(huì)轉(zhuǎn)為 int類型,其實(shí)就是比較的 ASCII 碼。3.7 String 類的轉(zhuǎn)換功能byte getBytes()char toCharArray()static String valueOf(char chs) s
13、tatic String valueOf(int i) String toLowerCase()String toUpperCase()String concat(String str)3.7.1 課堂練習(xí):把一個(gè)字符串的首字母轉(zhuǎn)成大寫,其余為小寫。(只考慮英文大小寫字母字符)另外:3.8 String 類的其他功能替換功能String replace(char old,char new)String replace(String old,String new)去除字符串兩空格String trim()按字典順序比較兩個(gè)字符串int compareTo(String str)int compa
14、reToIgnoreCase(String str)3.9 String 類練習(xí)3.9.1 把數(shù)組中的數(shù)據(jù)按照指定個(gè)格式拼接成一個(gè)字符串舉例:int arr = 1,2,3;輸出結(jié)果:1, 2, 33.9.2 字符串反轉(zhuǎn)舉例:鍵盤錄入”abcdefg”輸出結(jié)果:” gfedcba”方法一:交換字符數(shù)組法方法二:字符數(shù)組直接倒序遍歷 賦給 新的字符串或字符數(shù)組3.9.3 舉例:統(tǒng)計(jì)大串中小串出現(xiàn)的次數(shù)在字符串” woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun”中 java 出現(xiàn)了 5 次3.10 Str
15、ing 規(guī)則Object 類規(guī)定如果根據(jù) equals(Object) 方法,兩個(gè)對(duì)象是相等的,那么對(duì)這兩個(gè)對(duì)象中的每個(gè)對(duì)象調(diào)用 hashCode 方法都必須生成相同的整數(shù)結(jié)果。所以:4 StringBuffer 類概述及其構(gòu)造方法StringBuffer 類概述我們?nèi)绻麑?duì)字符串進(jìn)行拼接操作,每次拼接,都會(huì)構(gòu)建一個(gè)新的String 對(duì)象, 既耗時(shí),又浪費(fèi)空間。而 StringBuffer 就可以解決這個(gè)問(wèn)題線程安全的可變字符序列StringBuffer 和 String 的區(qū)別?構(gòu)造方法public StringBuffer()public StringBuffer(int capacity)
16、 public StringBuffer(String str)4.1 StringBuffer 類的成員方法4.1.1 添加功能public StringBuffer append(String str)public StringBuffer insert(int offset,String str)4.1.2 刪除功能 public StringBuffer deleteCharAt(int index) public StringBuffer delete(int start,int end)刪除所有數(shù)據(jù)sb.delete(0, sb.length();注:在 java 中(int st
17、art, int end)普遍是不4.1.3 替換功能public StringBuffer replace(int start,int end,String str)4.1.4 反轉(zhuǎn)功能public StringBuffer reverse()4.1.5 截取功能public String substring(int start)public String substring(int start,int end)唯一的不同是:返回值類型4.2 String 和 StringBuffer 的相互轉(zhuǎn)換4.2.1 練:把數(shù)組拼接成一個(gè)字符串之前的做法:改進(jìn)后,使用 StringBuffer:不要演
18、示了,String 比 StringBuild 更快.4.2.2 練習(xí) 2:把字符串反轉(zhuǎn)(簡(jiǎn)潔)注:任何類型調(diào)用 toString()方法都可以轉(zhuǎn)換成字符串4.2.3 練習(xí) 3:一個(gè)字符串是否是對(duì)稱字符串例如abc不是對(duì)稱字符串,aba、abba、aaa、mnanm是對(duì)稱字符串方法一:方法二:使用 StringBuffer 的 reverse 方法注意:StringBuffer 沒有重寫 equals()方法,所以不要直接使用 StringBuffer 的 equals()x不加 toString()方法不行5 數(shù)組高級(jí)(排序和查找)5.1 排序5.1.1 冒泡排序相鄰元素兩兩比較,大的往后放
19、,第一次完畢,最大值出現(xiàn)在了最大索引處因?yàn)楣惭h(huán)比較 arr.length-1 次,由此推導(dǎo)出:5.1.2 練習(xí):對(duì)字符串排序String str = “vavdfsdnfnava”;進(jìn)行冒泡排序的思路就是:第一層循環(huán)比較 length-1 次,第二層就考慮每次循環(huán)范圍就行。5.1.3 選擇排序從 0 索引開始,依次和后面元素比較,小的往前放,第一次完畢,最小值出現(xiàn)在了最小索引處因?yàn)楣惭h(huán)比較 arr.length-1 次,由此推導(dǎo)出:選擇排序的思想就是:第一層循環(huán)是排的次數(shù) arr.length-1 次,第二層循環(huán)是:從第 n 個(gè)開始,和后面所有的進(jìn)行比較,最小的放在第 n 個(gè)位置。6 Ar
20、rays 類概述及其常用方法6.1 Arrays 類概述數(shù)組進(jìn)行操作的工具類。提供了排序,查找等功能。6.2 成員方法public static String toString(int a)public static void sort(int a)public static int binarySearch(int a,int key)6.3 Arrays 類常用方法源碼詳細(xì)解釋(binarySearch 不講)l public static String toString(int a)源碼l public static int binarySearch(int a,int key)源碼7
21、基本類型包裝類概述7.1由將 100 轉(zhuǎn)成二進(jìn)制、八進(jìn)制、十六進(jìn)制引入包裝類將基本數(shù)據(jù)類型封裝成對(duì)象的好處在于可以在對(duì)象中定義的功能方法操作該數(shù)據(jù)。常用的操作之一:用于基本數(shù)據(jù)類型與字符串之間的轉(zhuǎn)換。基本類型和包裝類的對(duì)應(yīng)Byte,Short,Integer,Long,Float,Double,Character,Boolean7.2 Integer 類概述Integer 類在對(duì)象中包裝了一個(gè)基本類型該類提供了多個(gè)方法,能在 int 類型和int 的值String 類型之間互相轉(zhuǎn)換,還提供了處理 int 類型時(shí)非常有用的其他一些常量和方法7.3 構(gòu)造方法public Integer(int v
22、alue)public Integer(String s)7.4 Integer 類成員方法7.4.1 int 類型和 String 類型的相互轉(zhuǎn)換int StringString intpublic int intValue()public static int parseInt(String s) public static String toString(int i) public static Integer valueOf(int i)public static Integer valueOf(String s)7.4.2 常用的基本進(jìn)制轉(zhuǎn)換public static String
23、toBinaryString(int i)public static String toOctalString(int i) public static String toHexString(int i)十進(jìn)制到其他進(jìn)制public static String toString(int i,int radix)其他進(jìn)制到十進(jìn)制public static int parseInt(String s,int radix)7.5自動(dòng)裝箱、自動(dòng)拆箱JDK1.5 以后,簡(jiǎn)化了定義方式。Integer x = new Integer(4);可以直接寫成Integer x = 4;/自動(dòng)裝箱。x= x +
24、5;/自動(dòng)拆箱,自動(dòng)裝箱。通過(guò) intValue 方法。需要注意:在使用時(shí),Integerx = null;上面的代碼就會(huì)出現(xiàn) NullPointerException。7.6 Integer 的面試題Integer i = 1; i += 1;做了哪些事情緩沖池(看程序?qū)懡Y(jié)果)通過(guò)查看源碼知道為什么緩沖池范圍在-128127,超過(guò)范圍就會(huì) new 對(duì)象8 正則表達(dá)式概述及基本使用由號(hào)規(guī)則引入主題舉例:校驗(yàn)號(hào)碼.1:要求必須是 5-15 位2:0 不能開頭3:全數(shù)字正則表達(dá)式:是指一個(gè)字符串。其實(shí)就是一種規(guī)則。有或者匹配一系列符合某個(gè)句特殊的應(yīng)用。則的字符串的單個(gè)改進(jìn):8.1 正則表達(dá)式的組成
25、規(guī)則規(guī)則字符在 java.util.regex Pattern 類中8.1.1 常見組成規(guī)則字符 字符類預(yù)定義字符類 邊界匹配器b數(shù)量詞功能8.1.2public boolean matches(String regex)8.1.3練習(xí):匹配匹配匹配匹配匹配匹配匹配匹配avz avez ae23z afe2fz 的正則表達(dá)式flower flowers 的正則表達(dá)式1a2b33d4w5 的正則表達(dá)式12.321233.64323445.98 的正則表達(dá)式abc bca aab bbc cba 的正則表達(dá)式abe aabcaaabc aaaaef aaaaef 的正則表達(dá)式1.jpg2.jpga
26、.jpgasc.jpg 的正則表達(dá)式號(hào)碼的正則表達(dá)式System.out.println(abassdfdfdfc.matches(aw+c$);System.out.println(1a2b3.matches(0-9a-z0-9a-z0-9);System.out.println(1a2b3.matches(dwdwd);System.out.println(aaaef.matches(a+w2);System.out.println(asd.matches(w+w+(.w+)1,2); System.out.println(a11d.jpg.matches(w+.jpg);System.o
27、ut.println(flower.matches(flowers?);System.out.println(10314234324.matches(1-90-910);System.out.println(12232.22.matches(1-9d*.d2);System.out.println(bbc.matches(abc3);String string = The is cattered its food cats all over the room;Pattern pattern = Ppile(bcatb); Matcher matcher = pattern.matcher(string); while(matcher.find()String group = matcher.group(); System.out.println(group);8.1.4 分割功能public String split(String regex)分割路徑,特殊:8.1.5 替換功能public
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 嬰幼兒護(hù)理的任務(wù)和范圍
- 離婚財(cái)產(chǎn)分割詳細(xì)協(xié)議書模板
- 《場(chǎng)投標(biāo)策略制定與中標(biāo)合同變更合同》
- 倉(cāng)儲(chǔ)貨物安全監(jiān)控承包服務(wù)協(xié)議
- 餐飲行業(yè)員工勞動(dòng)合同解除賠償標(biāo)準(zhǔn)合同
- 家政擦窗服務(wù)合同范本含清潔工具與設(shè)備租賃條款
- 課程顧問(wèn)年度工作總結(jié)
- 車輛借用與駕駛?cè)藛T考核協(xié)議
- 美容護(hù)膚品線上銷售居間合同模板
- 個(gè)人車庫(kù)產(chǎn)權(quán)置換合同樣本
- 板鞋競(jìng)速競(jìng)賽規(guī)則
- 滅火器維修與報(bào)廢規(guī)程
- 皮膚病的臨床取材及送檢指南-修訂版
- 機(jī)型理論-4c172實(shí)用類重量平衡
- 校企合作項(xiàng)目立項(xiàng)申請(qǐng)表(模板)
- 管道工廠化預(yù)制推廣應(yīng)用課件
- 海水的淡化精品課件
- 項(xiàng)目工程移交生產(chǎn)驗(yàn)收?qǐng)?bào)告
- 清華大學(xué)美術(shù)學(xué)院陶瓷藝術(shù)設(shè)計(jì)系研究生導(dǎo)師及研究課題
- 計(jì)算機(jī)控制實(shí)驗(yàn)報(bào)告初稿(共31頁(yè))
- 抗磷脂抗體與抗磷脂綜合征.ppt
評(píng)論
0/150
提交評(píng)論