1、斐波那契数列用迭代(循环)实现,不要用递归。
可以使用循环的方式来求斐波那契数列问题, 避免出现冗余运算
//当我们求 fib(40) 的时候发现, 程序执行速度极慢. 原因是进行了大量的重复运算.
class Test {
public static int count = 0; // 这个是类的成员变量
public static void main(String[] args) {
System.out.println(fib(40));
System.out.println(count);
}
public static int fib(int n) {
if (n == 1 || n == 2) {
return 1;
}
if (n == 3) {
count++;
}
return fib(n - 1) + fib(n - 2);
}
}
// 执行结果
102334155
39088169 // fib(3) 重复执行了 3 千万次.
2、当整体初始化的时候,只能在定义的时候初始化
int[] arrar4;
array4 = {1,2,3,4};//这么写会出现报错
int[] arrar4;
array4 = new int[]{1,2,3,4};//在定义时没有初始化,只有这么写才正确
3、for (int x : 数组名:)遍历数组把里面的元素每个都取出来放在X里
4、Java当中局部变量必须先初始化,后使用。否则编译不能通过!
5、静态方法的正确访问方式应该是用类名来访问
6、在Java当中,成员变量没有赋初值的时候,会有默认的初始值。基本类型是对应的0值。如:int是0,boolean是false,char类型是'\u0000',引用类型是null,如String。
7、静态成员变量需要通过类名访问,不能通过this访问,this代表当前对象的引用,静态的成员变量不属于this。
8、Java中的访问修饰符有3个:private,public,protected,但是当定义一个成员变量的时候,没有写这3个任意一个访问修饰符的时候,此时的权限是默认权限default。
9、import不能导入指定包
10、this共有3种使用方式:
this.data 访问当前对象的实例成员变量
this.func() 访问当前对象的实例成员方法
this(参数列表) 访问当前对象的构造方法
11、static只能修饰成员变量(方法外面类里面的变量),不能修饰局部变量(方法里的变量)