java里static变量和非static变量有什么区别
3个回答
展开全部
1.
static
修饰的变量称为类变量或全局变量或成员变量,在类被加载的时候成员变量即被初始化,与类关联,只要类存在,static变量就存在。
2.
一个static变量单独划分一块存储空间,不与具体的对象绑定在一起,该存储空间被类的各个对象所共享。
3.
也就是说当声明一个对象是,并不产生static变量的拷贝,而是该类所有的实例对象共用同一个static变量。
4.
非static修饰的成员变量是在对象new出来的时候划分存储空间,是与具体的对象绑定的,该成员变量仅为当前对象所拥有的。
5.
对象在引用成员变量是直接通过类名.变量名调用,对象在引用实例变量时只能通过对象名.变量名调用。
6.
在类中调用成员变量时直接调用或者以类名.变量名方式调用,实例变量则用this或者直接调用。
static
修饰的变量称为类变量或全局变量或成员变量,在类被加载的时候成员变量即被初始化,与类关联,只要类存在,static变量就存在。
2.
一个static变量单独划分一块存储空间,不与具体的对象绑定在一起,该存储空间被类的各个对象所共享。
3.
也就是说当声明一个对象是,并不产生static变量的拷贝,而是该类所有的实例对象共用同一个static变量。
4.
非static修饰的成员变量是在对象new出来的时候划分存储空间,是与具体的对象绑定的,该成员变量仅为当前对象所拥有的。
5.
对象在引用成员变量是直接通过类名.变量名调用,对象在引用实例变量时只能通过对象名.变量名调用。
6.
在类中调用成员变量时直接调用或者以类名.变量名方式调用,实例变量则用this或者直接调用。
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
展开全部
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条腿
你不需要创建一个对象就可以直接使用这个类的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条腿
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1,被static修饰的属性和方法属于类
而不是属于哪一个特定的对象,可以说属于所有的对象
2,static块在classloader加载的时候就会执行
被static修饰的东西放在方法区
而不是属于哪一个特定的对象,可以说属于所有的对象
2,static块在classloader加载的时候就会执行
被static修饰的东西放在方法区
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询