华南俳烁实业有限公司

考試首頁 | 考試用書 | 培訓(xùn)課程 | 模擬考場(chǎng) | 考試論壇  
全國  |             |          |          |          |          |         
  當(dāng)前位置:計(jì)算機(jī)等級(jí) > 二級(jí)考試 > Java語言程序設(shè)計(jì) > 考試輔導(dǎo) > 文章內(nèi)容
  

全國計(jì)算機(jī)等級(jí)考試二級(jí)Java重點(diǎn)內(nèi)容(6)

中華IT學(xué)院   【 】  [ 2016年9月17日 ]

案例一:ObjectIODemo(理解  對(duì)象序列化概念,重復(fù)講下深層、淺層復(fù)制)

   1、對(duì)象的序列化: 將Object轉(zhuǎn)換為byte序列,就是序列化,反之叫反序列化

   2、為什么要序列化: 為了在byte流中存儲(chǔ)對(duì)象

   3、如何序列化: 使用writeObject(Object)/readObject()

 1) 序列化流, 是過濾流

    ObjectOutputStream writeObject(Object) 序列化對(duì)象

    ObjectInputStream readObject() 對(duì)象的反序列化

 2) 序列化接口(必須實(shí)現(xiàn)Serializable接口): 對(duì)象必須實(shí)現(xiàn)"序列化接口"才能進(jìn)行 "序列化"

    否則出現(xiàn)不能序列化的異常!

ObjectOutputStream out = new ObjectOutputStream(

        new BufferedOutputStream(

            new FileOutputStream(file)));

 往文件里寫入一個(gè)對(duì)象,從文件里讀一個(gè)對(duì)象,  深層復(fù)制,淺層復(fù)制

  List others = (List)in.readObject();

  List list = new ArrayList(cards);

案例二:ByteArrayStreamDemo(了解是字節(jié)流,在內(nèi)存中存取速度很快,內(nèi)存的io不用加緩存流)

    byte[] buf = {5,(byte)0xff,-1};//{05,ff,ff}

    //將byte數(shù)組作為流進(jìn)行讀取處理, 流不僅僅是出來文件的!

    ByteArrayInputStream in =

      new ByteArrayInputStream(buf);

   ByteArrayOutputStream out =

   //BAOS 中包含一個(gè)變長Byte數(shù)組

  //將內(nèi)存中的變長byte[] 數(shù)組作為輸出流 

      new ByteArrayOutputStream();

    out.write(5);

 案例三: ByteArrayIODemo(沒有新的內(nèi)容,只是底層的字節(jié)流換了,過濾流(功能加強(qiáng)流)還是一樣的)

案例四:CopyDemo:    IOUtils    public static Object deepCopy(Object obj){

Java 多線程編程(多線程程序的意義:支持代碼并行)

重點(diǎn):java創(chuàng)建線程的兩種方式    線程圖

一、概念

  1) 程序: 指令+數(shù)據(jù)的byte序列, 如: qq.exe

  2) 進(jìn)程: 正在運(yùn)行的程序, 是程序動(dòng)態(tài)的執(zhí)行過程(運(yùn)行于主存儲(chǔ)器)

  3) 線程: 在進(jìn)程內(nèi)部, 并發(fā)運(yùn)程的過程(方法)

  4) 并發(fā): 進(jìn)程是并發(fā)運(yùn)行的, OS將時(shí)間劃分為很多時(shí)間片段, 盡可能

   均勻分配給正在運(yùn)行的程序, 微觀上進(jìn)程走走停停, 宏觀上都在運(yùn)行

   這種都運(yùn)行的現(xiàn)象叫: 并發(fā), 但是不是絕對(duì)意義上的"同時(shí)"

二、java創(chuàng)建一個(gè)線程的方法   對(duì)照案例一:     對(duì)照代碼畫一下執(zhí)行線程圖,重點(diǎn)表達(dá)與main()的關(guān)系,啟動(dòng)線程后,與main就沒關(guān)系了)

   在java中,所有線程都直接間接由主線程啟動(dòng),但啟動(dòng)后獨(dú)立于主線程

    1、 繼承Thread類, 覆蓋run()方法, 提供并發(fā)運(yùn)程的過程

    2、創(chuàng)建這個(gè)類的實(shí)例

    3、使用start() 方法啟動(dòng)線程   // 重點(diǎn):調(diào)用重寫后的run方法

   案例三:

  2)實(shí)現(xiàn)Runnable接口  

    a 實(shí)現(xiàn)Runnable接口, 實(shí)現(xiàn)run()方法, 提供并發(fā)運(yùn)程的過程

    b 創(chuàng)建這個(gè)類的實(shí)例, 用這個(gè)實(shí)例作為Thread構(gòu)造器參數(shù)

      創(chuàng)建Thread類.

    c 使用start() 方法啟動(dòng)線程

    class Foo implements Runnable{

             public void run(){

                       //....

             }

    }

    Thread t = new Thread(new Foo());

    t.start();

案例二:CurrentThreadDemo

    //main方法被主線程調(diào)用,主線程是Thread實(shí)例

    //可以使用Thread.currentThread()獲得正在調(diào)用當(dāng)前方法的線程

重點(diǎn)理解:方法是被線程調(diào)用的,具體是哪個(gè)線程,運(yùn)行期決定

兩種工作中用得比較多的寫法:

  new Thread(){

      public void run(){.....}

    }.start();

    new Thread(new Runnable(){

      public void run(){......}

    }).start();

分享到:
本文糾錯(cuò)】【告訴好友】【打印此文】【返回頂部
將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動(dòng)訪問考試網(wǎng) | 復(fù)制本頁地址,傳給QQ/MSN上的好友 | 申請(qǐng)鏈接 | 意見留言 TOP
關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
Copyright © 2007-2013 中華考試網(wǎng)(Examw.com) All Rights Reserved
开封县| 霍州市| 涪陵区| 乌什县| 大关县| 鹤峰县| 克东县| 澄城县| 涟源市| 临猗县| 浦县| 武安市| 泰和县| 武威市| 乌拉特后旗| 普安县| 白沙| 微博| 西青区| 宁安市| 平和县| 鲁山县| 武义县| 石家庄市| 克东县| 大港区| 瓮安县| 洛浦县| 平乐县| 永修县| 丰宁| 丰顺县| 滨海县| 称多县| 汉源县| 邹城市| 东光县| 五台县| 化德县| 平谷区| 东城区|