了解Java中堆、栈和队列的含义及其区别,让我们更好的了解这三者。
堆是一个运行时数据区,通过new等指令创建,不需要程序代码显式释放
<1>优点:
可动态分配内存大小,生存周期不必事先告诉编译器,Java垃圾回收自动回收不需要的数据;
<2>缺点:
运行时需动态分配内存,数据存取速度较慢。
如:
String str = new String(“abc”);
String str2 = new String(“abc”);
它们代表的含义如下图所示:
栈限制仅在表的一端进行插入和删除运算的线性表,先进后出FILO
<1>优点:
存取速度比堆快,仅次于寄存器,栈数据可以共享;
<2>缺点:
存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。
如:
String str = “abc”;
String str2 = “abc”;
它们代表的含义如下图所示:
队列限制仅在表的一端(尾端)进行插入,另一端(首端)进行删除的线性表,先进先出FIFO