java里static变量和非static变量有什么区别

 我来答
chianlic
推荐于2017-09-04 · TA获得超过804个赞
知道小有建树答主
回答量:812
采纳率:83%
帮助的人:587万
展开全部
  1. static 修饰的变量称为类变量或全局变量或成员变量,在类被加载的时候成员变量即被初始化,与类关联,只要类存在,static变量就存在。

  2. 一个static变量单独划分一块存储空间,不与具体的对象绑定在一起,该存储空间被类的各个对象所共享。

  3. 也就是说当声明一个对象是,并不产生static变量的拷贝,而是该类所有的实例对象共用同一个static变量。

  4. 非static修饰的成员变量是在对象new出来的时候划分存储空间,是与具体的对象绑定的,该成员变量仅为当前对象所拥有的。

  5. 对象在引用成员变量是直接通过类名.变量名调用,对象在引用实例变量时只能通过对象名.变量名调用。

  6. 在类中调用成员变量时直接调用或者以类名.变量名方式调用,实例变量则用this或者直接调用。

小钟钟有话说
2012-06-30 · TA获得超过486个赞
知道小有建树答主
回答量:298
采纳率:100%
帮助的人:90.3万
展开全部
static 变量:无论一个类生成了多少个对象,所有这些对象共同使用唯一一份静态的成员变量;一个对象对该静态成员变量进行了修改,其他对象的该静态成员变量的值也会随之发生变化。如果一个成员变量是static 的,那么我们可以通过 类名 .成员变量名 的方式来使用它 .
这么说明白了吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我爱上庄园
2015-09-24 · TA获得超过105个赞
知道答主
回答量:20
采纳率:100%
帮助的人:4.6万
展开全部
static变量可以单独存在,不需要依附对象,加载了类就能使用。(前提是访问权限)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-07-04
展开全部
被static修饰的变量 称为类变量或者静态变量,在类加载的时候就会被分配空间, 生命周期取决于类的生命周期. 实例变量也就是属于对象的, 在new对象的时候被分配空间,生命周期取决于对象也就是实例的生命周期.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
忆萧123
2012-06-30 · TA获得超过832个赞
知道小有建树答主
回答量:602
采纳率:0%
帮助的人:332万
展开全部
1,被static修饰的属性和方法属于类 而不是属于哪一个特定的对象,可以说属于所有的对象

2,static块在classloader加载的时候就会执行

被static修饰的东西放在方法区
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(10)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式