关于Java中代码的执行顺序

打印 上一主题 下一主题

主题 795|帖子 795|积分 2385

结论

注意 只有显式的加载类 JVM才会加载到内存中


  • 先加载父类的静态代码块 然后执行子类静态代码块
  • 当前类存在类静态变量注意引用类型没进行赋值操作初始化为null 并不会显式的加载类又存在静态代码块 会先执行前者进行初始化 再执行静态代码块
  • 在实例化类的时候 执行顺序 构造代码块-->构造方法存在父类先执行父类
  • 注意 静态成员变量/静态代码块只在JVM运行时 类加载到内存的时候执行一次
  1. public class Test {
  2.     static B b=new B(); //这里存在实例 会加载类B 类A
  3.     A a =new A();
  4.     static {
  5.         System.out.println("test static");
  6.     }
  7.     public Test(){
  8.         System.out.println("test constructor");
  9.     }
  10.     {
  11.         System.out.println("test module");
  12.     }
  13.     public static void main(String[] args) {
  14.         //A1-->B1-->A2-->A3-->B2-->B3-->TEST STATIC
  15.     }
  16. }
  17. class A{
  18.     static {
  19.         System.out.println("A1");
  20.     }
  21.     {
  22.         System.out.println("A2");
  23.     }
  24.     public A(){
  25.         System.out.println("A3");
  26.     }
  27. }
  28. class B extends A{
  29.     static {
  30.         System.out.println("B1");
  31.     }
  32.     {
  33.         System.out.println("B2");
  34.     }
  35.     public B(){
  36.         System.out.println("B3");
  37.     }
  38. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

滴水恩情

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表