Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >java数组转对象_java之数组和对象的互转「建议收藏」

java数组转对象_java之数组和对象的互转「建议收藏」

作者头像
全栈程序员站长
发布于 2022-09-30 12:05:07
发布于 2022-09-30 12:05:07
2.8K0
举报

大家好,又见面了,我是你们的朋友全栈君。

java

* 对象转bytes和bytes转对象

*

* @project order

* @fileName ByteUtil.java

* @Description

* @author light-zhang

* @date 2019年5月16日

* @version 1.0.0

*/

public class ByteUtil {

/**

* 对象转数组

*

* @param obj

* @return

*/

public static byte[] serialize(Object object) {

byte[] bytes = null;

ByteArrayOutputStream bos = new ByteArrayOutputStream();

try {

ObjectOutputStream oos = new ObjectOutputStream(bos);

oos.writeObject(object);

oos.flush();

bytes = CompressUtil.compress(bos.toByteArray());// 在这里对byte压缩

oos.close();

bos.close();

} catch (IOException ex) {

Assert.RuntimeException(“Object转byte[]出现错误”);

ex.printStackTrace();

}

return bytes;

}

/**

* 数组转对象

*

* @param bytes

* @return

*/

public static Object deserialize(byte[] bytes) {

Object object = null;

try {

ByteArrayInputStream bis = new ByteArrayInputStream(CompressUtil.uncompress(bytes));// 在这里解压

ObjectInputStream ois = new ObjectInputStream(bis);

object = ois.readObject();

ois.close();

bis.close();

} catch (IOException ex) {

ex.printStackTrace();

} catch (ClassNotFoundException ex) {

Assert.RuntimeException(“byte[]转对象错误”);

ex.printStackTrace();

}

return object;

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/195323.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月10日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
netty系列之:netty中的核心编码器bytes数组
我们知道netty中数据传输的核心是ByteBuf,ByteBuf提供了多种数据读写的方法,包括基本类型和byte数组的读写方法。如果要在netty中传输这些数据,那么需要构建ByteBuf,然后调用ByteBuf中对应的方法写入对应的数据,接着套用netty中标准的模板即可使用。
程序那些事
2022/04/25
6920
netty系列之:netty中的核心编码器bytes数组
使用java.io库序列化Java对象
在我们使用诸如Redis这类缓存系统时,我们往往会存在如下需求:将Java对象保存到Redis缓存中,然后在其他机器上还原回来。
方亮
2024/05/24
870
使用java.io库序列化Java对象
【设计模式系列(三)】彻底搞懂原型模式
原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能
你好戴先生
2020/09/01
5700
Java中的IO流(一)字节流的常用操作
今天带来的是JAVA的IO流中的字节流,InputStream和OutputStram子类流的用法。
HcodeBlogger
2020/07/14
1.1K0
Java中的IO流(一)字节流的常用操作
Java设计模式之原型模式
现在有一只羊,姓名为:tom,年龄为:1,颜色为:白色,请编写程序创建和tom羊属性完全相同的10只羊。
shaoshaossm
2022/12/27
2210
Java Spring mvc 操作 Redis 及 Redis 集群
古时的风筝
2018/01/08
2K0
520疯狂之后我彻底蒙了,老板让我做技术选型,数据处理选kafka还是RocketMQ?
在类似这样的场景下,项目开发中的数据量很大,一天上千万,最初,数据存在HBase,我们想替换掉HBase ,原因如下:
艾编程
2020/06/12
5300
520疯狂之后我彻底蒙了,老板让我做技术选型,数据处理选kafka还是RocketMQ?
Spring 整合 Redis
这里配置就完成了。可以直接在service方法上面开启注解: 有4个注解@Cacheable,@CachePut , @CacheEvict,@CacheConfig @Cacheable、@CachePut、@CacheEvict 注释介绍 @Cacheable 作用和配置方法 @Cacheable 的作用 主要针对方法配置,能够根据方法的请求参数对其结果进行缓存 @Cacheable 主要的参数 value 缓存的名称,在 spring 配置文件中定义,必须指定至少一个例如:这里和上面的name 的value对应,楼主这里写的是common @Cacheable(value=”mycache”) 或者 @Cacheable(value={”cache1”,”cache2”} key 缓存的 key,可以为空,如果指定要按照 SpEL 表达式编写,如果不指定,则缺省按照方法的所有参数进行组合例如: @Cacheable(value=”testcache”,key=”#userName”) condition 缓存的条件,可以为空,使用 SpEL 编写,返回 true 或者 false,只有为 true 才进行缓存例如: @Cacheable(value=”testcache”,condition=”#userName.length()>2”)
試毅-思伟
2018/09/06
5250
设计模式-原型模式
package com.shi.design.prototype; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutp
用户5927264
2019/08/19
3630
设计模式-原型模式
图解Java设计模式之原型模式
现在有一只羊tom,姓名为 : tom,年龄为 :1,颜色为 :白色,请编写程序创建和tom羊属性完全相同的10只羊。
海仔
2020/03/19
4720
图解Java设计模式之原型模式
java开发中序列化与反序列化起到的作用
基本概念: 序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。 特别在网络传输中,它的作用显得尤为重要。我们可以把一个类实现序列化,然后在另一端通过反序列化可以得到该对象 例如:我们可以序列化一个对象,不过这个对象要实现序列化方法,并生成序列化号。
用户5166556
2019/04/16
6070
【java开发系列】—— 深克隆和浅克隆
  Java支持我们对一个对象进行克隆,通常用在装饰模式和原型模式中。那么什么是深克隆,什么是浅克隆呢。   【浅克隆】,通常只是对克隆的实例进行复制,但里面的其他子对象,都是共用的。   【深克隆】
用户1154259
2018/01/17
1.1K0
【java开发系列】—— 深克隆和浅克隆
spring及springboot整合redis前言:一、整合前提:二、spring整合redis:三、springboot整合redis:总结:
redis是一种nosql数据库,以<key,value>的形式存储数据,其速度相比于MySQL之类的数据库,相当于内存读写与硬盘读写的差别,所以常常用作缓存。接下来就分别看看在spring项目和springboot项目中如何使用redis(项目都基于SSM)。
贪挽懒月
2018/08/02
5400
spring及springboot整合redis前言:一、整合前提:二、spring整合redis:三、springboot整合redis:总结:
JAVA中使用Jedis操作Redis
redis安装看这里:https://my.oschina.net/u/2486137/blog/1541190 需要的jar:commons-pool2 ,redis.clients ①. 进入这里查看操作redis的客户端语言及支持的操作方式: https://redis.io/clients ②.我选择的是jedis ,这里对jedis进行了一个小小的封装,经过简单的测试,挺好用的. 这里存储对象基本上都是以字节数组保存的,所以写了个序列化和反序列化的util /** * 序列化 * @pa
用户1215919
2018/02/27
1.6K0
VNCTF2022公开赛-easyJ4va
/usr/local/tomcat/webapps/ROOT/WEB-INF/classes/util/Secr3t.class
c2k2o6
2022/02/15
6370
VNCTF2022公开赛-easyJ4va
原型模式解读
克隆羊问题:现在有一只羊 tom,姓名为: tom, 年龄为:1,请编写程序创建和 tom 羊 属性完全相同的 10只羊。
一个风轻云淡
2023/10/15
1600
原型模式解读
redis 存储对
如果需要用到Redis存储List对象,而list又不需要进行操作,可以按照MC的方式进行存储,不过Jedis之类的客户端没有提供API,可以有两种思路实现: 1. 分别序列化 elements ,然后 set 存储
半条命专刊
2020/09/14
5460
Java的二十三种设计模式(原型模式(Prototype))
原型模式虽然是创建型的模式,但是与工程模式没有关系,从名字即可看出,该模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象。本小结会通过对象的复制,进行讲解。在Java中,复制对象是通过clone()实现的,先创建一个原型类:
红目香薰
2022/11/29
2010
设计模式-原型模式(克隆羊多利看了都说好)
问题: 现在有一只羊(包含属性:名字Dolly、年龄2),需要克隆10只属性完全相同的羊。
唔仄lo咚锵
2021/09/14
3780
设计模式-原型模式(克隆羊多利看了都说好)
RedisTemplate保存二进制数据的方法
在工作中,我们经常可以见到值是字符串类型的RedisTemplate<String, String>。而有些场景下,比如我们希望保存某个对象,而又不想使用外部的一些序列化方法,则可以考虑将数据保存而为二进制,然后保存到Redis中。这个时候,我们就可以使用Value类型是byte[]类型的RedisTemplate<String, byte[]>。 为了区分一般项目中常用的RedisTemplate<String, String>类型,我们给新的Bean取一个名字bytesRedisTemplate。
方亮
2024/05/24
1430
相关推荐
netty系列之:netty中的核心编码器bytes数组
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文