本人对java的堆栈理解的不是很清楚。
所以想用代码来理解,请帮帮忙。
越简单越好。

解决方案 »

  1.   

    这个请csdn上也有请参考:
    http://topic.csdn.net/u/20090629/11/53077db6-d36d-4ee4-a0a3-d1d4b10b4c1a.html?58683http://blog.csdn.net/hughxiaoming/archive/2009/07/02/4315036.aspx个人觉的java 的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray等指令建 立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分 配内存的,JAVA的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。 
    栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。栈中主要存放一些基本 类型的变量(,int, short, long, byte, float, double, boolean, char)和对象句柄。 
    一句两句也说不清楚,慢慢理解。
      

  2.   

    感谢楼上的,文字毕竟太枯燥了,而且不容易理解。
    我想用代码来理解,因为 百度 google 都没有搜索到,所以来这里提问。
    要用代码。
    如:A(){
    int tmp;
    for(){
     B b = new B();
     tmp=0;
    }
    system.out.println(tmp);
    }
    B int (int i){
    int j=0;
     while(i<0){
      B b = new B(j);  j++;
      i--;
    }
     return j;
    }我这只是个例子。希望大家明白。
      

  3.   

    很多啊,用数组模拟或者list来模拟都是一样的
      

  4.   

    自己写了一个类继承List 然后自己定义几个方法模拟先进先出、先进后出