luke003 2016-01-30 13:37 采纳率: 100%
浏览 1415
已采纳

小白求助。麻烦帮忙看看给解释解释

package com.imooc;

public class Test{
public static void main(String[] args) {

    T t1 = new T();
    T t2 = new T();

    System.out.println("t1's i ="+t1.i+"\tt1's j="+t2.j);

    System.out.println("t2's i ="+t2.i+"\tt2.s j="+t2.j);
}

}

class T{
static int i = 0;
int j = 0;

T(){
    i++;
    j = 1;
}

}

输出结果是这个:为什么啊?

t1's i =2 t1's j=1
t2's i =2 t2.s j=1

  • 写回答

3条回答

  • Yoda_wang 2016-01-30 14:56
    关注

    一个变量如果被static 修饰,那么在伴随着类的实例化将在内存中,开辟一个空间用来专门存储该变量。
    特点是 被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。
    问题中i变量被static修饰当你new t1 的时候 i变成1 new t2时用的是同一个i 所以i在内存中变成2

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn