【发布时间】:2014-05-21 14:38:13
【问题描述】:
基于以下问题,
http://stackoverflow.com/questions/23753342/java-memory-allocation-for-local-variables
我使用 SerialPortEvent 从串口读取数据,
public String logtext = "";
public void serialEvent(SerialPortEvent evt) {
if (evt.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
try {
StringBuilder sBuilder = new StringBuilder();
int length = input.available();
byte[] array = new byte[length];
int numBytes = input.read(array);
for (byte b : array) {
logText = new String(new byte[] {b});
sBuilder.append(logText);
}
//Finally i append the StringBuilder to JtextPane
.......
......
}
创建 new String() 每次调用 serialEvent 时都会创建新实例,这会增加内存使用量。在某些情况下,此 serialEvent 将每秒调用一次。
有没有其他有效的方法可以在不使用 new 操作符的情况下做到这一点?
请帮忙
【问题讨论】:
-
阅读一下 String 的文档吧?
标签: java string memory bytearray