JAXB和XStream比較

這兩東東本質上是有差別的,JAXB稱為OX binding工具,XStream應該算序列化工具,但OX binding工具也會marshall和unmarshall,所以包含了序列化這一部分。序列化工具不一定需要提供binding的功能。既然都玩序列化,那就簡單地比較一下它們兩在序列化方面的強弱吧。

JAXB:Toplink JAXB 10133,應該是JAXB 1.1標準 (取消了schema的validation功能)

XStream:1.3.1

數據長度:

類型

長度

內容

XStraem

351

<com.oocl.frm.ws.sample.Employee>

?<name>Liufei</name>

?<age>40</age>

?<address>

??? <street>Zhaojiabang</street>

??? <country>China</country>

??? <city>Shanghai</city>

??? <doorNum>789</doorNum>

??? <empName>Afka liu</empName>

?</address>

?<salary>20000.0</salary>

?<isActive>false</isActive>

?<sexy>F</sexy>

</com.oocl.frm.ws.sample.Employee>

Toplink JAXB

589(已經去掉了white space)

<?xml version="1.0" encoding="UTF-8"?>

<ns0:employee xsi:schemaLocation="http://www.oocl.com/frm/ws/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns0="http://www.oocl.com/frm/ws/jaxb" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><ns0:name>Liufei</ns0:name><ns0:age>40</ns0:age><ns0:salary>20000.0</ns0:salary><ns0:sexy>F</ns0:sexy><ns0:isActive>false</ns0:isActive><ns0:address><ns0:street>Zhaojiabang</ns0:street><ns0:country>China</ns0:country><ns0:city>Shanghai</ns0:city><ns0:doorNum>789</ns0:doorNum><ns0:empName>Afka liu</ns0:empName></ns0:address></ns0:employee>

時間:序列化和反序列化1000000次。

類型

序列化(ms)

反序列化(ms)

XStraem

90148

135878

Toplink JAXB

34872

56557

結果對比:數據量XStream占優勢,時間性能上Toplink Jaxb占明顯優勢

總結(只從序列化功能角度看)

JAXB:?優點

  • J2EE標準
  • 運行時間比XStream少

缺點

  • 用起來不方便:需要把手動的把business object轉換成schema object,當然也可以直接將schema object作為business object,或者采用反射的方法。
  • 有一定的局限性:需要schema或者annotation
  • 數據量稍大

XStream優點:

  • 用起來方便
  • 不需要schema,拿過來就轉
  • 數據量稍小

缺點:

  • 非標準
  • 時間性能差

轉載于:https://www.cnblogs.com/wlsblog/p/7452949.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257600.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257600.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257600.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【起航計劃 011】2015 起航計劃 Android APIDemo的魔鬼步伐 10 App-Activity-Reorder Activities 后退棧 Intent FLAG...

Reorder Activities 示例有四個相關的Activitives: ReorderOnLaunch, ReorderTwo,ReorderThree, ReorderFour。其中ReorderOnLaunch為主Activity&#xff0c;ReorderOnLaunch啟動ReorderTwo &#xff0c;ReorderTwo啟動 ReorderThree&#xff0c;ReorderThree啟動 ReorderFour。…

java date dateformat_java中Date與DateFormat的格式輸出

一、DateFormatjava.text.DateFormat使用 getDateInstance 來獲取該國家/地區的標準日期格式。另外還提供了一些其他靜態工廠方法。使用 getTimeInstance 可獲取該國家/地區的時間格式。使用 getDateTimeInstance 可獲取日期和時間格式。可以將不同選項傳入這些工廠方法&#x…

spartan6不能直接把時鐘連到IO上

1、問題的提出&#xff1a;spartan6中不允許時鐘信號直接連到IO口上面&#xff1f; 2、解決辦法&#xff1a;ODDR2的使用 ODDR2Primitive: Double Data Rate Output D Flip-Flop with Optional Data Alignment, Clock Enable and Programmable Synchronous or Asynchronous Set…

STL容器及適配器

STL容器 1.序列式容器 &#xff1a; vector&#xff0c;deque&#xff0c;list。 每個元素都有固定的位置&#xff08;取決于插入的時機和位置&#xff0c;與元素值無關&#xff09;。 vector 特點&#xff1a; 將一個元素置于一個動態數組中加以管理&#xff0c;可以隨機存取元…

Html5 Canvas斗地主游戲

過完年來公司&#xff0c;沒什么事&#xff0c;主管說研究下html5 游戲&#xff0c;然后主管就給了一個斗地主的demo&#xff0c;隨后我就開始看代碼&#xff0c; 現在我看了html5以及canvas相關知識和斗地主的demo后&#xff0c;自己用demo上的素材試著寫了個斗地主&#xff0…

java流的傳遞方式是_如何在方法中流式傳輸Java List(Varargs)的值?

我有以下方法&#xff1a;public static List getValuesExclusion(A exclusion) {return Arrays.stream(values()).filter(item -> item ! exclusion).collect(Collectors.toList());}//this function returns enum list of A types that has no A typeexclusion現在我想將它…

JAVA作業——JAVA課程的總結及學習計劃

JAVA作業——JAVA課程的總結及學習計劃 NO.1 總結 在上一年的學習中&#xff0c;對JAVA語言比較陌生&#xff0c;英語基礎不好&#xff0c;so學習起來有點困難&#xff0c;對JAVA的一些語法和編程記得比較少。 NO.2 計劃 對過去一年的認真反思之后&#xff0c;我的計劃如下&…

由LintCode問題子集出發,淺析ArrayList的拷貝問題

在做LintCode上的遞歸類題目子集時&#xff0c;我一開始的想法是遞歸到最后一層即單元素時然后開始逐層返回&#xff0c;產生相應的每層的子集并添加到最終的結果中去。于是乎有了以下代碼&#xff1a; public List<List<Integer>> findSolution(int[] nums, int b…

大小端模式詳解

http://www.cnblogs.com/xinsheng/archive/2012/04/18/2455039.html 端模式&#xff08;Endian&#xff09;的這個詞出自Jonathan Swift書寫的《格列佛游記》。這本書根據將雞蛋敲開的方法不同將所有的人分為兩類&#xff0c;從圓頭開始將雞蛋敲開的人被歸為Big Endian&#xf…

.NET 跨平臺服務端資料

OWIN Web API: http://www.asp.net/web-api/overview/hosting-aspnet-web-api/use-owin-to-self-host-web-api 用于寫API的 OWIN SignalR: http://www.dotnetcurry.com/signalr/915/owin-katana-signalr-web-server 用于寫即時通訊的轉載于:https://www.cnblogs.com/Jarvin…

mysql的查詢、子查詢及連接查詢

一、mysql查詢的五種子句 where子句&#xff08;條件查詢&#xff09;&#xff1a;按照“條件表達式”指定的條件進行查詢。 group by子句&#xff08;分組&#xff09;&#xff1a;按照“屬性名”指定的字段進行分組。group by子句通常和count()、sum()等聚合函數一起使用。 h…

BZOJ-1192-鬼谷子的錢袋

描述 鬼谷子非常聰明&#xff0c;正因為這樣&#xff0c;他非常繁忙&#xff0c;經常有各諸侯車的特派員前來向他咨詢時政。有一天&#xff0c;他在咸陽游歷的時候&#xff0c;朋友告訴他在咸陽最大的拍賣行&#xff08;聚寶商行&#xff09;將要舉行一場拍賣會&#xff0c;其中…

lamp 獨立mysql_lamp or lnmp 環境搭建之獨立安裝mysql數據庫

lamp or lnmp 環境搭建,如果mysql 是獨立安裝的則需要授權&#xff1a;單獨一臺服務器獨立安裝mysql安裝后&#xff0c;優化服務器。授權實例如下&#xff1a;創建用戶CREATE USER demo IDENTIFIED BY “passwd123”;授權使用mysql數據庫下面的所有表GRANT ALL PRIVILEGES ON m…

item 24: 區分右值引用和universal引用

本文翻譯自《effective modern C》&#xff0c;由于水平有限&#xff0c;故無法保證翻譯完全正確&#xff0c;歡迎指出錯誤。謝謝&#xff01; 博客已經遷移到這里啦 古人曾說事情的真相會讓你覺得很自在&#xff0c;但是在適當的情況下&#xff0c;一個良好的謊言同樣能解放你…

WebLogic11g-常用運維操作

轉自&#xff1a;https://dead-knight.iteye.com/blog/1940399 希望這篇能把weblogic運維時經常遇到的問題、常用的配置匯總到一起。 1、配置jvm參數&#xff1a; 一般在domain啟動過程中會看到以下啟動的日志信息&#xff0c;如下圖所示&#xff1a; 圖中紅色方框部分為啟動we…

牛腩新聞發布系統(一):SQLHelper重構(一)

導讀&#xff1a;在機房重構的時候&#xff0c;就用到了SQLHelper&#xff0c;但那時候即使把代碼反復看了很多遍&#xff0c;也看了注釋&#xff0c;還和同學交流&#xff0c;也依然是半懂不懂。現在&#xff0c;我再次用到了SQLhelper這個東西&#xff0c;就來說說SQLHelper是…

OPENCV圖像輪廓檢測

前面在圖像轉換的時候學到canny算子,可以檢測出圖像的輪廓信息,但是,該算子檢測到的輪廓信息還需要我們手動的用眼睛去識別,而實際工程應用中,我們需要得到輪廓的具體數學信息,這就涉及到今天的主題,圖像輪廓檢測. 一.圖像輪廓檢測 在opencv中,輪廓對應著一系列的點的集合,open…

mysql 5.7.11 授權_mysql 5.7.11 安裝配置教程

六步輕松搞定mysql5.7.11的安裝1、下載安裝包。mysql-5.7.11版本&#xff1a;2、拷貝到任意盤&#xff1a;例如&#xff0c;解壓后拷貝文件夾至C盤&#xff1a;C:\Program Files\mysql。建議文件夾名字使用英文。3、配置環境變量&#xff1a;計算機—>右鍵—>高級系統設置…

iOS 面試之Block

轉自&#xff1a;http://blog.csdn.net/xunyn/article/details/11658261 1 什么是block 對于閉包&#xff08;block),有很多定義&#xff0c;其中閉包就是能夠讀取其它函數內部變量的函數&#xff0c;這個定義即接近本質又較好理解。對于剛接觸Block的同學&#xff0c;會覺得有…

當安全遇到大數據 “永恒之藍”也將無所遁形!

文章講的是當安全遇到大數據 “永恒之藍”也將無所遁形&#xff01;5月12日&#xff0c;席卷全球的勒索病毒“永恒之藍”讓全世界都為之震動&#xff0c;這是迄今為止全球最大規模的勒索病毒網絡攻擊&#xff0c;100多個國家受到病毒感染&#xff0c;國內中石油、公安內網、高校…