【Java学习笔记】Instance Variables,Class Variables,local Variables的区别

    xiaoxiao2021-03-25  123

    Class Variables :类变量,静态变量

    Instance Variables:实例变量,非静态变量,位于类中,方法体外

    local Variables:局部变量,位于方法体内,必须定义初始化值。

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

    1.调用方式 静态变量也称为类变量,可以直接通过类名调用。也可以通过对象名调用。这个变量属于类。 成员变量也称为实例变量,只能通过对象名调用。这个变量属于对象。 2.存储位置 静态变量存储在方法区长中的静态区。 成员变量存储在堆内存。

    局部变量位于栈中。 3.生命周期 静态变量随着类的加载而存在,随着类的消失而消失。生命周期长。 成员变量随着对象的创建而存在,随着对象的消失而消失。

    局部变量生命周期只限于方法被放在栈上这段期间,也就是方法调用至执行完毕为止。 4.与对象的相关性 静态变量是所有对象共享的数据。 成员变量是每个对象所特有的数据。

    5.例子

    public class Temp { int t; //实例变量  public static void main(String args[]){ int t=1; //局部变量  System.out.println(); //打印局部变量  Temp a= new Temp(); //创建实例 System.out.println(a.t ); //通过实例访问实例变量  } }

    结果为: 1 0 (成员变量具有缺省值 而局部变量则没有  

    把代码改为

    public class Temp { static int t; //类变量  public static void main(String args[]){ System.out.println( ); //打印类变量 int t=1; //局部变量  System.out.println( ); //打印局部变量 Temp a= new Temp(); //创建实例 System.out.println( a.t ); //通过实例访问实例变量 } }

    结果则为 0 1 0

    链接:http://blog.csdn.net/liangzhongqin/article/details/6401611

    http://www.cnblogs.com/huyuyu/p/6392987.html

    转载请注明原文地址: https://ju.6miu.com/read-2613.html

    最新回复(0)