A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

自己预习的,授课视频看到这里怎么也听不懂了,搞不懂堆和栈,哪位大神能帮忙讲解一下为什么会运行出这样的结果?


class Fu {
                        static {
                                System.out.println("静态代码块Fu");
                        }
       
                        {
                                System.out.println("构造代码块Fu");
                        }
       
                        public Fu() {
                                System.out.println("构造方法Fu");
                        }
                }
       
                class Zi extends Fu {
                        static {
                                System.out.println("静态代码块Zi");
                        }
       
                        {
                                System.out.println("构造代码块Zi");
                        }
       
                        public Zi() {
                                System.out.println("构造方法Zi");
                        }
                }
       
                Zi z = new Zi();

2 个回复

倒序浏览
有静态走静态 有父类走父类 构造代码快先于构造函数执行
回复 使用道具 举报
static 开头的是静态代码块 。 而静态代码块是随着类的加载而加载的。 所以会先执行static开头的代码块。
而{} 的是构造代码块
执行顺序是   静态代码块 > 构造代码块 > 构造方法。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马