Java——static

【static】

<1>static成员变量存储在内存data segment区域,不是存放在堆中。

<2>静态成员变量属于整个类,任何一个对象都可以访问这个值;如果没有对象,可以用类访问,格式为:类.静态成员变量。

 

【静态变量与非静态变量】

 

静态成员变量只存在一份(不论new多少个对象,也不管用不用到该变量,它属于整个类),存放在内存的数据区;非静态成员变量每new一个对象就产生一次,在内存的堆中。

 

【Exception】

 public class A{

       int i;

  }

  public static void main(String[] args){

       int i = 0;

  }

  编译运行后会报错:non-static variable i cannot be referenced from a static context[非静态变量i不能在静态上下文引用]

 【分析】静态上下文指的是static main,main方法需要执行的话不需要new一个对象出来(如果不设置为static,那么意味着在代码区找到主程序入口时,还需要new对象才能运行,那样对编译器而言负担过重)。

 

【静态方法与动态方法】

  静态方法不是针对某一对象调用,没有对象一样可以调用(不出现对象名字也可以访问);非静态方法针对某一对象调用。

 

 

 

 

 

 

 

 

你可能感兴趣的:(Java——static)