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

 我来答
濮望亭年婵
2019-06-06 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:25%
帮助的人:945万
展开全部
1.
static
修饰的变量称为类变量或全局变量或成员变量,在类被加载的时候成员变量即被初始化,与类关联,只要类存在,static变量就存在。
2.
一个static变量单独划分一块存储空间,不与具体的对象绑定在一起,该存储空间被类的各个对象所共享。
3.
也就是说当声明一个对象是,并不产生static变量的拷贝,而是该类所有的实例对象共用同一个static变量。
4.
非static修饰的成员变量是在对象new出来的时候划分存储空间,是与具体的对象绑定的,该成员变量仅为当前对象所拥有的。
5.
对象在引用成员变量是直接通过类名.变量名调用,对象在引用实例变量时只能通过对象名.变量名调用。
6.
在类中调用成员变量时直接调用或者以类名.变量名方式调用,实例变量则用this或者直接调用。
督秀珍施己
2019-06-08 · TA获得超过3.5万个赞
知道大有可为答主
回答量:1.3万
采纳率:33%
帮助的人:885万
展开全部
static是为了将某个成员变量/方法关联到类(class)而非实例(instance)。
你不需要创建一个对象就可以直接使用这个类的static成员,
在a类中调用b类的static成员可以使用b.staticmember的写法。
注意一个类的static成员变量是唯一的,被所有该类对象所共享的。
比如说有一个类dog;
属性:clolor,狗狗可以有好多颜色;
munberoflegs
=4
每只狗狗只有4条腿,这个就应该是静态的;
静态的属性不依赖于类的存在而存在,简单说,你可以定义
dog
dog1
=
new
dog();
dog
dog2
=
new
dog();
dog
dog3
=
new
dog();
这里定义了三条狗狗,狗狗的颜色依赖于类本身,即dog1,dog2,dog3;三条狗狗可以有不同的颜色;
而狗狗的腿的数量不依赖于dog1,dog2,dog3;所有的狗狗都是4条腿
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
郎秀英费缎
2020-05-05 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:30%
帮助的人:1096万
展开全部
1,被static修饰的属性和方法属于类
而不是属于哪一个特定的对象,可以说属于所有的对象
2,static块在classloader加载的时候就会执行
被static修饰的东西放在方法区
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式