Static关键字

static定义:

在Java中,static被定义为关键字,它用来修饰成员变量,方法,代码块,还有接口类中的常量和方法,它们定义的位置与执行的顺序也息息相关。

修饰成员变量:

用static修饰的变量就归属于类,它们共享一个内存空间,无论哪一个静态成员变量被修改,他们都指向那个被修改的空间,意思就是所有的静态成员变量都被修改,

例如:当p1.age被赋值21时,p2.age被修改为22,因为指向同一个内存空间,所以最后输出的结果都是22

public class Person {
    static int age;
}
class Test{
    public static void main(String[] args) {
      
       Person p1=new Person();
        p1.age=21;

        Person p2=new Person();
        p1.age=22;

        System.out.println(p1.age);
        System.out.println(p2.age);

    }
}

修饰方法:

当一个方法被static修饰的时候,称为静态方法,当普通方法被调用时,需要创建实例对象,而被static修饰的方法,即使没有创建对象也可以用类名直接调用。


public class Person {
    public static void dosth(){
        System.out.println("Hello World");
    }

}
class Test{
    public static void main(String[] args) {
        Person.dosth();
    }
}

注意:静态方法在使用时,静态方法只能访问静态成员变量和静态方法,不能访问普通方法,而普通方法可以访问静态方法和静态变量。

代码块

static修饰的代码块称为静态代码块,它在”类被加载“时运行,并且只运行一次,且优先于其他构造代码块和构造方法,如果一个类中有多个静态代码块时,则会按照顺序执行。

class Test{

    static{
        System.out.println("先执行这个静态代码块");
    }
    
    static {
        System.out.println("再执行这个静态代码块");
    }

    public static void main(String[] args) {

    }
}

运行结果:

修饰接口类中的常量和方法:

因为接口类是一种特殊的抽象类,不能定义实例的成员变量,但是可以定义静态的成员变量,使用final 和static 修饰成一个静态常量

interface AbsClass{
    public static final int M=3;
}

接口类中也有静态方法,它在调用时用  接口类名可以直接调用

interface AbsClass{
    static void dosth(){

    }
}

class A{
    public static void main(String[] args) {
        AbsClass.dosth();
    }
}

执行顺序:

先静态构造代码块   --->  构造代码块  --->  构造方法  --->  普通方法,

如果代码中存在继承关系则:先父类静态代码块,再子类静态代码块,下来是父类的构造带码块和构造方法,最后是子类的构造代码块和构造方法。

目录

修饰成员变量:

修饰方法:

代码块:

修饰接口类中的常量和方法:

执行顺序:


相关推荐

  1. static关键字详解

    2024-01-29 20:10:01       32 阅读
  2. C++ 中关键字 Static

    2024-01-29 20:10:01       41 阅读
  3. 关于static关键字

    2024-01-29 20:10:01       22 阅读
  4. static关键字总结

    2024-01-29 20:10:01       16 阅读
  5. C单片机关键字extern、static 和 const

    2024-01-29 20:10:01       40 阅读
  6. C/C++中static关键字详解

    2024-01-29 20:10:01       30 阅读
  7. C语言中的static关键字

    2024-01-29 20:10:01       21 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-29 20:10:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-29 20:10:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-29 20:10:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-29 20:10:01       20 阅读

热门阅读

  1. 二分查找(适应于无序数组的一种方法)

    2024-01-29 20:10:01       32 阅读
  2. GDB调试技巧实战--自动化画出类关系图

    2024-01-29 20:10:01       41 阅读
  3. c#泛型(Generic)

    2024-01-29 20:10:01       39 阅读
  4. 「优选算法刷题」:汉明距离

    2024-01-29 20:10:01       34 阅读
  5. Mysql学习笔记第八章—索引与范式

    2024-01-29 20:10:01       40 阅读
  6. MySQL45讲 -- MYSQL中的锁

    2024-01-29 20:10:01       38 阅读
  7. C语言标准的输入输出

    2024-01-29 20:10:01       38 阅读
  8. C++循环嵌套和break语句

    2024-01-29 20:10:01       33 阅读