static关键字和static代码块执行顺序
程序员文章站
2022-03-10 09:05:06
1.static 使用场景:修饰变量修饰方法可以修饰静态导包法?import static java.lang.System.out; import static java.lang.Integer.*; public class StaticTest { public static void main(String[] args) { out.println(MAX_VALUE); } }2.static代码块执行顺序 总结一下(父静子静,父非静,父...
1.static 使用场景:
- 修饰变量
- 修饰方法
- 可以修饰
- 静态导包
法
?
import static java.lang.System.out;
import static java.lang.Integer.*;
public class StaticTest {
public static void main(String[] args) {
out.println(MAX_VALUE);
}
}
2 .static代码块执行顺序 总结一下(父静子静,父非静,父构造,子非静,子构造)(同一类中相同内容的比如静态或者非静态实例的执行顺序都是从上往下依次执行)
2 .static代码块执行顺序 总结一下(父静子静,父非静,父构造,子非静,子构造)(同一类中相同内容的比如静态或者非静态实例的执行顺序都是从上往下依次执行)
package net.csdn.se.statictest;
import net.csdn.se.statictest.Child;
public class Parent {
static {
System.out.println("父类的静态块");
}
private static String staticStr = getStaticStr();
private String str = getStr(); //非静态变量成员变量
{
System.out.println("父类的实例块"); //非静态代码块
}
public Parent() {
System.out.println("父类的构造方法");
}
private static String getStaticStr() {
System.out.println("父类的静态属性初始化");
return null;
}
private String getStr() {
System.out.println("父类的实例属性初始化");
return null;
}
public static void main(String[] args) {
new Child();
}
}
package net.csdn.se.statictest;
import java.util.HashMap;
public class Child extends Parent {
static {
System.out.println("子类的静态块"); //同一个类中,静态内容的执行顺序是由上往下执行的,非静态也是一样的
}
private static String staticStr = getStaticStr();
{
System.out.println("子类的实例块");
}
public Child() {
System.out.println("子类的构造方法");
}
private String str = getStr();
private static String getStaticStr() {
System.out.println("子类的静态属性初始化");
return null;
}
private String getStr() {
System.out.println("子类的实例属性初始化");
HashMap map = new HashMap();
map.put("key","value");
return null;
}
}
执行 new Child()的时候回先创建父类,上面代码的执行结果顺序是:
父类的静态块
父类的静态属性初始化
子类的静态属性初始化
子类的静态块
父类的实例属性初始化
父类的实例块
父类的构造方法
子类的实例块
子类的实例属性初始化
子类的构造方法
同一个类中的静态内容的执行顺序是代码从上往下加载
本文地址:https://blog.csdn.net/NumOneDD/article/details/109848267
推荐阅读
-
JAVA-this关键字JAVAsuper关键字JAVA-static修饰符和final以代码块内部类和枚举
-
static关键字、代码块、数组容器
-
Java和Android中,代码块、static静态代码块的执行顺序
-
静态方法和构造方法的执行顺序以及代码块的区分
-
static关键字和static代码块执行顺序
-
关于静态代码块,构造代码块,构造方法,普通代码块的一些概念和执行顺序
-
JAVA-this关键字JAVAsuper关键字JAVA-static修饰符和final以代码块内部类和枚举
-
static关键字、代码块、数组容器
-
Java和Android中,代码块、static静态代码块的执行顺序
-
Java静态代码块和构造方法执行顺序