JAVA每一次将字节数组转换成String都需要new一个新String吗?这样不是很占内存空间吗

JAVA每一次将字节数组转换成String都需要new一个新String吗?这样不是很占内存空间吗?... JAVA每一次将字节数组转换成String都需要new一个新String吗?这样不是很占内存空间吗? 展开
 我来答
GFP_Cold
2015-01-31 · TA获得超过817个赞
知道小有建树答主
回答量:683
采纳率:50%
帮助的人:547万
展开全部
你好,很高心回答你的问题。刚才试了下,我所熟知由字节数组转换成String的方法有两种:

1. byte[] byBuffer = new byte[20];
String strRead = new String(byBuffer);
2. strRead = String.copyValueOf(strRead.toCharArray(), 0, byBuffer.length]);

那么第一种方式也就不多做赘述了,只是利用带有参数的构造方法将字节数组作为参数去创建了一个String对象;而第二种,我刚才在搜索String的copyValueOf这个静态方法时候也看到了,其实也是创建了一个String对象将一些参数传入到了构造方法当中去。其实每个String都是有大小的,一般String所占有空间不会特别的大,这也就是为什么我们在声明字符串变量或者数据转换的时候直接就用String的原因。而且你可以去看看String的大小分配,如果感兴趣的话,希望能帮到你,望采纳。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-01-31
展开全部
如果不新建个string 那么转化的string到底放在哪里呢?
追问
我想知道有没有一种方法可以改变String对象的内部数据而不用新建String对象
追答
你用完byte[]  可以直接delete掉  这两者数据虽然相同  但还有一些成员不同  直接修改内部数据根本不符合面向对象的思想
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式