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对象。

为数组对象引用赋值后,才能使用数组元素,否则抛出。

posted on 2020-10-04 18:51  Katharsis_1  阅读(149)  评论(0)    收藏  举报