Java中的Static关键字

Static关键字

1.定义

   方便在没有创建对象的情况下来进行调用(方法/变量),Java提供了static修饰符,用来修饰静态变量和方法。

2.特点

    A.随着类的加载而加载

    B.优先于对象存在

    C.被类的所有对象共享

    D.可以通过直接通过类名调用,也可以通过对象名调用

3.内存解释

    用Static修饰的静态变量和方法,在类(class文件)被加载时,自动地在方法区中的“静态区”分配内存。

4.注意事项

    A.在静态方法中是没有this关键字的

        例如:以下代码会报错:无法从静态上下文中引用非静态变量num

class Teacher{
  public int num=10;
  public static void show(){
    System.out.println(num);
    System.out.println(this.num);
  }
}

 

    B.静态方法只能访问静态成员变量和静态成员方法,不能访问非静态变量和非静态方法

5.静态变量和成员变量的区别

    A.所属不同

        静态变量属于类,所以也称作类变量

        成员变量属于对象,所以也成为实例变量(对象变量)

    B.内存中的位置不同

        静态变量存储于方法区的静态区

        成员变量存储于堆内存

     C.内存出现时间不同

        静态变量随类的加载而出现,随类的消失而消失

        成员变量随对象的创建而出现,随对象的消失而消失

     D.调用不同

        静态变量可以通过类名或者对象名调用

        成员变量只能通过对象名来调用

posted @ 2019-03-25 21:11  槐城一只猫  阅读(149)  评论(0编辑  收藏  举报