java - 方法执行完成后是否清除了本地字节缓冲区?
问题描述
每一秒我都会调用以下代码:
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
解决方案
您正在使用局部变量,这意味着在执行您的方法后 GC 将在正确的时间清理该方法使用的资源。因此您无需担心内存泄漏或损坏。
使用java.nio.ByteBuffer的时候,如果分配了很多内存,会不会系统文件被擦除,设备停止工作?
答案是不可能的。操作系统永远不会允许简单的应用程序损坏您的文件系统
推荐阅读
- javascript - 单击子元素会为 onclick 事件 reactjs 提供未定义
- php - 产品缺货时禁用 woocommerce 复制简短描述
- python - 从以向量为参数的函数返回数组列表
- bash - 我将如何缩短此命令并重复更改字段编号?
- reactjs - 滚动或选择项目时,多选框弹出框不断跳跃
- sql - 将日期时间列中的时间替换为 0
- angular - 以角度导入许多文件
- reactjs - 有没有办法在 SPFX 的应用程序定制器扩展中使用 ComponentDidMount() 和 ComponentDidUpdate()
- database - 用sybase语言显示数据库表
- django - Django 独特的多对多字段