为了账号安全,请及时绑定邮箱和手机立即绑定

程序中划线句输出结果是下面这两句这是为什么啊?

程序中划线句输出结果是下面这两句这是为什么啊?

totosspace 2016-07-14 10:34:16
程序中划线句 输出结果是下面这两句。这是为什么啊?还有,能解释一下这个程序的运行过程(是从哪里开始运行的?再到哪里?)
查看完整描述

2 回答

已采纳
?
米沙之国

TA贡献30条经验 获得超16个赞

//img1.sycdn.imooc.com//5787292300016f2804530171.jpg

你打印的第一行没显示出来.


HelloWorld hello=new HelloWorld();这局代码会先初始化static int num3;静态变量--->static{静态代码块}--->int num1;int num2;(变量)--->{初始话块}--->public HelloWorld(){构造方法}


而静态变量和静态代码块在内存中只会有一个,是属于类的,而不是类的某个实例,只会初始化一次HelloWorld hello2=new HelloWorld();不会运行

查看完整回答
2 反对 回复 2016-07-14
  • totosspace
    totosspace
    第一行显示了,不过没有截图进来。 还是没有看懂。
  • 米沙之国
    米沙之国
    类的初始化会先初始化静态的,其生命周期取决于类的生命周期,而{初始化块}和构造方法是属于一个具体的类的实例,其生命周期取决于某个类具体实例的生命周期;换句话说就是静态的变量或静态代码块会附着在一个抽象的类上,被所有实例所共用,而类的实例化只是根据这个抽象的实例话出一个具体的,所以会先初始话抽象的在初始化具体的,及先初始话静态的.
?
损失函数

TA贡献114条经验 获得超93个赞

当你实例化对象时,Java虚拟机执行的顺序是为1-->2--->3

1:{代码块}

2:static{静态代码块}

3:构造方法

望采纳!

查看完整回答
反对 回复 2016-07-14
点击展开后面1
  • 2 回答
  • 0 关注
  • 1215 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信