【Java】成员变量与局部变量的区别

问题:什么是成员变量与局部变量

  • 成员变量:类中的方法外的变量 就是成员变量
  • 局部变量:方法中的变量 局部变量
区别 成员变量 局部变量
类中位置不同 类中方法外 类中方法里
内存中 位值 堆内存 栈内存
生命周期不同 随着对象存在而存在,随着对象消失而消失 随方法调用存在而存在,随方法结束消失而消失
初始化值不同 有默认的初始值 没有默认的初始化值,必须先定义赋值后使用

 Student.java如下:

package com.面向对象;

public class Student {
    String name;
    int age;

    public void work() {
        System.out.println("开始敲代码...");
    }


    public void work2() {
//    public void work2(int i){
        // 在方法中传递的参数(形参)也属于该方法里面的局部变量
        Student s = new Student(); // 单独的一个线程GC线程 在堆内存中 不可用的对象
        // new Student存放在堆内存中,s存放在栈空间中,直接引用到堆内存地址
        /**
         * 局部变量int i/age 在什么时候被销毁呢?work2方法执行结束之后
         * GC 垃圾回收
         *  Student s ------引用到堆内存 new Studnet对象的内存地址
         */
        int i = 20;
        int age = 30;
        // 局部变量 变量名称 在同一个方法中 不允许 存在 多个相同的变量名称
        int z;
//        System.out.println(z); //局部变量 使用前 必须 先赋值
        System.out.println(this.age); // 成员变量 有默认初始值
        this.age = age; //在work2方法中 将局部变量age 赋值给 成员变量的age(在方法内调用成员变量使用this)
    }
}

下一篇文章:访问修饰符之private && this 关键字

你可能感兴趣的:(java,开发语言,局部变量,成员变量)