1.栈
栈是一种后进先出(LIFO, Last In First Out)的数据结构。
这意味着最后一个被压入栈中的元素最先被弹出。
方法调用:每当一个方法被调用时,Java虚拟机(JVM)会在栈中为该方法分配一个栈帧(Stack Frame)。
局部变量:方法中的局部变量也存储在对应的栈帧中。
方法返回:当方法执行完毕时,栈帧被弹出,方法的返回值(如果有的话)也会被处理。
栈与堆的对比
栈:
用于方法调用和局部变量存储。
内存分配和释放速度快。
空间较小,容易发生栈溢出(Stack Overflow)。
堆:
用于动态分配内存,存储对象实例。
内存管理较为复杂,需要垃圾回收机制。
空间较大,但分配和回收速度相对较慢。
2.队列
3.数组
4.链表
5.LinkedList集合的特有方法
public void addFirst(E e) //在该链表开头插入指定的元素
public void addLast(E e) //将指定的元素追加到此列表的未尾
public E getFirst() //返回此列表中的第一个元素
public E getLast() //返回此列表中的最后一个元素
public E removeFirst() //从此列表中删除并返回第一个元素
public E removeLast() //从此列表中删除并返回最后一个元素