论坛首页 Java企业应用论坛

Java static 学习

浏览 1575 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-06-04   最后修改:2010-05-13
用static修饰变量或者方法,实际上指定了这些变量或者方法在内存中的位置是固定的,表示了内存的共享,每个对象的实例都指向同一个地址.

对于static的东西, jvm 在加载类时(没有实例化之前),就为这些东西在内存中开辟了空间

1. static 成员变量(基本类型变量和类变量)

2. static方法, 在这种方法中,只能访问其它static成员变量或者方法,不能访问非静态的成员或者方法,因为这时候类还没有被实例化
public class test {

    private int a=1;
	public static void main(String[] args) {
		System.out.println("a="+String.valueOf(a));
	}

}


Cannot make a static reference to the non-static field a
但可以在静态方法中访问静态成员变量或者方法
public class test {

    private static int a;
	public static void main(String[] args) {
		a=1;
		System.out.println("a="+String.valueOf(a));
	}

}

3. static 代码块

public class test{ 
  public static int i; 
  public int a; 
  public test(){ 
     a=1;
     System.out.println("a="+String.valueOf(a)); 
  } 
  public static void main(String[] args){ 
    new test(); 
  } 
  static{ 
    i=3; 
    System.out.println("i="+String.valueOf(i)); 
  } 
} 


i=3
a=1
静态代码在类加载时执行,先于实例方法
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics