static可以修饰成员变量和成员函数、当有共享数据时就用static修饰,每个对象都能直接用,因为static随着类加载后直接存在了方法区,而实例类要在每个对象中存一份,这样比较占资源,用了static修饰后,就可以节约内存资源。
被static修饰的成员特点:被修饰的成员是随着类的加载而加载,反之随着类的消失而消失,说明它的生命周期最长
优先于对象存在。被所有对象所共享,特有内容被对象存储,共性内容用static修饰,这样节约内存资源。放在了方法区或共享区或叫数据区(类中的方法和共享数据都在此区)
class Person
{
private String name;//成员变量(实例变量)
static private String country="cn";//静态的成员变量(类变量)
Person(String name)
{
this.name=name;
System.out.println(name+":"+country);
}
}
class PersonDemo
{
public static void main(String[] args)
{
Person p = new Person("lisi");
Person p1 = new Person("zhangsan");
}