静态变量和实例变量的区别?

 我来答
seohyun328
2018-03-30 · TA获得超过1.2万个赞
知道小有建树答主
回答量:89
采纳率:100%
帮助的人:1.3万
展开全部

静态变量:独立存在的变量,只是位置放在某个类下,可以直接类名加点调用静态变量名使用。并且是项目或程序一启动运行到该类时就直接常驻内存。不需要初始化类再调用该变量。用关键字static声明。静态方法也是同样,可以直接调用。

实例变量:就是相当于该类的属性,需要先初始化该类,就是new 该类后,才可以调用。但是该类未被再次使用,被垃圾回收器回收后,该实例也将不存在了,就是不在内存中了。

区别如下:

1.存储区域不同:静态变量存储在静态存储区,普通变量存储在堆中;

2.静态变量与类相关,普通变量则与实例相关

3.内存分配方式不同。

4.生命周期不同。

Storm代理
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
简乱千因1S
2018-03-10 · TA获得超过2270个赞
知道大有可为答主
回答量:1003
采纳率:100%
帮助的人:214万
展开全部

Java类的成员变量有2种:一种是被static关键字修饰的变量,叫类变量或者静态变量;另一种没有static修饰,为实例变量。

在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。

在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。

类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享。静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期。

而实例变量取决于类的实例。每创建一个实例,java虚拟机就会为实例变量分配一次内存,实例变量位于堆区中,其生命周期取决于实例的生命周期。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2018-02-28
展开全部
静态变量属于类,不用实例化就已经存在,所有的实例共享同一个静态变量,可以通过类名和实例名来访问。实例变量属于实例,每个实例都有自己的这个变量,只能通过实例名来访问。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-17
展开全部
静态变量可以通过类名.方法名可以点出来。而实例变量需要先实例化那个类才可以得到
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-17
展开全部
static i = 10; //常量
class A a; a.i =10;//可变
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式