/*
内存泄漏:
使用数组模拟堆栈的存储方式:
1. 堆栈的存储特点:先进后出,后进先出
注意:
1.如果对象不再使用,不要让变量指向该对象,要让该对象尽快被垃圾回收期回收。
*/
package com.jin.michael;
import java.util.Arrays;
class StackList{
Object[] elements;
int index = 0; //当前索引值
public StackList(){
this.elements = new Object[3];
}
//添加内容方法
public void add(Object o){
//添加元素之前,首先检查容量是否够用
ensureCapcity();
elements[index++] = o;
}
//出栈
public Object pop(){
int tempIndex = --index;
Object o = elements[tempIndex];
elements[tempIndex] = null;
return o;
}
//检查当前数组是否够用
public void ensureCapcity(){
if(index==elements.length){
//新建一个长度
int newLength = elements.length*2;
elements=Arrays.copyOf(elements, newLength);
}
}
//获取当前元素个数
public int size(){
return index;
}
}
public class Demo03 {
public static void main(String[] args){
StackList list = new StackList();
list.add("x");
list.add("b");
list.add("c");
list.add("d");
//输出元素个数
System.out.println(list.size());
//弹出元素
int size = list.size();
for(int i=0; i