java static关键字

来源:互联网 发布:glenn medeiros 知乎 编辑:程序博客网 时间:2024/06/06 14:15

static关键字可以用来修饰代码块、属性、方法。

被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。


1 、静态代码块

用static修饰的代码块称之为静态代码块:

    public class Test {
   
      static{ 
    System.out.println("静态代码块");        
    }    
    }

注意:

1. 静态代码块只有在类第一次加载到内存的时候执行一次。
2. 构造代码块在每次new对象的时候都会执行一次。
3. 构造代码块执行在构造方法前面。

2、 静态属性

用static修饰的成员变量,叫静态成员变量。(静态域、静态属性)。

例如: 

    public static int b;


注意:

1. 静态变量只有在第一次加载类到内存的时候初始化一次。
2. static只能修饰成员变量,不能修饰局部变量。

3、 静态方法

用static修饰的方法。

例如:

    public static int test(){
    System.out.println("静态方法");
    }
      
注意:静态方法内访问本类的 属性和方法 必须是静态的。

总结:

1. 在类中,用static声明的成员变量为静态成员变量,在类第一次使用时被初始化,对于该类的所有对象来说,static成员变量只有一份,它是该类的公用变量,也叫类变量或类属性。
2. 用static声明的方法为静态方法,该方法独立于类的实例,所以也叫类方法。
3. 静态方法中只能调用本类中其他的静态成员(变量和方法)。
4. 静态方法中不能使用this和super关键字。
5. 静态成员(类成员)可以通过类名直接访问,也可以通过类的对象去访问。


静态区:

1. 又叫方法区,不属于堆,也不属于栈,类似堆一样,被所有的线程共享。方法区包含所有的class和static变量。
2. 方法区中包含的都是在整个程序中永远唯一的元素,如class,static变量。