Java|类变量和实例变量的区别

本文详细介绍了Java中的类变量(静态变量)与实例变量(对象变量)的区别和特性。类变量在类加载时即存在,由所有对象共享,而实例变量在对象创建时存在于堆内存中。当一个对象改变类变量的值,其他对象也会受到影响;而实例变量的改变仅影响自身。此外,文章还探讨了两者在内存中的存储位置和生命周期的差异。
摘要由CSDN通过智能技术生成

类变量也叫静态变量,也就是在变量前加了static的变量;
实例变量也叫对象变量,即没加static的变量;

  • 静态变量(类变量)具备以下特点:
    1.随着类的加载而加载
    2.优先于对象存在
    3.被所有对象所共享
    4.可以直接被类名调用
  • 类变量和实例变量的区别是:
    1,存放位置。
    类变量随着类的加载而存在于方法区中。
    实例变量随着对象的建立而存在于堆内存中。
    2,生命周期:
    类变量生命周期最长,随着类的消失而消失。
    实例变量生命周期随着对象的消失而消失。
    3,类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象;
    例;
public class A{
static int a = 0;//类变量
private int b = 0;//实力变量}
public class B{
public void main (String] args){
A a1 = new A();
A a2 = new A();
a1.a = 3;//等同于A.a = 3;
a1.b = 4;
System.out.println(a2.a);//结果为3
//类变量是针对所有对象的,所以a1改变a, a2的a也改变
System.out.println(a2.b);//结果为0
//实例只改变自身的,所以a1对象的b改变,不影响对象a2的b变量
}
  • 类变量又叫静态成员变量,它不需要创建对象就可以已经在内存中存在了。
    类就像一份说明书,说明这种类的实例对象的规格。而在创建实例对象的时候,内存中会为每一个实例对象的每一个非静态成员变量开辟一段内存空间,用来存储这个对象所有的非静态成员变量值。即使两个不同的实例对象是属于同一个class类,但是它们的同名非静态成员变量在内存中占用的空间是不同的。
    而静态成员变量也就是类变量不同。所有的实例对象都共用一个类变量,内存中只有一处空间是放这个类变量值的。因此,如果一个对象把类变量值改了,另外—个对象再取类变量值就是改过之后的了。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不熬夜,早点睡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值