久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

黑馬程序員——IO(Input Output)流總結(jié)(二)五篇范文

時(shí)間:2019-05-14 13:47:04下載本文作者:會(huì)員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《黑馬程序員——IO(Input Output)流總結(jié)(二)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《黑馬程序員——IO(Input Output)流總結(jié)(二)》。

第一篇:黑馬程序員——IO(Input Output)流總結(jié)(二)

IO(Input Output)流總結(jié)

(二)剛開始觀看畢老師的視屏的時(shí)候,感覺一會(huì)兒輸出流,一會(huì)兒輸入流的,一會(huì)兒System.out,一會(huì)兒又轉(zhuǎn)換流的。很暈。

最后畢老師給了一個(gè)總結(jié),歸納出了IO操作的規(guī)律。感覺總結(jié)的非常好,雖然剛看第一遍的時(shí)候還是很暈,不過現(xiàn)在終于融匯貫通。

下面我就用自己的理解,總結(jié)一下IO流操作的一般規(guī)律:

在使用IO操作流之前,我們要問自己一下四個(gè)問題:

A.源和目的都有嗎?(初步確定體系)

B.源和目的操作的是字符嗎?(確定體系)

C.源和目的的設(shè)備都是些什么?(輔助確定具體對(duì)象)

D.需要提高輸入和輸出的效率嗎?

補(bǔ)充:源的設(shè)備:內(nèi)存,硬盤,鍵盤

目的的設(shè)備:內(nèi)存,硬盤,控制臺(tái)

當(dāng)明確了以上幾點(diǎn)之后我們就可以確定到底應(yīng)該使用那一個(gè)流對(duì)象。

Demo1:拷貝一個(gè)文本文件的副本。

分析:

A.源和目的都有。

所以,源可以選擇:Reader或者InputStream

目的可以選擇:Writer 或者 OutputStream

B.操作的都是字符數(shù)據(jù)。

所以,源應(yīng)該選擇:Reader

目的應(yīng)該選擇:Writer

C.源的設(shè)備是:硬盤。目的的設(shè)備是:硬盤。

所以:源應(yīng)該使用:FileReader

目的應(yīng)該使用:FileWriter

D.需要提高輸入和輸出效率。

所以可以使用相應(yīng)的裝飾類。

源使用:BufferedReader

目的使用:BufferedWriter

具體代碼如下:

BufferedReader bufr = new BufferedReader(new FileReader(“1.txt”));BufferedWriter bufw = new BufferedWriter(new FileWriter(“copy_1.txt”));

Demo2:將從鍵盤輸入的數(shù)據(jù)存儲(chǔ)到文件中。

分析:

A.源和目的都有。

所以,源可以選擇:Reader或者InputStream

目的可以選擇:Writer 或者 OutputStream

B.操作的都是字符數(shù)據(jù)。

所以,源應(yīng)該選擇:Reader

目的應(yīng)該選擇:Writer

C.源的設(shè)備是:鍵盤。目的的設(shè)備是:硬盤。

因?yàn)樵词擎I盤所以應(yīng)該使用System.in,但是鍵盤是字節(jié)流,但是我們使用的體系應(yīng)該是Reader(字符)體系的。所以要使用InputSreamReader(轉(zhuǎn)換流)將字節(jié)流轉(zhuǎn)換為字符流在進(jìn)行操作。目的應(yīng)該使用:FileWriter

D.需要提高輸入和輸出效率。

所以可以使用相應(yīng)的裝飾類。

源使用:BufferedReader

目的使用:BufferedWriter

具體代碼如下:

BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));

BufferedWriter bufw = new BufferedWriter(new FileWriter(“copy_1.txt”));

轉(zhuǎn)換流詳解:

查閱api我們知道轉(zhuǎn)換流是定義在字符體系中的,那么我們什么時(shí)候應(yīng)該使用轉(zhuǎn)換流呢?

InputStreamReader:是字節(jié)數(shù)據(jù)通向字符數(shù)據(jù)的橋梁。

當(dāng)我們要將字節(jié)數(shù)據(jù)轉(zhuǎn)換成字符數(shù)據(jù)時(shí)使用,在轉(zhuǎn)換成字符數(shù)據(jù)時(shí),我們必須指定字符編碼方式,如GB2312、UTF-8等

如果我們轉(zhuǎn)化的時(shí)候使用的編碼是系統(tǒng)默認(rèn)編碼,那么我們可以使用FileReader。其實(shí),F(xiàn)ileReader就是對(duì)編碼方式為系統(tǒng)默認(rèn)的轉(zhuǎn)換流(public InputStreamReader(InputStream in):創(chuàng)建一個(gè)使用默認(rèn)字符集的 InputStreamReader。)的一個(gè)封裝,這樣使用起來比較簡單。

OutputStreamWriter:是字符數(shù)據(jù)通向字節(jié)數(shù)據(jù)的橋梁。

當(dāng)創(chuàng)建使用指定字符集的 OutputStreamWriter 時(shí)使用。

簡單說就是,我們?nèi)绻敵鲆恍┪谋镜娇刂婆_(tái)上,那么我們知道控制臺(tái)的標(biāo)準(zhǔn)輸出流是System.out,是字節(jié)流,我們?cè)诓僮鲿r(shí),就要將字符數(shù)據(jù)轉(zhuǎn)化成字節(jié)數(shù)據(jù),這樣控制臺(tái)才能正確顯示,所以就用到了OutputStreamWriter。但是這個(gè)地方要注意,如果我們拿到一個(gè)文本他的編碼方式是UTF-8,但是你的電腦是簡體中文的。如果你在使用OutputStreamWriter的時(shí)候沒有指明轉(zhuǎn)換時(shí)使用的碼表,那么系統(tǒng)就會(huì)按照系統(tǒng)默認(rèn)的碼表轉(zhuǎn)換(一般是GBK)。這樣肯定會(huì)出問題了,所以,記住了!當(dāng)我們要指定編碼方式的時(shí)候就使用轉(zhuǎn)換流InputStreamReader和OutputStreamWriter。

Demo3:將從鍵盤輸入字符的數(shù)據(jù)顯示在屏幕上。

快速分析:

A.使用鍵盤,輸入流就是System.in,但是輸入的是字符,所以用到轉(zhuǎn)換流:InputStreamReader(System.in)

B.輸出到屏幕上,顧名思義就是控制臺(tái)。所以輸出流是System.out,因?yàn)槭俏谋据敵觯允褂肙utputStreamWriter(System.out)

C.如果要提高輸入輸出效率,就得使用裝飾類。

所以最終代碼如下:

BufferedReaderbufr=

newBufferedReader(new InputStreamReader(System.in));

BufferedWriterbufw=

newBufferedWriter(new OutputStreamWriter(System.out));

如果要求改為將鍵盤輸入的數(shù)據(jù)存入一個(gè)文件中,并按照UTF-8的編碼形式。

BufferedReaderbufr=

newBufferedReader(new InputStreamReader(System.in));

BufferedWriterbufw=

newBufferedWriter(new OutputStreamWriter

(new PrintStream(“TransDemo.txt”), “UTF-8”));

第二篇:黑馬程序員——IO(Input Output)流總結(jié)(一)

IO(Input Output)流總結(jié)

(一)IO流是處理數(shù)據(jù)之間數(shù)據(jù)傳輸?shù)摹?/p>

Java對(duì)數(shù)據(jù)的操作是通過流的方式。

Java中用于操作IO流的對(duì)象都放在java.io包中。

流的分類:按照操作數(shù)據(jù)分為:字符流和字節(jié)流。

按照流向分為:輸入流和輸出流。

輸入流:輸出流:

字符流:

ReaderWriter

|--BufferedReader|--BufferedWriter

|--inputStreamReader|--OutputStreamWriter

|--FileReader|--FileWriter

字節(jié)流:

InputStreamOutputStream

|--FileInputStream|--FileOutputStream

InputStreamOutputStream

|--FilterInputStream|--FilterOutputStream

|--BufferedInputStream|--BufferedOutputStream

在計(jì)算機(jī)中存儲(chǔ)的都是1和0的序列。也就是二進(jìn)制的有序序列,不論是文本、音樂或者是視頻。

那么為什么要在流中定義字節(jié)流和字符流呢?

這個(gè)與我們的字符編碼方式有關(guān)。我們都知道世界上有很多種的語言,比如:ASCII、GB2312、GBK、UTF-8和Unicode等。

如果一個(gè)文本文件使用GB2312編碼的方式存儲(chǔ)的,如果我們用Unicode的編碼方式來讀取,那么就會(huì)出現(xiàn)亂碼。所以字符流是一種特殊的流,在java中就定義了專門處理字符的流對(duì)象。

當(dāng)我們拿到一個(gè)API文檔我們應(yīng)該如何使用呢?

1,確定要使用的功能。

2,查閱API看有沒有相關(guān)的功能類。

3,如果沒有,就分析需要如何自定義一個(gè)出來,并且要使用到那些相關(guān)功能的類,這些類在API中有沒有定義。

4,不論有或者沒有需要自定義一個(gè),我們都要先查閱相關(guān)功能類的根類,那么查閱一個(gè)API的時(shí)候我們要注意一些什么呢?

5,找到相關(guān)功能根類,先看一下它是一個(gè)類,還是接口,還是抽象類,如果是接口或

者是抽象類我們就不能直接使用這個(gè)類,而要使用這個(gè)類的子類。

6,但是,我們不用急于先看它有哪些子類,我們先看一下它到底暴露了什么字段、構(gòu)造函數(shù)和方法。

7,在查看暴露的信息時(shí),我們要注意幾點(diǎn):

a.如果是static修飾的,說明是靜態(tài)的,我們不用new對(duì)象也可以直接使用。

b.我們要確定自己要使用的方法將會(huì)返回的數(shù)據(jù)的類型,是void呢、String呢、int呢、還是其他的。查找的時(shí)候就重點(diǎn)找返回這些類型的方法。(注意:如果我們使用的類是一個(gè)使用單例設(shè)計(jì)模式設(shè)計(jì)的,那么他就沒有構(gòu)造函數(shù),我們就一般可以通過靜態(tài)的getIstance()方法獲取相應(yīng)的對(duì)象,這時(shí)我們就要找返回值是對(duì)象類型的方法。)

8,如果在根類中找到了需要的方法,但是根類又不能創(chuàng)建對(duì)象,那么我們就看看,繼承這個(gè)根類的子類有哪些,一般子類都繼承了父類的方法,所以子類可以直接調(diào)用父類的方法,并且子類又定義了一些自身特別的方法。

9,找到需要的類創(chuàng)建對(duì)象,或者找到相關(guān)功能的對(duì)象自定義一個(gè)需要的類。

下面我們按照以上的方法來闡述IO流的學(xué)習(xí):

字節(jié)流:

字節(jié)流的根類有:讀取流(Reader)、寫入流(Writer)

根類都是abstract(抽象)的,我們不能直接創(chuàng)建對(duì)象,但是我們可以看一看父類都定義了什么方法。

Reader:

int read()

讀取單個(gè)字符。

int read(char[] cbuf)

將字符讀入數(shù)組。

abstractint read(char[] cbuf, int off, int len)

將字符讀入數(shù)組的某一部分。

intread(CharBuffer target)

試圖將字符讀入指定的字符緩沖區(qū)。

abstractvoid close()

關(guān)閉該流并釋放與之關(guān)聯(lián)的所有資源。

FileReader:Reader的子類,可以創(chuàng)建對(duì)象,專門用來操作字符數(shù)據(jù)流的。

Writer:

void write(char[] cbuf)

寫入字符數(shù)組。

abstractvoid write(char[] cbuf, int off, int len)

寫入字符數(shù)組的某一部分。

void write(int c)

寫入單個(gè)字符。

void write(String str)

寫入字符串。

void write(String str, int off, int len)

寫入字符串的某一部分。

abstractvoid close()

關(guān)閉此流,但要先刷新它。

abstractvoid flush()

刷新該流的緩沖。

寫入流(Writer)在每次調(diào)用write()方法的時(shí)候都要flush()(刷新)一次,當(dāng)然Writer也不能創(chuàng)建對(duì)象,我們可以使用他的子類FileWriter,F(xiàn)ileWriter是專門處理字符寫入流的類。

FileReader 和 FileWriter 為我們提供了操作字符數(shù)據(jù)流的一般方法,其中比較高效的就是自定義一個(gè)數(shù)組,用這個(gè)數(shù)組作為臨時(shí)存儲(chǔ)區(qū),每次讀取一塊(裝滿數(shù)組)數(shù)據(jù),然后再將這一塊數(shù)據(jù)寫入相應(yīng)的目的地。這樣就提高了效率,如果每次讀取一個(gè)字符然后寫入一個(gè)字符,就很低效,是不可取的。

自定一個(gè)數(shù)組為我們提高了效率,但是每次使用都要寫很多代碼,所以開發(fā)者就將這個(gè)數(shù)組封裝為了一個(gè)特殊的對(duì)象。那就是緩沖區(qū)!BufferedReader(字符讀取緩沖區(qū))和BufferedWriter(字符寫入緩沖區(qū))。他是用的是裝飾設(shè)計(jì)模式,是再不改變?cè)瓉硪讯x類的基礎(chǔ)上增強(qiáng)類的功能。

補(bǔ)充:BufferedReader的子類LineNumberReader,增加了int getLineNumber():獲得當(dāng)前行號(hào)的功能,我們可以在使用緩沖區(qū)的同時(shí)讀取行號(hào)。

裝飾設(shè)計(jì)模式:

當(dāng)想要對(duì)已有的對(duì)象進(jìn)行功能增強(qiáng)時(shí),可以定義類,將已有對(duì)象傳入,基于已有的功能,并提供加強(qiáng)功能。那么自定義的該類稱為裝飾類。

字符流學(xué)習(xí)完了,那么如果要學(xué)習(xí)字節(jié)流就會(huì)簡單很多,我們通過查閱API知道:很多方法都似曾相識(shí)。所以,總結(jié)一下就是下面幾點(diǎn):

A.字節(jié)流分為:InputStream(讀取流)和OutputStream(寫入流)

B.字節(jié)流和字符流的功能基本相同,只不過傳入的參數(shù)由字符流中的字節(jié)char,變成了字節(jié)中的byte。

C.字節(jié)流也具有緩沖區(qū):

BufferedInputStream(字節(jié)讀取緩沖區(qū))和BufferedOutputStream(字節(jié)寫入緩沖區(qū))。方法與字符緩沖區(qū)相似。

第三篇:黑馬程序員視頻總結(jié)

面向?qū)ο螅好嫦驅(qū)ο笫窍鄬?duì)于面向過程而言的。面向過程強(qiáng)調(diào)的是功能,面向?qū)ο髮⒐δ芊庋b進(jìn)對(duì)象,強(qiáng)調(diào)的是具有功能的對(duì)象。

類是對(duì)現(xiàn)實(shí)生活的描述。對(duì)象是一類事物實(shí)實(shí)在在存在的個(gè)體。

堆內(nèi)存和棧內(nèi)存:基本類型的變量和對(duì)象的引用存儲(chǔ)在棧內(nèi)存;用new創(chuàng)建的對(duì)象和數(shù)組存儲(chǔ)在堆內(nèi)存。

封裝:隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對(duì)外提供公共訪問方法。原則:將不需要對(duì)外提供的內(nèi)容都隱藏起來,將屬性都隱藏,提供公共方法對(duì)其訪問。好處:提高安全性,便于使用,提高重用性。

什么時(shí)候使用靜態(tài)?成員變量:當(dāng)對(duì)象中有共享數(shù)據(jù)時(shí)。成員函數(shù):函數(shù)內(nèi)部沒有訪問到非靜態(tài)數(shù)據(jù)(對(duì)象的特有數(shù)據(jù))。

幫助文檔制作:/***/@author作者;@version 版本;@param 參數(shù);@return 返回結(jié)果 命令:javadoc-d 文件夾-author-version xxx.java。將生成一系列網(wǎng)頁。

靜態(tài)代碼塊:static{}。用于給類進(jìn)行初始化,只執(zhí)行一次,優(yōu)先于主函數(shù)。

Person p=new Person():

1、找到Person.class加載到內(nèi)存。

2、執(zhí)行static代碼塊。

3、在棧內(nèi)存中開辟main()方法空間,并分配一個(gè) 變量p。

4、在堆內(nèi)存中開辟實(shí)體空間。

5、進(jìn)行屬性的空間分配,并進(jìn)行默認(rèn)初始化。

6、對(duì)空間屬性進(jìn)行顯示初始化。

7、實(shí)體的構(gòu)造代碼初始化。

8、調(diào)用對(duì)應(yīng)的構(gòu)造函數(shù),進(jìn)行構(gòu)造函數(shù)初始化。

9、將實(shí)體空間首地址賦給p。單例:

class Single{

private Single(){} //私有化構(gòu)造函數(shù)。

private static Single s = new Single();//靜態(tài)方法要訪問它,所以也要靜態(tài)化。靜態(tài)方法不能訪問非靜態(tài)的方法和屬性。創(chuàng)建私有并靜態(tài)的本類對(duì)象。

public static Single getInstance(){ //無法通過對(duì)象調(diào)用,只能是靜態(tài)。定義公有并靜態(tài)的方法,返回該對(duì)象。

return s;

}

}

//懶漢式:延遲加載方式。

class Single2{

private Single2(){}

private static Single2 s = null;

public static synchronized Single2 getInstance(){

if(s==null)

s = new Single2();

return s;

}

}

繼承:提高代碼復(fù)用性,并為多態(tài)打下基礎(chǔ)。Java只支持單繼承。多繼承隱患:多個(gè)父類定義相同功能時(shí),子類對(duì)象不確定要運(yùn)行哪一個(gè)。重載:方法名相同,但參數(shù)不同的多個(gè)同名函數(shù);

覆蓋:子類重寫父類的方法,要求方法名和參數(shù)類型完全一樣(參數(shù)不能是子類),返回值和異常比父類小或者相同(即為父類的子類),訪問修飾符比父類大或者相同

隱藏:父類和子類擁有相同名字的屬性或者方法時(shí),父類的同名的屬性或者方法形式上不見了,實(shí)際是還是存在的。

多態(tài):同一操作作用于不同的對(duì)象,可以有不同的解釋,產(chǎn)生不同的執(zhí)行結(jié)果。

內(nèi)部類:內(nèi)部類可以直接訪問外部類的成員,包括私有。外部類必須建立內(nèi)部類對(duì)象才能訪問內(nèi)部類成員。

異常體系:error和exception

==和equals()的區(qū)別:“==”和“!=”比較的是“棧”中的內(nèi)容(對(duì)象的地址),而equals()比較的是“堆”中的內(nèi)容(對(duì)象的內(nèi)容)。

多線程:建立線程兩種方法:

1、繼承Thread類;

2、實(shí)現(xiàn)Runnable接口。繼承接口避免了單繼承的局限性。

線程對(duì)象.setDaemon(true)設(shè)置守護(hù)線程。線程啟動(dòng)前調(diào)用,當(dāng)正在運(yùn)行的線程只有守護(hù)線程時(shí),java虛擬機(jī)退出。

當(dāng)a線程執(zhí)行b線程的.join()方法時(shí),a會(huì)等待b線程執(zhí)行完才會(huì)執(zhí)行。

線程對(duì)象.setPriority()設(shè)置線程優(yōu)先級(jí)。

StringBuilder不是線程安全的,速度快;StringBuffer線程安全,慢。

泛型是一個(gè)類型安全機(jī)制,用于解決安全問題。

集合:

為方便存儲(chǔ)和操作對(duì)象,出現(xiàn)集合類。數(shù)組可以存儲(chǔ)對(duì)象,但長度固定,集合長度可變;數(shù)組可以存儲(chǔ)基本數(shù)據(jù)類型,集合只能存儲(chǔ)對(duì)象。

Collection:List和Set

List:有序,元素可以重復(fù),有索引。

ArrayList,底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組。查找速度快。刪除元素用equals()判斷

LinkList,鏈表,增刪速度快。

Vector。線程同步,數(shù)組,查找速度快。

Set:無序。元素唯一。

HashSet:底層數(shù)據(jù)結(jié)構(gòu)式哈希表。通過hashCode()和equals()方法保持唯一性。如果元素hashCode值相同才會(huì)判斷equals是否為true;

TreeSet:底層是二叉樹。可以對(duì)元素進(jìn)行排序。按自然順序就是compareTo()。

實(shí)現(xiàn)排序的兩種方法:

1、實(shí)現(xiàn)Comparable接口,覆蓋comapreTo(Object obj)方法。

2、實(shí)現(xiàn)Comparator接口,覆蓋compare(Object,Object)方法。

Map:

Hashtable,底層哈希表,不可以存儲(chǔ)null值或鍵。線程同步。效率低。

HashMap,哈希表,允許使用null值或鍵。不同步,效率高。

TreeMap。底層是二叉樹,線程不同步。可以給鍵進(jìn)行排序。

獲取Map元素的兩種方法:

1、Set keyset,將Map集合中的鍵存入Set集合;

2、Set> mapEntry,將Map集合中的映射關(guān)系存入Set集合。

Collections:java集合的工具類,用于操作集合類。

Arrays集合:用于操作數(shù)組的工具類。

1.5新特性:可變參數(shù),int...arr

靜態(tài)導(dǎo)入:import static java.lang.System.*;用于導(dǎo)入靜態(tài)方法;import java.lang.*;用于導(dǎo)入類文件。

System類:getProperties()方法獲得返回系統(tǒng)屬性Properties(Map集合子類)對(duì)象。Runtime類:運(yùn)行時(shí)操作類。單例設(shè)計(jì)模式。

Calendar類:抽象類,用getInstance()獲得對(duì)象。

Math類。

IO流:

常用基類:派生子類用父類名做后綴

字節(jié)流:InputStream,OutputStream

字符流:Reader,Writer

字符流:FileWriter,FileReader,需要flush();

字符流緩沖區(qū):BufferedReader,BufferedWriter;要結(jié)合流才能使用。需要flush(),關(guān)閉緩沖區(qū)就是關(guān)閉緩沖區(qū)的流對(duì)象。

LineNumberReader(FileReader)類,getLineNumber()方法可以獲得行號(hào)

字節(jié)流:FileOutputStream,F(xiàn)ileInputStream。操作多媒體文件。

轉(zhuǎn)換流:InputStreamReader,OutputStreamWriter。屬于字符流的子類。In(System.in),out返回字節(jié)流。

System.setIn(InputStream),System.setOut(PrintStream);改變標(biāo)準(zhǔn)輸入輸出。

File類:

合并流:SequenceInnputStream。用vector的elements()得到Enumeration。

切割文件:循環(huán)里邊創(chuàng)建流、關(guān)閉流。講一個(gè)文件分部分存儲(chǔ)在幾個(gè)文件中。

java.Awt:需要調(diào)用本地系統(tǒng)方法實(shí)現(xiàn)功能。

javax.Swing:完全由java實(shí)現(xiàn),增強(qiáng)移植性。

Component:

1、Container:Window,Panel

布局管理器:

1、FlowLayout,Panel默認(rèn)布局;

2、BorderLayout,F(xiàn)ram默認(rèn)。

TCP和UDP:TCP要經(jīng)過三次握手建立連接,傳輸大量數(shù)據(jù),可靠協(xié)議,效率低。UDP不需要建立連接,不可靠協(xié)議,速度快。

Socket:網(wǎng)絡(luò)服務(wù)的一種機(jī)制,網(wǎng)絡(luò)通信就是Socket間的通信,數(shù)據(jù)在兩個(gè)Socket間通信。TCP:Socket,ServerSocket

UDP:DatagramSocket,DatagramPacket

加強(qiáng):

overload:重載,存在于父類和子類、同類中。只能通過不同參數(shù)樣式重載。

override:重寫,存在于父類和子類之間。方法名、參數(shù)、返回值相同。子類方法不能縮小父類方法訪問權(quán)限。不能拋出更多異常。

可變參數(shù):int...arr

For循環(huán)增強(qiáng):for(int i:int[])

枚舉:讓某個(gè)變量的取值只能為若干個(gè)固定值中的一個(gè)。

反射:在運(yùn)行狀態(tài)能夠知道類的所有屬性和方法,并調(diào)用對(duì)象的任意一個(gè)方法。獲取類信息以及調(diào)用對(duì)象的方法。

類加載器:負(fù)責(zé)加載java類的字節(jié)碼到虛擬機(jī)中。每個(gè)類加載器加載類時(shí)先委托給其上級(jí)加載器,當(dāng)所有祖宗類加載器都沒有加載到類,回到發(fā)起者類加載器時(shí),還沒加載到類,拋出ClassNotFoundException異常。

JavaBean:有set和get方法獲得類屬性的特殊java類。用于傳遞數(shù)據(jù)信息。

內(nèi)省:IntroSpector,java語言對(duì)Javabean屬性、事件的一些缺省處理方法。

Beanutils工具包

注解:@Override表示當(dāng)前方法是覆蓋父類的方法。

@Deprecated表示當(dāng)前元素是不贊成使用的。

@SuppressWarnings 表示關(guān)閉一些不當(dāng)?shù)木幾g器警告信息。

Java系統(tǒng)默認(rèn)三個(gè)類加載器:BootStrap,ExtClassLoader,AppClassLoader

創(chuàng)建動(dòng)態(tài)類的實(shí)例對(duì)象:

1、通過實(shí)現(xiàn)的接口告訴要實(shí)現(xiàn)的動(dòng)態(tài)類要實(shí)現(xiàn)哪些方法。

2、產(chǎn)生的類的字節(jié)碼要有一個(gè)關(guān)聯(lián)的類加載器對(duì)象。

3、執(zhí)行代碼的對(duì)象InvocationHandler。

代理:用Proxy類的getProxyClass(classLoader,interface)獲得動(dòng)態(tài)類的字節(jié)碼文件。用反射獲得構(gòu)造器。用構(gòu)造器的newInstance()InvocationHandler接口的對(duì)象做參數(shù)獲得一個(gè)類對(duì)象。InvocationHandler對(duì)象重寫pubic Object invoke(Object proxy,Method method,Object

[] args)方法返回method.invoke(target,args)。

創(chuàng)建動(dòng)態(tài)代理對(duì)象步驟:

1、實(shí)現(xiàn)InvocationHandler 接口創(chuàng)建自己的調(diào)用處理器。重寫invoke方法。

2、用Proxy.newProxyInstance(classLoader,new Class[]{Interface.class},handler}方法獲得代理類實(shí)例。

Bank:

NumberManager類:產(chǎn)生客戶

Private int lastNumber;

Private List queueNumber;

int synchronized generateNewManager():產(chǎn)生新客戶號(hào)碼。客戶線程調(diào)用。

int synchronized fetchServiceNumber():取走客戶號(hào)碼。窗口線程調(diào)用。List是共享數(shù)據(jù)。需要互斥。

NumberMachine類:號(hào)碼管理器,采用單例設(shè)計(jì)模式

private NumberManager commonManager;用get()返回對(duì)象。

private NumberManager expressManager;用get()訪問。

private NumberManager vipManager;用get()訪問。

Enum CustomerType COMMON,EXPRESS,VIP;

ServiceWindow類:窗口

private int windowId;窗口號(hào)碼

enum CustomerType type;

public void start(){Executors.newSingleThreadExcutor().execute(new Runnable(){publicvoid run(){}})};根據(jù)type啟動(dòng)相應(yīng)的窗口服務(wù)。

MainClass:main()函數(shù)類

開啟5個(gè)普通窗口。

一個(gè)快速

一個(gè)vip

Executors.newScheduledThreadPool(1).scheduleAtFixedRate(NewRunnable(){重寫run},0,1,TimeUnit.SECONDS)。

第四篇:【黑馬程序員】Java之debug總結(jié)二

【黑馬程序員濟(jì)南】Java之debug總結(jié)二

之前詳細(xì)描述了4種debug方式,現(xiàn)在簡紹第5種,不足之處,敬請(qǐng)指正:(源碼在文章末尾處)五.maven項(xiàng)目debug

第一步:首先創(chuàng)建一個(gè)maven項(xiàng)目,如圖所示:

第二步:debug運(yùn)行前設(shè)置

黑馬程序員濟(jì)南中心 編著

執(zhí)行完上面的步驟,會(huì)出現(xiàn)如下彈出框

黑馬程序員濟(jì)南中心 編著

Source配置如下

黑馬程序員濟(jì)南中心 編著

黑馬程序員濟(jì)南中心 編著

黑馬程序員濟(jì)南中心 編著

第三步:Debug運(yùn)行,上面配置完成后,直接debug運(yùn)行即可,如下圖

第四步:打斷點(diǎn)測(cè)試結(jié)果

黑馬程序員濟(jì)南中心 編著

希望能對(duì)不會(huì)使用maven進(jìn)行debug的猿友們有所幫助,第六種方式我會(huì)盡快補(bǔ)上

maven-debug.zip

黑馬程序員濟(jì)南中心 編著

第五篇:黑馬程序員自薦信

自薦信_(tái)XXX_151********

姓名:XXX

電話:151********

郵箱:********n2009@126.com

尊敬的老師:

你好,我叫XXX,今年24歲,就讀于XXXX,XXXX專業(yè),將于2012年畢業(yè)。性格稍內(nèi)向,善于交流,看待事情能夠理性認(rèn)識(shí),善于思考,有團(tuán)隊(duì)合作精神。在學(xué)校的這三年多的時(shí)間里,由于專業(yè)需要,對(duì)計(jì)算機(jī)接觸較多。在開設(shè)的課程中學(xué)過C語言、C#、java等編程語言,對(duì)編程語言有一定的了解。在接觸java程序語言和J2ME手機(jī)游戲開發(fā)的學(xué)習(xí)中,對(duì)java產(chǎn)生了強(qiáng)烈的興趣,并對(duì)java學(xué)習(xí)有了一定的基礎(chǔ)。通過“黑馬程序員訓(xùn)練營”的官網(wǎng),我了解到了javaee+3G課程體系所包含的知識(shí)面廣,是經(jīng)過對(duì)java前景分析和現(xiàn)在就業(yè)所需技術(shù)要求而制定的,對(duì)我們這些即將參加就業(yè)、想?yún)⒓觠ava方面工作的人來說是最好的強(qiáng)心劑。課程安排科學(xué)合理,有助于學(xué)員深化對(duì)java的學(xué)習(xí),使學(xué)員掌握到真正前沿的技術(shù)。我深信,“黑馬程序員訓(xùn)練營”的講師是java培訓(xùn)和開發(fā)方面最棒的,這也是我鐘情于“黑馬程序訓(xùn)練營”的原因之一。由于家里生活拮據(jù),不想讓父母操心、給家里增加經(jīng)濟(jì)負(fù)擔(dān),是“黑馬程序員”給了我一個(gè)機(jī)會(huì)、給了我一份保證。

作為一名理科生,我有著很強(qiáng)的求知欲,勤奮,有上進(jìn)心,對(duì)于堅(jiān)信的事情能夠堅(jiān)持到底。在平時(shí)學(xué)習(xí)過程中,善于獨(dú)立思考,遇到問題會(huì)嘗試各種方法去解決(網(wǎng)絡(luò)、老師、同學(xué)都是我的獲得知識(shí)的途徑)。平時(shí)喜歡看一些和自己專業(yè)的書籍,樂于了解一些最前沿的科技和未來的發(fā)展趨勢(shì)。注重的基礎(chǔ)知識(shí)的同時(shí),喜歡探索新知識(shí),在收獲知識(shí)的同時(shí)也收獲著樂趣。學(xué)習(xí)是一輩子的事情,也是一件樂事,就算將來學(xué)校的生活結(jié)束了,學(xué)習(xí)也永遠(yuǎn)不會(huì)落下。

我非常期待能成為“黑馬程序員訓(xùn)練營”的一員,如果這個(gè)愿望能實(shí)現(xiàn),我將以最大的熱情投入到“黑馬程序員訓(xùn)練營”的學(xué)習(xí)中去,用自己的努力去實(shí)現(xiàn)的自身價(jià)值,用自己的成績回報(bào)“黑馬程序員訓(xùn)練營”。我堅(jiān)定工作后的第一件事就是努力工作,用工資償還培訓(xùn)期間的費(fèi)用,絕不辜負(fù)“黑馬程序員訓(xùn)練營”對(duì)我的信任和老師的培養(yǎng)!請(qǐng)給我一份信任,我將以自己的自己的行動(dòng)去回報(bào)。

擇是我的期望,給我一次機(jī)會(huì)還你一份驚喜。

非常感激你能在百忙之中翻閱我的自薦信。祝你工作順利,事業(yè)蒸蒸日上!

此致

敬禮

自薦人:XXX

2012年02月17號(hào)

下載黑馬程序員——IO(Input Output)流總結(jié)(二)五篇范文word格式文檔
下載黑馬程序員——IO(Input Output)流總結(jié)(二)五篇范文.doc
將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    【黑馬程序員】Java基礎(chǔ)總結(jié)

    【黑馬程序員】Java基礎(chǔ)總結(jié) 黑馬程序員的javaEE課程主要分為2個(gè)部分:java基礎(chǔ)+java就業(yè)。今天就簡單的給大家總結(jié)一下咱們java基礎(chǔ)的知識(shí)。 注:Java采用Unicode符號(hào)集,每個(gè)......

    黑馬程序員:Java集合簡單總結(jié)

    黑馬程序員:Java集合簡單總結(jié) 在Java語言中,學(xué)好集合是非常重要的,下面簡單的對(duì)集合進(jìn)行總結(jié),以便大家學(xué)習(xí),有問題再相互交流。 集合框架圖 在集合框架圖中可以看出,Collection接......

    黑馬程序員自薦信[五篇模版]

    黑馬程序員自薦信在當(dāng)今社會(huì)中,需要使用自薦信的場(chǎng)合越來越多,自薦信可以幫助我們更好地提出請(qǐng)求。你還在為寫自薦信而苦惱嗎?以下是小編為大家整理的黑馬程序員自薦信,僅供參考......

    黑馬程序員基礎(chǔ)測(cè)試題

    黑馬程序員基礎(chǔ)測(cè)試題 1、 已知一個(gè)int數(shù)組, 編程從數(shù)組中獲取最大數(shù). 2、 編寫一個(gè)方法(名字自定,但要符合Java編碼規(guī)范),方法內(nèi)打印一字符串,并在main方法內(nèi)調(diào)用它。 3、 環(huán)......

    【黑馬程序員】Java之debug總結(jié)三

    【黑馬程序員】Java之debug總結(jié)三 之前寫了"Java之debug總結(jié)一","Java之debug總結(jié)二"共總結(jié)了5種debug方式,現(xiàn)在簡紹第6種,不足之處,敬請(qǐng)指正:(源碼在文章末尾處) 本文以chr......

    黑馬程序員:AJAX入門系列(★)

    黑馬程序員:AJAX入門系列 什么是AJAX? AJAX是”Asynchronous JavaScript and XML”的縮寫(異步的JavaScript和XML),即一種實(shí)現(xiàn)無頁面刷新獲取服務(wù)器數(shù)據(jù)的混合技術(shù)。 XML是什么......

    黑馬程序員C語言教程:《C語言常用字符串接口總結(jié)》

    《C語言常用字符串接口總結(jié)》 1)字符串操作 strcpy(p, p1) 復(fù)制字符串 strncpy(p, p1, n) 復(fù)制指定長度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定長度字......

    黑馬程序員_PHP_課程同步筆記day05:CSS介紹(二)

    【黑馬程序員】PHP課程同步筆記day05:CSS介紹(二) CSS內(nèi)邊距屬性:padding填充 ?Padding:一個(gè)數(shù)字,指的是四個(gè)方向是一樣的(上右下左) Padding的四個(gè)屬性: ? Padding-top(上內(nèi)邊距),p......

主站蜘蛛池模板: 久久精品一区二区三区四区| 蜜臀av色欲a片无码一区二区| 国内熟妇人妻色在线视频| 人人超人人超碰超国产97超碰| 男人的天堂2018无码| 久久久久久精品成人鲁丝电影| 大乳丰满人妻中文字幕日本电影| 亚洲色欲综合一区二区三区小说| 亚洲国产精品线路久久| 野狼第一精品社区| 亚洲精品久久久久中文第一幕| 国自产偷精品不卡在线| 丰满熟女人妻中文字幕免费| 国产精品亚洲а∨无码播放不卡| 在线 国产 精品 蜜芽| 亚洲人成色77777在线观看| 亚洲春色在线视频| 大又大粗又爽又黄少妇毛片免费| 乱码午夜-极品国产内射| 黑人巨大精品欧美一区二区免费| 丰满人妻被黑人猛烈进入| 国产成人综合一区人人| 国产精品亚洲一区二区无码| 男女做受高潮试看120秒| 少妇高潮太爽了在线观看| 国产av无码专区亚洲av果冻传媒| 国产黄三级高清在线观看播放| 国产欧美一区二区精品久久久| 日本天堂免费观看| 国产av无码专区亚洲avjulia| 欧美日韩精品久久久免费观看| 国产美女在线精品免费观看| 无码人妻精品一区二区三区免费| 国产精品 精品国内自产拍| 亚洲精品久久久久久动漫| 精品国偷自产在线视频| 一本一久本久a久久精品综合| 亚洲高清一区二区三区电影| 在线观看黄片| 久热国产精品视频一区二区三区| 久久精品国产99国产精品澳门|