Java经典面试题 | 成员变量与局部变量的区别

成员变量与局部变量的区别

1. 定义位置的比较

成员变量:定义在类中,表示类的属性
局部变量:定义在方法中或者方法声明上(形式参数),用来描述方法的功能

2. 作用域

成员变量:作用于整个类,可以在类的内部任何地方访问(包括方法内部)
局部变量:作用于当前方法内,只能在当前方法中访问,其他方法访问不到 

3. 缺省值

 【当没有赋值时,系统根据数据类型提供的默认值】

成员变量:有
局部变量:没有,必须手动赋值

【注意】:所有变量都必须先赋值,再使用

缺省值
            数据类型                            缺省值:
            ——————————————————————————————————————
            整型:byte short int long         0
            浮点类型:float double           0.0
            字符类型:char                       \u0000
            逻辑类型:boolean                  false

            字符串类型:String                  null

 4. 在内存中的位置不同 

成员变量:堆内存 
局部变量:栈内存

5.  生命周期不同

 成员变量:随着对象的创建而存在,随着对象的消失而消失 
 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 

6. 修饰符的使用

 成员变量:可以加修饰符
 局部变量:不可以

7. 重名问题 

  •  局部变量和成员变量重名:就近原则(局部变量会屏蔽成员变量)  
  •   使用this.成员变量区分成员变量
  •   方法中只有成员变量时,默认也是使用 this 修饰,可以省略不写
  •   局部变量之间不能重名,成员变量之间不能重名    

8. 代码示例 

/**
 * @Desc: 
 		 成员变量:
 *              位置:类中方法外
 *              初始值:有默认值
 *              生命周期:随着对象的创建而存在,随着对象的消失而消失
 *              内存位置:堆内存中
 *        局部变量:
 *              位置:在方法内或者方法声明上
 *              初始值:没有默认值,在使用前一定初始化
 *              生命周期:随着方法的调用而存在,随着方法调用完毕而消失
 *              内存位置:栈内存中
 *        注意事项:
 *        		成员变量和局部变量名相同,在方法中使用,就近原则
 *        		成员变量作用范围全局(当前类中)
 *        		局部变量作用范围局部(当前方法)
 */
public class Varialbe {
    //成员变量
    int num;

    //成员方法
    public void show(){        
        //局部变量
        int num2 = 10;
        System.out.println(num2);//10

        System.out.println(num);//找的是成员变量,有默认值

        //成员变量和局部变量名相同,在方法中使用,就近原则
        // int num = 100;
        //System.out.println(num);
    }

    //成员方法   main是被jvm所调用(目前来说main一执行的方法)
    public static void main(String[] args) {
        System.out.println("1111111111111");
    }
}

测试:

public class VarialbeDemo {

    public static void main(String[] args) {
        //创建对象
        Varialbe v = new Varialbe();

        //对象名.成员变量
        System.out.println( v.num);//0

        //对象名.成员方法
        v.show();
    }
}

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呆呆不呆~

你的鼓励是我最开心的事情~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值