1、对象和对象引用的区别是什么?请举例说明。
创建对象: new FighterPlane(); (分配在堆上)
声明一个对象引用: FighterPlane fp; (分配在栈上)
初始化对象引用: fp = new FighterPlane();
实质上是将新创建的FighterPlane对象的地址赋给对象引用fp, 从此fp与该对象关联, 通过fp即可操纵该对象。
2、对象作为参数传递的特点是什么?请举例说明。
基本数据类型作为参数传递是值传递,而对象是引用传递。
1 public class ValuePass { 2 private static int a; 3 public static void main(String [] args) { 4 modify(a); 5 System.out.println(a); 6 } 7 public static void modify(int a) { 8 a++; 9 } 10 }//值传递,输出为0
1 class IntClass { 2 int value; 3 } 4 public class RunIntClass { 5 public static void modifyValue(IntClass s, int val){ 6 s.value = val; 7 } 8 public static void main(String[] args) { 9 IntClass a = new IntClass(); 10 modifyValue(a,8); 11 System.out.println(a.value); 12 } 13 }//引用传递,值为8
3、对象的初始化顺序是怎样的?请举例说明。

class IntClass {
int value; //自动初始化,默认值为0
//int value = 5; //在定义时指定初值
public IntClass(){}
//定义构造方法将属性value初始化
public IntClass(int val){
value = val ;
}
}
4、类的static字段与非static字段的区别是什么?什么情况下应该使用static修饰符?请举例说明。
非static修饰符修饰的数据成员属于一个类的具体对象,被保存在某个对象的内存区中。
static修饰符修饰的数据成员属于类的静态数据成员,被保存在类的内存区的公共存储单元中。
所以说在属性需要被类、多个对象引用共享访问的时候,需要用static修饰。


5、java中final修饰符都有什么作用?请举例说明。
以final修饰类属性,则该属性为常量;
如果修饰方法,则方法称为最终方法,在子类当中不能被覆盖。
1 public Constant{ 2 static final int OK = 0; 3 static final int CANCEL = 0; 4 ... 5 }
6、Java中float[10] arr;语句正确吗?为什么。
不正确。float中的[]不应该给出具体数字,语句只是声明了arr是一个float型的数组,并未给其分配空间。
7、Java数组元素类型为基本数据类型和引用类型时,有什么不同,请举例说明。
数组元素为基本数据类型:
例: int[] arr = new int[10]; //此时分配了数组空间,每个单元初始化为默认值0
产生一个有10个单元,类型为int的数组对象,所有单元的初始值为0;
数组元素为引用类型:
例:String[]example = new String[10]; //对象引用数组
产生一个具有10个单元的数组对象,每个单元存放的是一个String对象的引用,所有单元的初值为null,此时并未创建具体的String对象。
为数组对象引用赋值后,才能使用数组元素,否则抛出。
浙公网安备 33010602011771号