1. 定义的**位置上**区别: <br /> 1. 成员变量是定义在方法之外,类之内的。<br /> 2. 局部变量是定义在方法之内。<br /> <br /> **作用上**的区别:<br /> 1. 成员变量的作用是用于描述一类事物的公共 属性的。<br /> 2. 局部变量的作用就是提供一个变量给方法内部使用而已。<br /> <br /> **生命周期**区别:<br /> 1. 成员变量随着对象的创建而存在,随着对象的消失而消失。<br /> 2. 局部变量在调用了对应的方法时执行到了创建该变量的语句时存在,局部变量一旦出了自己的作用域<br /> 那么马上从内存中消失。<br /> <br /> **初始值**的区别:<br /> 1. 成员变量是有默认的初始值。<br /> 数据类型 默认的初始值<br /> int 0<br /> float 0.0f<br /> double 0.0<br /> boolean false<br /> char ' '<br /> String(引用数据类型) null<br /> <br /> <br /> 2. 局部变量是没有默认的初始值的,必须要先初始化才能使用。

对象内存图:

image.png

实例:

  1. package moreclass;
  2. public class DemoTest {
  3. //成员变量(类中,方法外)
  4. int a;
  5. String name = "wangbin";
  6. public static void main(String[] args) {
  7. DemoTest T = new DemoTest();
  8. T.print();
  9. T.getPrint();
  10. }
  11. public void print(){
  12. //局部变量,方法中
  13. int b;
  14. String name = "print11";
  15. System.out.println(name);
  16. System.out.println(this.name);
  17. }
  18. public void getPrint(){
  19. int c;
  20. String name = "getPrint";
  21. System.out.println(name);
  22. System.out.println(this.name);
  23. }
  24. }