1.对象与对象引用的区别
对象是对客观事物的抽象,类是对对象的抽象,对象是类的实例,类是对象的模板。
声明被赋予特定对象即为引用。
FighterPlane fp; //产生FighterPlane声明
fp=new FighterPlane(); //创建对象并把声明赋予对象
"FighterPlane fp;"时,FighterPlane是一个类,fp只是一个声明,并没有对象产生;
当"fp=new FighterPlane();"时,"new FighterPlane()"创建了对象,并且声明fp被赋予对象,此时声明成为了对象引用。
FighterPlane fp=new FighterPlane(); //对象引用
2.对象作为参数传递的特点
当基本数据类型作为参数在方法中传递时,传递的是值。而对象的传递是引用传递,即传递的是对象的地址。
class IntClass{
intr value;
}
public class RunIntClass{
public static void modifyValue(IntClass s,int val){
s.value=val;
}
public static void main(String args[]){
IntClass a = new IntClass();
modifyValue(a,8);
System.out.println(a.value);
}
}
3.对象初始化顺序
初始化父类的静态代码—>初始化子类的静态代码–>初始化父类的非静态代码—>初始化父类构造函数—>初始化子类非静态代码—>初始化子类构造函数
class Building {
public Building() {
System.out.println("Building");
}
}
class House extends Building{
public LivingRoom livingRoom = new LivingRoom();
public House() {
System.out.println("House");
}
}
class Bed {
public Bed () {
System.out.println("Bed");
}
public class InitializeDemo {
public void testInitialize() {
Villa villa = new Villa();
}
}
4.类的static字段与非static字段的区别及static修饰符的使用情况
当使用static修饰数据成员时,此时不单独属于任何一个类的具体对象,而是属于类的静态数据成员。它被保存于类的内存区的公共存储单元,所以当类的任意一个对象访问它的时候,得到的值都是一样的。
当某个属性需要被类、多个对象引用共享访问时,使用static修饰符。
5.Java中final修饰符的作用
修饰类属性,则该属性为常量;
修饰方法,则方法为最终方法;
修饰类,则该类不能被继承。
public Constant{
static final int OK=0;
static final int CANCEL=1;
}
6.float[10] arr;
这个语句是错误的,在Java中,定义数组时不能在[ ]中指定数组长度。
应改为:float[ ] arr;
7.Java数组元素类型为基本数据类型和引用类型时的不同
基本数据类型的数组,各元素都是基本数据类型,不是对象 。
int[] a = new int[3];
引用类型的数组,各元素都是对象 。
Object[] test = new Object[12];
基本数据类型在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上;
引用数据类型在被创建时,首先要在栈上给其引用分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。