Java代码执行顺序顺口溜
代码执行顺序虽然是很基础的东西,但是还是有很多人搞不清楚其中的细节。 关于java代码的执行顺序,我编了一段顺口溜,相信你再也不会被这个问题难住了。
这段顺口溜是这样的:子类加载父类快,加载初始化静态,静态成员静态块,对象构造父类快,对象成员公共块,最后执行构造块。
这就是代码的执行顺序,其实很简单,下面详细解释。Java代码执行顺序类加载阶段
相信你对类加载阶段已经足够了解了,如果还不够了解,建议你阅读我的 你不知道的虚拟机类加载机制。 然后来理解这个顺口溜的前三句。子类加载父类快
也就是在加载子类的时候必须先加载父类。加载初始化静态
静态成员和静态代码块是类的元数据信息,在类初始化的时候执行。静态成员代码块
静态成员的初始化后,静态代码块执行。程序运行阶段
现在来理解这个顺口溜的后三句。 这是在类加载阶段完成,程序运行的阶段执行的。对象构造父类快
这句话是说new一个对象的时候一定要是parent先构造,这里你或许会有点疑问:"平时继承类的时候也没调用super函数呀?",这是因为如果parent有默认的构造函数,那子类也不需要显示调用。否则是必须要这么做的。对象成员公共块
对象初始化的过程先是执行对象成员的初始化、然后是公共代码块的执行。
公共代码块是所有重载的构造函数的公共部分,是指类似这样的一段代码:{ System.out.println("构造代码块 " ); } 复制代码最后执行构造块
对象的成员和代码块都执行完之后,才开始构造函数。如果有parent,那按照parent成员、parent代码块、parent构造函数之后,再child依次执行的顺序来执行。具体例子
建议运行下面的例子,来理解这段顺口溜。public class Parent { static int staticV; static { System.out.println("staticV = " + staticV); System.out.println("parent 静态代码块 " ); } int v; { System.out.println("v = " + v); } { System.out.println(" parent 构造代码块 " ); } public Parent(int v) { this.v = v; System.out.println(" parent 构造函数 " +v); } } 复制代码public class Child extends Parent{ static int staticV; static { System.out.println("staticV = " + staticV); System.out.println("child 静态代码块 " ); } int v; { System.out.println("v = " + v); } { System.out.println(" child 构造代码块 " ); } public Child() { super(1); System.out.println(" child 构造函数 " ); } public static void main(String[] args) { Child child = new Child(); } } 复制代码
运行将返回:staticV = 0 parent 静态代码块 staticV = 0 child 静态代码块 v = 0 parent 构造代码块 parent 构造函数 1 v = 0 child 构造代码块 child 构造函数 复制代码注意事项
就像上面提到的那样,parent如果没有默认的无参构造函数,那就必须在子类里面显示的调用父类的构造函数,否则会导致程序编译不通过。
作者:小圆规
链接:https://juejin.cn/post/7076302581194194981
打完亚泰,津门虎就可以出海南了8月15日20点,天津津门虎队将在中超第13轮的比赛中,坐镇海口五源河体育场,迎战来访的长春亚泰队。上轮联赛津门虎队4比3险胜河北队,让教练组对球队切实存在的问题有了更深刻的认识,
21狂射29脚!皇马喜迎开门红,安帅轮换差点翻车,30岁巨星真香北京时间8月15日凌晨3点钟,西甲首轮继续展开争夺,卫冕冠军皇马前往客场挑战升班马阿尔梅里亚。上半场比赛仅仅开赛第6分钟,阿尔梅里亚的拉马扎尼就攻破了皇马球门,下半场巴斯克斯为皇马
1。42亿,恭喜詹姆斯!愿意交易,湖人重组哪三巨头!西部要热闹人们在快乐的事件中精神振奋。这句话可以很好地描述詹姆斯目前的状态。当然,这与湖人本赛季的成绩无关。詹姆斯在此期间迎来了几个好消息。首先是湖人运营副总裁佩林卡,他与詹姆斯对决,希望詹
棋坛黑马黑嘉嘉今日头条一个人的修养和艺术天份,往往离不开琴棋书画,就像梅兰竹菊,一代又一代深刻影响着中国人,从古至今,如果一个人,既会弹琴,又懂歌赋,还会下棋,那就更不得了,往往隐含着那个人的才
意甲巨大失误!23岁门将禁区外接球,首秀6分钟染红,28年第1次见北京时间8月15日0030,意甲第1轮,拉齐奥主场对阵博洛尼亚。在开场不到6分钟,拉齐奥首发门将马克西米亚诺染红便被红牌罚下。当时比赛进行到5分30秒左右,马克西米亚诺出击把球没收
早啊!新闻来了2022。08。15中国男排3比0横扫日本重夺亚洲杯冠军青海玉树州杂多县发生5。9级地震中央气象台继续发布高温红色预警13日,习近平给中国好人李培生胡晓春回信强调,积极传播真善美传递正能量,带动更多身
CBA大变天?姚明无可奈何,苏群透露实情郭艾伦转会或被搁浅根据此前的消息,郭艾伦向辽宁男篮提出了转会申请,不过,辽宁男篮已经顶薪承诺郭艾伦,并声称不会放手郭艾伦,目前双方谈判已经陷入僵局,在如此情况下,球迷想知道郭艾伦的事情最终会怎么样?
绝了抢点喷人还被称赞!梅内委屈了,维拉蒂姆巴佩生气是好事大巴黎本轮法甲比赛结束之后,关于队内内讧的解决方法就引发了巨大的争议。而赛后从大巴黎队员的采访中,我们也明白,现在不需要梅西和内马尔满意,他们两个已经在球队中无力和姆巴佩对抗了。姆
安踏创新,不如李宁编辑于斌出品潮起网于见专栏在中国体育运动市场,安踏和李宁是一直绕不过去的一对冤家。双方这些年来你追我赶,不但在多维度展开竞争,也共同代表了体育运动品牌面向全球市场的中国力量。也正因
张子枫的人设立了又崩了最近各种热点风风火火轮番上热搜,有件小事可能没太引起大家注意。前几天,为了宣传新剧,张子枫工作室发布了几张随手拍,并明示是张子枫拍摄,没想到,就这么翻车了。照片真正作者出来认领作品
董卿也被碾压了!撞衫许晴同款套装,一个土味一个洋气对于公众人物来说,在公开出境的造型当中优先保证造型的得体性,对于女性来说,在正式的场合当中可选择的服装空间很大。除了隆重的礼服裙之外,西装在近些年来尤为受欢迎,尤其是装套装,搭配的