关于上一个星期遇到的面试题,实例变量与静态变量什么时候被加载的问题

注:第一次写博客,可能会出一些问题,多多包涵

public class MethodA {

    //静态变量 是在程序运行后就被加载了
    //实例变量  是在创建对象后才被加载
    
    int i = set();
    int j = 2;
    
    public int set(){
        return j;
    }
    public static void main(String[] args) {
        MethodA a = new MethodA();
        System.out.println(a.i);
    }
    

}

结果:0

原因:在创建对象a时,顺序加载变量i,调用方法set(),此时j还没有初始化,所以返回的是0

如果把  int i = set();
    int j = 2;交换一下顺序,或者把j设置成静态变量,结果就变成了2


注:本人初级java,基础部分待牢固。发现问题喜欢记录下来,后来发现记录到博客里面挺好的,以后会经常写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值