1.对象与对象引用的区别是什么?
对象,是一个类实例化出来的,被分配到堆中;对象引用,是代指某个实例的,被分配到栈中,类似于C++中的指针。
2.对象作为参数传递的特点是什么?
对象作为参数传递时传递的是对象的地址。
3.对象初始化顺序是怎样的?
加载类:先加载父类再加载子类。
初始化:先初始化父类再初始化子类先执行父类构造代码块、父类构造函数再执行子类构造代码块、子类构造函数。
4.类的static字段与非static字段的区别是什么?什么场景应该使用static修饰符?
用static修饰符修饰的数据成员不属于任何一个类的具体对象,而是属于类的静态数据成员。它被保存在类的内存区的公共存储单元中,一个类的任何对象访问它时,存取到的都是相同的数值。
static修饰的数据成员仅在类加载时进行初始化,且只进行一次初始化。static修饰的方法可被直接调用,无需类的实例化。
当某个方法或属性是所有对象共有或不属于一个对象时可以用static修饰符。
5.Java中final修饰符都有什么作用?
final修饰的类属性为常量;final修饰的类方法为最终方法,在子类中不能被覆盖。
6.Java中float[10] arr;语句正确么?为什么?
不正确。初始化应为float[] arr=new float[10],前面的float[]声明的是数据类型。
7.Java数组元素类型为基本类型和引用类型时,有什么不同?
对于基本类型数组而言,数组元素的值直接存储在对应的数组元素中,初始化数组时,即为该数组分配内存空间,然后直接将数组元素的值存入对应数组元素中。引用类型数组的数组元素是引用,因此情况变得更加复杂:每个数组元素里存储的还是引用,它指向另一块内存,这块内存里存储了有效数据。