创建String对象的性能问题

String message = new String(consumer.nextDelivery().getBody(), StandardCharsets.UTF_8);

在mq的consumer中,会源源不断接收到byte[],然后再将数组转换成String.

这样不停的new String 对象的话会导致内存占用过多,性能有问题吧?

请教各位大侠有好的解决方案吗?

阅读 2.3k
3 个回答

只要一个方法内部不产生太多对象就行了,方法调用结束后会就会回收,这种回收都是Young GC,Young GC的速度都是很快的

不会,这种一般都是局部对象,离开脱离作用域后会被gc,新生代的数据都是朝生夕死

你想多了,这样写不会的,到时候GC会回收没被使用的变量

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题