一:对象与对象引用的区别是什么? 对象是类的实例化。对象引用类似于一个c语言的一个指针,指向某个对象。
二:对象作为参数传递的特点是什么? 对象作为参数传递的特点是按址传递。
package sourse; class a{ int x; a(){ x = 2; } } public class shiyan { public static void fun(a object){ object.x = 3; } public static void main(String[] args) { a x = new a(); System.out.print("原本的x是:"); System.out.println(x.x); fun(x); System.out.print("调用fun函数之后的x是:"); System.out.println(x.x); } }3:对象初始化顺序是怎么样的?请举例说明。
4:类的static字段与非static字段的区别是什么?什么情况下应该使用static修饰符?请举例说明。
下面是两个类,father和son,其中son类继承了father类。
package sourse; class father{ father(){ System.out.println("father类构造函数,启动!!"); } static{ System.out.println("father类static代码块启动!!"); } } class son extends father{ son(){ System.out.println("son类构造函数,启动!!"); } static{ System.out.println("son类static代码块启动!!"); } } public class shiyan{ public static void main(String[] args) { son s1 = new son(); } }上述代码执行的结果是:
father类static代码块启动!! son类static代码块启动!! father类构造函数,启动!! son类构造函数,启动!!如果将主函数换成下面的:
public class shiyan{ public static void main(String[] args) { father f1 = new father(); son s1 = new son(); } }结果如下:
father类static代码块启动!! father类构造函数,启动!! son类static代码块启动!! father类构造函数,启动!! son类构造函数,启动!!总结: 1:对象进行初始化时,如果是第一次初始化该类,该类会执行static静态代码块,然后执行初始化函数。 2:如果对象继承了父类,这时先装载父类和子类,如果父类已经被装载过了,则不会再装载。装载阶段结束,然后先初始化父类,然后初始化子类。
5:Java中的final修饰符有什么作用,请举例说明。
如果我写以下的代码:
class father{ father(){ System.out.println("father类构造函数,启动!!"); } final void fun(){ System.out.println("这是父类的fun函数"); } } class son extends father{ son(){ System.out.println("son类构造函数,启动!!"); } void fun(){ System.out.println("这是子类的fun函数"); } }在集成开发环境中会出现以下错误: 即:final修饰的方法无法被重写,覆盖。
public class shiyan{ public static void main(String[] args) { final int a = 1; a = 2; } }出现错误: 总结: 1:final修饰方法时,该方法无法被重写,覆盖。 2:final修饰变量时,变量的值无法被修改。
6:Java中的float[10] arr;语句正确吗?为什么? 错误。 应该时:float[] arr] = new float[10];
7:Java数组元素类型为基本数据类型和引用类型时,有什么不同?请举例说明。
java数组元素为基本数据类型时,java在申请的时候直接直接为基本数据类型分配了空间。 java数组元素为引用类型时,java只分配了引用空间,没有创建对象。