Java 中面向对象常见面试题
一, 成员变量与局部变量的区别
1, 在类中位置不同:
成员变量: 在类中方法外定义.
局部变量: 在方法声明上或在方法定义中.
2, 在内存中位置不同:
成员变量: 堆内存.
局部变量: 栈内存.
3, 生存周期不同:
成员变量: 随着类的加载而加载, 随着类的消失而消失.
局部变量: 随着方法调用而存在, 随着方法调用完毕而消失.
4, 初始化值不同:
成员变量: 由系统默认初始化. 对于成员变量, 可以不给初始化值, 由系统给, 然后显示初始化.
局部变量: 局部变量在使用之前必须初始化, 否则无法使用.
二, 有一个学生类 Student, 里面有一些属性, 在测试类中创建学生类对象, 经历了那些过程?
Student s=new Student();
1, 通过测试类里面 main 主程序进行加载, 加载 Student 类 (Student.class);
2,Student s 先在栈内存开辟栈内存空间, 创建一个学生对象, 需要在堆内存申请堆内存空间;
3, 通过无参构造方法给学生类对象进行默认初始化;
4, 通过给成员变量赋值的方式, 给对象进行显示初始化;
5, 显示初始化完毕, 整个对象创建完毕之后, 给对象进行内存空间地址值分配;
6, 通过地址值找到对应对象.
来源: http://www.bubuko.com/infodetail-2559138.html