堆、栈、队列的区别

堆中主要存放用new构造的对象和数组
优势:可以动态的分配内存的大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的。
缺点:由于要在运行时动态分配内存,存取速度比较慢。

栈中主要存放一些基本类型的变量和对象引用类型。
优势:存取速度比较快,仅次于寄存器,栈数据可以共享。
缺点:栈中的数据大小和生存周期必须是确定的,缺乏灵活性。

队列

是设计程序中常用的一种数据结构,采用“先进先出”的存储结构,类似于队列。数据元素只能从队尾进入,从队首取出。在此队列中,数据元素可以随意增减,但是数据元素的次序不会更改。每次都是取出队首的元素,后面的元素会整体向前移动一位。队列便利数据的速度要快的多

你可能感兴趣的:(堆、栈、队列的区别)