我心流浪 2012-07-20 14:44
浏览 278
已采纳

Java调试

现有三个类:AA类,BB类,CC类。代码如下:
public class AA {// 此处为1
public static int a=10;//此处为2
public int b=20; //此处为6
public AA(){}; //此处为7
}
public class BB extends AA {//此处为3
public static int x=30;//此处为4
public int y=40; //此处为8
public BB(){}; //此处为9
}
public class CC {
public static void main(String[] args) {
BB b=new BB();//此处为5
}
}

在5那里设断点,按F5调试,执行顺序为:5→2→1→4→3→5→9→7→6→8→5
请问从2至1的原因?以及在执行1的时候,所做的事或者是包含的操作。请各位详细解释下。

  • 写回答

4条回答 默认 最新

  • weixin_42608382 2012-07-20 15:07
    关注

    :D
    你问的是Java类的加载顺序问题,比如先加载什么静态成员和静态初始化块、先父后子你都可以上在网上有介绍。你主要关心的是为什么会有从2跳到这里[code="java"]public class AA {[/code]// 此处为1。每个类在JVM虚拟机中都有一个指向这个类自身的Class对象。你能明白吗?就像你用类名.class时。。这个是一个指向这个类实例(自己)的静态变量。跳转到这里是在初始化这个静态变量。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥20 java在应用程序里获取不到扬声器设备