博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java面试 对象初始化过程、静态变量
阅读量:6418 次
发布时间:2019-06-23

本文共 583 字,大约阅读时间需要 1 分钟。

  hot3.png

面试题

package statict;

public class StaticTest2 {

    
    static Static2 s2 = new Static2();
    static int i = 0;
    static int j ;
    
    static class Static2{
        public Static2() {
            StaticTest2.i++;
            StaticTest2.j++;
        }
    }
    
    public static void main(String[] args) {
        new StaticTest2();
        System.out.println(StaticTest2.i);
        System.out.println(StaticTest2.j);
    }

}

输出结果:

0

1

主要面试点:对象初始化过程、静态变量初始化过程

解析:首先静态变量依次执行初始化过程,首先是声明变量,并设置默认值。注意是默认值不是初值。

此时各个变量的值为:

   s2 = null;

     i = 0;
     j = 0 ;

随后,对s2赋初值,执行Static2的构造方法,i++,j++。此时i=1,j=1

然后,对变量 i 赋初值,因为变量 j 没有初值,也就不会有这个过程。此时,i=0,j=1。

转载于:https://my.oschina.net/u/858272/blog/743210

你可能感兴趣的文章
Springboot学习01- 配置文件加载优先顺序和本地配置加载
查看>>
网页缓存技术
查看>>
js修改页面动态添加input框显示与按钮可编辑
查看>>
SSH整合报错:找不到元素 'beans' 的声明
查看>>
REST及RESTful的实现
查看>>
正则化
查看>>
P1437 [HNOI2004]敲砖块
查看>>
nginx 配置https
查看>>
libcurl理解和使用
查看>>
简易博客开发(8)----django1.9 博客部署到pythonanywhere上
查看>>
客户端 post ,get 访问服务器
查看>>
css绘制三角形
查看>>
split分割字符串若用"("进行分割需要进行转义
查看>>
awk
查看>>
第三周编程总结
查看>>
发布功能完成
查看>>
用js实现返回上一页
查看>>
因数分解
查看>>
数据结构之队列
查看>>
并发编程(二)
查看>>