前言:
在java中,static变量为静态成员变量,生命周期与类相同。

它是该类的公用变量,被类的所有实例共享,在类被载入时显示初始。

static变量只有一份,一般用“类名.类属性/方法"调用,也可以通过对象调用。

在static方法中不可直接访问非static成员

实例:

public class User {
    int id;
    String name;
    String pwd;
    static String address = "博学楼";

    public User(int id, String name){
        this.id = id;
        this.name = name;
    }

    public void login(){
        System.out.println(name+"要登陆!");
    }

    public static void printaddress(){
        //login();调用非静态会出错
        System.out.println(address);
    }
    public static void main(String[] args){
        User u1 = new User(101,"Boss");
        User.printaddress();
        u1.printaddress();
        User.address = "34号楼";
        User.printaddress();
        u1.printaddress();
    }
}

代码分析:
1.在printaddress中,不可调用login,因为login调用name非static
2.static的变量可修改,且永久修改。
3.可通过对象查询static,也可通过对象永久修改。