1静态变量

 

 

  静态变量是属于类的,和对象没有关系

  非静态变量是属于某个对象的,每个对象都有该数据的副本,而静态变量只有一个

 

2静态方法

   用static修饰的方法为静态方法。

   访问静态方法是通过(类名.变量名)

   使用注意:

1、静态方法不能访问非静态变量

2、非静态方法可以访问静态变量

静态属性或者方法是在类加载的时候产生的

非静态的属性或者方法是在new的时候产生的。

    静态变量比非静态变量先加载到类存中,非静态变量在new对象的时候才加载进到类存中。

3静态常量

Public static  final int x=12345;

 

 

package com.java2006;

 

public class StaticTest {

   //定义普通变量

int commobint=0;

  //定义静态变量

static int statint=0;

//定义一个构造方法

StaticTest(int x){

this.commobint=x;

}

public static void main(String[] args) {

StaticTest s1=new StaticTest(1);

StaticTest s2=new StaticTest(2);

System.out.print("s1.commobint的值是:"+s1.commobint+"");

System.out.print("s2.commobint的值是:"+s2.commobint);

    s1.statint=88;

    System.out.print("*******打印开始*********");

System.out.print("statint1的值是:"+s1.statint);

System.out.print("statint2的值是:"+s2.statint);

System.out.print("*******打印结束*********");

/*

 s1.commobint的值是:1

 s2.commobint的值是:2*******

 打印开始*********statint1的值是:88statint2的值是:88*******打印结束

 

 */

}

 

}

 

 

package com.java2006;

 

public class Demo {

static int x = 0;

static {

x = 100;

}

 

// 如果值为0说明static int x=0先执行

// 如果是100说明构造器先执行,static 方法变量是优先放到内存中的,程序運行結果是100

 

Demo() {

System.out.print(x);

}

 

public static void main(String[] args) {

// TODO Auto-generated method stub

new Demo();

}

 

}