一 概述
在调用方法过程中,传递的参数以及调用中创建的临时变量都被保存在栈(Stack)中,这样速度就会比较快。其他变量,如静态变量,实例变量,他们都会在堆(heap)中被创建,并保留在堆中,这样就会比保存在栈中的数据读取慢。
二 Java中的成员变量
Java类的成员变量可以分为两种:
- 被static关键字修饰的变量,叫类变量或者静态变量。
- 普通的实例变量。
三 变量被使用的过程
程序运行过程中,实例变量属于某个对象的属性,必须创建实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。
静态变量不属于某个实例对象,而是属于类,即类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,则静态变量就可以被使用。总而言之为实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名使用类名来引用。
局部变量与静态变量之间的比较
public static int b = 0;
public static void main(String[] args) {
System.out.println(System.currentTimeMillis());
towNum(arr, 51);
System.out.println(System.currentTimeMillis());*/
long start = System.currentTimeMillis();
int a = 0;
for (int i = 0; i < 1000000000; i++) {
a++;
}
System.out.println(System.currentTimeMillis() - start);
start = System.currentTimeMillis();
for (int i = 0; i < 1000000000; i++) {
b++;
}
System.out.println(System.currentTimeMillis() - start);
}
结果:
局部变量:2
类变量:52
总结:多使用局部变量。