日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > Lua序列化

Lua序列化

來源:程序員人生   發布時間:2014-10-10 08:00:01 閱讀次數:2779次
概念普及

持久化

持久化(Persistence),即把內存中的對象保存到可永久保存的存儲設備中。持久化的主要應用是將內存中的對象存儲在關系型的數據庫中,當然也可以存儲在磁盤文件中、XML數據文件中等等。 
持久化是將程序數據在持久狀態和瞬時狀態間轉換的機制。(應用與游戲,) 
JDBC就是一種持久化機制。文件IO也是一種持久化機制。
為什么需要持久化服務呢?那是由于內存本身的缺陷引起的:內存掉電后數據會丟失,但有一些對象是無論如何都不能丟失的,比如銀行賬號,遺憾的是,人們還無法保證內存永不掉電。
持久化方案可以分為關系數據庫方案、文件方案、對象數據庫方案、 xml數據庫方案,目前主流的持久化方案是關系數據庫方案,關系數據庫方案不僅解決了并發的問題,更重要的是,關系數據庫還提供了持久化服務之外的價值:統計分析功能。

序列化

將對象的狀態信息轉換為可以存儲或傳輸的形式的過程。
在序列化期間,對象將其當前狀態寫入到臨時或持久性存儲區。以后,可以通過從存儲區中讀取或反序列化對象的狀態,重新創建該對象。
目的 
  • 1、以某種存儲形式使自定義對象持久化;
  • 2、將對象從一個地方傳遞到另一個地方。
  • 3、使程序更具維護性。
當兩個進程在進行遠程通信時,彼此可以發送各種類型的數據。無論是何種類型的數據,都會以二進制序列的形式在網絡上傳送。發送方需要把這個Java對象轉換為字節序列,才能在網絡上傳送;接收方則需要把字節序列再恢復為Java對象。
把Java對象轉換為字節序列的過程稱為對象的序列化,又叫串行化
把字節序列恢復為Java對象的過程稱為對象的反序列化,又叫并行化

對象的序列化主要有兩種用途:
  • 1) 把對象的字節序列永久地保存到硬盤上,通常存放在一個文件中;
  • 2) 在網絡上傳送對象的字節序列。

關系

對象序列化機制對于需要將對象的狀態保存到文件中,而后能夠通過讀入對象狀態來重新構造對象,恢復程序狀態,對象序列化的過程是對象持久化的方法之一,把對象保存到文件中.
序列化是為了解決對象的傳輸問題
,傳輸可以在線程之間、進程之間、內存外存之間、 主機之間進行。 
持久化往往依賴于數據庫,是為了長期存儲的。序列化是為了散集和列集做短期存儲和數據傳遞的。
如果按照存儲介質和生命周期的長短劃分,所有的數據都以兩種形式存在,其中一種是保存于內存中的運行時對象,另一種則是存儲于持久化物理介質中的文件,比如數據庫文件等。數據的持久化關注于相同的數據在不同形態數據之間的轉化,解決的是如何將內存對象持久化存儲,以及從物理介質中加載數據并創建內存對象。

數據的持久化是序列化的又一個典型的應用,對象只有在序列化之后才能進行持久化存儲從持久化存儲介質加載的數據通過反序列化轉變成運行時對象。

Lua序列化實例

local str_serialize = "" local function serialize (o) str_serialize = str_serialize or "" if o == nil then io.write("nil") str_serialize = str_serialize.."nil" return end if type(o) == "number" then io.write(o) str_serialize = str_serialize..o elseif type(o) == "string" then io.write(string.format("%q", o)) str_serialize = str_serialize..string.format("%q", o) elseif type(o) == "table" then io.write("{ ") str_serialize = str_serialize.."{ " for k,v in pairs(o) do io.write(" ["); str_serialize = str_serialize.." [" serialize(k); io.write("] = ") str_serialize = str_serialize.."] = " serialize(v) io.write(", ") str_serialize = str_serialize..", " end io.write("}") str_serialize = str_serialize.."}" elseif type(o) == "boolean" then io.write( o and "true" or "false" ) str_serialize = str_serialize..(o and "true" or "false") elseif type(o) == "function" then io.write( "function" ) str_serialize = str_serialize.."function" else error("cannot serialize a " .. type(o)) end return end local ddd = {a = 12,b = "Lua",key = "another "one"",d = false} serialize(ddd) print("") print(str_serialize)
結果
{ ["a"] = 12, ["d"] = false, ["key"] = "another "one"", ["b"] = "Lua", } { ["a"] = 12, ["d"] = false, ["key"] = "another "one"", ["b"] = "Lua", }

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: av看片 | 成年网站在线 | 亚洲高清网站 | 久久久久久久久国产 | 国产日韩视频在线 | www.888www看片 | 日韩精品一区二区三区免费观看 | 国产午夜精品一区二区三区四区 | 久久精品免费播放 | 国产精品色综合一区二区三区 | 国产成人精品一区二区三区四区 | 中国大陆高清aⅴ毛片 | 福利国产 | 中文字幕国产一区二区三区 | 国产又黄又爽又刺激的视频 | 国产区一区二区三区 | 国产精品久久久久一区二区 | 欧美性区| 国产精品二区三区 | 欧美亚洲三级 | 99免费视频 | 在线观看成人网 | 91超碰在线免费观看 | 精品99在线观看 | 午夜一区二区三区 | 91精品国产欧美一区二区成人 | 91久久久久久久久 | 国产精品午夜电影 | 欧美专区视频 | 不卡网 | 亚洲欧美综合一区二区 | 久久国产成人午夜av影院宅 | 日本一区二区三区四区高清视频 | 欧美日韩一区二区三区不卡视频 | 在线观看亚洲专区 | 日本久久一区二区 | 中文字幕第一页在线播放 | 国产精品亚洲视频 | 国产精品久久久一区二区 | 日韩高清成人 | 久久久国产精品入口麻豆 |