java各知識(shí)點(diǎn)詳細(xì)總結(jié)_第1頁(yè)
java各知識(shí)點(diǎn)詳細(xì)總結(jié)_第2頁(yè)
java各知識(shí)點(diǎn)詳細(xì)總結(jié)_第3頁(yè)
java各知識(shí)點(diǎn)詳細(xì)總結(jié)_第4頁(yè)
java各知識(shí)點(diǎn)詳細(xì)總結(jié)_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Java知識(shí)一、java概述1、java 發(fā)展:1991年Sun公司的JamesGosling等人開(kāi)始開(kāi)發(fā)名稱為Oak的語(yǔ)言,希望用于控制嵌入在有 線電視交換盒、PDA等的微處理器;1994年將Oak語(yǔ)言更名為Java;2、Java的三種技術(shù)架構(gòu):JAVAEE Java Platform Enterprise Edition ,開(kāi)發(fā)企業(yè)環(huán)境下的應(yīng)用程序,主要針對(duì)web程序開(kāi)發(fā);JAVASE Java Platform Standard Edition ,完成桌面應(yīng)用程序的開(kāi)發(fā),是其它兩者的基礎(chǔ); JAVAME Java Platform Micro Edition ,開(kāi)發(fā)電子消費(fèi)產(chǎn)品和嵌入式設(shè)

2、備,如手機(jī)中的程序; 3、JDK Java Development Kit , java的開(kāi)發(fā)和運(yùn)行環(huán)境,java的開(kāi)發(fā)工具集和jre 。4、JRE: Java Runtime Environment , java 程序的運(yùn)行環(huán)境,java 運(yùn)行的所需的類庫(kù) +JVM(java 虛擬機(jī))。5、配置環(huán)境變量:Path:操作系統(tǒng)外部命令搜索路徑Classpath:類文件搜索路徑”.”表當(dāng)前目錄6、javac命令和java命令要知道java是分兩部分的:一個(gè)是編譯,一個(gè)是運(yùn)行。javac :負(fù)責(zé)的是編譯的部分,當(dāng)執(zhí)行javac時(shí),會(huì)啟動(dòng)java的編譯器程序。對(duì)指定擴(kuò)展名 的.java文件進(jìn)行編譯,生

3、成了 jvm可以識(shí)別的字節(jié)碼文件,也就是class文件,也就是java的運(yùn) 行程序。java :負(fù)責(zé)運(yùn)行的部分.會(huì)啟動(dòng)jvm.加載運(yùn)行時(shí)所需的類庫(kù),并對(duì)class文件進(jìn)行執(zhí)行。一個(gè)文件要被執(zhí)行,必須要有一個(gè)執(zhí)行的起始點(diǎn),這個(gè)起始點(diǎn)就是main方法.7、虛擬機(jī)當(dāng)我們?cè)谔摂M機(jī)中進(jìn)行軟件評(píng)測(cè)時(shí),可能系統(tǒng)一樣會(huì)崩潰,但是,崩潰的只是虛擬機(jī)上的操作 系統(tǒng),而不是物理計(jì)算機(jī)上的操作系統(tǒng),并且,使用虛擬機(jī)的“ UndS (恢復(fù))功能,可以馬上恢 復(fù)虛擬機(jī)到安裝軟件之前的狀態(tài)。8、public class 和 class public class :文件名稱和類名稱一致,一個(gè) *.java 文件之中只能夠存在

4、一個(gè) public class 定義。ava文件之中可以同時(shí)存在多個(gè)class定義,并且編譯之后會(huì)形成不同的*class文件。第2章java語(yǔ)法基礎(chǔ)1、關(guān)鍵字:某種語(yǔ)言賦予了特殊含義的單詞。保留字:還沒(méi)有賦予特殊含義,但是準(zhǔn)備日后要使用的單詞。2、標(biāo)示符:就是在程序中自定義的名詞。比如類名,變量名,方法名。包含 0-9、a-z、$、 注意:1)數(shù)字不可以開(kāi)頭。2)不可以使用關(guān)鍵字。3、常量:是在程序中不會(huì)變化的數(shù)據(jù)。4、變量:其實(shí)就是內(nèi)存中的一個(gè)存儲(chǔ)空間,用于存儲(chǔ)數(shù)據(jù)。作用:方便運(yùn)算。因?yàn)橛行?shù)據(jù)不確定,所以確定該數(shù)據(jù)的名字和存儲(chǔ)空間。特點(diǎn):變量空間可以重復(fù)使用。什么時(shí)候定義變量 只要是數(shù)據(jù)不

5、確定的時(shí)候,就定義變量。變量空間的開(kāi)辟需要什么要素呢(1)數(shù)據(jù)類型。(2)變量名稱。(3)變量的初始化值。變量的作用域和生存期變量的作用域:作用域從變量定義的位置開(kāi)始,到該變量所在的那對(duì)大括號(hào)結(jié)束;生命周期:變量從定義的位置開(kāi)始就在內(nèi)存中有生命了;變量到達(dá)它所在的作用域的時(shí)候就在內(nèi)存中消失了;5、數(shù)據(jù)類型:1)基本數(shù)據(jù)類型:byte、short、int、long、float、double、char、boolean2)引用數(shù)據(jù)類型:數(shù)組、類、接口。級(jí)別從低到高為:byte,char,short(這三個(gè)平級(jí))->int->float->long->double自動(dòng)類型轉(zhuǎn)換:

6、從低級(jí)別到高級(jí)別,系統(tǒng)自動(dòng)轉(zhuǎn)換;強(qiáng)制類型轉(zhuǎn)換:什么情況下使用把一個(gè)高級(jí)別的數(shù)賦給一個(gè)比該數(shù)的級(jí)別低的變量; 格式:類型 變量名=(類型)表達(dá)式;例:int a=(int)100L;6、運(yùn)算符號(hào):1)算術(shù)運(yùn)算符。+ - * / %:任何整數(shù)模2不是0就是1,所以只要改變被模數(shù)就可以實(shí)現(xiàn)開(kāi)關(guān)運(yùn)算。+:連接符。+,-2)賦值運(yùn)算符。=+= -= *= /= %=3)比較運(yùn)算符。特點(diǎn):該運(yùn)算符的特點(diǎn)是:運(yùn)算完的結(jié)果,要么是 true ,要么是false。4)邏輯運(yùn)算符。& | A ! && |邏輯運(yùn)算符除了 !外都是用于連接兩個(gè)boolean類型表達(dá)式。&:只有兩邊都為

7、true結(jié)果是true。否則就是false 。|:只要兩邊都為false結(jié)果是false ,否則就是truea:異或:兩邊結(jié)果一樣,就為false o兩邊結(jié)果不一樣,就為true.&和&&區(qū)別:& :無(wú)論左邊結(jié)果是什么,右邊都參與運(yùn)算。&&:短路與,如果左邊為false ,那么右邊不參數(shù)與運(yùn)算。|和|區(qū)別:| :兩邊都運(yùn)算。| :短路或,如果左邊為true ,那么右邊不參與運(yùn)算。5)位運(yùn)算符:用于操作二進(jìn)制位的運(yùn)算符。& | A<< >> >>>( 無(wú)符號(hào)右移)7、語(yǔ)句If switch do w

8、hile while for1)當(dāng)判斷固定個(gè)數(shù)的值的時(shí)候,可以使用if ,也可以使用switch。但是建議使用switch , 效率相對(duì)較高。.;元素類型口變量名=new元素類型元素1,元素2;第3章 面向?qū)ο笠?、在類中的定義都稱之為成員。成員有兩種:1、成員屬性:對(duì)應(yīng)的就是事物的屬性。2、成員方法:對(duì)應(yīng)的就是事物的行為。必須先要對(duì)事物進(jìn)行屬性和行為的分析,才可以用代碼來(lái)體現(xiàn)。注意:主方法的存在,僅為該類是否需要獨(dú)立運(yùn)行,如果不需要,主方法是不用定義的。主方法的解釋:保證所在類的獨(dú)立運(yùn)行,是程序的入口,被jvm 調(diào)用。成員屬性和局部變量的區(qū)別:1、成員屬性直接定義在類中。局部變量定義在方法中,

9、參數(shù)上,語(yǔ)句中。2、成員屬性在這個(gè)類中有效。局部變量只在自己所屬的大括號(hào)內(nèi)有效,大括號(hào)結(jié)束,局部變量失去作用域。3、成員屬性存在于堆內(nèi)存中,隨著對(duì)象的產(chǎn)生而存在,消失而消失。局部變量存在于棧內(nèi)存中,隨著所屬區(qū)域的運(yùn)行而存在,結(jié)束而釋放。二、構(gòu)造方法:用于給對(duì)象進(jìn)行初始化,是給與之對(duì)應(yīng)的對(duì)象進(jìn)行初始化,它具有針對(duì)性,方法中的一種。特點(diǎn) :1、 該方法的名稱和所在類的名稱相同。2、 不需要定義返回值類型。3、 該方法沒(méi)有具體的返回值。記?。核袑?duì)象創(chuàng)建時(shí),都需要初始化才可以使用。注意事項(xiàng):一個(gè)類在定義時(shí),如果沒(méi)有定義過(guò)構(gòu)造方法,那么該類中會(huì)自動(dòng)生成一個(gè)空參數(shù)的構(gòu)造方法,為了方便該類創(chuàng)建對(duì)象,完成初

10、始化。如果在類中自定義了構(gòu)造方法,那么默認(rèn)的構(gòu)造方法就沒(méi)有了。一個(gè)類中,可以有多個(gè)構(gòu)造方法,因?yàn)樗鼈兊姆椒Q都相同,所以只能通過(guò)參數(shù)列表來(lái)區(qū)分。所以, 一個(gè)類中如果出現(xiàn)多個(gè)構(gòu)造方法。它們的存在是以重載體現(xiàn)的。構(gòu)造方法和一般方法有什么區(qū)別呢1、 兩個(gè)方法定義格式不同。2、 構(gòu)造方法是在對(duì)象創(chuàng)建時(shí),就被調(diào)用,用于初始化,而且初始化動(dòng)作只執(zhí)行一次。調(diào)用的是成員屬性和成員方法( 一般方法 ) ;this 對(duì)象后面跟上() 調(diào)用的是本類中的對(duì)應(yīng)參數(shù)的構(gòu)造方法。注意:用this 調(diào)用構(gòu)造方法,必須定義在構(gòu)造方法的第一行。因?yàn)闃?gòu)造方法是用于初始化的,所以初始化動(dòng)作一定要執(zhí)行。否則編譯失敗。五、 stati

11、c : 關(guān)鍵字,是一個(gè)修飾符,用于修飾成員( 成員屬性和成員方法)。特點(diǎn):1、 想要實(shí)現(xiàn)對(duì)象中的共性數(shù)據(jù)共享??梢詫⑦@個(gè)數(shù)據(jù)進(jìn)行靜態(tài)修飾。2、 被靜態(tài)修飾的成員,可以直接被類名所調(diào)用。也就是說(shuō),靜態(tài)的成員多了一種調(diào)用方式。類名 .靜態(tài)方式 。課 ();電影 ();A11 y = (A11)x;y. 看電影 (); 名編譯命令:javac - d位置(.當(dāng)前路徑)java源文件(就可以自動(dòng)生成包)包是一種封裝形式,用于封裝類,想要被包以外的程序訪問(wèn),該類必須為public ;類中的成員,如果被包以外訪問(wèn),也必須public ;包與包之間訪問(wèn)可以使用的權(quán)限有兩種:1、 public2、 prote

12、cted :只能是不同包中的子類可以使用的權(quán)限??偨Y(jié) java 中的四種權(quán)限:中的四種權(quán)限:范圍publicprotecteddefault同一個(gè)類中okokok同一包中okokok子類ok不同包中okprivate okImport - 導(dǎo)入: 類名稱變長(zhǎng),寫起來(lái)很麻煩。為了簡(jiǎn)化,使用了一個(gè)關(guān)鍵字:import ,可以使用這個(gè)關(guān)鍵字導(dǎo)入指定包中的類。記?。簩?shí)際開(kāi)發(fā)時(shí), 到的哪個(gè)類就導(dǎo)入哪個(gè)類,不建議使用*.import packa.*;ar 包目錄解壓縮:jar - xvf包名.jar將jar包目錄列表重定向到一個(gè)文件中:jar - tf包名和 import .* 的形式的小技巧。第 4章一

13、、異常:異常:就是不正常。程序在運(yùn)行時(shí)出現(xiàn)的不正常情況。其實(shí)就是程序中出現(xiàn)的問(wèn)題。這個(gè)問(wèn)題按照面向?qū)ο笏枷脒M(jìn)行描述,并封裝成了對(duì)象。因?yàn)閱?wèn)題的產(chǎn)生有產(chǎn)生的原因、有問(wèn)題的名稱、有問(wèn)題的描述等多個(gè)屬性信息存在。當(dāng)出現(xiàn)多屬性信息最方便的方式就是將這些信息進(jìn)行封裝。異常就是 java 按照面向?qū)ο蟮乃枷雽?wèn)題進(jìn)行對(duì)象封裝。這樣就方便于操作問(wèn)題以及處理問(wèn)題。出現(xiàn)的問(wèn)題有很多種,比如角標(biāo)越界,空指針等都是。就對(duì)這些問(wèn)題進(jìn)行分類。而且這些問(wèn)題都有共性內(nèi)容比如:每一個(gè)問(wèn)題都有名稱,同時(shí)還有問(wèn)題描述的信息,問(wèn)題出現(xiàn)的位置,所以可以不斷的向上抽取。形成了異常體系 。Throwable: 可拋出的。|-Error

14、: 錯(cuò)誤,一般情況下,不編寫針對(duì)性的代碼進(jìn)行處理,通常是jvm 發(fā)生的,需要對(duì)程序進(jìn)行修正。|-Exception : 異常,可以有針對(duì)性的處理方式。無(wú)論是錯(cuò)誤還是異常,它們都有具體的子類體現(xiàn)每一個(gè)問(wèn)題,它們的子類都有一個(gè)共性,就是都 以父類名作為子類的后綴名。這個(gè)體系中的所有類和對(duì)象都具備一個(gè)獨(dú)有的特點(diǎn);就是可拋性。可拋性的體現(xiàn):就是這個(gè)體系中的類和對(duì)象都可以被throws 和 throw 兩個(gè)關(guān)鍵字所操作。class ExceptionDemopublic static void main(String args) 這樣標(biāo)示后,調(diào)用者,在使用該功能時(shí),就必須要處理,否則編譯失敗。處理方式有

15、兩種:1、捕捉;2、拋出。對(duì)于捕捉:java有針對(duì)性的語(yǔ)句塊進(jìn)行處理try 需要被檢測(cè)的代碼;catch(異常類變量名)異常處理代碼;fianlly一定會(huì)執(zhí)行的代碼;catch (Exception e) etName() + '' + (hashCode()為了對(duì)象對(duì)應(yīng)的字符try內(nèi)容有意義,司ty通過(guò)復(fù)寫,建立該類對(duì)象自己特有的字符串表現(xiàn)形式public String toStringdchfinallyreturn "person : "+age;3、Class getClass ():獲取任意對(duì)象運(yùn)行時(shí)的所屬字節(jié)碼文件對(duì)象。4、int hashCod

16、e():返回該對(duì)象的哈希碼值。支持此方法是為了提高哈希表的性能。將該對(duì)象 的內(nèi)部地址轉(zhuǎn)換成一個(gè)整數(shù)來(lái)實(shí)現(xiàn)的。通常equals , toString , hashCode,在應(yīng)用中都會(huì)被覆寫,建立具體對(duì)象的特有的內(nèi)容。-< >- String 字符串java中用String類進(jìn)行描述。對(duì)字符串進(jìn)行了對(duì)象的封裝。這樣的好處是可以對(duì)字符串這種常見(jiàn) 數(shù)據(jù)進(jìn)行方便的操作。對(duì)象封裝后,可以定義N多屬性和行為。如何定義字符串對(duì)象呢String s = "abc”;只要是雙引號(hào)引起的數(shù)據(jù)都是字符串對(duì)象。特點(diǎn):字符串一旦被初始化,就不可以被改變,存放在方法區(qū)中的常量池中。String si

17、 = "abc" String substring(int start,int end);法名:不用建立對(duì)象,直接類名調(diào)用;將基本類型轉(zhuǎn)成字符串:Integer中的靜態(tài)方法String toString(int);將一個(gè)十進(jìn)制整數(shù)轉(zhuǎn)成其他進(jìn)制:轉(zhuǎn)成二進(jìn)制:toBinaryString轉(zhuǎn)成八進(jìn)制:toOctalString轉(zhuǎn)成十六進(jìn)制:toHexStringtoString(int num,int radix);將其他進(jìn)制轉(zhuǎn)換十進(jìn)制:parseInt(string,radix);Map集合存儲(chǔ)和Collection 有著很大不同:Collection 一次存一個(gè)元素;Map一

18、次存一對(duì)元素。Collection 是單列集合;Mapl1雙列集合。Map中的存儲(chǔ)的一對(duì)元素:一個(gè)是鍵,一個(gè)是值,鍵與值之間有對(duì)應(yīng)(映射)關(guān)系。特點(diǎn):要保證map集合中鍵的唯一性。1、添加。put (key,value):當(dāng)存儲(chǔ)的鍵相同時(shí),新的值會(huì)替換老的值,并將老值返回。如果鍵沒(méi)有重復(fù), 返回null。void putAll (Map);2、刪除。void clear ():清空value remove(key): 刪除指定鍵。3、判斷。boolean isEmpty () :boolean containsKey (key) :是否包含keyboolean containsValue (v

19、alue) :是否包含value4、取出。int size () :返回長(zhǎng)度value get (key) :通過(guò)指定鍵獲取對(duì)應(yīng)的值。如果返回null ,可以判斷該鍵不存在。當(dāng)然有特殊情況,就是在hashmap®合中,是可以存儲(chǔ)null鍵null值的。Collection values ():獲取map集合中的所有的值。5、想要獲取map中的所有元素:原理:map中是沒(méi)有迭代器的,collection 具備迭代器,只要將map集合轉(zhuǎn)成Set集合,可以 使用迭代器了。之所以轉(zhuǎn)成set ,是因?yàn)閙ap集合具備著鍵的唯一性,其實(shí)set集合就來(lái)自于map set集合底層其實(shí)用的就是map的方

20、法。 把map集合轉(zhuǎn)成set的方法:Set keySet();Set entrySet();Calendar : 日歷類public static void method()Calendar c = ();"年 "+1)+" 月 "+getNum)+"日"+"星期"+getWeek);public static String getNum(int num)return num>9 num+"" : "0"+num;public static String getWeek

21、(int index)/*查表法:建立數(shù)據(jù)的對(duì)應(yīng)關(guān)系.最好:數(shù)據(jù)個(gè)數(shù)是確定的,而且有對(duì)應(yīng)關(guān)系。如果對(duì)應(yīng)關(guān)系的一方,是數(shù)字,而且可以作為角標(biāo),那么可以通過(guò)數(shù)組來(lái)作為表。*/String weeks = ""," 日 "," 一 "," 二 "," 三 "," 四 "," 五 "," 六 "return weeksindex;第六章IO流流:可以理解數(shù)據(jù)的流動(dòng),就是一個(gè)數(shù)據(jù)流。IO 用于處理設(shè)備上數(shù)據(jù)。在流中一般以字節(jié)的形式存放著數(shù)據(jù)。IO

22、 流最終要以對(duì)象來(lái)體現(xiàn),對(duì)象都存在IO 包中。 IO 異常的處理方式:IO 一定要寫finally ;流的分類:1、輸入流(讀)和輸出流(寫)。2、因?yàn)樘幚淼臄?shù)據(jù)不同,分為字節(jié)流和字符流。字節(jié)流:處理字節(jié)數(shù)據(jù)的流對(duì)象。設(shè)備上的數(shù)據(jù)無(wú)論是圖片或者dvd,文字,它們都以二進(jìn)制存儲(chǔ)的。二進(jìn)制的最終都是以一個(gè)8 位為數(shù)據(jù)單元進(jìn)行體現(xiàn),所以計(jì)算機(jī)中的最小數(shù)據(jù)單元就是字節(jié)。意味著,字節(jié)流可以處理設(shè)備上的所有數(shù)據(jù),所以字節(jié)流一樣可以處理字符數(shù)據(jù)。為什么要有字符流呢 因?yàn)樽址總€(gè)國(guó)家都不一樣,所以涉及到了字符編碼問(wèn)題,那么GBK編碼的中文用 unicode 編碼解析是有問(wèn)題的,所以需要獲取中文字節(jié)數(shù)據(jù)的同時(shí)也

23、指定的編碼表才可以解析正確數(shù)據(jù)。為了方便于文字的解析,所以將字節(jié)流和編碼表封裝成對(duì)象,這個(gè)對(duì)象就是字符流 。只要操作字符數(shù)據(jù),優(yōu)先考慮使用字符流體系。注意: 流的操作只有兩種:讀和寫。流的體系因?yàn)楣δ懿煌?,但是有共性?nèi)容,不斷抽取,形成繼承體系。該體系一共有四個(gè)基類,而且都是抽象類。即:字節(jié)流:InputStream OutputStream字符流:Reader Writer在這四個(gè)系統(tǒng)中,它們的子類,都有一個(gè)共性特點(diǎn):子類名后綴都是父類名,前綴名都是這個(gè)子類的功能名稱。流對(duì)象: 其實(shí)很簡(jiǎn)單,就是讀取和寫入。但是因?yàn)楣δ艿牟煌?,流的體系中提供N 多的對(duì)象。那么開(kāi)始時(shí),到底該用哪個(gè)對(duì)象更為合適呢

24、這就需要明確流的操作規(guī)律。流的操作規(guī)律:1,明確源和目的。數(shù)據(jù)讀?。篒nputStream 、 Reader;數(shù)據(jù)寫入:OutputStream 、 Writer ;2,操作的數(shù)據(jù)是否是純文本數(shù)據(jù)如果是:數(shù)據(jù)讀?。篟eader數(shù)據(jù)寫入:Writer如果不是:數(shù)據(jù)讀取:InputStream數(shù)據(jù)寫入:OutputStream3,雖然確定了一個(gè)體系,但是該體系中有太多的對(duì)象,到底用哪個(gè)呢明確操作的數(shù)據(jù)設(shè)備。數(shù)據(jù)輸入對(duì)應(yīng)的設(shè)備:硬盤(File) ,內(nèi)存( 數(shù)組) ,鍵盤數(shù)據(jù)輸出對(duì)應(yīng)的設(shè)備:硬盤(File) ,內(nèi)存( 數(shù)組) ,控制臺(tái)。字符流:Reader: 用于讀取字符流的抽象類。子類必須實(shí)現(xiàn)的方法

25、只有read(char, int, int)和close() 。|-BufferedReader : 從字符輸入流中讀取文本,緩沖各個(gè)字符,從而實(shí)現(xiàn)字符、數(shù)組和行的高效讀取??梢灾付ň彌_區(qū)的大小,或者可使用默認(rèn)的大小。大多數(shù)情況下,默認(rèn)值就足夠大了。|-LineNumberReader : 跟蹤行號(hào)的緩沖字符輸入流。此類定義了方法setLineNumber(int)和 getLineNumber() ,它們可分別用于設(shè)置和獲取當(dāng)前行號(hào)。|-InputStreamReader : 是字節(jié)流通向字符流的橋梁:它使用指定的charset 讀取字節(jié)并將其解碼為字符。它使用的字符集可以由名稱指定或顯式給

26、定,或者可以接受平臺(tái)默認(rèn)的字符集。|-FileReader : 用來(lái)讀取字符文件的便捷類。此類的構(gòu)造方法假定默認(rèn)字符編碼和默認(rèn)字節(jié) 緩 沖 區(qū) 大 小 都 是 適 當(dāng) 的 。 要 自 己 指 定 這 些 值 , 可 以 先 在 FileInputStream 上 構(gòu) 造 一 個(gè) InputStreamReader 。|-CharArrayReader :|-StringReader :Writer : 寫入字符流的抽象類。子類必須實(shí)現(xiàn)的方法僅有write(char, int, int) 、 flush() 和close() 。|-BufferedWriter: 將文本寫入字符輸出流,緩沖各個(gè)字

27、符,從而提供單個(gè)字符、數(shù)組和字符串的高效寫入。|-OutputStreamWriter: 是字符流通向字節(jié)流的橋梁:可使用指定的charset 將要寫入流中的字符編碼成字節(jié)。它使用的字符集可以由名稱指定或顯式給定,否則將接受平臺(tái)默認(rèn)的字符集。|-FileWriter: 用來(lái)寫入字符文件的便捷類。此類的構(gòu)造方法假定默認(rèn)字符編碼和默認(rèn)字節(jié)緩沖區(qū)大小都是可接受的。要自己指定這些值,可以先在FileOutputStream 上構(gòu)造一個(gè)OutputStreamWriter 。|-PrintWriter:|-CharArrayWriter:|-StringWriter: 字節(jié)流:InputStream :

28、 是表示字節(jié)輸入流的所有類的超類。|- FileInputStream: 從文件系統(tǒng)中的某個(gè)文件中獲得輸入字節(jié)。哪些文件可用取決于主機(jī)環(huán)境。 FileInputStream 用于讀取諸如圖像數(shù)據(jù)之類的原始字節(jié)流。要讀取字符流,請(qǐng)考慮使用FileReader 。|-FilterInputStream : 包含其他一些輸入流,它將這些流用作其基本數(shù)據(jù)源,它可以直接傳輸數(shù)據(jù)或提供一些額外的功能。|- BufferedInputStream: 該類實(shí)現(xiàn)緩沖的輸入流。|- Stream:OutputStream : 此抽象類是表示輸出字節(jié)流的所有類的超類。|-FileOutputStream : 文件輸

29、出流是用于將數(shù)據(jù)寫入File 或 FileDescriptor 的輸出流。|-FilterOutputStream : 此類是過(guò)濾輸出流的所有類的超類。|- BufferedOutputStream : 該類實(shí)現(xiàn)緩沖的輸出流。|- PrintStream :|- DataOutputStream :緩沖區(qū)是提高效率用的,給誰(shuí)提高呢BufferedWriter( 將流和緩沖區(qū)結(jié)合): 是給字符輸出流提高效率用的,那就意味著,緩沖區(qū)對(duì)象建立時(shí),必須要先有流對(duì)象。明確要提高具體的流對(duì)象的效率。FileWriter fw = new FileWriter("");BufferedW

30、riter bufw = new BufferedWriter(fw);quals(line) break;(); long length() : 獲取文件大小。String getName(): 返回由此抽象路徑名表示的文件或目錄的名稱。String getPath() : 將此抽象路徑名轉(zhuǎn)換為一個(gè)路徑名字符串。String getAbsolutePath() : 返回此抽象路徑名的絕對(duì)路徑名字符串。String getParent() : 返回此抽象路徑名父目錄的抽象路徑名,如果此路徑名沒(méi)有指定父目錄,則返回 null 。long lastModified() : 返回此抽象路徑名表示的文

31、件最后一次被修改的時(shí)間。:返回當(dāng)前系統(tǒng)默認(rèn)的路徑分隔符,windows默認(rèn)為 “;”。:返回當(dāng)前系統(tǒng)默認(rèn)的目錄分隔符,windows默認(rèn)為 “4、判斷:boolean exists() : 判斷文件或者文件夾是否存在。boolean isDirectory() : 測(cè)試此抽象路徑名表示的文件是否是一個(gè)目錄。boolean isFile() : 測(cè)試此抽象路徑名表示的文件是否是一個(gè)標(biāo)準(zhǔn)文件。boolean isHidden() : 測(cè)試此抽象路徑名指定的文件是否是一個(gè)隱藏文件。boolean isAbsolute() : 測(cè)試此抽象路徑名是否為絕對(duì)路徑名。5、重命名。boolean rename

32、To(File dest) :可以實(shí)現(xiàn)移動(dòng)的效果。剪切+重命名。String list() : 列出指定目錄下的當(dāng)前的文件和文件夾的名稱。包含隱藏文件。如果調(diào)用list 方法的 File 對(duì)象中封裝的是一個(gè)文件,那么 list 方法返回?cái)?shù)組為null 。 如果封裝的對(duì)象不存在也會(huì)返回null 。 只有封裝的對(duì)象存在并且是文件夾時(shí),這個(gè) list() 方法才有效。遞歸: 就是方法自身調(diào)用自身。什么時(shí)候用遞歸呢當(dāng)一個(gè)功能被重復(fù)使用,而每一次使用該功能時(shí)的參數(shù)不確定,都由上次的功能元素結(jié)果來(lái)確定。簡(jiǎn)單說(shuō): 功能內(nèi)部又用到該功能,但是傳遞的參數(shù)值不確定。( 每次功能參與運(yùn)算的未知內(nèi)容不確定 ) 。遞歸

33、的注意事項(xiàng):1、一定要定義遞歸的條件。定要定義遞歸的條件。2、遞歸的次數(shù)不要過(guò)多。容易出現(xiàn)StackOverflowError 棧內(nèi)存溢出錯(cuò)誤。其實(shí)遞歸就是在棧內(nèi)存中不斷的加載同一個(gè)方法。FileWriter 寫入數(shù)據(jù)的細(xì)節(jié):public static void main(String args) FileWriter fw = null;try ,true );fw = new FileWriter("" ("abcde");catch (IOException e ););finallyif(fw!=null) try ();catch (IOExc

34、eption e) "close:"+();FileReader :使用Reader體系,讀取一個(gè)文本文件中的數(shù)據(jù)。返回-1 ,標(biāo)志讀到結(jié)尾。例 1:import .*;class FileReaderDemo public static void main(String args) throws IOException /*創(chuàng)建可以讀取文本文件的流對(duì)象,F(xiàn)ileReader 讓創(chuàng)建好的流對(duì)象和指定的文件相關(guān)聯(lián)。*/FileReader fr = new FileReader("");int ch = 0;while(ch = ()!= -1) ;cla

35、ss FileReaderDemo2 public static void main(String args) throws IOException FileReader fr = new FileReader("");4、該流的print 方法不拋出IOException 。該對(duì)象的構(gòu)造方法。PrintStream(File file) :創(chuàng)建具有指定文件且不帶自動(dòng)行刷新的新打印流。PrintStream(File file, String csn):創(chuàng)建具有指定文件名稱和字符集且不帶自動(dòng)行刷新的新打印流。PrintStream(OutputStream out) :創(chuàng)建

36、新的打印流。PrintStream(OutputStream out, boolean autoFlush) :創(chuàng)建新的打印流。PrintStream(OutputStream out, boolean autoFlush, String encoding):創(chuàng)建新的打印流。PrintStream(String fileName) :創(chuàng)建具有指定文件名稱且不帶自動(dòng)行刷新的新打印流。PrintStream(String fileName, String csn)PrintStream 可以操作的目的地:1: File 對(duì)象。2:字符串路徑。3:字節(jié)輸出流。前兩個(gè)都版本才出現(xiàn)。而且在操作文本文件時(shí)

37、,可指定字符編碼了。當(dāng)目的是一個(gè)字節(jié)輸出流時(shí),如果使用的println 方法, 可以在 printStream 對(duì)象上加入一個(gè)true 參數(shù)。 這樣對(duì)于println 方法可以進(jìn)行自動(dòng)的刷新,而不是等待緩沖區(qū)滿了再刷新。最終 print方法都將具體的數(shù)據(jù)轉(zhuǎn)成字符串,而且都對(duì)IO 異常進(jìn)行了內(nèi)部處理。既然操作的數(shù)據(jù)都轉(zhuǎn)成了字符串,那么使用PrintWriter 更好一些。因?yàn)镻rintWrite 是字符流的子類,可以直接操作字符數(shù)據(jù),同時(shí)也可以指定具體的編碼。BufferedReader bufr = new BufferedReader(new InputStreamReader);quals

38、(line) break;();class ObjectStreamDemo public static void main(String args) throws ExceptionwriteObj();readObj();public static void readObj()throws ExceptionObjectInputStream ois = new ObjectInputStream(new FileInputStream("");Object obj = (); etName()線程的名稱是由:Thread-編號(hào)定義的。編號(hào)從0開(kāi)始。線程要運(yùn)行的代碼都統(tǒng)一存放在了run 方法 中。線程要運(yùn)行必須要通過(guò)類中指定的方法開(kāi)啟。start 方法 。 (啟動(dòng)后,就多了一條執(zhí)行路徑)start 方法: 1) 、啟動(dòng)了線程;2) 、讓 jvm 調(diào)用了 run 方法。創(chuàng)建線程的第一種方式:繼承Thread ,由子類復(fù)寫run 方法。步驟:1,定義類繼承Thread 類;2,目的是復(fù)寫run 方法,將要讓線程運(yùn)行的代碼都存儲(chǔ)到run 方法中;3,通過(guò)創(chuàng)建Thread 類的子類對(duì)象,創(chuàng)建線程對(duì)象;4,調(diào)用線程的start 方法,開(kāi)啟線程,并執(zhí)行run 方法。線程狀態(tài):被創(chuàng)建:start()運(yùn)行: 具備執(zhí)行資格,同時(shí)具備執(zhí)行權(quán);

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論