java static成员变量方法和非static成员变量方法的区别

如题所述

内存分配
静态静态,就是当类被加载时,这个内存就静静的待在这里,就已经存在,而普通成员变量,只有类被实例化时才分配内存。
调用方法
成员变量需要对象才能被调用;而静态成员变量可以直接通过类来调用,当然也可以直接调用
PS:小小疑问为什么可以直接调用,我看一些参考书上只说可以通过类来调用?
public class demo {
static int i=10;
public static void main(String[] args){
int k=i;//直接调用
int j=demo.i;//通过类来调用
System.out.println("直接调用k:"+k);
System.out.println("通过类来调用j:"+j);
}
}
生命周期
静态成员变量从类被加载开始到类被卸载,一直存在;普通成员变量只要在类被实例化也就是创建对象是才开始存在,一直到对象结束,生命也告终。
共享方式
静态成员变量是全类共享的,即使不是对象,也可以调用,并且内存不变;普通成员变量是每个对象单独享用的,就是说你这个对象有一个int i=1,我再给该类创建一个新的对象,他也有一个int i,但他可以不等于1,可以等于5,也可以等于10,但无论等于多少,都不会影响之前对象的i的值,而静态成员变量不是这样。
温馨提示:答案为网友推荐,仅供参考
相似回答