0 0

关于Java String getByte效率问题0

String->byte 可通过调用getByte函数
byte->String 可通过new String(byte, off, len, charset)

问题:
方案一:多个字符串需要->byte,之前的做法是调用多次getByte,效率低,但是能够通过new String(byte, off, len, charset)还原
方案二:把多个字符串拼接(类似StringBuilder),然后做一次getByte调用效率会高很多,但如何还原多个String?

大家有什么好的方案或思路吗?

问题补充:希望达到的目标:
1.能够实现String->byte,byte->String
2.效率要高
 
2014年7月18日 11:52

7个答案 按时间排序 按投票排序

0 0

采纳的答案

拼接:
StringBuffer sb = new StringBuffer();
sb.append("字符串1");
sb.append("字符串2");
还原:
String str = sb.toString();
String aa = str.subString("字符串1".length);
String aa = str.subString("字符串1".length,"字符串1".length+"字符串2".length);
纯手打,望采纳

2014年7月19日 12:24
0 0

为什么拼接在一起就比分开效率高很多?你验证过吗?
1、转换的字节总数是一样的
2、拼接也要花时间
3、JVM更擅长管理小对象。

2014年8月04日 16:09
0 0

你想要的可能是这个:
http://andot.iteye.com/blog/662657
Hprose、Java、Hessian序列化效率比较图

2014年7月22日 11:54
0 0

你要是多个字符串都要getbyts的话,你可以把想要的全部连接在一起,然后再getbyts啊。
比如 连接成如下:a@b@c@d@这样的方式,然后你接收的时候,再split就可以了。

2014年7月20日 14:34
0 0

不行就用队列的形式来

2014年7月19日 00:22
0 0

序列化serialization

2014年7月18日 21:54
0 0

还原是什么意思?????
用变量记住不可以吗

2014年7月18日 17:44

相关推荐

    Java直接访问Windows注册表

    Jave的Preferences只在Software\JavaSoft\Prefs操作,反射WindowsPreferences能够操作Windows注册表的其他节点. ...5.public static byte[] getByte(int root,String path,String key) 希望能对大家有用

    四种语言实现MD5加密(JS,JSP,JAVA,ASP及juqery.MD5)

    在实际应用中,MD5虽然因为碰撞问题安全性已不如以往,但仍常用于存储密码的哈希值,因为它的计算效率高且产生的哈希值短小。但需要注意的是,为了提高安全性,通常会配合盐值(salt)一同使用,增加破解难度。

    java数据库连接CallableStatement

    根据提供的标题、描述以及部分内容,我们可以总结出关于 Java 数据库连接中 CallableStatement 的知识点: ### 一、CallableStatement 概述 #### 1.1 定义与作用 CallableStatement 是 JDBC API 中的一个接口,...

    java中调用sql存储过程详细例子

    Java调用SQL存储过程是数据库操作中的常见任务,主要用于执行那些复杂的、预先编译好的数据库操作。在Java中,我们通常使用`CallableStatement`接口来实现这个功能。下面将详细介绍如何使用Java调用存储过程。 1. *...

    JAVA中使用数据库PPT教案学习.pptx

    | getByte(int columnIndex) | byte | 获取指定列索引的字节值 | | getDate(int columnIndex) | Date | 获取指定列索引的日期值 | | getDouble(int columnIndex) | double | 获取指定列索引的双精度浮点数值 | | ...

    JAVA调用存储过程

    存储过程是预先编译并存储在数据库中的SQL语句集合,可以提高应用程序的性能和效率。本文将详细介绍如何使用JDBC的CallableStatement接口来调用存储过程。 首先,CallableStatement接口是JDBC提供的一种标准方式,...

    Java调用SQL存储过程详解.docx

    在Java编程中,调用SQL存储过程是数据库操作中的常见任务,这有助于提高应用程序的效率和性能。Java通过`CallableStatement`接口提供了调用存储过程的功能,使其能够适应不同的数据库管理系统(DBMS)。下面将详细...

    RSA+bcpkix-jdk15.zip

    byte[] enpass = RSAUtil.encrypt(pk.getPublicKey(), pass.getByte()) String enpassStr = new String(enpass); System.out.println("加密:" + enpassStr); //对字符串解密--注意JAVA中解密要用byte[]这种...

    SQL数据类型和转换

    - `getByte`, `getShort`, `getInt`, `getLong`: 这些方法用于获取整数类型的数据,如TINYINT, SMALLINT, INTEGER, BIGINT。 - `getFloat`, `getDouble`: 用于获取浮点数值,如REAL, FLOAT, DOUBLE。 - `...

    串口乱码疑云.docx

    本文所介绍的检查波特率设置、编码一致性调整以及编程语言中的编码转换方法,都是可以操作并能够实现的解决方案,希望能够帮助广大技术人员解决实际中的串口乱码问题,提高工作效率和通信质量。

    Java文件读写操作大全[文].pdf

    通过循环向`StringBuffer`添加字符串,并使用`getByte("utf-8")`方法将其转换为字节序列,再写入文件。这种模式适用于需要在文件中追加多条信息的场景。 `renameFile`方法演示了如何使用`File`类的`renameTo`方法来...

    JDBC中的Results相关函数

    - `getByte()`: 用于获取TinyInt类型的数据,返回一个byte值。 - `getShort()`: 获取SmallInt类型的数据,返回一个short值。 - `getInt()`: 获取Integer类型的数据,返回一个int值。 - `getLong()`: 获取Bigint...

    gate-core-8.0.zip

    1. 直接操作:`getByte`和`putByte`方法可以直接对字节数组进行读写,无需通过`System.arraycopy`这样的间接方式。 2. 高效复制:`copyMemory`方法可以快速地在内存之间复制数据,效率高于`Arrays.copyOf`等方法。 3...

    Oracle数据库精讲与疑难解析

    这些方法与setXXX()方法相对应,将JDBC类型转换为Java类型,如getByte(), getBigDecimal(), getString()等: ```java cstmt.execute(); byte outByte = cstmt.getByte(1); BigDecimal outDecimal = cstmt....

    nessus2.2.10源码(含有注释)

    7. **并发与多线程**:为了提高扫描效率,Nessus可能会使用多线程或异步处理来并发执行多个扫描任务。源码中的线程管理和同步机制值得深入研究。 8. **结果存储与报告**:扫描结果通常会被存储并生成报告,源码中...

    ResultSet对象获取数据的各种方法

    - `byte getByte(int columnIndex)`:获取字节类型的值。 - `short getShort(int columnIndex)`:获取短整型类型的值。 - `int getInt(int columnIndex)`:获取整型类型的值。 - `long getLong(int columnIndex)`:...

    minizip(old)_GameEngine_minizip_源码

    6. **内存流处理**:在某些情况下,minizip允许在内存中处理ZIP文件,避免了频繁的磁盘I/O操作,提高了效率。 在"GameEngine"的场景下,minizip的使用可能涉及到以下方面: 1. **资源打包**:游戏中的音频、图像、...

    使用C#开发Socket通讯的方法

     [C#] public string DoSocketGet(string server) { //Sets up variables and a string to write to the server Encoding ASCII = Encoding.ASCII;... Byte[] ByteGet = ASCII.GetByte

    android学习资料注册界面实例.pdf

    String himi = extras.getString("himi"); // 使用接收到的数据进行相应操作 } ... } ``` `getIntent().getExtras()`用于获取之前在Intent中存储的额外数据,然后通过`getByte`和`getString`方法获取相应的值。 ...

    JDBC课件 概述与使用

    JDBC(Java Database Connectivity)是Java编程语言中用于与各种数据库进行交互的一种标准接口。它允许Java应用程序通过Java API来连接和操作数据库,提供了一种统一的方法来访问各种类型的数据库,无论数据库是哪种...

Global site tag (gtag.js) - Google Analytics