可变参数(可归到重载)
public static void main(String[] args) {
Demo01 demo01 = new Demo01();
demo01.test(1,2,23,3,4,6);
}
public void test(int i,int... j ){
}
public static void main(String[] args) {
printMax(34,23,154,54,6,4);
printMax(new double[]{1,2,3,4});
}
public static void printMax(double... number){
if (number.length == 0){
System.out.println("No argument passed");
return;
}
double resulet = number[0];
//排序算法
for (int i = 1; i < number.length ; i++) {
if (number[1] > resulet){
resulet = number[1];
}
}
System.out.println("The max value is" + resulet);
}
递归
递归深度越大,越占内存!!!
public static void main(String[] args) {
System.out.println(c(5));
}
//5!
public static int c(int n){
if (n == 1){
return 1;
}else {
return n*c(n-1);
}
}
String,Stringbuffer和Stringbuilder的区别
String又不可变性 final 少量数据
Stringbuffer 可变长 append 多线程,大量数据 效率低,安全
Stringbuilder 可变长 单线程,大量数据 效率高不安全
数组初始化及内存分析
- 静态初始化
- 动态初始化
- 默认
多态
- 父类的引用指向子类的对象;
- 把子类转换为父类,向上转型;
- 把父类转换为子类,向下转型;(强制转换)
- 方便方法的调用,减少重复的代码!!!简洁