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

© 从未有过的晴天 中级黑马   /  2014-6-25 00:23  /  5338 人查看  /  64 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Demo {
                                static {
                                        System.out.println("AAA");
                                }

                                {
                                        System.out.println("BBB");
                                }

                                public Demo() {
                                        System.out.println("CCC");
                                }

                                public Demo(String name) {
                                        System.out.println("DDD");
                                }
                        }

                        测试类:
                                Demo d = new Demo();
                                Demo d2 = new Demo("hello");
游客,如果您要查看本帖隐藏内容请回复


64 个回复

正序浏览
好吧。。。
回复 使用道具 举报
执行顺序是AAA BBB CCC BBB DDD
回复 使用道具 举报
静态代码快,非静态点嘛快,构造函数。
回复 使用道具 举报

AAA
BBB
CCC
BBB
DDD
回复 使用道具 举报
看一下         
回复 使用道具 举报
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
回复 使用道具 举报
侯岩卿 来自手机 中级黑马 2014-8-13 17:58:45
60#
a d c d吧,看看答案
回复 使用道具 举报
看看咯、
回复 使用道具 举报
AAA BBB CCC DDD
回复 使用道具 举报
根本看不懂啊,我还要多努力学习才行啊
回复 使用道具 举报
aaaa,bbbb,cccc,dddd
回复 使用道具 举报
A-B-C    B-D
回复 使用道具 举报
看看结果是啥
回复 使用道具 举报
学习中
回复 使用道具 举报
支持楼上的结果
回复 使用道具 举报
看看隐藏!!!!!
回复 使用道具 举报
AAA BBB CCC BBB DDD
这涉及到静态代码块和普通代码块的初始化时机,静态代码块在类初始化的时候执行,而不是在创建对象的时候执行,普通代码块在类的对象创建的时候执行,先于构造器执行,而且系统会追朔到其父类,先执行父类的初始化快和构造器
回复 使用道具 举报
AAA
BBB
CCC
BBB
DDD
静态代码块的优先级别最高,只执行一次,构造代码块的优先级比构造函数高,所以BBB在前面。
回复 使用道具 举报
首先是静态代码块,它是随着类的加载而加载,所以最先调用它,输出AAA;
然后是构造代码块,它比构造函数先调用,用于初始化对象,输出BBB;
new Demo()调用无参构造函数,输出CCC;
第二次new Demo("hello")时,静态代码块的特点是只调用一次 所以这时不输出AAA;
然后接着输出BBB和DDD
回复 使用道具 举报
1234下一页
您需要登录后才可以回帖 登录 | 加入黑马