目录

 一.局部变量

 二.成员变量

 三.静态变量

​ 四.总结成员变量与局部变量和静态变量的区别


一.局部变量

局部变量是定义在 方法中或是方法的形参变量 !局部变量只能在它所在的作用域内发挥作用,在 域内直接使用 !出了作用域就不能再使用了!所有的局部变量都存储在JVM中的 栈内存 中!

public class Test {        //类体中
    public static void main(String[] args) {    //方法体中
        String name="我是局部变量!";             //这个name是main域中局部变量
        System.out.println(name);
    }

    //定义一个方法
    public static void game(String n){          //n是game域中的局部变量
        System.out.println(n+"是game方法中的局部变量");
    }
}

局部变量在最开始定义时就 必须要赋值 ,赋值之后才能使用

否则会编译报错,并且运行报错未初始化变量!

 局部变量是 属于方法 的,它随着方法的调用而产生,随着方法的调用完毕而消失!

想更加详细的了解方法执行内存图点击这里!

 二.成员变量

实例变量也可叫做成员变量!成员变量定义在 类中方法之外 的变量.存储在jvm的 堆内存 中!

并且成员变量是不需要变量一定义就赋值的!它 有相对应的默认值 !最开始会初始化为默认值!

成员变量 属于对象 ,会随着对象的创建而产生,随着对象的消失而消失!一般 通过对象来调用!

public class Test {        //类体中

    String name;           //这个name是成员变量
    int age;               //这个age是成员变量

    public static void main(String[] args) {    //方法体中
        Test t=new Test();                      //创建对象
        t.name="张三";                          //对象调用属性
        t.age=19;
        System.out.println(t.name);
        System.out.println(t.age);   
    }
}

(这部分相关的内存图在这里有详细介绍!  -------->  这里这里啦   )

 三.静态变量

被static修饰 的变量都是静态变量!静态变量也可以叫做共享变量或类变量!其也跟成员变量一样 有 默认值 ,不需要一开始定义就赋值.

public class Test {        //类体中
    static String name;    //这个name是静态变量
    static int age;        //这个age是静态变量
    public static void main(String[] args) {    //方法体中

        Test.name="李四";            
        Test.age=20;                            //类名来调用      
        Test t=new Test();
        System.out.println(t.name);
    }
}

静态变量在jdk1.8版本之前,是存储在方法区的.1.8版本之后(包含1.8)是存储在 堆内存 中的!

静态变量是 属于类 的,会随着类的产生而产生,随着类的消失而消失!其变量也是 通过类来调用 的!(也可以用对象来调用,但是不推荐的哈!)

 四.总结成员变量与局部变量和静态变量的区别

变量类别

局部变量

成员变量

静态变量

定义形式

方法中/形参

类中方法外

static修饰

存储位置

栈内存

堆内存

堆内存

默认值

无默认值

有默认值

有默认值

属于谁

属于方法

属于对象

属于类

谁来调用

域内直接使用

对象调用

类调用

 好啦!这次小编的分享就此而止啦!!!

(小编也在努力学习更多哟!以后会多多分享哒!)

希望对友友们有所帮助!!!!