版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Java學(xué)習(xí)總結(jié)一、 面向?qū)ο?1. 函數(shù)的重載22. Private 權(quán)限修飾符23. 構(gòu)造函數(shù)、構(gòu)造代碼塊24. 繼承 extends25. 抽象 abstract26. 靜態(tài) static27. 接口 interface28. 多態(tài)29. 內(nèi)部類。210. Object類所有類的超類,其中幾個重要參數(shù):hashCode() equals() toString()211.異常3二、多線程31.多線程定義的兩中方式:繼承thread類,實現(xiàn)runnable接口。32.線程間同步: 三種方法33. Lock接口 - Condition 接口中方法:lock(),unLock().await()
2、.singal().singalAll()3三、String3字符串常見兩種定義方式:3Integer包裝類4四、 集合框架4Collection4Iterator4Map4Collections和Arrays4高級for循環(huán)4五、IO 流4(1)字符流4(2)字節(jié)流5(3)字節(jié)流與字符流轉(zhuǎn)換5六、網(wǎng)絡(luò)編程6一.InetAddress6二.Udp面向無連接,數(shù)據(jù)限制64k6三.Tcp傳輸7四.URL代表一個統(tǒng)一資源定位符7七正則表達(dá)式7八 反射71、 面向?qū)ο?. 函數(shù)的重載 只看參數(shù)列表與返回值類型無關(guān)2. Private 權(quán)限修飾符 被私有的成員在本類中有效。3. 構(gòu)造函數(shù)、構(gòu)造代碼塊 構(gòu)
3、造函數(shù)用于給指定對象初始化,構(gòu)造代碼塊作用于給所有函數(shù)。構(gòu)造函數(shù)只運(yùn)行一次,而一般函數(shù)可以調(diào)用多次。 構(gòu)造函數(shù)不能繼承,因為構(gòu)造函數(shù)和類名相同,子類的類名不可能和父類一樣。4. 繼承 extends 重寫時必須與父類一模一樣,java只支持單繼承,但是可以多層繼承。 This:本類對象調(diào)用,誰調(diào)用指向誰。 Super:子類調(diào)用父類的構(gòu)造函數(shù),成員、變量 This和super不能出現(xiàn)在一個方法中,super()和this()必須寫構(gòu)造函數(shù)的第一行。 This/super()代表構(gòu)造函數(shù)調(diào)用,This/super.代表一般方法調(diào)用。5. 抽象 abstract 方法不確定的時候定義抽象方法,子類繼
4、承父類的時候必須復(fù)寫父類中所有抽象方法,抽象方法都定義在抽象類中,也就是說一個類中有一個抽象方法的時候那么該類必須被abstract修飾。6. 靜態(tài) static 靜態(tài)被所有對象所共享,被靜態(tài)修飾的成員(成員變量和成員函數(shù))可以直接用類名調(diào)用。 靜態(tài)只能覆蓋靜態(tài),不能覆蓋非靜態(tài)。靜態(tài)代碼塊用于給類初始化,只而且運(yùn)行一次。 靜態(tài)優(yōu)先于對象存在。7. 接口 interface 接口是用來實現(xiàn)的(implements),接口中一般定義的都是抽象方法,所以在實現(xiàn)接口的時候必須重寫其中所有的方法。接口與接口直接可以實現(xiàn)多繼承。8. 多態(tài) 父類引用指向子類對象,必須是類與類有所屬關(guān)系,繼承或者實現(xiàn)。 多態(tài)
5、-成員變量,編譯運(yùn)行都看左邊。 多態(tài)-成員函數(shù),編譯時期看左邊,運(yùn)行時期看右邊。 多態(tài)-靜態(tài),無論編譯運(yùn)行都看左邊,因為靜態(tài)優(yōu)先于對象存在。9. 內(nèi)部類。 當(dāng)事物當(dāng)中還有東西要描述的時候就定義內(nèi)部類,內(nèi)部類可以直接訪問外部類成員。 匿名內(nèi)部類是內(nèi)部類的一種簡寫形勢,可以做為實際參數(shù)傳遞只能被調(diào)用一次。10. Object類所有類的超類,其中幾個重要參數(shù):hashCode() equals() toString()11.異常 1.異常分為能處理和不能處理的。能處理的就是Exception和Error。 2.異常的處理寫法: try會出問題的代碼 Catch(異常類型 變量名)處理方式 Final
6、ly一定會執(zhí)行的代碼 注意 :try catch finally三個語句塊不能單獨存在,可以有多個catch。Finally一般用于關(guān)閉資源使用。 1.throws和throw的區(qū)別:throws用于聲明定義在方法上,throw定義在方法內(nèi)。 2.當(dāng)一個類繼承一個類的時候,父類聲明了非RuntimeException異常的時候,子類必須處理,要不編譯通不過,要么try要么拋。 3。當(dāng)一個類繼承了一個類,復(fù)寫父類中的方法的時候,如果父類中沒有拋異常,那么子類也不能拋。只能try,或者拋RuntimeException及子類異常。比如多線程復(fù)寫run方法。-二、多線程1.多線程定義的兩中方式:繼承
7、thread類,實現(xiàn)runnable接口。(1)定義類繼承thread類復(fù)寫run方法 創(chuàng)建thread類的子類對象調(diào)用start方法啟動線程(2)定義一個類實現(xiàn)runnable接口覆蓋接口中run方法,也就是把要運(yùn)行的代碼定義在run方法中。創(chuàng)建thread類的子類對象創(chuàng)建thread類對象并且將子類對象做為實際參數(shù)傳遞給thread類調(diào)用thread類start方法啟動線程2.線程間同步: 三種方法(1) 同步代碼塊 Snychronized(對象) 需要被同步的代碼 (2) 同步函數(shù),定義在方法上例如:public snychronized void show()注意:此時同步的所是th
8、is.(3) 當(dāng)方法是靜態(tài)的時候,public static snychronized void show()此時的鎖是:類名.class 注意:snychronized一定要寫在返回類型的前面,static后面,既void&String前面。3. Lock接口 - Condition 接口中方法:lock().unLock().await().singal().singalAll()-三、String字符串常見兩種定義方式: String s=”abc”; String s=new String(“abc”);默認(rèn)用第一種定義字符串常見轉(zhuǎn)換: 字符數(shù)組 -字符串new String(char
9、); 構(gòu)造函數(shù) 字符數(shù)組 -字符串Static String valueOf(char ); /String.valueOf(char ) 靜態(tài)方法 字符數(shù)組 -字節(jié)數(shù)組byte getBytes(); 字節(jié)數(shù)組 -字符數(shù)組char toCharArray(); 基本數(shù)據(jù) -字符串Static String valueOf();-2+”;=String.valueOf(2) ;Stringbuffer-stringbulider(前一個線程同步,后一個不同步,所以后一個效率高)基本方法:添加append() 刪除delete(start,end) 返回緩沖區(qū)對象toString()獲取子串su
10、bstring(start,end)Integer包裝類基本類型轉(zhuǎn)字符串 1.String static toString(int) 2.int+”; 3 static String avalueOf(int)字符串變基本類型 1.Integer static valueOf(String) 例子:Integer.valueOf(“20”)-20其他進(jìn)制轉(zhuǎn)十進(jìn)制 int a=Inreger.ParseInt(String,radix);指定進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制:(“01010”,2)=6 注意:前面?zhèn)魅霐?shù)據(jù)必須與指定類型匹配 (“1234”,10)=1234 十進(jìn)制轉(zhuǎn)其他進(jìn)制 二進(jìn)制toBina
11、ryString 八進(jìn)制toOctalString 十六進(jìn)制toHexString toString(int num,int radix);/Integer.toString(88, 2)-轉(zhuǎn)換二進(jìn)制String s1=String.valueOf(20);/20String s2=Integer.toString(20); /20String s3=20+;/20int a=Integer.parseInt(s2);/20 -返回intint b=Integer.valueOf(s2);/20 -返回Integer-4、 集合框架Collectionlist(ArrayList.linked
12、List)元素有序可以重復(fù)Set(hashset.treeSet )元素?zé)o序不能重復(fù)Hashset 自定義對象的時候復(fù)寫hashCode和equals方法TreeSet:自定義對象的時候要復(fù)寫hashCode,equals同時自身要具備比較性,所以實現(xiàn)compareable接口覆蓋compareTo方法(comparable定義在內(nèi)部用于自身具備比較性)(comparator定義在外部用于建立比較器使用)IteratorIterator:迭代器(hashNext()和next(),其中remove()刪除的時候也做判斷)MaphashMap 和treeMap(keySet和entrySet):
13、用于將map集合轉(zhuǎn)換成set集合以便于元素的操作keySet返回的是鍵值對的key,通過遍歷key調(diào)用get方法獲取valueentrySet返回的是一個key和value對應(yīng)關(guān)系Map.entry然后再遍歷通過getKey,getValue獲取key和value。Collections和Arrays Collections:主要用于給list集合排序sort(),reverseOrder() Arrays:數(shù)組轉(zhuǎn)換成集合 asList()注:集合轉(zhuǎn)數(shù)組toArray()高級for循環(huán)高級for循環(huán):for(變量類型 變量名:collection集合或者數(shù)組 )- 五、IO 流 (1)字符流W
14、riter 共性方法(write,flush,close) |-FileWriter 字符文件操作流 |-BufferedWriter 字符緩沖區(qū),特有方法 newLine() 換行Reader 共性方法(read,close)其中read讀取到最后沒有數(shù)據(jù)時返回-1. |-FileReader 字符文件操作流 |-BufferedReader 字符緩沖區(qū),特有方法 readLine()一次讀取一行讀取到?jīng)]有數(shù)據(jù)返回null。 (2)字節(jié)流OutputStream共性方法(write,close,flush) |-FileOutputStream 字節(jié)文件操作流 |-BufferedOutpu
15、tStream字節(jié)緩沖區(qū),沒有特有方法 InputStream 共性方法(read,close.avaiable)其中read讀取到最后沒有數(shù)據(jù)返回-1. |-FileInputStream 字節(jié)文件操作流 |-BufferedInputStream字節(jié)緩沖區(qū),也沒有特有方法 (3)字節(jié)流與字符流轉(zhuǎn)換 |-InputStreamReader 是字節(jié)流通向字符流的橋梁 |-OutputStreamWriter 是字符流通向字節(jié)流的橋梁 (4)流對象操作一般規(guī)律(兩個明確兩個注意) 兩個明確:一.明確源和目的 |-源:輸入流 Reader-InputStream |-目的:輸出流 Writer-O
16、utputStream 二.明確是純文本操作還是文件操作 純文本-字符流,文件-字節(jié)流 兩個注意:一.功能增強(qiáng)就使用bufferedXXXX 二.指定編碼表:必須使用轉(zhuǎn)換流 讀取文件時指定編碼表,需要轉(zhuǎn)換流: InputStreamReader(new FileInputStream(“XX.txt”),”GBK”) 生成文件時指定編碼表,需要轉(zhuǎn)換流: OutputStreamWriter(new FileOutputStream(“XX.txt”),”GBK”) 注意:java默認(rèn)的就是gbk碼表(5)打印流 1.PrintStream(OutputStream out) 該對象的目的地有四
17、個:1:File對象。2:字符串路徑。3:字節(jié)輸出流。 System: SetIn(InputSteam)-設(shè)置默認(rèn)的輸入源 SetOut(PrintStream)-設(shè)置默認(rèn)的輸出源 注意:setIn和setOut只能接收字節(jié)打印流。 2.PrintWriter(Writer和OutputStream)具備了PrintStream特點同時,還有自身特點: 該對象的目的地有四個:1:File對象。2:字符串路徑。3:字節(jié)輸出流。4:字符輸出流。 實際開發(fā)用PrintWriter,可以同時操作字節(jié)和字符流。(6)File 文件操作流 主要方法:創(chuàng)建 createNewFile();判斷exists
18、();獲取文件路徑getPath(); 獲取文件名getName();獲取文件目錄File FileList();(7)Properties 鍵值對持久化操作的對象,他是Hashtable的子類,集合和流有關(guān)。 主要方法:將流中數(shù)據(jù)加載進(jìn)集合 load();通過健取值getProperty(); 保存集合修改后數(shù)據(jù)到流中store(); 返回集合中所有鍵集到set集合中Set stringPropertyNames();(8)SequenceInputStream序列流用于合并流使用,要使用veacor中的Enumeration 構(gòu)造函數(shù):SequenceInputStream(Enumera
19、tione) 實列如下: Vector v=new Vector();/創(chuàng)建集合 v.add(new FileInputStream(g:split1.bm);/添加文件 Enumeration en=v.elements(); / 調(diào)用elements方法返回一個Enumeration SequenceInputStream sis=new SequenceInputStream(en);/EN傳給流 (9)ObjectOutputStream和ObjectInputStream 對象的實例化操作 常見方法:writeObject(Objectobj);和Object readObject(
20、); 注意:它所操作的對象要實現(xiàn) Serializable接口并指定固定標(biāo)識碼 標(biāo)識碼格式: static final long serialVersionUID = 42L; 注意:對象中的靜態(tài)成員是不能夠被序列化,因為它存在于方法區(qū)中,不在堆內(nèi)存中。(10)PipedStream 管道流 ,可以將管道輸出流連接到管道輸入流來創(chuàng)建通信管道。與多線程有關(guān) 管道輸出流是管道的發(fā)送端。通常,數(shù)據(jù)由某個線程寫入PipedOutputStream對象,并由其他 線程從連接到的PipedInputStream讀取。一般來說就是,一個線程寫一個線程讀。 特有方法:將兩個流連接起來:In.connect(o
21、ut) 注意:此時所讀取和寫入的時候需要使用到多線程技術(shù),實現(xiàn)Runnable接口,并覆蓋run方法。 (11)RedomAccessFile此類的實例支持對隨機(jī)訪問文件的讀取和寫入。 構(gòu)造函數(shù):RandomAccessFile(Filefile,String mode) /RandomAccessFile(“1.txt”,“r”或者“rw”) 注意:如果mode為r的時候沒有文件會報錯,但是mode為rw的時候沒有文件會創(chuàng)建。 特殊方法:設(shè)置指針偏移seek();writeUTF();跳過n個字節(jié)sikpBytes(int n); (12)DataStream基本數(shù)據(jù)操作流DataInput
22、Strem 和DataOutputStrem 方法:boolean write/read(boolean);int write/read(int);Double write/read(Double); 注意:運(yùn)用此流的時候一定要什么順序存什么順序取。 (13)ByteArrayStream-ByteArrayStream 操作字節(jié)數(shù)組 CharArrayReader-CharArrayWriter 操作字符數(shù)組 StringArrayReader-StringArrayWriter 操作字符串 注意:以上三個流在操作的時候不用close因為沒有調(diào)用到底層資源,只是在內(nèi)存中操作。- 六、網(wǎng)絡(luò)編程
23、 一.InetAddress Static InetAddress getByName(String ip)靜態(tài)方法返回一個InetAddress對象 getHostAddress()獲取ip getHostName()獲取主機(jī)名稱 二.Udp面向無連接,數(shù)據(jù)限制64k (1)udp send 發(fā)送端 1.建立udp Socket服務(wù) DatagramSocket 2.確定要發(fā)送的數(shù)據(jù)封裝成包 DatagramPacket DatagramPacket(bytebuf,intlength,InetAddress address, intport) 3.利用DatagramSocket服務(wù)將數(shù)據(jù)
24、發(fā)送出去 ds.send(dp) (2).Udp receive接收端 1.建立UdpSocket服務(wù)DatagramSocket 2.定義緩沖區(qū)用于存儲接收的數(shù)據(jù) byte buf=new byte1024 3.接受數(shù)據(jù)并拆包 DatagramPacket ds.receive(dp) 4.獲取數(shù)據(jù) 方法:String ip =dp.getAddress().getHostAddress() dp.getData() dp.getPort() 三.Tcp傳輸 (1).客戶端Socket 常用方法:getOutputStream()/獲取到網(wǎng)絡(luò)輸出流將數(shù)據(jù)發(fā)出去 getInputStream(
25、)/獲取到客戶端網(wǎng)絡(luò)輸入流接收并讀取數(shù)據(jù) (2).服務(wù)端 ServerSocket 常見方法:accept()/獲取客戶端的socket對象 注意:InetAddress 類中獲取InetAddress對象的是InetAddress.getByName(String ip) DatagramPacket類中獲取InetAddress對象的是getAddress() Socket中獲取InetAddress對象是通過getInetAddress() 四.URL代表一個統(tǒng)一資源定位符 方法:URLConnection openConnection()和InputStream getInputStr
26、eam() 事例:URL url=new URL(); URLConnection conn= url.openConnection(); InputStream in= conn.getInputStream();-七正則表達(dá)式常見操作:1.匹配:其實用的就是String類中的matches方法。String reg = 1-90-94,14;boolean b = qq.matches(reg);/將正則和字符串關(guān)聯(lián)對字符串進(jìn)行匹配。2.切割:其實用的就是String類中的split方法。3.替換:其實用的就是String類中的replaceAll()
27、;4.獲?。?(1).先要將正則表達(dá)式編譯成正則對象。使用的是Pattern中靜態(tài)方法 compile(regex); (2).通過Pattern對象獲取Matcher對象。Pattern用于描述正則表達(dá)式,可以對正則表達(dá)式進(jìn)行解析。而將規(guī)則操作字符串,需要從新封裝到匹配器對象Matcher中。然后使用Matcher對象的方法來操作字符串。如何獲取匹配器對象呢?通過Pattern對象中的matcher方法。該方法可以正則規(guī)則和字符串想關(guān)聯(lián)。并返回匹配器對象。 (3).使用Matcher對象中的方法即可對字符串進(jìn)行各種正則操作。-8 反射 一、反射的基本步驟: 1、獲得Class對象,就是獲取到指定的名稱的字節(jié)碼文件對象。 2、實例化對象,獲得類的屬性、方法或構(gòu)造函數(shù)。 3、訪問屬性、調(diào)用方法、調(diào)用構(gòu)造函數(shù)創(chuàng)建對象。 獲取這個Class對象,有三種方式: 1
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 贛南師范大學(xué)科技學(xué)院《汽車企業(yè)管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 贛州師范高等??茖W(xué)校《文字學(xué)概要》2023-2024學(xué)年第一學(xué)期期末試卷
- 贛東學(xué)院《人才管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣西中國舞培訓(xùn)教程課件
- 七年級道德與法治上冊第三單元師長情誼第六課師生之間第1課時走近老師教案新人教版
- 三年級科學(xué)下冊第四單元關(guān)心天氣4今天刮什么風(fēng)教案蘇教版1
- 《讀書考試法》課件
- 小學(xué)生語法精講課件
- 工藝基礎(chǔ)培訓(xùn)課件
- 《陳列無聲的語言》課件
- 2024-2025學(xué)年冀人版科學(xué)四年級上冊期末測試卷(含答案)
- 2024年危險化學(xué)品生產(chǎn)單位安全生產(chǎn)管理人員證考試題庫及答案
- 江蘇省宿遷市沭陽縣2023-2024學(xué)年八年級上學(xué)期期末英語試題
- 【8物(科)期末】合肥市廬陽區(qū)2023-2024學(xué)年八年級上學(xué)期期末質(zhì)量檢測物理試卷
- 國家安全知識教育
- 安全隱患大排查大整治專項行動方案
- 2024-2030年中國停車場建設(shè)行業(yè)發(fā)展趨勢投資策略研究報告
- 藍(lán)軍戰(zhàn)略課件
- 物業(yè)管理重難點分析及解決措施
- 北京郵電大學(xué)《數(shù)據(jù)庫系統(tǒng)》2022-2023學(xué)年第一學(xué)期期末試卷
- 科學(xué)計算語言Julia及MWORKS實踐 課件8 - 基本數(shù)據(jù)類型
評論
0/150
提交評論