1.静态是什么?有什么用?
static的主要作用在于创建独立于具体对象的域变量或者方法。
静态代码在程序运行之前,即编译阶段,分配内存。
每创建一个对象,都会在堆里开辟内存,存成员(属性),但是不存方法,方法是共用的,没必要每一个对象都浪费内存去存方法。有一个叫方法区的地方存方法。方法区里又有静态域,存静态变量或者静态方法。
普通变量和方法的调用:通过对象调用
静态变量和方法的调用:通过对象或类调用
public class MyTest8 { public static void main(String[] args) { System.out.println(Plant.name);//通过类调用 Plant p1=new Plant(); System.out.println(p1.name);//通过对象调用 p1.name="植物";//类似方法,是公用的,改了之后就是改了,新建对象也是这个值 Plant p2=new Plant(); System.out.println(p2.name);//通过对象调用 } } class Plant{ static String name="静态植物"; public static void say() { System.out.println("植物类"); } } /**输出 静态植物 静态植物 植物 */