一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Java學(xué)習(xí)筆記...

 最強(qiáng)火槍手 2009-02-20
Java學(xué)習(xí)筆記 - 基礎(chǔ)篇 一、面向?qū)ο蟮木幊谈拍? 觀察現(xiàn)實(shí)對(duì)象兩個(gè)性質(zhì):狀態(tài)、行為。 面向?qū)ο蟮暮锰帲耗K化、隱藏信息。 繼承:子類從父類(超類)繼承狀態(tài)和行為;子類可以改變父類的狀態(tài)和行為。 接口:是無關(guān)對(duì)象用來進(jìn)行彼此交互的設(shè)備;一個(gè)對(duì)象可以實(shí)現(xiàn)多個(gè)接口。 二、語言基礎(chǔ) 變量 對(duì)象將它的狀態(tài)存儲(chǔ)在變量中;變量是一個(gè)由標(biāo)識(shí)符命名的數(shù)據(jù)項(xiàng)。 聲明變量的形式:<類型> <名稱> JAVA語言兩大數(shù)據(jù)類型 原始類型數(shù)據(jù)(基本數(shù)據(jù)類型)、引用類型。 原始類型數(shù)據(jù)是不能再分解的數(shù)據(jù)類型(8種:byte、short、int、long、float、double、char、boolean),數(shù)據(jù)在作為函數(shù)參數(shù)是以“傳值”方式工作的; 整數(shù) byte:1字節(jié)長的整數(shù);8位有符號(hào)的二進(jìn)制補(bǔ)碼整數(shù) short:短整數(shù);16位有符號(hào)的二進(jìn)制補(bǔ)碼整數(shù) int:整數(shù);32位有符號(hào)的二進(jìn)制補(bǔ)碼整數(shù) long:長整數(shù);64位有符號(hào)的二進(jìn)制補(bǔ)碼整數(shù) 實(shí)數(shù) flat:單精度浮點(diǎn)數(shù);32位IEEE 754浮點(diǎn)數(shù) double:雙精度浮點(diǎn)數(shù);64位IEEE 754浮點(diǎn)數(shù) 其他類型 char:單一Unicode字符;16位Unicode字符 boolean:布爾值(true或false);8位/1位(8位空間,1位數(shù)據(jù)) 引用類型包括類(class)、接口(interface)、數(shù)組(array)。引用類型有時(shí)也稱復(fù)合類型,它是可以分解為基本類型的數(shù)據(jù)類型,其數(shù)據(jù)在作為函數(shù)參數(shù)時(shí)是以“傳址”的方式工作的。與原始類型相對(duì),引用類型變量的值是對(duì)由此變量代表的一個(gè)值或一組值的引用(也就是地址)。 如: 原始類型 int a = 3; //“a”表示變量名稱,“3”表示變量值;如果寫成“final int a = 3;”,“final”表示不可改變值,所以這里的3(變量值)不可變 引用類型 Staing b = "Hello Java"; //“b”表示引用名稱,“Hello Java”表示字浮串?dāng)?shù)組 流程控制語句 循環(huán) while、do - while、for 判斷 if - else、switch - case 異常處理 try – catch – finally、throw 分支 break、continue、label :、return 循環(huán): while和do – while語句:While語句用于在條件保持為true時(shí)反復(fù)執(zhí)行一個(gè)代碼塊; do – while語句的代碼塊中的語句至少被執(zhí)行一次。 for語句: for語句提供一種迭代某個(gè)范圍內(nèi)的值的緊湊方式。 判斷: if – else 語句:if語句使程序能夠根據(jù)某些條件有選擇地執(zhí)行其他語句; switch語句用于根據(jù)一個(gè)整數(shù)表達(dá)式有條件的執(zhí)行語句; 注意:必須要有明確的break語句,否則,流程控制將一個(gè)接一個(gè)的經(jīng)過后面的case語句 比較if語句和switch語句(if語句可以用于根據(jù)某范圍的值或條件進(jìn)行判斷;switch語句只用于根據(jù)單個(gè)整數(shù)值進(jìn)行判斷)。 異常處理語句: 當(dāng)程序發(fā)生錯(cuò)誤時(shí),程序會(huì)拋出一個(gè)異常,程序的正常流程被中斷; 分支語句:break、continue語句可以和標(biāo)簽語句一起使用,也可以沒有標(biāo)簽; 標(biāo)簽是放在一個(gè)語句前的標(biāo)識(shí)符,標(biāo)識(shí)符后跟一個(gè)冒號(hào); continue 語句:continue語句用于跳過for、while、do – while循環(huán)的當(dāng)前迭代; return 語句:返回一個(gè)值;不返回值。 三、對(duì)象基礎(chǔ)和簡單數(shù)據(jù)結(jié)構(gòu) 創(chuàng)建對(duì)象:聲明一個(gè)變量來引用變量;對(duì)對(duì)象進(jìn)行實(shí)例化(構(gòu)造器); 用new操作符和構(gòu)造器從類創(chuàng)建對(duì)象。 兩種方式使用一個(gè)對(duì)象:引用一個(gè)對(duì)象的變量;調(diào)用對(duì)象的方法。 字符和字符串 JAVA平臺(tái)包含三個(gè)用于處理字符數(shù)據(jù)的類: Character:包含單個(gè)字符值;定義了一些可用于操作和檢查單字符數(shù)據(jù)的方法(Character類的對(duì)象實(shí)例包含單個(gè)字符值,可用Character對(duì)象替代基本類型char)。 String:這個(gè)類用于處理由多個(gè)字符組成的不可改變的數(shù)據(jù)。 StringBuffer:存儲(chǔ)和操作由多個(gè)字符組成的可改變的數(shù)據(jù)。 字符串和字符串緩沖區(qū) String:不能改變自身的值。 StringBuffer:用于將被修改的字符串。 得到字符串或字符串緩沖區(qū)的長度 length方法:返回字符串或字符串緩沖區(qū)中包含的字符數(shù)。 capacity方法:StringBuffer特有;返回分配給字符串緩沖區(qū)的空間量,而不是被使用的空間量。 String類沒有capacity方法,因?yàn)樽址荒芨淖儭? 通過索引從字符串或字符串緩沖區(qū)得到字符 charAt(int)方法:得到字符串或字符串緩沖區(qū)某索引位置上的字符。 注意:第一個(gè)字符串的索引為0;最后一個(gè)字符的索引為length – 1; subString(int), subString(int,int):從字符串或字符串緩沖區(qū)中得到多個(gè)字符。 在字符串中搜索字符或子字符串 String類提供了兩個(gè)訪問器方法:indexOf 方法從字符串的開頭向前搜索;lastIndexOf 方法從字符串的末尾向后搜索; StringBuffer類不支持indexOf和lastIndexOf方法。 操作字符串 String類有幾個(gè)方法看起來可以修改字符串。當(dāng)然,字符串是不能被修改的,所以,這些方法實(shí)際上是創(chuàng)建并返回包含結(jié)果的另一個(gè)字符串。 修改字符串緩沖 字符串緩沖是可以修改的,StingBuffer提供了幾個(gè)用于修改字符串緩沖區(qū)的數(shù)據(jù)的方法; 如果修改字符串緩沖區(qū)的操作造成字符串緩沖區(qū)的大小超出它的當(dāng)前容量,那么字符串緩沖區(qū)會(huì)自動(dòng)分配更多的內(nèi)存。 字符串和編譯器 編譯器在很多地方自動(dòng)的使用String和StringBuffer類來處理字符串直接值和字符串連接; 編譯器為它遇到的每個(gè)字符串直接值自動(dòng)創(chuàng)建一個(gè)新的String對(duì)象; 可以使用+操作符連接字符串。 四、類和繼承 實(shí)現(xiàn)繼承:extends關(guān)鍵字 為類提供構(gòu)造器 構(gòu)造器用于初始化類的新對(duì)象:構(gòu)造器不是方法,沒有返回類型;構(gòu)造器的聲明中可以使用以下訪問說明符: – private – protected – public – 無說明符 將信息傳遞給方法或構(gòu)造器 參數(shù)類型; 參數(shù)名稱; 按值傳遞:參數(shù)是原始類型,方法不能改變其值;參數(shù)是引用類型,方法不能改變其引用,但可以改變引用對(duì)象的值。 從方法返回值 在方法聲明中聲明方法的返回類型;eturn語句返回值的數(shù)據(jù)類型必須匹配方法聲明的返回類型;方法可以返回原始類型,也可以返回引用類型。 使用this關(guān)鍵字 在實(shí)例方法或構(gòu)造器中,this引用當(dāng)前對(duì)象,也就是被調(diào)用的方法或構(gòu)造器所屬的對(duì)象;在構(gòu)造器中,還可以使用this關(guān)鍵字調(diào)用相同類中的另一個(gè)構(gòu)造器。 控制對(duì)類成員的訪問 訪問說明符決定其他類是否可以使用某個(gè)成員或調(diào)用某個(gè)方法。Java編程語言支持四種用于成員變量和方法的訪問級(jí)別:private、protected、public和(如果沒有指定)package。 訪問級(jí)別 Private:類 無說明符:類、包 Protected:類、包、子類 Public:類、包、子類、所有類 實(shí)例和類成員的初始化 可以在聲明的同時(shí)進(jìn)行初始化,但是有一些限制: – 必須以一個(gè)賦值語句表達(dá)初始化方式 – 初始化表達(dá)式不能調(diào)用任何被聲明為拋出非運(yùn)行時(shí)異常的方法 – 如果初始化表達(dá)式調(diào)用一個(gè)拋出運(yùn)行時(shí)異常的方法,那么它不能進(jìn)行錯(cuò)誤恢復(fù) 使用靜態(tài)初始化塊初始化類成員; 實(shí)例成員的初始化。 覆蓋和隱藏方法 覆蓋(override)(實(shí)例方法): – 子類中的 個(gè)實(shí)例方法與超類中的實(shí)例方法具有相同的標(biāo)記和返回類型 – 方法的標(biāo)記:名稱,參數(shù)數(shù)量、參數(shù)類型 – 覆蓋方法可以具有不同的throws子句 – 覆蓋方法的訪問說明符允許訪問限制只能比被覆蓋方法的多 – 子類不能覆蓋超類中聲明為final的方法 – 子類必須覆蓋超類中聲明為abstract的方法,否則子類本身必須是抽象的 覆蓋和重載(overload); 覆蓋和隱藏(類方法)。 隱藏成員變量 在類中,如果一個(gè)成員變量與超類中的成員變量同名(即使它們的類型不同),那么它隱藏超類成員變量; 在子類中,不能通過簡單名稱引用超類中的成員變量,而是必須通過super訪問它; 代碼可讀性差,不建議隱藏成員變量。 使用super 使用super調(diào)用被覆蓋的方法;使用super調(diào)用被隱藏的成員變量;使用super在構(gòu)造器中調(diào)用超類的構(gòu)造器。 使用Object的后代 每個(gè)類都是Object類的直接后代或間接后代; Object類定義了所有類都必須有的基本狀態(tài)和行為: – clone – equals和hashCode – finalize – toString – getClass – notify、notifyAll和wait 編寫final類和方法 將類聲明為final,即類不能被子類化: – 通過防止系統(tǒng)被改版來提高系統(tǒng)的安全性 – 出于設(shè)計(jì)上的原因,某些類不需要子類 final方法: – 在方法聲明中使用final關(guān)鍵字表示這個(gè)方法不能被子類覆蓋 編寫抽象類和方法 抽象類: – 表示一個(gè)抽象的概念,不應(yīng)該被實(shí)例化 – abstract關(guān)鍵字 抽象方法: – 沒有實(shí)現(xiàn)的方法,允許子類提供這些方法的實(shí)現(xiàn)細(xì)節(jié) – 如果抽象類只包含抽象方法,那么它應(yīng)該被定義成接口 創(chuàng)建類的小結(jié) 類的定義有兩個(gè)部分: – 類聲明 – 類體:成員變量、方法、構(gòu)造器 訪問說明符——控制對(duì)成員變量和方法的訪問方式; 類變量、類方法,static方法關(guān)鍵字 實(shí)例成員、實(shí)例方法 五、接口和包 實(shí)現(xiàn)接口:implements關(guān)鍵字 類可以實(shí)現(xiàn)多個(gè)接口,implements關(guān)鍵字后面跟以逗號(hào)分隔的接口列表; 如果有extends關(guān)鍵字,implements子句應(yīng)該在extends子句的后面; 類要么必需實(shí)現(xiàn)接口及其超接口中的所有方法,要么類必須被聲明為抽象的; 類中的方法標(biāo)記(名稱和參數(shù)列表)必須匹配接口中的方法標(biāo)記。 將接口作為類型使用 在定義了一個(gè)新接口是,就是在定義一個(gè)新的引用數(shù)據(jù)類型; 定義可一用接口,實(shí)例化是必須用類。 接口不能改變 從語法的角度看,接口可以被改變; 從設(shè)計(jì)的角度看,一個(gè)已經(jīng)在系統(tǒng)中被廣泛使用的接口,不能輕易被改變; 如果改變了接口,實(shí)現(xiàn)原接口的類都將無法工作; 應(yīng)該盡可能的考慮接口所提供的方法; 如果要改變接口,用繼承的方式定義新的接口。 接口小結(jié) 接口定義了一種功能描述,定義了對(duì)象之間進(jìn)行通訊的協(xié)議; 接口定義由接口聲明和接口體組成; 接口包含一組方法的聲明,但沒有方法的實(shí)現(xiàn); 實(shí)現(xiàn)接口的類必須實(shí)現(xiàn)接口中聲明的所有方法; 接口名稱可以作為數(shù)據(jù)類型使用。 創(chuàng)建和使用包 創(chuàng)建包: – 將package語句作為類或接口源代碼文件中的第一條語句 – 類或接口的源代碼和類文件的路徑名與包的名稱相對(duì)應(yīng) 使用另一個(gè)包中的接口或類: – 類或接口的限定名 – 導(dǎo)入類或接口 – 導(dǎo)入類或接口所在的整個(gè)包 六、使用異常處理錯(cuò)誤 什么是異常:異常(exception)是在程序執(zhí)行期間中斷指令的正常流程的事件。 try塊 try { statements } statements是包含一個(gè)或多個(gè)可能拋出異常的語句。 catch塊 每個(gè)catch塊是一個(gè)異常處理器,它處理由其參數(shù)指定的異常類型 try{ ...... } catch(ExceptionType name) { …… } catch (ExceptionType name) { …… } finally塊 finally塊是可選的,它提供一種機(jī)制,其目的是無論try塊中是否發(fā)生異常都確保進(jìn)行清理工作; 無論是否發(fā)生異常,都會(huì)執(zhí)行finally塊中的代碼。 throw語句 throw語句需要一個(gè)參數(shù):一個(gè)可拋出的(Throwable)對(duì)象;可拋出對(duì)象是Throwable類的子類。 Throwable類及其子類 Throwable類有兩個(gè)直接子類: – Error – Exception Error: – JAVA虛擬機(jī)的動(dòng)態(tài)鏈接故障或其它“硬”故障,一般的程序不應(yīng)該捕獲Error,也不能拋出Error Exception: 大多數(shù)程序拋出并捕獲從Exception類派生的對(duì)象。Exception表示發(fā)生了一個(gè)問題,但并不是嚴(yán)重的系統(tǒng)問題。你寫的多數(shù)程序?qū)伋霾⒉东@Exception(而不是Error)。 – Exception表示發(fā)生了一個(gè)問題,但并不是嚴(yán)重的系統(tǒng)問題 – Exception的不同子類表示可能發(fā)生的各種異常 異常的優(yōu)點(diǎn):將錯(cuò)誤代碼與“常規(guī)”代碼分離;將錯(cuò)誤沿調(diào)用堆棧向上傳遞;對(duì)錯(cuò)誤類型進(jìn)行分組和區(qū)分。 異常的小結(jié) 程序可以使用異常表明發(fā)生了錯(cuò)誤; 程序可以使用throw語句拋出異常; 異常是一個(gè)對(duì)象(Throwable的子類); 程序可以使用try、catch語句finally來捕獲異常: – try語句標(biāo)識(shí)出可能發(fā)生的異常 – catch語句標(biāo)識(shí)出異常處理器 – finally代碼塊不論拋出異常與否都會(huì)被執(zhí)行,適用于清理工作 七、線程:同時(shí)執(zhí)行多個(gè)任務(wù) 只要用到線程就必須繼承或接口:Thread。 只要用到線程就必須要用run方法。 什么是線程: – 線程是程序內(nèi)的一個(gè)單一的順序控制流程 – 線程本身不是程序,不能單獨(dú)運(yùn)行,它在一個(gè)程序內(nèi)運(yùn)行 – 多個(gè)線程可以同時(shí)運(yùn)行,在一個(gè)程序內(nèi)執(zhí)行不同的任務(wù) 定制線程的run方法 run方法執(zhí)行線程的工作; run方法實(shí)現(xiàn)了線程的運(yùn)行行為; run方法可以做任何可以用語句實(shí)現(xiàn)的事。 為線程提供run方法: – 繼承Thread類,并覆蓋run方法 – 實(shí)現(xiàn)Runnable接口 對(duì)Thread類進(jìn)行子類化和覆蓋run public class SimpleThread extends Thread { public SimpleThread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System.out.println(i + " " + getName()); try { sleep((long)(Math.random() * 1000)); } catch (InterruptedException e) {} } System.out.println("DONE! " + getName()); } } 實(shí)現(xiàn)Runnable接口:如果一個(gè)類已經(jīng)繼承了另一個(gè)類,那么要想實(shí)現(xiàn)線程就必須實(shí)現(xiàn)Runnable接口。 在線程中結(jié)果是隨機(jī)產(chǎn)生的,如果想鎖定對(duì)象就要使用Synchronized關(guān)鍵字意思為鎖定方法所有在的對(duì)象。在對(duì)象被解鎖前,其他線程不能調(diào)用相同對(duì)象上的被同步的方法。意思為執(zhí)行一個(gè)對(duì)象后激活另一個(gè)對(duì)象,自身暫時(shí)睡眠,等待另一個(gè)對(duì)象執(zhí)行完畢,在執(zhí)行下一步,反復(fù)如此。 八、IO:讀和寫 如何使用管道流:管道用于將一個(gè)線程的輸出連接到另一個(gè)線程的輸入 如何封裝流:流經(jīng)常被以下的這種形式封裝起來,以便組合許多流的各種功能 對(duì)象的串行化:Java.io包中的兩個(gè)流——ObjectInputStream和ObjectOutputStream是字節(jié)流,他們的工作與其他輸入和輸出流類似。但他們的特殊之處在于它們可以讀寫對(duì)象。 對(duì)對(duì)象進(jìn)行串行化:如果將一個(gè)不能串行化的對(duì)象傳遞給writeObject方法,那么它拋出一個(gè)NotSerializable Exception。對(duì)象只能在它的類實(shí)現(xiàn)了Serializable接口的情況下被串行化。 為類提供對(duì)象串行化:只有在對(duì)象的類實(shí)現(xiàn)了Serializable接口情況下,對(duì)象才是可串行化的。所有,如果想要對(duì)你的類的實(shí)例進(jìn)串行化,這個(gè)類必須實(shí)現(xiàn)Serializable接口。Serializable接口是一個(gè)空接口,也就是說,他不包含任何方法聲明;它的作用只是表明這個(gè)類的對(duì)象可以被串行化。 I/O復(fù)制小程序(Copy.java),如下: import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; //以上是此程序用到的IO類的包,也可以用“import java.io.*” public class Copy { public static void main(String[] args) throws IOException { File inputFile = new File("D:\\temp\\HelloWorld.java"); //目標(biāo)文件路徑,JAVA中路徑地址只能用“\\”或“/”不能使用“\” File outputFile = new File("D:\\temp\\OutAgain.java"); //復(fù)制后新文件保存路徑 FileReader in = new FileReader(inputFile); FileWriter out = new FileWriter(outputFile); int c; while ((c = in.read()) != -1) //一直循環(huán)到0表示已經(jīng)復(fù)制完畢,所以這里使用不等于負(fù)1 out.write(c); in.close(); //關(guān)閉讀文件對(duì)象 out.close(); //關(guān)閉寫文件對(duì)象 } 凡是有該標(biāo)志的文章,都是該blog博主Caoer(草兒)原創(chuàng),凡是索引、收藏 、轉(zhuǎn)載請(qǐng)注明來處和原文作者。非常感謝。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    欧美不雅视频午夜福利| 欧美一区二区日韩一区二区| 国产欧美日产中文一区| 国产熟女一区二区精品视频| 日韩一区二区三区久久| 亚洲国产成人精品福利| 日本国产欧美精品视频| 国产肥妇一区二区熟女精品| 成人精品一区二区三区在线| 老司机精品视频免费入口| 成年男女午夜久久久精品| 99热在线播放免费观看| 99久久成人精品国产免费| 精品久久综合日本欧美| 精品久久久一区二区三| 91午夜少妇极品福利| 久久女同精品一区二区| 91人妻人人精品人人爽| 中文字幕精品一区二区年下载| 国产一级特黄在线观看| 欧美日韩国产午夜福利| 国产一区二区三区免费福利| 丰满少妇被粗大猛烈进出视频| 国产韩国日本精品视频| 暴力性生活在线免费视频| 少妇毛片一区二区三区| 国产又色又粗又黄又爽| 风间中文字幕亚洲一区| 91久久国产福利自产拍| 好吊妞视频只有这里有精品| 久久中文字幕中文字幕中文| 亚洲男人的天堂色偷偷| 国产精品一区欧美二区| 欧美日韩国产欧美日韩| 欧美日韩亚洲综合国产人| 久久精品中文扫妇内射| 亚洲国产精品久久精品成人| 国产免费观看一区二区| 日韩欧美精品一区二区三区| 不卡视频免费一区二区三区| 久久精品国产99国产免费|