static关键字

1.Java中的静态

1.1static修饰成员变量

static修饰的成员变量属于类、也称为类变量,类对象可以使用。使用时可以直接用类名调用。
定义格式:`static 数据类型 变量名;`

例子:

class A{
    static String city="China";
}
public class Demo1 {
    public static void main(String[] args) {
        A a= new A();
        System.out.println(A.city);
        a.city="中国";
        System.out.println(a.city);
    }
}

1.2static修饰成员方法

修饰成员方法时,该方法称为类方法,习惯称之为静态方法。在使用时间建议使用类名调用。

语法格式:

修饰符 static 返回值类型 方法名(){
    //执行语句
}

例子:

class A{
    static String city="China";
    public static void show(){
        System.out.println(city);
    }
}

使用时应注意:

1、静态方法可以直接访问类变量和静态方法
2、静态方法不能直接访问普通成员变量或成员方法
3、静态方法中不可以使用this关键字

调用格式:

    被static修饰的成员可以并且建议通过类名直接访问。虽然也可以通过对象名访问静态成员,原因即多个对象均属 于一个类,共享使用同一个静态成员,但是不建议,会出现警告信息。

1.3static静态代码块

位置:类的方法外。

执行: 随着类的加载而执行。优先于main方法和构造方法的执行

顺序是:静态代码块–> 构造代码块–>构造方法。

作用:给类变量进行初始化赋值。

格式:

class A{
    static{
        //执行语句
    }
}

1.4静态代码内存分析

修饰的内容:

是随着类的加载而加载的,且只加载一次。

存储于一块固定的内存区域(静态区),所以,可以直接被类名调用。

它优先于对象存在,所以,可以被所有对象共享。