JAXB vs XStream

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

JAXB vs XStream 博客分类: java  

JAXB vs XStream

这两东东本质上是有差别的,JAXB称为OX binding工具,XStream应该算序列化工具,但OX binding工具也会marshallunmarshall,所以包含了序列化这一部分。序列化工具不一定需要提供binding的功能。既然都玩序列化,那就简单地比较一下它们两在序列化方面的强弱吧。

JAXBToplink JAXB 10133,应该是JAXB 1.1标准 (取消了schema的validation功能)

XStream1.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,拿过来就转
  • 数据量稍小

缺点:

  • 非标准
  • 时间性能差

 http://www.blogjava.net/ldd600/archive/2009/03/04/257832.html

转载于:https://my.oschina.net/xiaominmin/blog/1599535

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255809.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ABB 机器人 DRVIO_1通信报警

ABB 机器人DRVIO_1通信报警 2014.06.13 ABB1600弧焊机器人&#xff0c;从A地搬运到B地&#xff0c;到达B地后&#xff0c;机器人上电&#xff0c;报DRVIO_1通信故障&#xff0c;机器人进入故障停止模式。 DRVIO_1为LOCAL_GENERIC类型的ABB内部LOCAL总线类型的单元实例。 故障…

S2SH CRUD 整合

S2SH CRUD 整合 采用的框架 Struts2Spring4Hbiernate4. 目录结构 &#xff1a; EmployeeAction: 1 package com.xx.ssh.actions;2 3 import java.io.ByteArrayInputStream;4 import java.io.InputStream;5 import java.io.UnsupportedEncodingException;6 import java.util.…

ABB 机器人 添加多任务

首先&#xff0c;需要启用多任务选项的控制器。 要做到这一点&#xff0c;创建一个新的机器人控制器RobotStudio站 - >选择机器人&#xff08;控制器菜单&#xff09; - >.................. - >系统生成器 - >选择控制器 - >修改...下一页 - >下一步 - >…

分享12306抢票心得-终极秒杀思路篇

12306抢票的关键拼的就是整点出票的速度&#xff0c;快的几秒钟&#xff0c;慢的几分钟&#xff0c;本文提供终极抢票攻略&#xff0c;通过多线程扫描上万个CDN&#xff0c;来大幅度提升出票速度。准备一&#xff1a;需要了解CDN和切站的机制&#xff0c;请参考&#xff1a;分享…

JVM内幕:Java虚拟机详解

为什么80%的码农都做不了架构师&#xff1f;>>> 这篇文章解释了Java 虚拟机&#xff08;JVM&#xff09;的内部架构。下图显示了遵守 Java SE 7 规范的典型的 JVM 核心内部组件。 上图显示的组件分两个章节解释。第一章讨论针对每个线程创建的组件&#xff0c;第二章…

ABB机器人 系统参数配置

系统参数用于定义系统配置并在出厂时根据客户的需要定义。 可使用 FlexPendant 或 RobotStudio Online 编辑系统参数。 此步骤介绍如何查看 系统参数配置。 操作 &#xff1a; 1. 在 ABB 菜单上&#xff0c;点击控制面板。 2. 点击配置。显示选定主题的可用类型列表。 3. 点…

四则运算2开发简介

四则运算2在四则运算1的基础之上&#xff0c;又添加了新的功能&#xff0c;但是我觉得四则运算2的难度比四则运算1增大了很多&#xff0c;我在编程的过程中&#xff0c;遇到的最大难度就是不知该如何更好的融合各个功能之间的关系。 写到现在&#xff0c;四则运算2主要实现了以…

ABB机器人的 备份与恢复

保存内容 备份功能可保存上下文中的所有系统参数、系统模块和程序模块。 备份内容 数据保存于用户指定的目录中。 默认路径可加以设置。 目录分为四个子目录&#xff1a;Backinfo、Home、Rapid 和 Syspar。 System.xml 也保存于包含用户设置的 ../backup &#xff08;根…

【深度学习】——物体检测细节处理(NMS、样本不均衡、遮挡物体)

目录 一、候选框大量重叠问题 1、NMS核心思想 2、 步骤&#xff1a; 3、缺陷 4、改进 1&#xff09;soft NMS——衰减的方式来减小预测框的分类得分 2&#xff09;softer nms——增加了位置置信度 二、样本不平衡问题 1、不平滑的来源&#xff08;3方面&#xff09; 1&a…

第6章 循环结构

循环语句: 可以让一部分代码,反复执行 1.1 循环语句while while循环: 编写格式:while(条件){ 循环体 } 条件: 当条件是true,就执行循环体,执行完循环体后 程序再次执行while中的条件,如果条件还是true,继续执行循环体 直到条件是false的时候,循环就结束 public class WhileDem…

MongoDB复制集技术

为什么使用MongogDB复制集技术? mysql中:一主一从&#xff0c;一主多从结构存在的问题 1、 fileover&#xff08;故障转移&#xff09;a) 选主投票b) 切换 2、 是否对就用透明化 3、 数据补偿的问题a) 两阶段数据补偿 4、 解决方法 mysql中使用MHAVIP b…

Linux文件系统的实现 (图文并茂,比较好)

作者&#xff1a;Vamei 出处&#xff1a;http://www.cnblogs.com/vamei 欢迎转载&#xff0c;也请保留这段声明。谢谢&#xff01; Linux文件管理从用户的层面介绍了Linux管理文件的方式。Linux有一个树状结构来组织文件。树的顶端为根目录(/)&#xff0c;节点为目录&#xff0…

ROS探索总结(一)——ROS简介

随着机器人领域的快速发展和复杂化&#xff0c;代码的复用性和模块化的需求原来越强烈&#xff0c;而已有的开源机器人系统又不能很好的适应需求。2010年Willow Garage公司发布了开源机器人操作系统ROS&#xff08;robot operating system&#xff09;&#xff0c;很快在机器人…

利用union判断系统的大小端

int checkCPUendian()//返回1&#xff0c;为小端&#xff1b;反之&#xff0c;为大端&#xff1b; { union{ unsigned int a; unsigned char b; }c; c.a 1; return 1 c.b; }大端模式(Big-endian)&#xff0c;是指数据的高字节保存在内存的低地址中&#xff0c;而数据…

ROS探索总结(二)——ROS总体框架

一、 总体结构 根据ROS系统代码的维护者和分布来标示&#xff0c;主要有两大部分&#xff1a;&#xff08;1&#xff09;main&#xff1a;核心部分&#xff0c;主要由Willow Garage公司和一些开发者设计、提供以及维护。它提供了一些分布式计算的基本工具&#xff0c;以及整个…

【深度学习】——利用pytorch搭建一个完整的深度学习项目(构建模型、加载数据集、参数配置、训练、模型保存、预测)

目录 一、深度学习项目的基本构成 二、实战&#xff08;猫狗分类&#xff09; 1、数据集下载 2、dataset.py文件 3、model.py 4、config.py 5、predict.py 一、深度学习项目的基本构成 一个深度学习模型一般包含以下几个文件&#xff1a; datasets文件夹&#xff1a;存放…

GUI登录界面

在这次的作业中&#xff0c;我先使用单选按钮&#xff0c;输入框&#xff0c;复选框设计了一个简单地登录界面。接着我使用了MouseListener将登陆按钮与下一个“查询界面”连接起来。最后我使用了我们本周所学的JFrame框架与事件处理机制设计了一个简单地界面。我所设计的登录界…

浅谈ROS操作系统及其应用趋势

ROS操作系统是最先由斯坦福开发的开源机器人操作系统&#xff0c;目前由willowgarage公司开发和维护&#xff0c;相关的开发社区也很成熟&#xff08; http://www.ros.org &#xff0c; http://answers.ros.org, http://www.willowgarage.com), 经过几年的发展API也逐渐稳定&a…

CRM项目总结

CRM项目总结 一&#xff1a;开发背景 在公司日益扩大的过程中&#xff0c;不可避免的会伴随着更多问题出现。 对外 &#xff1a; 如何更好的管理客户与公司的关系&#xff1f;如何更及时的了解客户日益发展的需求变化&#xff1f;公司的产品是否真的符合客户需求&#xff1f;以…

js变量和数据类型

转载于:https://www.cnblogs.com/songyinan/p/6181421.html