Java 笔记 OCA 备考static相关

以下static可以输出运行结果

public class Nr{

static int x;

    public static void main(String[] str){

        Nr.x = 3;
        Nr nr = new Nr();
        nr=null;
        System.out.println(nr.x);
    }
}
static int x;
  • x 是一个静态变量,属于类 Nr不属于某个具体对象

  • 静态变量的内存分配是在类加载时完成的,是共享的

🔹 Nr.x = 3;
  • 给静态变量 x 赋值为 3。

  • 所有对 Nr.x 的访问现在都会得到 3。

🔹 Nr nr = new Nr(); nr = null;
  • 创建了一个 Nr 的实例(虽然没有使用),然后将引用 nr 置为 null

  • 此时 nr 已经不指向任何对象。

🔹 System.out.println(nr.x);
  • 看起来是通过 nr 访问 x,但其实是访问静态变量。

  • Java 语法允许通过对象引用访问静态变量,虽然这是 不推荐 的写法。

  • 访问的是类变量 x,和 nr 是否为 null 没有关系

  • 因此输出为:3

写小说也写代码,左手架空世界,右手现实逻辑。  
📚 欢迎来看博客,起点同笔名在写小说,欢迎来找我玩。

https://my.qidian.com/author/433910170/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值