成员变量与局部变量的区别:
- 在类中的位置不同:
成员变量是属于类的,是在类中并且在方法外,可以被public、private、static等修饰符所修饰。
局部变量是在方法中定义的变量或是方法中的参数(形参),局部变量不能被访问控制修饰符及static所修饰。
成员变量和局部变量都能被final所修饰。 - 在内存中位置不同:
成员变量是对象的一部分,对象存在于堆内存中,而局部变量是存在于栈内存中。 - 生命周期不同:
因为成员变量是对象的一部分,它随着对象的创建而存在,随着对象的消失而消失。
局部变量是随着方法的调用而存在,随着方法的调用完毕而自动消失。 - 初始化值的问题:
成员变量如果没有赋初始化值,会自动以类型的默认值而赋值(一种情况例外,被final修饰但没有被static修饰的成员变量必须显示的赋值)。
局部变量没有默认值,不会主动赋值,必须先定义赋值,然后使用。
重载和重写的区别:
1.重载:指在一个类中出现了方法名相同的情况。
发生在同一个类中,方法名必须相同,参数类型、个数、顺序、方法返回值以及访问修饰符可以不同,发生在编译时。
注意:在调用方法时,JVM会通过参数列表不同来区分同名的方法。
2.重写:
发生在父子类中,方法名、参数列表必须相同,返回值范围小于等于父类,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类,如果父类方法访问修饰符为private,则子类就不能重写该方法。
最近在看Java基础,今后会一点一点总结出来。