java中static(静态成员变量.方法与普通成员变量.方法区别)

如果文章对你有所帮助,请点喜欢并关注,这将是我最大的动力,谢谢

PS:这里的普通方法和成员变量是指,非静态方法和非静态成员变量
首先static是静态的意思,是修饰符,可以被用来修饰变量或者方法。
静态成员变量是指类的成员变量,他不属于类的对象,只属于类单独,与一般意义上的成员变量有视区别。
方法同上。
栗子: static int i=1; 这里的i就是一个静态变量。具体特性如下

静态成员变量与普通成员变量

  • 内存分配
    静态静态,就是当类被加载时,这个内存就静静的待在这里,就已经存在,而普通成员变量,只有类被实例化时才分配内存。
  • 调用方法
    成员变量需要对象才能被调用;而静态成员变量可以直接通过类来调用,当然也可以直接调用
    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的值,而静态成员变量不是这样。

静态方法与普通方法

我们一直用的main方法就是静态方法
在此我只讨论一下调用的问题

  1. 静态方法可以调用静态成员变量,调用普通成员变量时需创建对象;非静态方法可以随意调用静态成员变量或普通成员变量。
  2. 静态方法和普通方法调用特性同上,静态调用普通方法时需创建对象,而普通方法随意。
java中static(静态成员变量.方法与普通成员变量.方法区别)_第1张图片
aa.png

2015.8.6

静态方法的使用情况

是在类中执行该方法时,该方法并不对成员变量有任何操作,也就是说该静态方法的操作不针对对象,只针对该类时,使用。那么使用该类也就不需要创建对象,而可以直接通过类名.方法名实现。

java中static(静态成员变量.方法与普通成员变量.方法区别)_第2张图片
工具类.png
java中static(静态成员变量.方法与普通成员变量.方法区别)_第3张图片
使用类.png

你可能感兴趣的:(java中static(静态成员变量.方法与普通成员变量.方法区别))