學習筆記之JavaSE(47)--IO流9
public class Test91 { public static void main(String[] args) throws ClassNotFoundException { // 物件序列化 ObjectOutputStream oos = null; try { oos = new ObjectOutputStream(new FileOutputStream("obj.ser")); oos.writeObject(new Person("k", 11));// 如果引數型別沒有實現Serializable介面,發生NotSerializableException oos.writeObject(new Person("kk", 21)); oos.writeObject(new Person("kkk", 31)); // oos.writeObject(new Student());可序列化的類的子類是自動可序列化的 } catch (IOException e) { e.printStackTrace(); } finally { if (oos != null) { try { oos.close(); } catch (IOException e) { throw new RuntimeException("關閉資源失敗"); } } } // 物件的反序列化 ObjectInputStream ois = null; try { ois = new ObjectInputStream(new FileInputStream("obj.ser")); Person p1 = (Person) ois.readObject(); Person p2 = (Person) ois.readObject(); Person p3 = (Person) ois.readObject(); ArrayList<Person> list = new ArrayList<>(); list.add(p1); list.add(p2); list.add(p3); for (Person person : list) {// 讀取物件的順序與寫入物件的順序一致 System.out.println("非靜態變數:" + person.getName());// 非靜態變數的值被還原 System.out.println("瞬時變數:" + person.getAge());// 瞬時變數會被賦預設值0 System.out.println("靜態變數:" + Person.getLength());// 靜態變數的值不變 } } catch (IOException e) { e.printStackTrace(); } finally { if (oos != null) { try { oos.close(); } catch (IOException e) { throw new RuntimeException("關閉資源失敗"); } } } } } class Person implements Serializable {// 如果要讓該類物件可以被序列化,就實現Serializable介面 /** * */ private static final long serialVersionUID = 393843429975524886L; private String name; private transient int age;// 反序列化之後會被賦預設值0 private static int length = 100; public Person() { super(); } public Person(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public static int getLength() { return length; } public static void setLength(int length) { Person.length = length; } } class Student extends Person { /** * */ private static final long serialVersionUID = -8780508815255118201L; }
相關推薦
學習筆記之JavaSE(47)--IO流9
public class Test91 { public static void main(String[] args) throws ClassNotFoundException { // 物件序列化 ObjectOutputStream oos = null; try { oos
學習筆記之JavaSE(40)--IO流2
今天學習的內容是位元組流和位元組流緩衝區 位元組流與字元流的基本操作相同,注意位元組流的輸出沒有用到緩衝區,下例使用FileOutputStream類和FileInputStream類實現對文字檔案的讀寫(位元組流不能直接處理字元內容,只能直接處理位元組內容): pub
JavaSE 學習筆記之封裝(四)
延遲加載 分類 static str super 想要 oid 懶漢式 可靠性 封 裝(面向對象特征之一):是指隱藏對象的屬性和實現細節,僅對外提供公共訪問方式。 好處:將變化隔離;便於使用;提高重用性;安全性。 封裝原則:將不需要對外提供的內容都隱藏起來,把屬性都隱藏,提
JavaSE 學習筆記之繼承(五)
內容 訪問 類繼承 mil 抽象方法 ted 內部 -- 中一 繼 承(面向對象特征之一) 好處: 1:提高了代碼的復用性。 2:讓類與類之間產生了關系,提供了另一個特征多態的前提。 父類的由來:其實是由多個類不斷向上抽取共性內容而來的。 java中對於繼承,java只
學習筆記之iptables(一)
1.防火牆的基礎知識 首先需要認識到什麼是防火牆,防火牆是通過一些有順序的規則。給從網路中進入到主機應用層之間的通道上設定很多道攔截的口,每個口會有一堆規則去匹配。匹配上,如果是匹配結果是通過就放行,如果是匹配結果是拒絕,就不
Java學習筆記之FreeTTS(語音)
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
AAC學習筆記之Dagger(一)
本文為《Android Architecture Components學習筆記》的一部分 文件程式碼為Kotlin,但是系統生成的程式碼仍然為Java 本人水平有限,如有不當之處請不吝賜教 Dagger初接觸 Dagger並不是AAC的一部分,但是在專案中
JavaWeb學習筆記之XML(2)
文章目錄 xml的解析(jaxp) dom方式解析xml sax方式解析xml dom4j解析器 相關知識: https://blog.csdn.net/mokexfdgh/articl
JavaWeb學習筆記之XML(1)
文章目錄 XML 表單提交方式 XML的介紹 XML的應用 XML的語法 XML的dtd約束 schema約束 相關知識: https://blog.csd
TypeScript學習筆記之 介面(Interface)
在java中,介面是用來定義一些規範,使用這些介面,就必須實現介面中的方法,而且介面中的屬性必須是常量。 javascript中是沒有介面的概念的。所以TypeScript在編譯成 JavaScrip
機器學習筆記之SVM(SVR)演算法
學過SVM後,看了那麼多別人的文章,是時候自己總結一波了。權當寫的筆記供自己日後再回顧吧。 PS:結合自己在工作過程中(我這裡用SVR做股票預測)用到的知識來寫的,不會很全面,若有些知識這裡沒提及讀者
java學習筆記之webservice(二)--WSDL文件及用myeclipse測試webservice
>>接上篇 一、WSDL 定義:web services description language,用來描述web服務的xml格式的資訊。 標籤的解釋 1. <types>:定義了服務的namespace和關鍵資訊的型別(方法的引數型別和返回值的
glib學習筆記之二(續)——GLib核心應用支援:The Main Event Loop
原文地址 描述 The main event loop manages all the available sources of events for GLib and GTK+ applications. These events can come from any n
JavaSE(六):IO流
一、概序 Java IO:通過資料流、序列化和檔案系統提供系統輸入和輸出,即Java 輸入輸出系統。 流:資料流,從中讀到資料,往裡面寫入資料。流是資料流向的媒介。二、型別數據流的方向不同可
設計模式C++學習筆記之十三(Decorator裝飾模式)
com img c++ 進行 done 設計 out set 筆記 裝飾模式,動態地給一個對象添加一些額外的職責。就增加功能來說,Decorator模式相比生成子類更為靈活。 13.1.解釋 main(),老爸 ISchoolReport,成績單接口 CFourthGrad
python學習筆記之socket(第七天)
.cn 七天 就是 模塊 AR 操作 alt 分享圖片 python學習 參考文檔: 1、金角大王博客:http://www.cnblogs.com/alex3714/articles/5227251.html
C++學習之路(47)---C++類模板與模板類深入詳解
1、在c++的Template中很多地方都用到了typename與class這兩個關鍵字,而且有時候二者可以替換,那麼是不是這兩個關鍵字完全一樣呢? 事實上class用於定義類,在模板引入c++後,最初定義模板的方法為:template<class T>,這裡cl
LTE學習筆記之CSI(Channel State Information)
基本概念 CSI 是通道狀態資訊, Channel Status Information, 它是一個衡量通道好壞的指標。 有三個引數:CQI,PMI和RI。根據網路狀態和配置,這三個引數通過不同形式的組合成為CSI上報,不一定三個引數全都上上報。 FAQ CSI是一個很複
Socket學習筆記之二(常用基本函式)
函式:u_long htonl(u_long hostlong)u_short htons(u_short hostshort)u_long ntohl(u_long netlong)u_short ntohs(u_short netshort)這上面四個函式類似,功能相似,都用來轉換資料格式。用
nsq源碼閱讀筆記之nsqd(一)——nsqd的配置解析和初始化
con views pos 直接 rgba 函數調用 程序 spa 重命名 配置解析nsqd的主函數位於apps/nsqd.go中的main函數首先main函數調用nsqFlagset和Parse進行命令行參數集初始化, 然後判斷version參數是否存在,若存在,則打印版