sunmonve
sunmonve
2014-07-18 11:52

关于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?

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

7条回答

  • hu_2009sdu hu_2009sdu 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);
    纯手打,望采纳

    点赞 评论 复制链接分享
  • taolei taolei 7年前

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

    点赞 评论 复制链接分享
  • james_lover 李黄河 7年前

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

    点赞 评论 复制链接分享
  • M44346460 M44346460 7年前

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

    点赞 评论 复制链接分享
  • iteye_11009 iteye_11009 7年前

    不行就用队列的形式来

    点赞 评论 复制链接分享
  • hntangch1 hntangch1 7年前

    序列化serialization

    点赞 评论 复制链接分享
  • xiaomin1991222 xiaomin_____ 7年前

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

    点赞 评论 复制链接分享

相关推荐