首页 > 解决方案 > 方法执行完成后是否清除了本地字节缓冲区?

问题描述

每一秒我都会调用以下代码:

public Data getData(byte[] arr){
    //java.nio
    ByteBuffer buffer = ByteBuffer.allocate(arr.length);
    buffer.put(arr);
    ByteBuffer f = ByteBuffer.wrap(arr);        
    //using buffer and f. and calculate data        
    buffer.clear();
    f.clear();      

    return data;
}

会不会有内存问题?我的记忆清晰了吗?此代码会损坏我的设备吗?

我的设备安卓 4.4

标签: javaandroidbytebuffer

解决方案


您正在使用局部变量,这意味着在执行您的方法后 GC 将在正确的时间清理该方法使用的资源。因此您无需担心内存泄漏或损坏。

使用java.nio.ByteBuffer的时候,如果分配了很多内存,会不会系统文件被擦除,设备停止工作?

答案是不可能的。操作系统永远不会允许简单的应用程序损坏您的文件系统


推荐阅读