局部变量与成员变量

成员变量定义在类中变量

局部变量定义在方法中变量

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

1.        应用范围 

1.        成员变量在整个类内都有效   

2.        局部变量只在其声明的方法内有效

2.        生命周期 

1.        成员变量: 它属于对象,它随着对象的创建而创建,随着对象的消失而消失

2.        局部变量: 使用完马上释放空间。

                            voidshow(int id){ 

                                   for(inti=0;i<10;i++){

                                         for(intj=0;j<10;j++){

                                                 System.out.println(id);

                                          }

                                   }

                            }

                            这时候 id,i,j者是在方法内声明的,全是局部变量

                            j当里层for循环执行它的生命周期开始,当里层for结束,j消失

                            i当外层for循环执行它的生命周期开始,当外层for结束,j消失

                            id在方法被调用时开始,方法结束时,id消失.

3.        存储位置  成员变量属于对象,它存储在堆内,堆内的实体,当没有引用指向其时,才垃圾回收清理 局部变量存在栈内存中,当不在使用时,马上就会被释放。

4.        初始值

成员变量它存储在堆中,如果没有赋初值,它有默认值。

1.   整数byte、short、int、long =0;

2.   char='\uoooo';

3.   boolean =flase;

4.   String =null;

5.   类类型 =null;

6.   数组 =null;

                         局部变量,如果要想使用必须手动初始化.

                              i.     方法中,参数列表中,语句中。

                            ii.     必须给初始化值,没有初始值,不能使用

                           iii.     在栈内存中


内存分析

例一:

//汽车

class Car {

    //汽车应该具备的属性

    intnum;

    //汽车具备的颜色

    String color;

    //汽车跑的行为

    publicvoid run(){

       System.out.println(num+"轮子的汽车跑起来啦");

    }

}

publicclass CarDemo{

   

    publicstaticvoid main(String[] args)

    {   //创建实体,并且给该实体起一个名字

       Car c = new Car();

       c.color = "red";

       c.num = 4;

       c.run();//指挥车进行运行。调用格式:对象.对象成员

    }

}



publicstaticvoid main(String[] args)

    {   //创建实体,并且给该实体起一个名字

       Car c = new Car();

       Car c1 = new Car();

       c.color = "red";

       c1.num = 4;

       System.out.println(c1.color);

       c.run();//指挥车进行运行。调用格式:对象.对象成员

}


内存图



例三

publicstaticvoid main(String[] args)

  {   //创建实体,并且给该实体起一个名字

     Car c = new Car();

     Car c1 = c;

     c.color = "red";

     c1.num = 4;

     c1.color = "green";

     System.out.println(c1.color);

     c.run();//指挥车进行运行。调用格式:对象.对象成员

 }


内存图






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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值