freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java教程第四講java的例外處理和i-資料下載頁(yè)

2025-08-12 09:37本頁(yè)面

【導(dǎo)讀】例外就是在程序的運(yùn)行過(guò)程中所發(fā)生的異常事件,它中斷指令的正常執(zhí)行。Java中提供了一種獨(dú)特的。處理例外的機(jī)制,通過(guò)例外來(lái)處理程序設(shè)計(jì)中出現(xiàn)的錯(cuò)誤。生成的例外對(duì)象將傳遞給。找到能夠處理這種類(lèi)型的例外的方法后,運(yùn)行時(shí)系統(tǒng)把當(dāng)前例外對(duì)象交給這個(gè)方法進(jìn)行處理,這一過(guò)。程稱(chēng)為捕獲例外。運(yùn)行時(shí)系統(tǒng)將終止,相應(yīng)的Java程序也將退出。在jdk中,每個(gè)包中都定義了例外類(lèi),而所有的例外類(lèi)都直接或間接地繼承于Throwable類(lèi)。jdk中例外類(lèi)的繼承關(guān)系。動(dòng)態(tài)鏈接失敗,虛擬機(jī)錯(cuò)誤等,通常Java程序不應(yīng)該捕獲這類(lèi)例外,也不會(huì)拋棄這種例外。由于這些例外產(chǎn)生的位置是未知的,Java編譯器允許程序員在程序中不對(duì)它們做出處理。Java編譯器要求在程序中必須處理這種例外,捕獲例外或者聲明拋棄例外。捕獲例外是通過(guò)try-catch-finally語(yǔ)句實(shí)現(xiàn)的。不論在try代碼塊中是否發(fā)生了異常事件,finally塊中的語(yǔ)。throws子句中同時(shí)可以指明多個(gè)例外,之間由逗號(hào)隔開(kāi)。可以拋出的例外必須是Throwable或其子類(lèi)的實(shí)例。

  

【正文】 (Serialization) 4. 8. 1 串行化的定義 1. 什么是串行化 對(duì)象的壽命通常隨著生成該對(duì)象 的程序的終止而終止。有時(shí)候,可能需要將對(duì)象的狀態(tài)保存下來(lái),在需要時(shí)再將對(duì)象恢復(fù)。我們把對(duì)象的這種能記錄自己的狀態(tài)以便將來(lái)再生的能力,叫做對(duì)象的持續(xù)性 (persistence)。對(duì)象通過(guò)寫(xiě)出描述自己狀態(tài)的數(shù)值來(lái)記錄自己,這個(gè)過(guò)程叫對(duì)象的串行化 (Serialization)。 2. 串行化的目的 串行化的目的是為 Java 的運(yùn)行環(huán)境提供一組特性,其主要任務(wù)是寫(xiě)出對(duì)象實(shí)例變量的數(shù)值。 4. 8. 2 串行化方法 在 包中,接口 Serializable 用來(lái)作為實(shí)現(xiàn)對(duì)象串行化的工具,只有實(shí)現(xiàn)了 Serializable 的類(lèi)的對(duì)象才可以被串行化。 1. 定義一個(gè)可串行化對(duì)象 public class Student implements Serializable{ int id。 //學(xué)號(hào) String name。 //姓名 int age。 //年齡 String department //系別 public Student(int id,String name,int age,String department){ = id。 = name。 = age。 = department。 } } 2. 構(gòu)造對(duì)象的輸入 /輸出流 要串行化一個(gè)對(duì)象,必須與一定的對(duì)象輸入 /輸出流聯(lián)系起來(lái),通過(guò)對(duì)象輸出流將對(duì)象狀態(tài)保存下來(lái),再通過(guò)對(duì)象輸入流將對(duì)象狀態(tài)恢復(fù)。 包中,提供了 ObjectInputStream 和 ObjectOutputStream 將數(shù)據(jù)流功能擴(kuò)展至可讀寫(xiě)對(duì)象。在 ObjectInputStream中用 readObject()方法可以直接讀取一個(gè)對(duì)象, ObjectOutputStream 中用 writeObject()方法可以直接將對(duì)象保存到輸出流中。 Student stu=new Student(981036,Liu Ming,18, CSD)。 FileOutputStream fo=new FileOutputStream()。 //保存對(duì)象的狀態(tài) ObjectOutputStream so=new ObjectOutputStream(fo)。 try{ (stu)。 ()。 }catch(IOException e ) {(e)。} FileInputStream fi=new FileInputStream()。 ObjectInputStream si=new ObjectInputStream(fi)。 //恢復(fù)對(duì)象的狀態(tài) try{ stu=(Student)()。 ()。 }catch(IOException e ) {(e)。} 在這個(gè)例子中,我們首先定義一個(gè)類(lèi) Student,實(shí)現(xiàn)了 Serializable 接口,然后通過(guò)對(duì)象輸出流的 writeObject()方法將 Student 對(duì)象保存到文件 中。之后,通過(guò)對(duì)象輸入流的 readObject()方法從文件 data.ser 中讀出保存下來(lái)的 Student 對(duì)象。 4. 8. 3 串行化的注意事項(xiàng) 1.串行化能保存的 元素 只能保存對(duì)象的非靜態(tài)成員變量,不能保存任何的成員方法和靜態(tài)的成員變量,而且串行化保存的只是變量的值,對(duì)于變量的任何修飾符,都不能保存。 2. transient 關(guān)鍵字 對(duì)于某些類(lèi)型的對(duì)象,其狀態(tài)是瞬時(shí)的,這樣的對(duì)象是無(wú)法保存其狀態(tài)的,例如一個(gè) Thread 對(duì)象,或一個(gè) FileInputStream 對(duì)象,對(duì)于這些字段,我們必須用 transient 關(guān)鍵字標(biāo)明 3. 定制串行化 缺省的串行化機(jī)制,對(duì)象串行化首先寫(xiě)入類(lèi)數(shù)據(jù)和類(lèi)字段的信息,然后按照名稱(chēng)的上升排列順序?qū)懭肫鋽?shù)值。如果想自己 明確地控制這些數(shù)值的寫(xiě)入順序和寫(xiě)入種類(lèi),必須定義自己的讀取數(shù)據(jù)流的方式。就是在類(lèi)的定義中重寫(xiě) writeObject()和 readObject()方法。 例如可在 的例子中,加入重寫(xiě)的 writeObject()和 readObject()方法,對(duì) Student 類(lèi)定制其串行化。 private void writeObject(ObjectOutputStream out)throws IOException { (id)。 (age)。 (name)。 (department)。 } private void readObject(ObjectInputStream in)throws IOException { id=()。 age=()。 name=()。 department=()。 } 4. 9 其它常用的流 4. 9. 1 管道流 管道用來(lái)把一個(gè)程序、線程或代碼塊的輸出連接到另一個(gè)程序、線程或代碼塊的輸入 。 管道輸入流作為一個(gè)通信管道的接收端,管道輸出流作為發(fā)送端。在使用管道之前,管道輸出流和管道輸入流必須進(jìn)行連接。下面有兩種連接的方法: 1. 構(gòu)造方法中連接 PipedInputStream(PipedOutputStream src)。 PipedOutputStream(PipedInputStream snk)。 2. connect()方法進(jìn)行連接 類(lèi) PipedInputStream 中定義為: void connect(PipedOutputStream src)。 類(lèi) PipedOutputStream 中定義為: void connect(PipedInputStream snk)。 4. 9. 2 內(nèi)存的讀 /寫(xiě) 1. ByteArrayInputStream 和 ByteArrayOutputStream ByteArrayInputStream //從字節(jié)數(shù)組中讀取以字節(jié)為單位的數(shù)據(jù) ByteArrayOutputStream //向字節(jié)數(shù)組中寫(xiě)入以字節(jié)為單位的數(shù) 據(jù) 2. StringBufferInputStream 和 StringBufferOutputStream StringBufferInputStream //從字符串緩沖區(qū) StringBuffer 中讀取以字符為單位的數(shù)據(jù) StringBufferOutputStream //向字符串緩沖區(qū) StringBuffer 中寫(xiě)入以字符為單位的數(shù)據(jù) 4. 9. 3 順序輸入流 SequenceInputStream 把幾個(gè)輸入流順序連接起來(lái)。順序輸入流提供了把若干不同的流統(tǒng)一為同一個(gè)流的功 能,使得程序變得更加簡(jiǎn)潔。 【本講小結(jié)】 例外處理是 Java 語(yǔ)言中一個(gè)獨(dú)特之處,主要使用捕獲例外和聲明拋棄例外兩種方法來(lái)處理程序中可能出現(xiàn)例外的語(yǔ)句塊,其中捕獲例外的方法是一種積極地處理例外的方法,而聲明拋棄例外是一種消極的處理例外的方法。 Java 中的輸入/輸出處理是通過(guò)使用流技術(shù),用統(tǒng)一的接口表示而實(shí)現(xiàn)的。輸入/輸出流中,最常見(jiàn)的是對(duì)文件的處理。 Java 語(yǔ)言中提供專(zhuān)門(mén)處理文件和目錄的類(lèi),例如: , , 和接口 。輸入/輸出流根據(jù)處理的內(nèi)容,分為字符流和字節(jié)流兩種,其中字節(jié)流是以 byte 為基本處理單位的流;而字符流是以 16 位的 Unicode 碼為處理單位的流。
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1