1.什么是内存分配和内存回收?
内存分配:指创建Java对象时JVM为该对象在堆内存中所分配的内存空间;
内存回收:指当Java对象失去引用时,JVM的垃圾回收机制自动清理该对象,并回收该对象所占用的内存空间。
2.局部变量的分类及内存分配?
分为三类:形参,方法内的局部变量;代码块内的局部变量。局部变量的作用时间很短暂,都被存储在栈内存中。
3.Java对象有哪三种初始化方式?
(1)构造器;(2)初始化块;(3)定义变量时指定初始值。
4.当变量的编译时的类型和运行时类型不同时,通过该变量访问它引用的对象的实例变量时,该实例变量的值由声明该变量的类型决定。但通过该变量调用它引用的对象的实例方法时,该方法行为将由它实际所引用的对象决定。
5.Java程序允许某个方法通过return this ;返回调用该方法的Java对象,但不允许直接使用return supper;甚至不允许直接将super当成一个引用变量使用。
6.final修饰符的一个重要作用就是定义“宏变量”。
7.程序需要在任何内部类中使用局部变量,那个这个局部变量必须使用final修饰符修饰。
原因:对于普通的局部变量而言,它的作用域就停留在该方法内,当方法执行结束后,该局部变量也随之消失;但内部类则可能产成隐式的“闭包”,闭包使得局部变量脱离它所在的方法继续存在。