//静态:static,是一个修饰符,只能够用于修饰成员(成员变量、成员函数)不能用于修饰局部
//当成员被静态修饰后,就多了一种调用方式,除了可以被对象调用,还可以直接被类名调用
/*
* static特点:
* 1.随着类的加载而加载,消失而消失
*
* 2.优先于对象存在
*
* 3.被所有对象所共享
*
* 4.可以直接被类名调用
*
* 实例变量和类变量区别:
* 1.存放位置
* 类变量随着类的加载而存在于方法区中。
* 实例变量随着对象的建立而存在与堆内存中
* 2.生命周期
* 类变量生命周期最长,随着类的消失而消失
* 实例变量随着对象的消失而消失
*
* 静态的使用注意事项:
* 1.静态方法只能访问静态成员
* 非静态方法既可以访问静态也可以访问非静态
* 2.静态方法中不可以定义this、super关键字
* 3.主函数是静态的
* 静态有利有弊:
* 利处:对对象的共享数据进行单独空间的存储,节省空间,没有必要每个对象中都存储一份
* 可以直接被类名调用
*
* 弊端:生命周期过长、访问局限性(静态只能访问静态)
* */
public class Person {
String name;//在创建对象时才会被创建--成员变量实例变量
static String country="CN";//静态变量、类变量//此时属性值不在堆内存中了,不同对象仍可以使用(可以共享)
public static void main(String[] args) {
Person p=new Person();
System.out.println(p.country);
System.out.println(Person.country);
}