1樓:文件類共創空間
序列化是什麼:
序列化就是將一個物件的狀態(各個屬性量)儲存起來,然後在適當的時候再獲得。
序列化分為兩大部分:序列化和反序列化。序列化是這個過程的第一部分,將資料分解成位元組流,以便儲存在檔案中或在網路上傳輸。
反序列化就是開啟位元組流並重構物件。物件序列化不僅要將基本資料型別轉換成位元組表示,有時還要恢復資料。恢復資料要求有恢復資料的物件例項。
序列化有什麼特點:
如果某個類能夠被序列化,其子類也可以被序列化。宣告為static和transient型別的成員資料不能被序列化。因為static代表類的狀態, transient代表物件的臨時資料。
什麼時候使用序列化:
一:物件序列化可以實現分散式物件。主要應用例如:rmi要利用物件序列化執行遠端主機上的服務,就像在本地機上執行物件時一樣。
二:物件序列化不僅保留一個物件的資料,而且遞迴儲存物件引用的每個物件的資料。可以將整個物件層次寫入位元組流中,可以儲存在檔案中或在網路連線上傳遞。
利用物件序列化可以進行物件的"深複製",即複製物件本身及引用的物件本身。序列化一個物件可能得到整個物件序列。
2樓:空雪夢見
啊?序列化?應該是說一個資料結構,比如二叉樹之類,序列化以後會變成一個char陣列或者一個string字串這樣,方便你存到檔案裡面或者通過網路傳輸。
然後要恢復的時候就是「反序列化」,把檔案裡讀出來/從網路收到的char陣列或者string恢復成一棵二叉樹或者其他什麼東西。
主要就是方便儲存
3樓:top搬運工
資料序列化,可以方便查詢,不如用二分查詢,序列化後可以很快的定位到要查詢的資料
c#的序列化究竟有什麼用?
4樓:匿名使用者
序列化是將物件狀態轉換為可保持或傳輸的格式的過程。與序列化相對的是反序列化,它將流轉換為物件。這兩個過程結合起來,可以輕鬆地儲存和傳輸資料。
.net framework 提供兩種序列化技術:
二進位制序列化保持型別保真度,這對於在應用程式的不同呼叫之間保留物件的狀態很有用。例如,通過將物件序列化到剪貼簿,可在不同的應用程式之間共享物件。您可以將物件序列化到流、磁碟、記憶體和網路等等。
遠端處理使用序列化「通過值」在計算機或應用程式域之間傳遞物件。
xml 序列化僅序列化公共屬性和欄位,且不保持型別保真度。當您要提供或使用資料而不限制使用該資料的應用程式時,這一點是很有用的。由於 xml 是一個開放式標準,因此,對於通過 web 共享資料而言,這是一個很好的選擇。
soap 同樣是一個開放式標準,這使它也成為一個頗具吸引力的選擇。
通俗的說法就是序列化就是把類改成2進位制溜檔案方便儲存和傳輸資料
5樓:奧術引擎
序列化是用來通訊的,服務端把資料序列化,傳送到客戶端,客戶端把接收到的資料反序列化後對資料進行操作,完成後再序列化傳送到服務端,服務端再反序列化資料後對資料進行操作。說白了,資料需要序列化以後才能在服務端和客戶端之間傳輸。這個服務端和客戶端的概念是廣義的,可以在網路上,也可以在同一臺機器的不同程序中,甚至在同一個程序中進行通訊。
在傳統程式設計中,物件是通過呼叫棧間接的與客戶端互動,但在面向服務的程式設計中,客戶端永遠都不會直接呼叫例項。不知道說的明不明白。
好吧,我說的確實不夠明白,你問的是為什麼需要序列化,我只是說了序列化的一個應用。那我就來說說序列化的好處吧。不序列化也可以傳輸,但是無法跨平臺,安全性也無法保障。
我說的是面向服務程式設計中的作用,在傳統程式設計中,你在表示層例項化一個業務物件,然後呼叫業務物件中的方法,你想過為什麼能這樣呼叫嗎?這樣做耦合度太高,很不好。如果序列化以後通過特定的協議傳輸資料就不一樣了,表示層通過**或通道向服務層傳送特定的資料格式,這個資料就是序列化以後的,比如xml,服務端接收到以後要進行反序列化,生成服務端可識別的資料格式,比如一個類,然後對資料進行操作,再序列化傳送到客戶端,客戶端再反序列化。
這樣客戶端可以使用和服務端完全不同的開發平臺,只要它能夠對xml資料進行反序列化,而xml是具有工業標準的資料格式,基本各平臺都支援。這也適用於在程序間通訊。如果在程序內通訊,也可以做到更高的安全性,物件不再通過呼叫棧互動,而是通過**或通道。
6樓:趙氏陶藝
一句話: 序列化將物件儲存為磁碟檔案,反序列化將磁碟檔案重新組合成一個物件,我覺得這是精髓所在。
j**a中為什麼要序列化?什麼時候用到序列化?
7樓:匿名使用者
序列化可以將記憶體中的類寫入檔案或資料庫中。比如將某個類序列化後存為檔案,下次讀取時只需將檔案中的資料反序列化就可以將原先的類還原到記憶體中。也可以將類序列化為流資料進行傳輸。
總的來說就是將一個已經例項化的類轉成檔案儲存,下次需要例項化的時候只要反序列化即可將類例項化到記憶體中並保留序列化時類中的所有變數和狀態。
例如:hibernate中實體類的鈍化就是將類序列化後存入磁碟並釋放記憶體空間。
8樓:匿名使用者
物件、檔案、資料,有許多不同的格式,很難統一傳輸和儲存
序列化以後就都是位元組流了,無論原來是什麼東西,都能變成一樣的東西,就可以進行通用的格式傳輸或儲存,傳輸結束以後,要再次使用,就進行反序列化還原,這樣物件還是物件,檔案還是檔案
9樓:古城街道
這個比較專業,真不是一二句話能說清的,建議買參考書。
j**a裡為什麼要序列化?
10樓:匿名使用者
你知道什麼叫 序列化 嗎?
你知道序列化的作用嗎?
你可以把序列化,實現serializable 介面,是序列化了的類告知該程式,這個類的物件可以讀寫。
讀寫不僅僅是在文字中讀寫該類,還可以通過別的流來進行讀寫。
沒有序列化的類,是不能形成二進位制讀寫流。
如果你隨便敲寫文字進去一個記事本里面。這個就不是序列化的範圍了。序列化是指類物件的。你能確保你自己敲上去的文字就是類的物件了嗎?你能確保你敲上去的是什麼類的物件嗎?
第三個問題,已經沒有必要解釋了。你要知道序列化是什麼東西,你就不會問這問題
11樓:匿名使用者
你這都是哪跟哪啊!!
12樓:哈高妮薩
大哥,您明白了嗎?能說給小弟聽聽嗎?謝謝。
c#中的物件序列化是什麼意思?序列化有什麼好處?又有什麼具體的應用??
13樓:匿名使用者
你自己定義一個類,建立一個實力儲存到viewstate中,應該是不行,這時就需要把類序列化,
14樓:阿小帆叔叔
序列化是將物件狀態轉換為可保持或傳輸的格式的過程。與序列化相對的是反序列化,它將流轉換為物件。這兩個過程結合起來,可以輕鬆地儲存和傳輸資料。
比如.net後臺的物件集合要轉成json物件傳到前臺,就需要序列化物件成json字串。而頁面操作的json傳到.net後臺,需要反序列化成物件,供後臺運算元據。
c中ref到底有什麼作用,C 中ref的作用是什麼?
int是值型別,而string是引用型別,值型別改的是它的值,而引用傳遞過來的是地址,所以地址上的值也會改變。其實,你也不用理解抄得多複雜!你只要知道,如果用上ref的話,操作的是同一個變數,所以會改變值,如果沒用上ref的話,操作的不是同一個變數,所以值不會改變。這就行了!其他的,以後學得深入了,...
虛擬化有什麼用,虛擬化的作用是什麼?
虛擬化的作用有 1.減少伺服器的數量,提供一種伺服器整合的方法,減少初期硬體採購成本 2.簡化伺服器的部署 管理和維護工作,降低管理費用3.提高伺服器資源的利用率,提高伺服器計算能力4.通過降低空間 散熱以及電力消耗等途徑壓縮資料中心成本5.通過動態資源配置提高it對業務的靈活適應力6.提高可用性,...
C 語言中與的作用分別是什麼啊
額 這個 尼瑪 啊 雖然知道 大概就是 解引用和引用 此引用和下方的引用不同 這也可以叫解引用和取地址。但是 可以是乘 這個也可以是位與 而且 在c 中 還可以是引用 c 中 和 的區別是什麼?c 中 和 主要是用法上的不同。1 a.b則a為物件或者結構體 2 a b則a為指標,是成員提取,a b是...