堆、堆栈和队列

 

堆和堆栈的区别

1:堆栈的大小是固定的,编译器需要知道存放到堆栈的数据的大小,灵活性较差。引用存放在堆栈中。

堆可以动态分别空间,大小没有限制比较灵活。通过new创建的对象存放在堆中。

2:堆栈只有一个出入口,是先进后出的数据结构。先分配的内存后释放。

堆中的数据是无序的,创建和释放内容都没有固定的顺序

3:堆是全局的,全局变量,静态变量以及new创建的变量存放在堆中。

堆栈是局部的,局部变量存放在堆栈中,进入方法是分配堆栈空间,方法返回后,释放堆栈空间。所以方法返回后局部变量就没有了。
 

队列

队列和堆栈是线性结构,堆是树形结构。堆栈只有一个出入口,是先进后去队列有出口和入口,是先进先出的结构。

你可能感兴趣的:(java)