gpt4 book ai didi

java局部变量的内存分配

转载 作者:行者123 更新时间:2023-12-01 22:57:56 25 4
gpt4 key购买 nike

我有一个java应用程序,它使用SerialPortEvent,它将被连续调用,

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);
.......
......
}

我在文本 Pane 中打印数组变量内容。我有一个场景,其中该事件将被连续调用,它使Windows内存(私有(private)工作集)逐渐增加并且不会停止。

我的问题是,每次调用事件时创建新的变量是否会占用内存?

我只是获取内容并将其打印在 JTextpane 中,仅此而已。

最佳答案

这样创建变量不会造成内存泄漏。当您在某处保留对局部变量的引用时,就会发生泄漏。

我的猜测是,您最终会将 sBuilder 的内容附加到 JTextpane 中,这当然会永久保留内容。

解决方案是检查JTextpane 的长度(行数)。如果太多,则删除一些。这样,您始终在内存中保留 1000 行,并且消耗量将受到控制。

相关:

关于java局部变量的内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23753342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com