`
dato0123
  • 浏览: 924793 次
文章分类
社区版块
存档分类
最新评论

一个让98%的Java程序员犯难的偏门问题!

 
阅读更多

在csdn的张孝祥专栏(http://blog.csdn.net/zhangxiaoxiang/archive/2006/08/15/1066757.aspx)上看到张老师出的一道题目,说是会让98%的Java程序员犯难的偏门问题!!
当然,实际上哪有那么夸张,张老师也太低估搞java的了,而且这道题目怎么看我都好象在TIJ中看到过。。。但题目中还是有些细节值得学习学习地。。。

问题:

publicclassParent
{
publicvoidtest()
{
}


publicParent()
{
test();
}


publicstaticvoidmain(String[]args)
{
newChild();
}

}


classChildextendsParent
{
privateintinstanceValue=20;
publicvoidtest()
{
System.out.println(
"instancevalueis:"+instanceValue);
}

}



各位先猜猜打印的结果是多少呢?为什么呢?
在下面的回复中,我认为这种答案应该是正确的:
当实例化Child时(newChild()),
会调用父类(Parent)的Constructor(构造函数).
而在Parent的constructor中又调用的test()方法,
此方法被子类ChildOverride了,所以那时会调用
子类的test()方法,而调用的时候,子类的实例化
还没有结束,其instancevariableinstanceValue还没有被赋值
为20,而int类型的默认值为0。
因此打印的结果应该是0,而不是20。

这题目确实不难,但有两点引起我的思考:
(1)我在做这题目的时候,在new Child()时居然错误地认为,会先去调用Child类默认的构造函数,而实际上是:当创建派生类的对象时,系统将会调用基类的构造函数和派生类的构造函数,构造函数的执行次序是:先执行基类的构造函数,再执行派生类的构造函数。如果派生类又有对象成员,则,先执行基类的构造函数,再执行成员对象类的构造函数,最后执行派生类的构造函数。
(2)instanceValue 这个变量是不会被赋值20的,但如果题目改为 private static int instanceValue = 20;那答案就应该是20了,因为在编译前就会赋20给这个变量。

当然,还是等张老师公布正确答案吧,拭目以待。。。
分享到:
评论

相关推荐

    45套java程序员简历模板

    有一年经验的模板,也有多年经验的模板,共计java45套简历模板,应对各个时期的java程序员!!!! 有一年经验的模板,也有多年经验的模板,共计java45套简历模板,应对各个时期的java程序员!!!! 有一年经验的...

    「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识

    「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide!「「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 ...

    JAVA程序员简历模板(最新版)

    JAVA程序员简历模板 JAVA程序员简历模板

    Java程序员面试资料及简历模版

    Java程序员面试资料及简历模版 Java程序员面试资料及简历模版 Java程序员面试资料及简历模版 Java程序员面试资料及简历模版 Java程序员面试资料及简历模版 Java程序员面试资料及简历模版 Java程序员面试资料及简历...

    java程序员简历模版

    java程序员简历模版java程序员简历模版java程序员简历模版java程序员简历模版java程序员简历模版java程序员简历模版java程序员简历模版java程序员简历模版java程序员简历模版java程序员简历模版java程序员简历模版...

    Java程序员面试宝典

    《Java程序员面试宝典》通过200个面试题,对企业招聘Java程序员需要掌握的知识进行了系统、全面的总结,以帮助读者进行充分的面试准备,在激烈的竞争中拔得头筹。《Java程序员面试宝典》列举了各大IT公司的面试真题...

    java程序员转正ppt

    java程序员转正pptjava程序员转正pptjava程序员转正ppt

    java程序员面试交流项目经验

    java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流...

    Java程序员需要的电子书

    一些电子书,Java程序员需要学习的!找了好久才找到。

    java程序员面试题!面试宝典

    针对程序员面试的 一些题目!!java程序员面试题!面试宝典

    一个程序员的告白书!

    主要写了一个程序员运用程序语言进行告白的一封告白书!很经典的哦!

    java程序员面试宝典

    JAVA程序员面试 JAVA程序员面试 JAVA程序员面试 JAVA程序员面试

    Java程序员面试笔试宝典-何昊pdf版

    Java程序员面试笔试宝典-何昊pdf版,高清,带有书签。

    java程序员简历模板(一共19套模板)

    java程序员个人简历.doc JAVA软件工程师简历范文.docx Java软件开发工程师个人简历模板.doc 个人简历(示范案例).doc 应届生Java开发个人简历.doc 非常经典java求职简历(三套-含项目介绍).doc 高级Java工程师架构师-...

    《Java程序员》

    从生存、制胜、发展三个方面入手,为大家展示出程序员求职与工作的一幅3D全景图像。本书中既有在公司中的生存技巧,又有高手达人的进阶策略,既有求职攻略的按图索骥,又有入职后生产环境的破解揭秘。 本书中浓缩了...

    Java程序员职场全攻略

    Java程序员职场全攻略 Java程序员职场全攻略 Java程序员职场全攻略 Java程序员职场全攻略

    java程序员面试题大全

    java程序员面试题java程序员面试题java程序员面试题java程序员面试题java程序员面试题java程序员面试题

    java程序员规划java程序员职业规划.docx

    在职业规划中,第一个重要的步骤是认识自我。 Java 程序员需要了解自己的性格、兴趣爱好、能力和不足之处。只有通过自我分析, Java 程序员才能更好地认识自己,并制定合适的职业规划。 二、 职业生涯条件分析 在...

    java程序员面试必备的32个要点.doc

    java程序员面试必备的32个要点java程序员面试必备的32个要点java程序员面试必备的32个要点java程序员面试必备的32个要点java程序员面试必备的32个要点java程序员面试必备的32个要点java程序员面试必备的32个要点java...

Global site tag (gtag.js) - Google Analytics