(1)static关键字:
用于修饰成员变量(类变量)和成员函数。
(2)被修饰后的成员具有以下特点:

  • 可以直接被类名调用。/或者说,多了一种调用方式,类名.成员。
  • static修饰的成员,优于对象先存在在计算机内存中,随着类的加载而存在。
  • 优先于对象存在。
  • 被所有对象所共享。

(3)注意:
静态方法只能访问静态成员。
静态方法中不可以写this,super关键字。(因为static不依赖于对象,而this依赖于对象)
主函数是静态的。
非静态成员既可以访问非静态成员也可以访问静态成员。
(4)添加static关键字后的测试:

class Student{
	static String name="Huahudiediedie";//实例变量
	static int age=19;
	static String school="郑州大学";//类/静态变量
	
	Student(String name ,int age){
		this.name=name;
		this.age=age;
	}
	
	 public static void show(){
		System.out.println(name+","+age+"岁,毕业于"+school);
	}
}

class StaticDemo{
	public static void main(String[] args){
		Student s=new Student("laoyao",20);
		s.show();
		
		System.out.println(Student.name);//类名.属性√
		System.out.println(Student.school);	//类名.属性√
		Student.show();//类名.方法√
	}
}

显示结果:

(5)成员变量和静态变量的区别?

1.存储位置不同

成员变量存在于堆内存中(对象的特有数据)。
静态变量存在在静态方法区(所有对象共享的数据)。

2.调用方式不同:

成员变量:对象.成员
静态变量:既可以通过对象调用,也可以通过类名调用。

3.生命周期不同:

成员变量:依赖对象。
静态变量:依赖类