java语言中static修饰的静态属性及方法
# static:表示静态的,static修饰的东西会随着字节码文件优先于类加载进内存。
1、修饰方法:
(1)修饰后的方法叫做静态方法,不需要进行实例化就可以直接通过类名调用;
(2)修饰后的方法属于类不属于对象,只能调用静态属性和静态方法,一般出现在工具类中。
public class Students {
public static void main(String[] args) {
Students.tast();
}
static void tast(){
System.out.println("静态方法");
}
}
2、修饰属性(变量):
(1)修饰后的属性叫做静态属性,不需要进行实例化就可以直接通过类名调用,所有对象共享一份数据;
(2)修饰后的常量一般是作为状态使用。
public class Test {
public static int num = 10;
}
class Test2 {
public static void main(String[] args) {
System.out.println(Test.num);
}
}
3、修饰代码块:
(1)修饰后的代码块叫做静态代码块,在类第一次被使用的时候会执行,仅执行一次;
(2)优先级高于构造代码块与构造方法,一般在连接数据库的时候使用。
# 构造代码块在对象每次创建的时候均会执行
public class Test {
public static void main(String[] args) {
Test2 test2 = new Test2();
}
}
class Test2{
public Test2(){
System.out.println("构造方法");
}
static{
System.out.println("静态代码块");
}
{
System.out.println("构造代码块");
}
}
# 对象创建执行顺序:
- 静态构造代码块 > 构造代码块 > 构造方法
- 静态方法和静态属性的执行顺序看调用时的位置,可能优先于构造代码块与构造方法,也可能不优先于,静态构造代码块优先级是最高的
4、静态修饰符的特点
- 静态方法允许直接访问静态成员。
- 静态方法不能直接访问非静态成员。
- 静态方法中不允许使用this或是super关键字。
- 静态方法可以继承,不能重写、没有多态。
- 静态方法无法修饰构造方法和类