当前位置: 首页 > news >正文

广州学校网站建设做视频网站新手教学

广州学校网站建设,做视频网站新手教学,做网站赚钱还是企业宣传片,现在哪个招聘网站做的比较好面试的的时候经常会被问到包含静态代码块、实例代码块和构造器等代码结构的加载顺序问题,下面借用一个面试题,回顾一下类的代码加载顺序。 public class AooTest {public static void main(String[] args) {AooTest.f1();}static AooTest test1 new Ao…

      面试的的时候经常会被问到包含静态代码块、实例代码块和构造器等代码结构的加载顺序问题,下面借用一个面试题,回顾一下类的代码加载顺序。

public class AooTest {public static void main(String[] args) {AooTest.f1();}static AooTest test1 = new AooTest();static {System.out.println("1");}{System.out.println("2");}AooTest() {System.out.println("3");System.out.println("a=" + a + ", b=" + b);}private static void f1() {AooTest aooTest = new AooTest();System.out.println("4");}int a = 5;static int b = 6;
}

先看一下输出结果:

2
3
a=5, b=0
1
2
3
a=5, b=6
4

      这个题比较绕,一般就是面试的时候故意出的费脑细胞的题,开发的时候压根不会碰到。但是这种题能够加深我们对类加载机制的理解,现在我们逐行去分析一下:

1、首先执行main方法,这里会执行当前AooTest类的加载,引起类加载有7种情况:

      1.1:创建类的实例,new关键词;
      1.2:访问类或接口的静态变量,或者对静态变量赋值;
      1.3:调用类的静态方法;
      1.4:程序的启动类所在的类;
      1.5:初始化一个类的子类时会引起父类的主动使用和初始化;
      1.6:反射,如Class.forName("com.cn.Test01");
      1.7:jdk1.7之后的动态语言支持也会引起类的初始化。

2、类的加载会出发静态代码块,这个题里面有多个静态属性和静态代码块,按照从上往下的顺序执行,依次是:

3、这里在执行1的时候,就去执行new AooTest(),对当前类实例化,那么实例化就需要执行成员属性赋值和实例代码块、之后再执行构造器,如果有多个成员属性或者多个实例代码块也是从上往下的顺序执行,这里我们看下:

所以,先输出 2(步骤1.1),之后对a赋值 a= 5(步骤1.2)。

然后再执行构造器的代码(步骤1.3),首先输出 3,接下来输出 a = 5, b=0,这里有些同学会有疑问,为什么 b 是0呢?大家注意看,前面类加载的时候,我们只是执行了步骤1,而 静态属性b的赋值要到步骤3种才能执行,所以这里b是没有被赋值的,默认是0。

4、然后回到前面的图,执行步骤2,输出1

5、再往下执行步骤3,注意这里b会被赋值了 b =6。

经过以上步骤,类的加载执行完成,所有的静态属性和静态代码块都执行完成。

6、下面进入了main方法,执行了 AooTest.f1()函数。

在f1方法里面,AooTest又一次被实例化了,所以如果前面被实例化的步骤一样,实例代码块输出2,构造器输出3,接下来输出输出 a = 5, b=6,这里注意,b在前面已经赋值了,所以与上面的输出不同。

7、实例化结束之后,最后输出 4 。

最后来总结一下类加载的顺序:

1、最先加载静态成员变量、静态代码块,如果有多个,按照从上往下的顺序加载;

2、其次实例化普通成员变量、实例代码块,如果有多个,按照从上往下的顺序执行;

3、最后执行构造器函数

http://www.yayakq.cn/news/355924/

相关文章:

  • 有哪些游戏可以做网站汉中网站建设费用
  • 关于网站开发的外文翻译怎样建设邮箱网站
  • 大型网站架构实战中国会议营销网站
  • 自助智能建站系统泰安新闻频道在线直播
  • 锐奇智能手机网站建设做app和做网站哪个容易
  • 网站开发服务费记账重庆高校在线平台
  • 高端网站定制开发深圳网页搜索框记录怎么删除
  • 福州微信网站建设视频网站开发 视频采集
  • 网站网站开发成本铁岭做网站的公司
  • 网站开发博客海南新政策最新消息
  • python怎么做抢课网站搜索引擎如何找到网站
  • 网站关键字分析网络营销八大目标是什么
  • 罗定市住房和城乡建设局网站2021智慧树互联网与营销创新
  • wordpress 阿里云sem优化是什么意思
  • 山东省住房城乡建设厅门户网站快速搭建网站框架的工具
  • 网站开发如何支持ipv6推荐好的设计网站
  • 建站公司推广建设个人商城网站
  • 公司网站官网有没有做书签的网站
  • 视觉传达毕业设计作品网站优化seo教程技术
  • 网站怎么做移动图片不显示不出来哪个网站平面设计做的好
  • 描述网站建设的基本流程廊坊宣传片制作公司
  • 成都网站建设哪家设计好宣传册
  • 婚庆网站建设策划案程序员培训机构排名
  • 网站集约化建设项目内容主机屋
  • 宁波做网站制作宝应县建设工程信息网
  • 有心学做网站网站建设项目怎么跟进客户
  • 专题型定制网站建设彩页设计印刷公司
  • 在线电影网站建设做视频网站需要流媒体吗
  • 基础建设的网站有哪些内容我要安装百度
  • 做家装网站源码住房和城乡建设查询平台官网