• 一道关于java 类初始化 成员初始化的笔试题的解析


    代码如下:

    java笔试题

    程序执行结果如下:

    java笔试题结果

    此笔试题考查:

    JAVA的静态变量、静态方法、静态类

    关于这个知识点参考如下博文:

    1、JAVA的静态变量、静态方法、静态类,

    http://blog.csdn.net/zhandoushi1982/article/details/8453522

    2、Java类变量和成员变量初始化过程,

     http://www.cnblogs.com/lmtoo/archive/2012/04/08/2437918.html

    那么分析程序可知:

    静态都是用来修饰类的内部成员的。比如静态方法、静态成员变量。它唯一的作用就是随着类的加载(而不是随着对象的产生)而产生,以致可以用类名+静态成员名直接获得。

    编译器转换成class文件后,会转换成类似下面的代码:

    个人理解

    首先: 初始化n=0;

    初始化m1, 打印 j i=0 n=0    打印  控制块 i=1 n=1 打印 m1 i=2 n=2

    初始化m2, 打印 j i=3 n=3   打印  控制块 i=4 n=4 打印 m2 i=5 n=5

    初始化i,打印 i i=6 n=6

    初始化 静态块, 打印 静态块 i=7 n=7

    静态部分初始化结束,开始执行main函数中m对象的实例化,

    初始化m,打印 j i=8 n=8 打印 控制块 i=9 n=9 打印 init i=10 n=10

    黑体部分即为 程序输出结果。

    注:作者有限,文中若有不对之处,请批评指正。


     

  • 相关阅读:
    ES7/ES8 语法学习
    JavaScript中this对象原理简洁说明
    浅谈http协议
    各个浏览器之间常见的兼容性问题
    npm -v 报错:cannot find module 'core-util-is'
    对象遍历的几种方法
    Vue项目如何关闭Eslint检测
    axios 基本运用
    如何去掉vue路由中的#
    vue 父子组件、兄弟组件传值
  • 原文地址:https://www.cnblogs.com/khldragon/p/3334239.html
Copyright © 2020-2023  润新知