- 1、场景
在调试某设备接口时,需要做xml格式的接口转发,添加多个设备终端时,用到循环连接字符串:
String memberList = null; for (DeviceHomeDO deviceHomeDO : homeList) { memberList = memberList + "<Member>\n" + "<id>" + (++i) + "</id>\n" + "<terminalNo>" + deviceHomeDO.getMcuTerminalId() + "</terminalNo>\n" + "<isChairman>false</isChairman>\n" + "</Member>"; }
idea提示用StringBuffer或者StringBuilder的append()方法连接。
- 2、机理
原因是:每次循环里的字符串+连接,都会新产生一个string对象,在java中,新建一个对象的代价是很昂贵的,特别是在循环语句中,效率较低。故在循环中一般使用StringBuffer.append来代替string的+运算符。
使用StringBuffer进行替换,需要注意的是StringBuffer.append会报空指针异常
正确的初始化方式:StringBuffer memberList = new StringBuffer();
版权声明:本文为eaglepe原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。