Static
1.static修饰成员变量
- 静态成员变量存放于内存中数据区(共享资源)
- 生存周期长于类对象,推荐使用类名调用,使用类对象调用可能会出现问题。
- 静态成员变量一经修改,每处用到的地方都受影响。
2.static修饰成员方法
-
静态成员方法随类文件的加载,准备就绪随时可以执行。
-
静态成员方法推荐使用类名调用,原因生存周期与类对象不同。
-
静态成员方法能使用类内其他静态资源
-
静态成员方法不能使用非静态资源
-
静态成员方法不能使用this关键字
-
静态成员方法可以被继承,不能被重写。
3.static代码块
- 用static{}包起来的代码
- 在类文件加载过程中,一定执行且执行一次。
- 与静态成方一样只能使用类内静态资源,不能使用非静态资源
static用途及特点
- 摆脱类对象的束缚,运行效率高,占用资源少。
代码实例
静态成员变量
public class Test {
static String str = "萌王真好看";
public static void main(String[] args) {
System.out.println("通过类名:" + Test.str);
Test t1 = new Test();
//使用idea工具此时t1.str会有警告出现
System.out.println("通过对象:" + t1.str);
//修改str的值
Test.str = "炭治郎";
System.out.println("通过类名:" + Test.str);
}
}
代码执行结果
通过类名:萌王真好看
通过对象:萌王真好看
通过类名:炭治郎
静态成员方法
public class Test {
//声明静态方法
public static void print() {
System.out.println("萌王嘛时候更新啊");
}
public static void main(String[] args) {
//直接使用类名调用静态方法
Test.print();
//通过对象调用静态方法
Test t1 = new Test();
//idea工具t1.print();出现警告
t1.print();
}
}
代码执行结果
萌王嘛时候更新啊
萌王嘛时候更新啊