静态:
关键字:static
概述: 使用static关键字修饰的成员方法、成员变量称为静态成员方法、静态成员变量。
优缺点:
优点:使用时不用创建对象,节约了空间。使得代码的简洁。
缺点:局限性(静态方法只能调用静态方法和静态成员变量)
使用场景: 一般情况做工具类使用
①.如果成员方法没有使用成员变量或不调用成员方法时
②.如果多个对象调用同一个变量时,我们应该共享此变量(使用static修饰达到共享数据的效果)
规则:
建议:静态调用静态,非静态调用非静态。
(非静态可以调用任何状态)
内存图:
查看时请放大
代码块 :
静态代码块:
格式:类中方法外 static{ }
生命周期:类加载的时候执行 类加载到方法区中的时候会执行
作用:加载驱动
构造代码块:
格式:类中方法外 { }
生命周期:new 动作之后 构造方法执行之前
作用: 抽取构造方法(有参构造和无参构造)中相同的代码
局部代码块:
格式:方法中 { }
生命周期:大括号执行完就结束
作用:节约内存
执行次序:静态代码块 > 构造代码块 > 局部代码块
类变量与实例变量辨析
A:类变量:其实就是静态变量
定义位置:定义在类中方法外
所在内存区域:方法区
生命周期:随着类的加载而加载
特点:无论创建多少对象,类变量仅在方法区中,并且只有一份
B:实例变量:其实就是非静态变量
定义位置:定义在类中方法外
所在内存区域:堆
生命周期:随着对象的创建而加载
特点:每创建一个对象,堆中的对象中就有一份实例变量