1. 修饰成员变量:有static修饰的为静态变量,没有static修饰的称为实例变量。
实例变量:属于对象的,一个对象有一份。在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。存储在堆中。
静态变量:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。
Demo:
1 public class Spike 2 { 3 public static void main(String[] args) 4 { 5 Counter a = new Counter(); 6 System.out.println(a.increment()); //输出0,count=1 7 System.out.println(a.anotherIncrement()); //输出2, count=2 8 Counter b = new Counter(); //由于是静态变量,count=2 9 System.out.println(b.increment()); //输出2 10 } 11 } 12 class Counter 13 { 14 private static int count = 0; 15 public int increment() 16 { 17 return count++; //先返回count再执行++语句 18 } 19 public int anotherIncrement() 20 { 21 return ++count; //先++,再返回count值 22 } 23 }