1、下面代码执行结果?
类初始化过程
- 一个类要创建实例需要先加载并初始化该类
main方法所在的类需要先加载和初始化 - 一个子类要初始化需要先初始化父类
- 一个类初始化就是执行< clinit >()方法(字节码文件可以看见)
◇ < clinit >()方法由静态类变量显示赋值代码和静态代码块组成
◇类变量显示赋值代码和静态代码块代码从上到下顺序执行
◇ < clinit >()方法只执行一次
实例初始化
结果
(5)(1)(10)(6)(9)(3)(2)(9)(8)(7)
(9)(3)(2)(9)(8)(7)
2.运行结果?
结果:
3.编程题
1.递归:
package java2;
public class TestStep {
public int f(int n){
if (n == 1 || n == 2){
return n;
}
return f(n-1) + f(n-2);
}
public static void main(String []args){
TestStep testStep = new TestStep();
int f = testStep.f(40);
System.out.println(f);
}
}
2.循环迭代
//循环迭代
public static int loop(int n){
if (n==1 || n==2){
return n;
}
int one = 2;//初始化为走到第二阶台阶
int two = 1;//初始化为走到第一阶台阶
int sum = 0;
for (int i = 3; i <= n; i++) {
//最后跨两步 + 最后跨一步的走法
sum = two + one;
two = one;
one = sum;
}
return sum;
}