java里static变量和非static变量有什么区别
12个回答
展开全部
static 修饰的变量称为类变量或全局变量或成员变量,在类被加载的时候成员变量即被初始化,与类关联,只要类存在,static变量就存在。
一个static变量单独划分一块存储空间,不与具体的对象绑定在一起,该存储空间被类的各个对象所共享。
也就是说当声明一个对象是,并不产生static变量的拷贝,而是该类所有的实例对象共用同一个static变量。
非static修饰的成员变量是在对象new出来的时候划分存储空间,是与具体的对象绑定的,该成员变量仅为当前对象所拥有的。
对象在引用成员变量是直接通过类名.变量名调用,对象在引用实例变量时只能通过对象名.变量名调用。
在类中调用成员变量时直接调用或者以类名.变量名方式调用,实例变量则用this或者直接调用。
展开全部
static 变量:无论一个类生成了多少个对象,所有这些对象共同使用唯一一份静态的成员变量;一个对象对该静态成员变量进行了修改,其他对象的该静态成员变量的值也会随之发生变化。如果一个成员变量是static 的,那么我们可以通过 类名 .成员变量名 的方式来使用它 .
这么说明白了吗
这么说明白了吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
static变量可以单独存在,不需要依附对象,加载了类就能使用。(前提是访问权限)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-07-04
展开全部
被static修饰的变量 称为类变量或者静态变量,在类加载的时候就会被分配空间, 生命周期取决于类的生命周期. 实例变量也就是属于对象的, 在new对象的时候被分配空间,生命周期取决于对象也就是实例的生命周期.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1,被static修饰的属性和方法属于类 而不是属于哪一个特定的对象,可以说属于所有的对象
2,static块在classloader加载的时候就会执行
被static修饰的东西放在方法区
2,static块在classloader加载的时候就会执行
被static修饰的东西放在方法区
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询