Static

Static修饰的变量的生存周期是从程序开始到结束 

1.修饰成员变量和成员方法。

这时候可以使用类名.变量名 来调用。在类被初次加载的时候就会被初始化。

2.修饰代码块就是静态代码块

当调用静态方法或者静态变量的时候,也会随着调用静态代码块

静态代码块无论你创建几个该类的对象,静态代码块都只会执行一次。

比如:Test类

static{
    System.out.println("Test6 static block");
}
{
    System.out.println("Test6 non-static block");
}
public Test() {
    System.out.println("Test6 constructor with no arguments");
}
public Test(String id){
    System.out.println("Test6 constructor with one argument id"+ id);
}
public static int book=1;
public static  void sixi(){
    System.out.println("static method");
}
new Test();
System.out.println("*****************");
new Test("1");

运行后:Test6 static block只会运行一次。

Test6 static block
Test6 non-static block
Test6 constructor with no arguments
*****************
Test6 non-static block
Test6 constructor with one argument id1

调用静态方法:Test.sixi();

也会先输出:Test6 static block(我认为之所以会输出这个静态代码块中的内容是因为调用静态方法也要加载类,在加载类的过程中就把静态代码块运行了)

然后再输出:static method

3.修饰一个类

我们在一个类内部再创建一个类的话

如果不用static修饰这个类的话,那么我们使用这个类的时候一定要创建这个类的外面的那个类的对象,然后使用那个对象.new 类名

Test test=new Test();
 A a=test.new A();

4.有静态代码块的各部分的运行时机

1.父类的静态代码块

2.子类的静态代码块

3.父类的非静态成员

4.父类的构造方法

5.子类的非静态成员

6.子类的构造方法

如果每项里面的有多个的话就按照顺序执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值