JAVA每一次将字节数组转换成String都需要new一个新String吗?这样不是很占内存空间吗
JAVA每一次将字节数组转换成String都需要new一个新String吗?这样不是很占内存空间吗?...
JAVA每一次将字节数组转换成String都需要new一个新String吗?这样不是很占内存空间吗?
展开
2个回答
展开全部
你好,很高心回答你的问题。刚才试了下,我所熟知由字节数组转换成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的大小分配,如果感兴趣的话,希望能帮到你,望采纳。
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掉 这两者数据虽然相同 但还有一些成员不同 直接修改内部数据根本不符合面向对象的思想
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询