关于Java String getByte效率问题

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

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

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

lorewolf311
tianchao_ 你在做什么 ? 会考虑这样的效率问题
接近 6 年之前 回复

7个回答

拼接:
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);
纯手打,望采纳

sunmonve
sunmonve 这位朋友,我觉得你的这个思路是可行:)
接近 6 年之前 回复

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

序列化serialization

不行就用队列的形式来

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

sunmonve
sunmonve 补充以下,这位朋友,你的这个方案我感觉的会产生以下两个问题: 1.分割符的选择。 2.split的效率可能会比多次getbyts要更耗时
接近 6 年之前 回复
M44346460
M44346460 这就相当于分次做,和一次完成。至少比一次一次调用getBytes要快。至于效率能有多少提高,取决是否满足业务上处理的需要!
接近 6 年之前 回复
sunmonve
sunmonve 这为朋友的方案是可行的,但是效率如何呢?
接近 6 年之前 回复

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

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐