学习笔记,材料来自:
http://www.cnblogs.com/dolphin0520/p/3799052.html
static关键词,可以加在方法上,成员变量上,代码块。 类就不要想了。
1. static方法
static方法可以在类没有实例化的情况话直接访问。 在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。
2. static变量
static变量也称作静态变量,静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。
static成员变量的初始化顺序按照定义的顺序进行初始化。
3. static代码块
可以用来初始化一些成员信息。
public class testClassA { public static int val = 1; static { System.err.println("11:" + val); val = 2; System.err.println("22:" + val); } public static int getVal() { return val; }}System.err.println(testClassA.getVal());
结果:
11:122:22
一些注意事项:
1. 静态的成员变量可以被实例化后的类对象访问,静态方法也可以被对象访问,但是会有警告。
2. 局部变量不可以static。
3. static代码块优先于构造函数。
原标题:java中的static关键词
关键词:JAVA