Static 主要是用于内存管理,有下面这几种用法
1.修饰变量
2.修饰方法
3.修饰代码块
1.静态变量可以引用所有对象的公共属性如公司名称,大学名称。
优点:可以节约内存
下面是静态变量的实例,其中college变量只取内存一次
public class StaticsDemo {
String name;
String id;
static String college;
StaticsDemo(String name,String id){
this.name=name;
this.id=id;
}
void display(){
college ="天职师大";
System.out.println("大学"+college+":"+"姓名"+name+",ID"+id);
}
public static void main(String args[]){
StaticsDemo s1 = new StaticsDemo("张三","099");
s1.display();
StaticsDemo s2 = new StaticsDemo("李四","098");
s2.display();
}
}
运行结果
大学天职师大:姓名张三,ID099
大学天职师大:姓名李四,ID098
如果任何对象要更改静态变量的值,它将会保存其值,所有的对象都会共享同一变量
class Counter2 {
static int count = 0;// will get memory only once and retain its value
Counter2() {
count++;
System.out.println(count);
}
public static void main(String args[]) {
Counter2 c1 = new Counter2();
Counter2 c2 = new Counter2();
Counter2 c3 = new Counter2();
}
}
运行结果
1
2
3
静态方法是在方法上用static修饰
1.静态方法属于类但是不属于类的对象
2.静态方法可以直接调用,不用创建对象
3.静态方法可以修改静态变量
4.在静态方法中this和supper这两个关键字不能使用。
static void sF3(){
System.out.println("不用创建对象就可以调用");
}
public static void main(String args[]){
sF3();
}
运行结果
不用创建对象就可以调用
3.静态块static{}
主要有两个作用
①用于初始化静态数据成员
②它在类加载之前main方法之前执行
以下是实例
public class staticDemo01 {
static {
System.out.println("这是静态块,它在main方法之前执行");
}
public static void main(String ars[]){
System.out.println("main方法");
}
}
运行结果
这是静态块,它在main方法之前执行
main方法