一.算法题部分收获
<1>关于Stack的相关方法:
1.初始化 :Stack<T>a=new Stack<>(); 相关链接:Stack的相关方法
2.压栈T push(T t);
3.出栈T pop();
4.判空boolean empty()
5.获取元素个数 size()
6.获取栈顶元素 T peek(T t)
<2>关于Queue的相关方法:
1.初始化 :Queue<T>a=new LinkedList<>(); 相关链接:Queue相关方法
2入队T offer(T t);
3.出队T poll();
4.判空boolean isEmpty()
5.获取元素个数 size()
6.获取队头元素 T peek(T t)
二.JAVA基础部分收获
1.JAVA中的值传递(两种):
<1>基本类型值传递:传递的是值,形参改变不影响实参
<2>引用类型值传递:传递的是地址,形参改变影响实参。常见的引用类型:类,对象,接口,数组,String.
2.JAVA类中的实例化底层逻辑:
<1>首先在方法区加载person类信息
<2>在堆中开辟Person对象的空间,创建变量并且初始化0和null(注意:String类型的变量存放在常量区,堆中保存的是地址)
<3>第一次初始化age=90;
<4>调用构造器进行初始化age以及name(注意name的值存放在常量区)
<5>在栈中创建p指向该对象的地址
3.JAVA可变参数的使用:
对于方法名相同,返回值相同,参数个数不同的方法我们可以采用可变参数使用:
例如对多个数进行求和:
语法:
int sum(int ... nums){
int res=0;
for(int i: nums){res+=i;}
return res;
}
<1>可变参数nums相当于一个数组,个数为0-n
<2>直接传一个数组进去也是可以的