栈与堆的概念

package com.zking.j2ee;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Iterator;

import com.sun.xml.internal.bind.v2.runtime.reflect.ListIterator;

public class Temp {

public static void main(String[] args)throws Exception {
//ArrayList 默认的长度是10 当长度为10的时候,增长 因子数是0.5倍,向下取整数
ArrayList arr=new ArrayList();
arr.add("a");
arr.add("b");
arr.add("c");
arr.add("d");
arr.add("e");
arr.add("f");
arr.add("g");
System.out.println(arr.size());
System.out.println("***************下标输出方式");
// //下标输出方式
for (int i = 0; i < arr.size(); i++) {
System.out.println();
}
System.out.println("***************foreach输出(>=jdk1.5)");
//foreach输出(>=jdk1.5)
for(Object o:arr) {
System.out.println(o);
}
System.out.println("***************jdk1.8的语法糖");
// //jdk1.8的语法糖
arr.forEach(x->System.out.println(x));

System.out.println("***************迭代器");
// //迭代器
Iterator it= arr.iterator();
while(it.hasNext()){
System.out.println(it.next());
}

ArrayList arr=new ArrayList(5);
for(int i=0;i<30;i++) {
print(arr);
arr.add(i);
}

ArrayList arr=new ArrayList(5);
arr.add("a");
arr.add("b");
arr.add("c");
arr.add("d");
arr.add("e");
ListIterator list=(ListIterator) arr.listIterator();

System.out.println("----------下");
//向下读取
while(list.hasNext()) {
System.out.println(list.next());
}

System.out.println("----------上");
//向上读取
while(list.hasPrevious()) {
System.out.println(list.previous());
}

//栈 是一个车厢 最大的容量是 3M
//堆 是一个火车 将内存中的零散的空间组成的一张链式表格
//实现自定义的栈 mystack


}
static void print(ArrayList arraylist) throws Exception {
Class c=arraylist.getClass();
Field elementData=c.getDeclaredField("elementData");
elementData.setAccessible(true);
Object[] objects=(Object[]) elementData.get(arraylist);
System.out.println(objects.length);
}


}

原文地址:https://www.cnblogs.com/jack888/p/10897757.html