static关键字

  1、当成员变量被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以直接被类名调用

  类名.静态成员

  static特点

  1、随着类的加载而加载(只要一个类一加载就会有静态成员)

    也就是说静态随着类的消失而消失,生命周期长

  2、优先于对象存在

    明确一点静态是先存在的,对象是后创建实例存在的

  3、被所有对象共享

  4、可以直接被类名所调用

  实例变量(对象创建后存在变量)类变量(类一加载就生成的变量)的区别

  1、存放位置

    类变量对着类的加载而存放在方法区中

    实例变量随着对象的建立而存放在堆内存中

  2、生命周期

    类变量生命时期最长 ,随着类的消失而消失

    实例变量的周期随着对象的消失而消失

  静态使用的注意事项

  1、静态的方法只能访问静态的成员

  static String country="中国";

int age=0;

public static void show(){

System.out.println("国家为:"+country+age);

}

  2、非静态方法既可以访问静态也可以访问非静态

  3、静态方法中不可以定义this,super关键字

    因为静态优先于对象存在,

  静态有利有弊

  弊端:生命周期过长,万万不可把所有的变量都定义静态的。

      访问有局限性。(静态只能访问静态)

  利处:对对象的共享数据进行单独空间的存储,节省空间,没有必要每个对象都存储一份。

  

 public class jingTai {
   public static void main(String[] args) {
	   Personone p=   new Personone();
	   p.show();
   }
 }
 class Personone{
	static String country="中国";
	int age=0;
	public  void show(){
		System.out.println("国家为:"+country);
	}
}