静态变量属于类的变量,普通变量属于对象的变量。
静态变量存储在方法区(JDK7以上,静态变量存储在其对应的Class对象中,Class对象和其他普通对象一样存储在堆中),普通变量存储在堆中。
静态变量随着类的加载而加载,随着类的消失而消失。普通变量随着对象的加载而加载,随着对象的消失而消失。
静态变量在内存中有且只有一个,随着类的初次加载而被初始化。普通变量在创建对象时候被初始化,存在多个副本,各个副本互不影响。
静态变量通过类名.变量名或者对象.变量名调用,普通变量只能通过对象.变量名调用。
网友评论