栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

类变量也叫静态变量,也就是在变量前加了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类,但是它们的同名非静态成员变量在内存中占用的空间是不同的。
    而静态成员变量也就是类变量不同。所有的实例对象都共用一个类变量,内存中只有一处空间是放这个类变量值的。因此,如果一个对象把类变量值改了,另外—个对象再取类变量值就是改过之后的了。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/988637.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号