论述题
1.对象与对象引用的区别是什么? 请举例说明
1)创建一个对象(堆)new FighterPlane();
2)声明对象引用 (栈)FighterPlane fp;
3)初始化对象引用 fp = new FighterPlane();
2.对象作为参数传递的特点是什么?请举例说明
按引用传递,改变原对象的值。
class IntClass {
int value;
}
public class RunIntClass{
public static void modifyValue(IntClass s,int val){
s.vlaue=val;
}
}
public static void main(String args[]){
IntClass a =new IntClass();
modifyValue(a,8);
System.out.println(a.value);
}
}
3.对象初始化顺序是怎样的?请举例说明
对象的初始化顺序是系统对数据成员进行默认初始化、执行数据成员定义处的初始化语句、调用构造函数进行初始化。
4.类的static字段与非static字段的区别是什么?什么场景应该使用static修饰符?请举例说明
static 修饰的域变量不属于具体的对象而属于类,保存在堆中。
一个类的对象访问它得到的都是相同的数值。
1)类的静态属性可以被多类、多个对象引用共享访问。
2)充当类对象计数器。
5.Java中final修饰符都有什么作用?请举例说明
以final修饰类属性,则该属性为常量;修饰方法,则方法为最终方法(在字类中不能被覆盖)
class Cat{
private final int age = 0;
public Cat(){
age = 1;
final Object obj = new Object();
obj = new Object();
}
}
6.Java中float[10] arr; 语句正确么?为什么?
不正确。定义数组不能在[ ]内指定数组大小。
7.Java数组元素类型为基本类型和引用类型时,有什么不同?请举例说明
前者数组中的元素全部为基本数据类型,后者存储的为对象的地址。
MyClass[] mc = new MyClass[10];
产生一个类型为MyClass,可容纳10个MyClass对象引用的数组对象,每个单元的初始值为null。