在Java中进行数据通信一般有几种方法,一是:传送字节数组;二是:java流;三是:字符串。
第三中情况一般用在消息通信(JMS等)中。可能在发送消息时需要传送Java对象,但实际只允许发送字符串。这里就涉及到Object——>String(发送消息),String——>Object(接受消息)的转换。
转换工具类在附件中,示例代码如下:
package test.search; import java.io.Serializable; import com.bokesoft.myerp.common.ByteUtil; class Person implements Serializable { private static final long serialVersionUID = 1L; private String name; private int age; public void setName(String name) { this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public String toString() { return "person: " + name + " age: " + age; } } public class Test { public static void main(String[] args) throws Throwable { Person p = new Person(); p.setName("小强"); p.setAge(20); BASE64Encoder e = new BASE64Encoder(); byte[] pBytes = ByteUtil.toBytes(p); String pStr = new String(e.encode(pBytes)); BASE64Decoder d = new BASE64Decoder(); byte[] pdBytes = d.decodeBuffer(pStr); Person pd = (Person)ByteUtil.toObject(pdBytes); System.out.println(p == pd); //false 因为消息传递可能跨越很多的JVM,实质是 //根据传送的字节数组去构造相同的一个对象,只是对象地址不同(在不同的JVM中对象的地址肯定不同了), //其它都是相同的;即使在同一个JVM中也是重新构造一个相同的对象,对象地址不同,其它都是相同的。 System.out.println(p); //person: 小强 age: 20 System.out.println(pd); //person: 小强 age: 20 } }
相关推荐
在Java开发中,将Java对象转换为JSON字符串或字符串数组是一项常见的任务,特别是在与前端交互、数据存储或者网络传输时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也...
### Java解析XML字符串 在给定的代码示例中,我们看到了如何使用JDOM库来解析一个XML字符串,并对其进行操作。下面我们将详细解析这个过程: 1. **初始化XML源**:首先,将XML字符串转化为`StringReader`对象,这...
Java输入/输出(I/O)系统是处理数据传输的基础,它允许程序读取和写入数据到不同的源和目的地,如文件、网络连接等。在这个场景中,我们将主要用到`java.io`包下的`FileReader`、`BufferedReader`和`File`类。`...
本项目主要关注的是如何通过Java实现网络上的数据传输,包括字符串、文件和图片。下面将详细阐述Java网络通信的基本原理、关键技术以及实现图片和文件传输的策略。 首先,Java中的网络通信主要是基于Socket编程实现...
本文将深入探讨“JAVA可逆带秘钥字符串加密算法”,这是一种允许数据在加密后仍能通过正确的密钥解密回原始形式的加密技术。 在Java中,最常见的可逆加密算法包括DES(Data Encryption Standard)、3DES(Triple ...
在Java编程语言中,字符串加密是一项重要的安全技术,它用于保护数据的隐私和安全性。字符串加密通常涉及到将明文字符串转换成密文,这样未经授权的用户就无法理解数据的原始含义。下面我们将深入探讨Java中字符串...
在Java编程中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于服务器与客户端之间的数据传输。为了在Java中解析JSON格式的字符串,我们需要依赖一些库,这些库提供了方便的方法来操作JSON...
在IT行业中,字符串加密解密是信息安全领域的重要组成部分,它涉及到数据保护、用户隐私和网络安全。本项目提供了四种常见的加密解密算法的Java实现:BASE64、AES、DES和MD5。接下来,我们将深入探讨这四种算法及其...
在Java开发中,生成二维码和将二维码转换为Base64字符串是常见的需求,尤其是在与前端交互时。这个项目提供了一种方便的方式,通过Maven依赖来实现这些功能,并且包括了一个工具类,使得操作更加简单易用。接下来,...
在IT行业中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于Web服务和应用程序之间的数据传输。它的语法简洁且易于人阅读和编写,同时也容易让机器解析和生成。本文将深入探讨如何模仿...
本篇文章将详细探讨“按byte截取字符串”这一技术点,并通过两个Java文件——SliceByByteTest.java和SliceByByte.java的实例来阐述其实现方法。 首先,我们需要理解字符串在计算机内存中的存储方式。在Java中,字符...
本篇文章将深入探讨16进制ASCII(美国标准信息交换代码)值与字符串之间的转换,这对于理解底层数据处理和编程实践至关重要。 ASCII码是一种字符编码标准,它为每个可打印或控制的字符分配了一个唯一的7位二进制数...
在编程中,我们经常需要将字符串和ASCII值之间进行转换,以处理或传输数据。以下是对这个主题的详细讲解: 1. 字符串转ASCII 当我们需要将一个字符串转换为ASCII值时,实际上我们是在为每个字符获取其对应的ASCII...
在Java编程中,有时我们需要将实体类对象转换成XML格式的字符串,这在数据交换、存储或网络传输中非常常见。这个过程通常涉及到对象序列化和XML处理技术。本篇文章将详细讲解如何根据实体类生成XML格式的字符串,并...
在Java中,我们可以使用`getBytes()`方法将字符串转换为字节数组,使用`new String(byte[])`将字节数组转换回字符串,但要注意编码问题,通常使用UTF-8编码。 将加密后的字节数组转换为16进制字符串,是因为16进制...
在Java编程语言中,字符串加密和解密是网络安全的关键组成部分,尤其在用户服务与客户端之间的数据传输中。本文将深入探讨Java中常见的字符串加密技术、使用的算法以及如何实现加解密过程。 首先,我们了解加密的...
字节截取是指从一个字符串中截取指定长度的字节,以便于数据传输、存储和处理。 在Java语言中,我们可以使用多种方法来按照字节截取字符串。其中一种常用方法是使用StringBuffer类和charAt()方法来实现字节截取。 ...
Base64 编码后的字符串长度大约是原始二进制数据长度的 1.33 倍,但由于 ASCII 字符集的广泛支持,使得这种编码方式非常适用于跨平台的数据传输和存储。 ##### 2.2 UUID 介绍 UUID(Universally Unique Identifier...
在实际应用中,字符串解压缩广泛应用于数据传输、文件存储、网络通信等领域,因为它能有效地减小数据的体积,提高传输效率和存储空间利用率。在编程中,我们通常会使用现成的库函数或API,如Python的`zlib`模块,...