static
静态变量
用static定义的变量共享空间
举例
class Student{
static String schoolName;
}
class StudentTest{
public static void main(String [] args){
Student stu1=new Student();
Student stu2=new Student();
stu1.schoolName="湖南科技职业学院";//此处给stu1重新赋值
System.out.println(stu1.schoolName);
//stu2内也被影响了
System.out.println(stu2.schoolName);
}
}
输出:
湖南科技职业学院
湖南科技职业学院
static定义的对象只在栈内存开辟一次空间
stu1和stu2共享一个schoolName空间
只有成员变量才能用static定义
class A{
static int a;//正确
public void B(){
static int c;//错误
}
}
一般只用静态变量用
类名.变量名
以示区别,容易区别出静态变量(类变量)
静态方法的调用
引用对象.静态方法;
类名.静态方法;//建议使用
在同一类中可以直接使用 <方法名> 调用
静态代码块
class Test{
static{
System.out.println("静态代码块已经执行");
}
public Test(){
System.out.println("构造方法已经执行");
}
}
输出:
静态代码块已经执行//最先执行
构造方法已经执行
静态代码块在启动之前就执行了,且只执行一次