回 帖 发 新 帖 刷新版面

主题:谁能正确的解释这段小程序的输出结果???

public class SequenceTest extends Test1{
 {
  System.out.print("1");
 }
 SequenceTest(){
  System.out.print("2");
 }
 static{
  System.out.print("3");
 }
 {
  System.out.print("4");
 }
 public static void main(String[] args) {
  new SequenceTest();
 }
}
class Test1 {
 Test1(){
  System.out.print("5"); 
 }
 static{
  System.out.print("6");
 }
}

回复列表 (共3个回复)

沙发

这个跟编译过程有关,建议多看看编译原理。
声明为static的变量,它的生存期为整个源程序。所以声明为static的先打印出来。
同时,由于有继承关系,那么初始化的时候是按先父类后子类的顺序

板凳

同意一楼的,执行原则:
一、static优先;
二、父类优先;
三、类全局优先;
四、顺序优先;
五、最后构造。

3 楼


深圳市华信群英科技有限公司与知名通信软件公司正式签订定向输送人才的合作协议
针对想进入IT软件行业的有志人士提供专业的企业内训
实训课程采用“2+3”分段教学模式,分为2个月理论强化和3个月项目实训两个阶段
实训前就签订就业安置协议,岗前实训后入职
不仅学费优惠而且是企业定向培训定向招聘,百分百保证就业
有意向请登录www.szctt.com,或加QQ:1179397962做详细咨询

我来回复

您尚未登录,请登录后再回复。点此登录或注册