紫蝶∏飛揚↗
Purple Butterfly Flying QQ群:7101519 Flex,Ext,Spring,Hibernate,EOS,SpringSecurity,Struts http://algz.googlecode.com/svn/trunk/
首頁
新隨筆
聯系
聚合
管理
隨筆-9 評論-168 文章-266 trackbacks-0
[轉]Java Serializable(序列化)的理解和總結
1、序列化是干什么的?
簡單說就是為了保存在內存中的各種對象的狀態(也就是實例變量,不是方法),并且可以把保存的對象狀態再讀出來。雖然你可以用你自己的各種各樣的方法來保存object states,但是Java給你提供一種應該比你自己好的保存對象狀態的機制,那就是序列化。
2、什么情況下需要序列化
a)當你想把的內存中的對象狀態保存到一個文件中或者數據庫中時候;
b)當你想用套接字在網絡上傳送對象的時候;
c)當你想通過RMI傳輸對象的時候;
3、當對一個對象實現序列化時,究竟發生了什么?
在沒有序列化前,每個保存在堆(Heap)中的對象都有相應的狀態(state),即實例變量(instance ariable)比如:
1
Foo myFoo
=
new
Foo();
2
myFoo .setWidth(
37
);
3
myFoo.setHeight(
70
);
當 通過下面的代碼序列化之后,MyFoo對象中的width和Height實例變量的值(37,70)都被保存到foo.ser文件中,這樣以后又可以把它 從文件中讀出來,重新在堆中創建原來的對象。當然保存時候不僅僅是保存對象的實例變量的值,JVM還要保存一些小量信息,比如類的類型等以便恢復原來的對 象。
1
FileOutputStream fs
=
new
FileOutputStream(
"
foo.ser
"
);
2
ObjectOutputStream os
=
new
ObjectOutputStream(fs);
3
os.writeObject(myFoo);
4、實現序列化(保存到一個文件)的步驟
a)Make a FileOutputStream
1
FileOutputStream fs
=
new
FileOutputStream(
"
foo.ser
"
);
b)Make a ObjectOutputStream
1
ObjectOutputStream os
=
new
ObjectOutputStream(fs);
c)write the object
1
os.writeObject(myObject1);
2
os.writeObject(myObject2);
3
os.writeObject(myObject3);
d) close the ObjectOutputStream
1
os.close();
5、舉例說明
1
import
java.io.
*
;
2
3
4
public
class
Box
implements
Serializable
5
{
6
private
int
width;
7
private
int
height;
8
9
public
void
setWidth(
int
width)
{
10
this
.width
=
width;
11
}
12
public
void
setHeight(
int
height)
{
13
this
.height
=
height;
14
}
15
16
public
static
void
main(String[] args)
{
17
Box myBox
=
new
Box();
18
myBox.setWidth(
50
);
19
myBox.setHeight(
30
);
20
21
try
{
22
FileOutputStream fs
=
new
FileOutputStream(
"
foo.ser
"
);
23
ObjectOutputStream os
=
new
ObjectOutputStream(fs);
24
os.writeObject(myBox);
25
os.close();
26
}
catch
(Exception ex)
{
27
ex.printStackTrace();
28
}
29
}
30
31
}
32
33
6、相關注意事項
a)序列化時,只對對象的狀態進行保存,而不管對象的方法;
b)當一個父類實現序列化,子類自動實現序列化,不需要顯式實現Serializable接口;
c)當一個對象的實例變量引用其他對象,序列化該對象時也把引用對象進行序列化;
d)并非所有的對象都可以序列化,,至于為什么不可以,有很多原因了,比如:
1.安全方面的原因,比如一個對象擁有private,public等field,對于一個要傳輸的對象,比如寫到文件,或者進行rmi傳輸 等等,在序列化進行傳輸的過程中,這個對象的private等域是不受保護的。
2. 資源分配方面的原因,比如socket,thread類,如果可以序列化,進行傳輸或者保存,也無法對他們進行重新的資源分 配,而且,也是沒有必要這樣實現。
----------轉
http://xiebh.javaeye.com/blog/121311
posted on 2007-11-16 10:46
紫蝶∏飛揚↗
閱讀(282)
評論(0)
編輯
收藏
所屬分類:
隨想
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
相關文章:
myeclipse不能自動提示代碼的解決方法
Myeclipse8.6正確安裝svn插件的方法(其它采用更新URL的方式在集成后易出問題)
windows 2003 修改應用程序池默認連接數(5個)
使用JAVA發送mail時,總是報錯
[轉]在MyEclipse中調試部署到Websphere上的程序(測試正常,實際沒有這復雜,可看另一篇)
websphere 部署myeclipse開發打包的WAR文件報錯:
linux上安裝websphere6.1不彈出安裝界面
websphere控制臺中啟動/停止IBM HTTP SERVER服務報錯
RBAC基于角色的訪問控制(Role-Based Access Control)
SwfUpload(文件上傳組件) 使用過程中的小結(以下內容只作為個人筆記記載)
<
2025年5月
>
日
一
二
三
四
五
六
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
常用鏈接
我的隨筆
我的文章
我的評論
我的參與
最新評論
留言簿
(5)
給我留言
查看公開留言
查看私人留言
隨筆檔案
(9)
2011年12月 (1)
2011年6月 (1)
2011年2月 (1)
2011年1月 (2)
2010年9月 (1)
2009年9月 (2)
2009年5月 (1)
文章分類
(339)
ActionScript3
C#(1)
CSS(21)
div+css+js代碼(29)
EOS(9)
EXTJS(61)
Extjs4(1)
FLEX 4(2)
Hibernate(22)
JAVA(18)
JAVA 串行通信(2)
JQuery(4)
JSF(32)
Json(3)
JSP(9)
Linux(1)
MyEclipse 使用方法(4)
Python(1)
Spring(23)
Spring Security(2)
Struts1/2(4)
WEBService(2)
Websphere(4)
個人簡歷(1)
數據庫(15)
數據轉換(7)
目錄(2)
計算機技術與軟件專業技術資格(水平)考試(5)
重點(20)
隨想(34)
文章檔案
(265)
2014年4月 (1)
2013年9月 (1)
2013年3月 (1)
2013年2月 (1)
2013年1月 (1)
2012年8月 (1)
2012年6月 (2)
2012年5月 (2)
2012年4月 (1)
2012年3月 (5)
2012年2月 (2)
2011年12月 (6)
2011年11月 (3)
2011年8月 (1)
2011年6月 (8)
2011年5月 (1)
2011年4月 (2)
2011年3月 (9)
2011年2月 (1)
2011年1月 (9)
2010年12月 (1)
2010年11月 (2)
2010年10月 (1)
2010年9月 (11)
2010年7月 (1)
2010年6月 (7)
2010年5月 (7)
2010年4月 (9)
2010年3月 (1)
2010年1月 (2)
2009年12月 (3)
2009年11月 (7)
2009年10月 (11)
2009年9月 (7)
2009年8月 (7)
2009年5月 (9)
2009年4月 (10)
2009年3月 (11)
2009年2月 (9)
2008年10月 (3)
2008年9月 (18)
2008年8月 (4)
2008年7月 (3)
2008年6月 (3)
2008年5月 (7)
2008年4月 (13)
2008年3月 (16)
2008年2月 (3)
2007年11月 (12)
2007年10月 (9)
最新隨筆
1.?Java發送http請求 (get 與 post方法請求)
2.?反射生成筆記
3.?JAVA語言___文件下載功能模板.
4.?[轉]hibernate之生成的和默認的屬性值(使用generated刷新實體)
5.?CENTOS 簡介和鏡像下載
6.?JS 創建類---混合的構造函數/原型方式
7.?MyEclipse 布署相同分支的項目時,報錯 Exploded location overlaps an existing deployment解決辦法.
8.?Django1.4 報錯:Error: No module named mysite 解決方法
9.?[轉]UML類圖符號 各種關系說明以及舉例
10.?主機為202.130.82.97子網屏蔽碼為255.255.192.0,它所處的網絡為什么
11.?Extjs.tree.treePanel 自動查找node
12.?Myeclipse7.0和Myeclipse8.5 安裝插件(采用link方式)
13.?javascript中的空串,false,和0 比較運算關系
14.?軟件設計師重點難點---原碼,反碼,補碼,移碼計算方式
15.?軟件設計師重點難點---磁盤格式化容量,非格式化容量,數據傳輸率計算
16.?軟件設計師重點難點——系統可靠性計算
17.?EditorGridPanel 控制單元格的編輯功能
18.?[轉] JSON-lib框架,轉換JSON、XML不再困難
19.?JS 數組對象的John方法
20.?JS 雙豎線運算符
21.?連接字符串代碼(寫的不錯)
22.?[轉]Hibernate Annotation幾種關聯映射 雖然是轉載,但仔細看還是很有幫助的.
23.?[轉] 關于oracle with table as 創建臨時表的用法示例
24.?Hibernate 注解映射 設置默認值的異常及解決方法
25.?[轉] Oracle 語法之 OVER (PARTITION BY ..) 及開窗函數
26.?[轉] 頁面中調用系統常用的對話框需要用到的classid
27.?[轉] WebBrowser.ExecWB的完整說明
28.?hibernate 級聯(聯表)刪除的問題
29.?sql plus操作oracel(windows平臺)基礎之簡易新手篇
30.?EOS讓失業的工人找到工作,讓專業的技術人員下崗.
最新評論
1.?re: JSF ->JavaScript 用 A4J 完成前臺后臺數據交互
RETYUGIHOJ
--GVFZ
2.?re: [轉]JSF中文輸入亂碼問題解決方法
個體gay特權 讓我去聽聽 天慶 4安琪兒 我去而他卻讓他 企鵝問題探討去 去問問情人 如圖切爾奇請問天然氣熱天氣額
--啊速度發
3.?re: Java 日期時間 Date類型,long類型,String類型表現形式的轉換
評論內容較長,點擊標題查看
--Fzh
4.?re: struts2 修改配置文件的默認位置報異常的解決方法[未登錄]
確實能解決問題,感謝樓主
--淹死的魚
5.?re: Extjs 日期的使用方法(顯示,定義,接收,提交,轉換)
jh,m v,j
--ojjj
閱讀排行榜
1.?Extjs 日期的使用方法(顯示,定義,接收,提交,轉換)(5345)
2.?JS 雙豎線運算符(3292)
3.?[轉]網頁設計流程(1950)
4.?[轉]網站制作流程(1847)
5.?js中指針與函數名(1188)
評論排行榜
1.?[轉]網頁設計流程(4)
2.?Extjs 日期的使用方法(顯示,定義,接收,提交,轉換)(1)
3.?[轉]網站制作流程(1)
4.?JS 雙豎線運算符(1)
5.?EOS讓失業的工人找到工作,讓專業的技術人員下崗.(1)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 紫蝶∏飛揚↗
主站蜘蛛池模板:
欧美激情综合亚洲一二区
|
日韩在线免费看网站
|
亚洲综合久久夜AV
|
亚洲AV无码AV日韩AV网站
|
在线观看免费人成视频色
|
亚洲精品美女在线观看播放
|
国产精品免费看久久久
|
亚洲爆乳无码一区二区三区
|
中文无码日韩欧免费视频
|
精品亚洲视频在线观看
|
一本久久A久久免费精品不卡
|
亚洲精品国产精品乱码不卡
|
一区二区视频在线免费观看
|
亚洲日韩国产精品乱
|
国产成人无码免费看片软件
|
国产成人亚洲精品狼色在线
|
a级男女仿爱免费视频
|
亚洲精品免费在线观看
|
亚洲美女视频免费
|
亚洲欧洲免费无码
|
免费人成在线观看网站品爱网日本
|
国产精品高清视亚洲一区二区
|
野花高清在线电影观看免费视频
|
亚洲伊人久久大香线蕉在观
|
老司机在线免费视频
|
亚洲AV无码成人网站在线观看
|
又大又硬又爽免费视频
|
一级有奶水毛片免费看
|
亚洲乱码国产乱码精品精
|
无码专区AAAAAA免费视频
|
亚洲天堂2016
|
国产91精品一区二区麻豆亚洲
|
亚洲AV综合色区无码一二三区
|
在线观看免费亚洲
|
18gay台湾男同亚洲男同
|
免费无码国产V片在线观看
|
免费一级成人毛片
|
无码AV动漫精品一区二区免费
|
亚洲国产精品无码久久九九
|
国产伦精品一区二区免费
|
亚洲av无码潮喷在线观看
|