黑马程序员技术交流社区

标题: 我的一道面试题 [打印本页]

作者: 星之钥匙    时间: 2015-4-26 09:39
标题: 我的一道面试题
程序中的静态代码块,构造代码块,构造方法的执行顺着,在程序运行是执行几次的问题:
一.几个概念:
1.普通代码块:在方法或语句中出现的{}就称为普通代码块。普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行”
2.构造块:直接在类中定义且没有加static关键字的代码块称为{}构造代码块。构造代码块在创建对象时被调用,每次创建对象都会被调用,并且构造代码块的执行次序优先于类构造函数。
3.静态代码块:在java中使用static关键字声明的代码块。静态块用于初始化类,为类的属性初始化。每个静态代码块只会执行一次。由于JVM在加载类时会执行静态代码块,所以静态代码块先于主方法执行。
二:
1.执行顺序:(优先级从高到低。)静态代码块>mian方法>构造代码块>构造方法
2.执行次数:静态代码块只执行一次。构造代码块在每次创建对象是都会执行。
作者: 米江波    时间: 2015-4-26 10:55
学习拉  厉害
作者: 大西洋    时间: 2015-4-26 10:57
您好,请问构造代码块和构造函数有何区别??谢谢
作者: hoop.zeng    时间: 2015-4-26 11:26
请问能不能举例分析一下它们的应用
作者: lshaizj    时间: 2015-4-26 11:28
大西洋 发表于 2015-4-26 10:57
您好,请问构造代码块和构造函数有何区别??谢谢

构造代码块对全部对象有用
作者: Zack    时间: 2015-4-26 14:26
学习前辈经验
作者: an_lucas    时间: 2015-4-26 14:32
mark~~~~~~~~
作者: Oscars    时间: 2015-4-26 14:51
不明觉厉!
作者: Cat    时间: 2015-4-26 20:01
学习喽~
作者: zzlin    时间: 2015-4-27 07:32
总结的很好,学习
作者: 海带    时间: 2015-4-27 07:46
楼主总结的不错
作者: bianzhiguo6    时间: 2015-4-27 09:20
面试题里的操作题,还有印象吗?求题。。。这个是问答题吧?
作者: 蓝墨清幽    时间: 2015-4-27 09:39
构造代码块给对象初始化,对象一建立就运行,而且优先于构造函数执行。构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象分别初始化。
静态代码块给类初始化,随着类的加载只执行一次。
作者: 蓝墨清幽    时间: 2015-4-27 09:40
大西洋 发表于 2015-4-26 10:57
您好,请问构造代码块和构造函数有何区别??谢谢

构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象分别初始化。
作者: 13699266500    时间: 2015-4-27 09:42
学习啦!!!
作者: 大西洋    时间: 2015-4-27 10:35
蓝墨清幽 发表于 2015-4-27 09:40
构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象分别初始化。 ...

感谢美女!学习~:)
作者: 夕颜    时间: 2015-4-27 10:54
好详细的解释,总结得很好,谢谢分享
作者: 夕颜    时间: 2015-4-27 10:57
大西洋 发表于 2015-4-26 10:57
您好,请问构造代码块和构造函数有何区别??谢谢

个人理解:每次创建类对象时,都会执行构造代码块,而构造函数是创建类对象时,执行的是指定的构造函数。构造代码块不写函数名,构造函数的函数名跟类名一致。
作者: 知来者之可追    时间: 2015-4-27 11:10
学习了。。
作者: nate996    时间: 2015-4-27 11:47
学习了。。
作者: 千玉屑    时间: 2015-4-27 11:58
学习一下
作者: jiangwenjun    时间: 2015-4-27 12:49
大西洋 发表于 2015-4-26 10:57
您好,请问构造代码块和构造函数有何区别??谢谢

构造代码块就只有一对大括号    构造函数的  1。名字要和类名相同  2.不需要写返回值类型 3方法体内不写return语句!    构造代码块是给类中所有对象进行加载,构造函数 一次只进行对一个对象进行加载
作者: 大西洋    时间: 2015-4-27 13:08
jiangwenjun 发表于 2015-4-27 12:49
构造代码块就只有一对大括号    构造函数的  1。名字要和类名相同  2.不需要写返回值类型 3方法体内不写r ...

{:3_46:}  感谢大神回答!
作者: 精湛学术    时间: 2015-4-27 13:31
学习了  
作者: 莫里亚蒂    时间: 2015-4-27 13:45
总结的很好,值得学习
作者: 吕晓阳    时间: 2015-4-27 13:55
很受用,谢谢
作者: jiangwenjun    时间: 2015-4-27 14:08
大西洋 发表于 2015-4-27 13:08
感谢大神回答!

有什么呢   我体视频都记不住   我是体官网发的 日记博客http://blog.csdn.net/kangmiao89757   自己记忆的!如果你可以把着博客学会,那么你就可以进去了!  里面其实是毕老师的全部总结,  可以按照博客 体视频教程。通过面试基本没有问题  嘻嘻 这个都告诉你了
作者: 大西洋    时间: 2015-4-27 14:10
jiangwenjun 发表于 2015-4-27 14:08
有什么呢   我体视频都记不住   我是体官网发的 日记博客http://blog.csdn.net/kangmiao89757   自己记忆 ...

{:3_46:}

非常感谢!!感激涕零无以言表~
作者: jiangwenjun    时间: 2015-4-27 14:16
大西洋 发表于 2015-4-27 14:10
非常感谢!!感激涕零无以言表~

加油吧!  体视频比较容易懂。不过有这个日记全部知识点都在,就理解记忆,在敲代码。一定会的。体视频只是毕老师说明白了。我听懂了   再体这日记 好简单!。一起加油吧:lol
作者: Taekwon-boy    时间: 2015-4-27 18:51
给力!!!
作者: 嘎路的米    时间: 2015-4-27 19:54
静态代码块为什么>mian方法呢?  mian方法不执行就已经调用静态代码块初始化类了吗?
作者: 嘎路的米    时间: 2015-4-27 19:56
嘎路的米 发表于 2015-4-27 19:54
静态代码块为什么>mian方法呢?  mian方法不执行就已经调用静态代码块初始化类了吗? ...

还有,虚拟机的入口不是从main开始的吗,那静态代码块的执行为什么>main方法
作者: 熬夜看书    时间: 2015-4-27 20:46
学习下,发现自己前段时间学的都忘记了:'(
作者: JarryHorse    时间: 2015-4-27 20:57
并不是JVM一启动就把所有类都加载到内存中的,所以静态代码块不一定在main方法之前执行,只有封装了main函数的类中的静态代码块才在main方法之前执行,其他静态代码块都是在类加载器加载相应的类的时候才执行,愚见
作者: fengxing    时间: 2015-4-27 21:11
学习中。。。。
作者: andre    时间: 2015-4-27 21:25
学习了啊。。。。。
作者: wangyu    时间: 2015-4-27 21:27
今天刚学这个,刘意老师特意讲了在继承关系中静态代码块,构造代码块,构造函数的先后执行问题
作者: 珠宝    时间: 2015-4-27 22:02
嗯,不错
作者: winelx    时间: 2015-4-27 22:04
受教了……
作者: pengcheng0328    时间: 2015-4-27 22:09
收藏了,谢谢楼主指教
作者: 高双    时间: 2015-4-27 22:11
感谢分享。。。。。
作者: lclxjzz    时间: 2015-4-27 22:12
学习了···················
作者: youngzk    时间: 2015-4-27 22:12
感觉没有java基础,学的好吃力,但是会坚持下去
作者: 王大侠    时间: 2015-4-27 22:22
学习了                       
作者: ayl648989    时间: 2015-4-27 22:26
大西洋 发表于 2015-4-26 10:57
您好,请问构造代码块和构造函数有何区别??谢谢

构造代码块是只将对象里边的共同的特性封装进去。每new一个对象都会执行
作者: 张乐    时间: 2015-4-27 22:43
很详细了  谢谢楼主
作者: 爱如kongcheng    时间: 2015-4-27 23:14
长知识了!
作者: 齐小灰同学    时间: 2015-4-27 23:47
大西洋 发表于 2015-4-26 10:57
您好,请问构造代码块和构造函数有何区别??谢谢

构造函数并不适用与所有的实例化对象,可以这样通俗讲,这个类的所有实例对象肯定有构造代码块的信息,但是只有一种实例对象有某个构造函数的信息。
作者: 魔心邪    时间: 2015-4-27 23:53
咋只有感念,能不懂,举例子啊
作者: 王国库    时间: 2015-4-27 23:57

学习了。。
作者: yelebron    时间: 2015-4-28 00:18
嗯  这个应该是必考的吧
作者: mocun    时间: 2015-4-28 00:23
不明觉厉    表示目前还没学到这个部分
作者: 柳叶飞刀    时间: 2015-4-28 00:26
这个点了还没有睡
作者: 陈捷旋    时间: 2015-4-28 00:40
写的不错,分析的好全

作者: ruibocool    时间: 2015-4-28 00:44
请问面试流程里,有没有笔试啊
作者: 铃铃铃铃铃锋    时间: 2015-4-28 10:16
很厉害的样子:o




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2