为了账号安全,请及时绑定邮箱和手机立即绑定

为什么只有这个静态变量会自增,random却不会?

https://img1.sycdn.imooc.com//5c60efff0001662e07970415.jpg    

这是为啥呢?

正在回答

5 回答

static变量也称作静态变量,静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。

2 回复 有任何疑惑可以回复我~

1、静态变量理解为类的变量,在类初始化时就生成了(在创建实例之前)

2、成员变量(在创建实例,就也就是构造函数执行时初始化)

3、静态变量为类、实例所共享,共同修改

4、成员变量为实例所有,不同实例之前无法共享

0 回复 有任何疑惑可以回复我~

看错了

0 回复 有任何疑惑可以回复我~

random不是静态变量,不能直接被静态方法所调用,你需要在静态方法StaticTest中创建一个对象,然后用对象再对random进行操作

0 回复 有任何疑惑可以回复我~

我补充下我刚才的回答,就是说:静态变量在他所属类初始加载时就会分配一个地址,无论以后他所属的类重新加载多少次都是这个地址不变了。但是非静态变量的话就是创建对象的时候会重新多分配一个地址。

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么只有这个静态变量会自增,random却不会?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号