对象和对象引用的区别是什么?请举例说明。
创建对象被分配在堆上,而对象引用分配在栈上。二者正如电视机和遥控器的关系。
e.g.
创建对象 new FighterPlane();(分配在堆上)(电视机)
声明一个对象引用 FighterPlane fp;(分配在栈上)(遥控器)
初始化对象引用 fp=new FighterPlane();(此时fp存FighterPlane的地址,相当于指针)(遥控器匹配电视机)
对象作为参数传递的特点是怎样的?请举例说明。
对象是引用传递,当对象作为参数传递时,传递的是对象的地址。
(下附与值传递的对比)
对象初始化顺序是怎样的?请举例说明。
初始化父类的静态代码—>初始化子类的静态代码–>初始化父类的非静态代码—>初始化父类构造函数—>初始化子类非静态代码—>初始化子类构造函数
参考:https://www.cnblogs.com/abcjun/articles/4687539.html
类的static字段与非static字段的区别是什么?什么情况应该使用static修饰符?请举例说明。
用static修饰的不属于任何一个类的具体对象,而专属于类。它被保存在类的内存区的公共存储单元中,而不是保存在某个对象的内存区中。因此,一个类的任意对象访问它,存取到的都是相同的数值。
static方法内部的代码,只能访问类中的static属性或方法,不能访问类中的非static属性或方法(因为它们属于对象),但非static可访问static属性或方法。
e.g.
Java中的final修饰符都有什么作用?请举例说明。
以final修饰类属性,则该属性为常量;如果修饰方法,则该方法称为最终方法,在子类中不能被覆盖。
e.g.
static final int OK=0;(√)
class Parent();(√)
final class Person extends Parent();(√)
class Child extends Person();(×)
Java中float[10]arr;语句正确吗?为什么?
不正确,float[]相当于一种数据类型,在对象引用中不能加长度。
Java数组元素类型为基本数据类型和引用类型时,有什么不同?请举例说明。
基本数据类型:所有单元的初值为0
引用类型:所有单元的初值为null
e.g.