java内存泄漏测试
来源:互联网 发布:sql语句的关键字 编辑:程序博客网 时间:2024/04/29 04:28
昨天看书的时候看到了一个关于java的内存泄漏的问题,所以就自己照着写了这个程序,拿出来分享,反正我自己觉得有问题,还望各位大神来帮我看看 ,如果不是内存泄漏。给我一个例子。。谢谢。。
public class SelfStack {
private int size=0;private Object[] elements;
public Object[] getElements() {
return elements;
}
public void setElements(Object[] elements) {
this.elements = elements;
}
public SelfStack(int capability)
{
elements=new Object[capability];
}
public void push(Object object)
{
ensureCapability();
elements[size++]=object;
}
public Object pop()
{
return elements[--size];
}
public int getSize() {
return size;
}
public void ensureCapability(){
if(size==elements.length)
{
Object[] newElements=elements;
elements=new Object[2*elements.length];
System.arraycopy(newElements, 0, elements, 0, size);
}
}
}
public void testStack() //内存泄漏测试。。。。
{
SelfStack stack=new SelfStack(10);
for(int i=0;i<11;i++)
{
String s="asd";
stack.push(s);
}
System.out.println(stack.getElements().length); //20
System.out.println(stack.getSize()); //11
System.out.println(stack.getElements()[stack.getSize()-1]);
stack.pop();
System.out.println(stack.getSize()); //10
if(stack.getElements()[10]!=null)
{
System.out.println("内存溢出了。。。。");
}
}
}
我的看法是:这好像不是一个内存泄漏,问题主要是出在size,size貌似只是一个游标,并没有什么特殊的含义。。各位觉得呢。。。
这个栈保持了一个对弹出对象的引用,并没有呗java垃圾回收掉。。还忘各位好好帮我看看。。
解决方案:(书上说的:)
public Object pop()
{
Object result=elements[--size];
elements[size]=null;
return result;
}
- java内存泄漏测试
- #测试内存泄漏
- Hander测试内存泄漏
- Qt 内存泄漏测试
- Java系统中内存泄漏测试方法的研究
- Java系统中内存泄漏测试方法的研究
- Java系统中内存泄漏测试方法的研究
- Java系统中内存泄漏测试方法的研究
- Java系统中内存泄漏测试方法的研究
- Java系统中内存泄漏测试方法的研究
- 内存泄漏测试小工具
- 内存泄漏测试小工具
- Java的内存泄漏
- Java的内存泄漏
- Java的内存泄漏
- java 内存泄漏
- java内存泄漏
- Java的内存泄漏
- C#获取网页内容的三种方式
- Oracle online redo log日志 (当前或非当前日志) 损坏之后的DB恢复
- 选择排序法
- Java的基本数据类型
- 程序员谨防加班猝死之十大建议
- java内存泄漏测试
- 幻方问题
- mongodb中使用mapreduce
- Windows 7系统安装MySQL5.5.21图解
- 回望测绘前辈灿烂硕果 研讨学术大家精深思想 陈俊勇院士学术思想研讨会举办
- gnome桌面环境相关
- mysql 复合主键
- 用vs开发工具调试javascript
- 水杯测试看测试