黑马程序员技术交流社区

标题: 成员变量与局部变量的区别: [打印本页]

作者: 小忧伤    时间: 2016-5-22 10:03
标题: 成员变量与局部变量的区别:
成员变量与局部变量的区别:

  概念:
  1.成员变量:定义在类体中,方法外。作为"类成员存在的";
  2.局部变量:定义在某个方法内,或者某个语句代码块内部;
                  class Student{
                          String name;//成员变量
                          int age;//成员变量
                          //-------------以下代码不能定义在类体中-------
                  //        for(int i = 0;i < 10 ; i++){
                  //        }
                  //        if(){
                  //        }
                  //        System.out.println("aa");
                          //-------------------------------------------
                          //成员方法
                          void show(String s){//s -局部变量
                                  int a = 10;//a - 局部变量
                                  for(int i = 0;i < 10 ; i++){//i - 局部变量
                                  }
                                 
                          }
                  }
  1.定义的位置不同:
                  1).成员变量:定义在类体中,方法外;
                  2).局部变量:定义在某个方法内,或者某个语句代码块内部;
  2.在内存中存储的位置不同:
                  1).成员变量:当new一个对象时,所有的成员变量会随着对象空间存储在"堆"中;
                  2).局部变量:当调用这个方法时,或者执行某个语句时,局部变量才会入栈,在"栈"中开辟空间。
  3.初始化不同:
                  1).成员变量:当new一个对象时,会在堆中分配空间,并自动初始化。可以立即访问这些初始值;
                                                  整数:0
                                                  小数:0.0
                                                  字符:\u0000
                                                  布尔:false
                                                  引用类型:null
                  2).局部变量:必须显示的手动初始化,否则不能访问其值
                                          class Student{
                                                  void show(){
                                                          int a;
                                                          System.out.println(a);//编译错误。未被初始化的变量
                                                  }
                                          }
  4.被清理的时机不同:
                  1).成员变量:随着"堆空间"的消失而消失;-->堆空间成为垃圾时,会被垃圾回收器清理;
                  2).局部变量:当局部变量所在的方法,或者代码块执行完毕,局部变量会被立即清理;


02.成员变量与局部变量的图示.png (51.82 KB, 下载次数: 22)

02.成员变量与局部变量的图示.png

作者: 3132199    时间: 2016-5-22 10:20
位置不同 ,成员变量在类中方法外而且有默认值,




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2