Java中局部变量,静态变量和实例变量的区别

Python019

Java中局部变量,静态变量和实例变量的区别,第1张

实例变量又称成员变量:

成员变量定义在类中,在整个类中都可以被访问

成员变量随着对象的建立而建立,随对象的消失而消失,存在于对象所在的对内存中

成员变量有默认初始值

局部变量:

定义在方法中或方法的参数列表(或者语句中)

存在于栈内存中,作用的范围结束,变量空间自动释放

默认没有初始化值,使用时需要进行初始化

静态变量又称类变量:用static修饰

存储在方法区中

随着类的加载而存在,随着类的消失而消失

可以由类名或对象调用

伪代码说明

public class Variable{     

    static int a = 0        //类变量

    String b = "hello world"//实例变量

    public void method(){        

        int c = 0           //局部变量

    }

}

静态方法和实例方法的区别主要体现在两个方面:

在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。

静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制。

具体来说:

一、实例字段要实例化才能使用,没有实例化不能使用。静态字段反之。如:

name字段的使用:

cla1

i

=

new

cla1()

i.name

=

"张三"

sex字段的使用:

cla1.sex

=

"男"

二、普通字段要在实例化时候才分配内存空间,而静态字段在装载程序集的时候就分配内存空间了。