方法签名:方法的名称+形参列表
重载:方法名称相同,形参列表不同<构造方法允许重载>
对象的生命周期:new分配空间|属性初始化阶段|完整对象存活|对象被标记为垃圾,但未回收时期|
静态方法中无法访问普通属性和调用普通方法,在普通方法中可以访问静态属性和调用静态方法
栈<偏向顺序表> 队列
栈:在哪头插,在哪头删<先进后出,后进先出>
队列: 在一头插/另一头删<先进先出>
双端队列:可以在任意两头进出
实现栈:
插入数据<尾插>void push(int val)
删除数据<尾删>void pop()
查看栈顶数据[top-1]int top()
返回栈内数据元素个数[top]int size()
判断栈是否为空[top=0]boolean isEmpty()
import java.util.Arrays;
public class Stack{
private int[] array;
private int top;
public Stack(int defaultCapacity){
array=new int[defaultCapacity];//defaultCapacity:栈元素的大小
top=0;
}
public Stack(){
this(20);//默认的栈的大小
}
public void push(int val){
if(top==array.length){
array=Arrays.copyOf(array,array.length*2);//扩容;array:是原来的array,array.length*2:新的长度
}
array[top++]=val;
}
public void pop(){
if(top<=0){
System.out.println("栈为空,无法删除");
return;
}
top--;
array[top]=0;//可加可不加,把所有空的位置保持为0;
}
public void top(){
if(top<=0){
System.out.println("栈为空,无法返回栈顶元素");
return -1;
}
return array[top-1];
}
public int size(){//虽然是从0开始计数的,但返回的top就是栈的元素个数
return top;
}
public boolean isEmpty(){//布尔类型的默认值是true或false,所以判断就好
return top==0;//为空返回的就是true,不为空返回的就是false.
}
}