一、static概述
static关键字是静态的意思,是Java中的一个修饰符,可以修饰成员方法,成员变量。
- 被static修饰的成员变量,一般叫做静态变量
- 被static修饰的成员方法,一般叫做静态方法
二、static修饰的特点
- 被类的所有对象共享(因为静态的东西是放在方法区的静态区中)
是我们判断是否使用静态关键字的条件 - 随着类的加载而加载,优先于对象存在
对象需要类被加载后,才能创建 - 可以通过类名调用
也可以通过对象名调用,推荐使用类名调用
三、static关键字注意事项
- 静态方法只能访问静态的成员
- 非静态方法可以访问静态的成员,也可以访问非静态的成员
- 静态方法中是没有this关键字
四、代码块
1.代码块概述
在Java中,使用{ }括起来的代码称为代码块
2.代码块分类
①局部代码块
- 位置:方法中定义
- 作用:限定变量的声明周期,及早释放,提高内存利用率
- 实例:
public class Test {
public static void main(String[] args) {
{
int a = 10;
System.out.println(a);
}
}
}
10
②构造代码块
- 位置:类中方法外定义
- 特点:每次构造方法执行时,都会执行该代码块中的代码,并且在构造方法执行前执行
- 作用:将多个构造方法中相同的代码,抽取到构造代码块中,提高代码的复用性
- 实例:
public class Test {
public static void main(String[] args) {
Student stu1 = new Student();
Student stu2 = new Student(10);
}
}
class Student {
{
System.out.println("好好学习");
}
public Student(){
System.out.println("空参数构造方法");
}
public Student(int a){
System.out.println("带参数构造方法...........");
}
}
好好学习
空参数构造方法
好好学习
带参数构造方法…
③静态代码块
- 位置:类中方法外定义
- 特点:需要通过static关键字修饰,随着类的加载而加载,并且只执行一次
- 作用:在类加载的时候做一些数据初始化的操作
- 实例:
public class Test {
public static void main(String[] args) {
Person p1 = new Person();
Person p2 = new Person(10);
}
}
class Person {
static {
System.out.println("我是静态代码块, 我执行了");
}
public Person(){
System.out.println("我是Person类的空参数构造方法");
}
public Person(int a){
System.out.println("我是Person类的带...........参数构造方法");
}
}
我是静态代码块, 我执行了
我是Person类的空参数构造方法
我是Person类的带…参数构造方法