80,337
社区成员
发帖
与我相关
我的任务
分享
byte[] buf_byte = new byte[30];
,每次执行这个函数都申请一个byte变量,那么程序一直跑会不会出问题,比如内存满了之类的;
public String test(){
String a;
while(true){
String b;
}
String c;
return c;
}
1.String a的作用域在test()中,调用完test()后a就变成可回收的变量
2.String b的作用域在while中,每执行一次循环后,本次循环产生的b就变成可回收的变量
3.String c的作用域在test()中,但是其同时也被作为返回值,系统会产生一份c的副本并将此副本返回,同时方法中的c也变成了可回收的变量
只有像BItmap的decodeStream()这种实际是调用c执行的代码才需要注意内存的释放
用这个类可以减少你的工作
ByteBuffer buffer = ByteBuffer.allocate(30); //初始化30个长度的空间
buffer.put((byte)0x10); //添加一个byte,,后面都一样,,,,,
buffer.put((byte)0x19);
////
buffer.flip();//必须执行,为读取数据做准备
byte[] data = buffer.array();// 获取所有数据 就是30个字节的数组了 ,
你只申请了30的byte 一般很难内存变满,在JAVA里面一般不容易出现。