java超詳細學習筆記總結_第1頁
java超詳細學習筆記總結_第2頁
java超詳細學習筆記總結_第3頁
java超詳細學習筆記總結_第4頁
java超詳細學習筆記總結_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Java學習總結一、 面向對象21. 函數(shù)的重載22. Private 權限修飾符23. 構造函數(shù)、構造代碼塊24. 繼承 extends25. 抽象 abstract26. 靜態(tài) static27. 接口 interface28. 多態(tài)29. 內部類。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é)流與字符流轉換5六、網絡編程6一.InetAddress6二.Udp面向無連接,數(shù)據(jù)限制64k6三.Tcp傳輸7四.URL代表一個統(tǒng)一資源定位符7七正則表達式7八 反射71、 面向對象1. 函數(shù)的重載 只看參數(shù)列表與返回值類型無關2. Private 權限修飾符 被私有的成員在本類中有效。3. 構造函數(shù)、構造代碼塊 構

3、造函數(shù)用于給指定對象初始化,構造代碼塊作用于給所有函數(shù)。構造函數(shù)只運行一次,而一般函數(shù)可以調用多次。 構造函數(shù)不能繼承,因為構造函數(shù)和類名相同,子類的類名不可能和父類一樣。4. 繼承 extends 重寫時必須與父類一模一樣,java只支持單繼承,但是可以多層繼承。 This:本類對象調用,誰調用指向誰。 Super:子類調用父類的構造函數(shù),成員、變量 This和super不能出現(xiàn)在一個方法中,super()和this()必須寫構造函數(shù)的第一行。 This/super()代表構造函數(shù)調用,This/super.代表一般方法調用。5. 抽象 abstract 方法不確定的時候定義抽象方法,子類繼

4、承父類的時候必須復寫父類中所有抽象方法,抽象方法都定義在抽象類中,也就是說一個類中有一個抽象方法的時候那么該類必須被abstract修飾。6. 靜態(tài) static 靜態(tài)被所有對象所共享,被靜態(tài)修飾的成員(成員變量和成員函數(shù))可以直接用類名調用。 靜態(tài)只能覆蓋靜態(tài),不能覆蓋非靜態(tài)。靜態(tài)代碼塊用于給類初始化,只而且運行一次。 靜態(tài)優(yōu)先于對象存在。7. 接口 interface 接口是用來實現(xiàn)的(implements),接口中一般定義的都是抽象方法,所以在實現(xiàn)接口的時候必須重寫其中所有的方法。接口與接口直接可以實現(xiàn)多繼承。8. 多態(tài) 父類引用指向子類對象,必須是類與類有所屬關系,繼承或者實現(xiàn)。 多態(tài)

5、-成員變量,編譯運行都看左邊。 多態(tài)-成員函數(shù),編譯時期看左邊,運行時期看右邊。 多態(tài)-靜態(tài),無論編譯運行都看左邊,因為靜態(tài)優(yōu)先于對象存在。9. 內部類。 當事物當中還有東西要描述的時候就定義內部類,內部類可以直接訪問外部類成員。 匿名內部類是內部類的一種簡寫形勢,可以做為實際參數(shù)傳遞只能被調用一次。10. Object類所有類的超類,其中幾個重要參數(shù):hashCode() equals() toString()11.異常 1.異常分為能處理和不能處理的。能處理的就是Exception和Error。 2.異常的處理寫法: try會出問題的代碼 Catch(異常類型 變量名)處理方式 Final

6、ly一定會執(zhí)行的代碼 注意 :try catch finally三個語句塊不能單獨存在,可以有多個catch。Finally一般用于關閉資源使用。 1.throws和throw的區(qū)別:throws用于聲明定義在方法上,throw定義在方法內。 2.當一個類繼承一個類的時候,父類聲明了非RuntimeException異常的時候,子類必須處理,要不編譯通不過,要么try要么拋。 3。當一個類繼承了一個類,復寫父類中的方法的時候,如果父類中沒有拋異常,那么子類也不能拋。只能try,或者拋RuntimeException及子類異常。比如多線程復寫run方法。-二、多線程1.多線程定義的兩中方式:繼承

7、thread類,實現(xiàn)runnable接口。(1)定義類繼承thread類復寫run方法 創(chuàng)建thread類的子類對象調用start方法啟動線程(2)定義一個類實現(xiàn)runnable接口覆蓋接口中run方法,也就是把要運行的代碼定義在run方法中。創(chuàng)建thread類的子類對象創(chuàng)建thread類對象并且將子類對象做為實際參數(shù)傳遞給thread類調用thread類start方法啟動線程2.線程間同步: 三種方法(1) 同步代碼塊 Snychronized(對象) 需要被同步的代碼 (2) 同步函數(shù),定義在方法上例如:public snychronized void show()注意:此時同步的所是th

8、is.(3) 當方法是靜態(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”);默認用第一種定義字符串常見轉換: 字符數(shù)組 -字符串new String(char

9、); 構造函數(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包裝類基本類型轉字符串 1.String static toString(int) 2.int+”; 3 static String avalueOf(int)字符串變基本類型 1.Integer static valueOf(String) 例子:Integer.valueOf(“20”)-20其他進制轉十進制 int a=Inreger.ParseInt(String,radix);指定進制數(shù)轉換成十進制:(“01010”,2)=6 注意:前面?zhèn)魅霐?shù)據(jù)必須與指定類型匹配 (“1234”,10)=1234 十進制轉其他進制 二進制toBina

11、ryString 八進制toOctalString 十六進制toHexString toString(int num,int radix);/Integer.toString(88, 2)-轉換二進制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)元素有序可以重復Set(hashset.treeSet )元素無序不能重復Hashset 自定義對象的時候復寫hashCode和equals方法TreeSet:自定義對象的時候要復寫hashCode,equals同時自身要具備比較性,所以實現(xiàn)compareable接口覆蓋compareTo方法(comparable定義在內部用于自身具備比較性)(comparator定義在外部用于建立比較器使用)IteratorIterator:迭代器(hashNext()和next(),其中remove()刪除的時候也做判斷)MaphashMap 和treeMap(keySet和entrySet):

13、用于將map集合轉換成set集合以便于元素的操作keySet返回的是鍵值對的key,通過遍歷key調用get方法獲取valueentrySet返回的是一個key和value對應關系Map.entry然后再遍歷通過getKey,getValue獲取key和value。Collections和Arrays Collections:主要用于給list集合排序sort(),reverseOrder() Arrays:數(shù)組轉換成集合 asList()注:集合轉數(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()一次讀取一行讀取到沒有數(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é)流與字符流轉換 |-InputStreamReader 是字節(jié)流通向字符流的橋梁 |-OutputStreamWriter 是字符流通向字節(jié)流的橋梁 (4)流對象操作一般規(guī)律(兩個明確兩個注意) 兩個明確:一.明確源和目的 |-源:輸入流 Reader-InputStream |-目的:輸出流 Writer-O

16、utputStream 二.明確是純文本操作還是文件操作 純文本-字符流,文件-字節(jié)流 兩個注意:一.功能增強就使用bufferedXXXX 二.指定編碼表:必須使用轉換流 讀取文件時指定編碼表,需要轉換流: InputStreamReader(new FileInputStream(“XX.txt”),”GBK”) 生成文件時指定編碼表,需要轉換流: OutputStreamWriter(new FileOutputStream(“XX.txt”),”GBK”) 注意:java默認的就是gbk碼表(5)打印流 1.PrintStream(OutputStream out) 該對象的目的地有四

17、個:1:File對象。2:字符串路徑。3:字節(jié)輸出流。 System: SetIn(InputSteam)-設置默認的輸入源 SetOut(PrintStream)-設置默認的輸出源 注意: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的子類,集合和流有關。 主要方法:將流中數(shù)據(jù)加載進集合 load();通過健取值getProperty(); 保存集合修改后數(shù)據(jù)到流中store(); 返回集合中所有鍵集到set集合中Set stringPropertyNames();(8)SequenceInputStream序列流用于合并流使用,要使用veacor中的Enumeration 構造函數(shù):SequenceInputStream(Enumera

19、tione) 實列如下: Vector v=new Vector();/創(chuàng)建集合 v.add(new FileInputStream(g:split1.bm);/添加文件 Enumeration en=v.elements(); / 調用elements方法返回一個Enumeration SequenceInputStream sis=new SequenceInputStream(en);/EN傳給流 (9)ObjectOutputStream和ObjectInputStream 對象的實例化操作 常見方法:writeObject(Objectobj);和Object readObject(

20、); 注意:它所操作的對象要實現(xiàn) Serializable接口并指定固定標識碼 標識碼格式: static final long serialVersionUID = 42L; 注意:對象中的靜態(tài)成員是不能夠被序列化,因為它存在于方法區(qū)中,不在堆內存中。(10)PipedStream 管道流 ,可以將管道輸出流連接到管道輸入流來創(chuàng)建通信管道。與多線程有關 管道輸出流是管道的發(fā)送端。通常,數(shù)據(jù)由某個線程寫入PipedOutputStream對象,并由其他 線程從連接到的PipedInputStream讀取。一般來說就是,一個線程寫一個線程讀。 特有方法:將兩個流連接起來:In.connect(o

21、ut) 注意:此時所讀取和寫入的時候需要使用到多線程技術,實現(xiàn)Runnable接口,并覆蓋run方法。 (11)RedomAccessFile此類的實例支持對隨機訪問文件的讀取和寫入。 構造函數(shù):RandomAccessFile(Filefile,String mode) /RandomAccessFile(“1.txt”,“r”或者“rw”) 注意:如果mode為r的時候沒有文件會報錯,但是mode為rw的時候沒有文件會創(chuàng)建。 特殊方法:設置指針偏移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); 注意:運用此流的時候一定要什么順序存什么順序取。 (13)ByteArrayStream-ByteArrayStream 操作字節(jié)數(shù)組 CharArrayReader-CharArrayWriter 操作字符數(shù)組 StringArrayReader-StringArrayWriter 操作字符串 注意:以上三個流在操作的時候不用close因為沒有調用到底層資源,只是在內存中操作。- 六、網絡編程

23、 一.InetAddress Static InetAddress getByName(String ip)靜態(tài)方法返回一個InetAddress對象 getHostAddress()獲取ip getHostName()獲取主機名稱 二.Udp面向無連接,數(shù)據(jù)限制64k (1)udp send 發(fā)送端 1.建立udp Socket服務 DatagramSocket 2.確定要發(fā)送的數(shù)據(jù)封裝成包 DatagramPacket DatagramPacket(bytebuf,intlength,InetAddress address, intport) 3.利用DatagramSocket服務將數(shù)據(jù)

24、發(fā)送出去 ds.send(dp) (2).Udp receive接收端 1.建立UdpSocket服務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()/獲取到網絡輸出流將數(shù)據(jù)發(fā)出去 getInputStream(

25、)/獲取到客戶端網絡輸入流接收并讀取數(shù)據(jù) (2).服務端 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();-七正則表達式常見操作:1.匹配:其實用的就是String類中的matches方法。String reg = 1-90-94,14;boolean b = qq.matches(reg);/將正則和字符串關聯(lián)對字符串進行匹配。2.切割:其實用的就是String類中的split方法。3.替換:其實用的就是String類中的replaceAll()

27、;4.獲?。?(1).先要將正則表達式編譯成正則對象。使用的是Pattern中靜態(tài)方法 compile(regex); (2).通過Pattern對象獲取Matcher對象。Pattern用于描述正則表達式,可以對正則表達式進行解析。而將規(guī)則操作字符串,需要從新封裝到匹配器對象Matcher中。然后使用Matcher對象的方法來操作字符串。如何獲取匹配器對象呢?通過Pattern對象中的matcher方法。該方法可以正則規(guī)則和字符串想關聯(lián)。并返回匹配器對象。 (3).使用Matcher對象中的方法即可對字符串進行各種正則操作。-8 反射 一、反射的基本步驟: 1、獲得Class對象,就是獲取到指定的名稱的字節(jié)碼文件對象。 2、實例化對象,獲得類的屬性、方法或構造函數(shù)。 3、訪問屬性、調用方法、調用構造函數(shù)創(chuàng)建對象。 獲取這個Class對象,有三種方式: 1

溫馨提示

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

評論

0/150

提交評論