Java实习生面试题分享 (2)

2)运行多态:主要体现在OO设计的继承性上,子类的对象也是父类的对象,即上溯造型,所以子类对象可以作为父类对象使用,父类的对象变量可以指向子类对象。因此通过一个父类发出的方法调用可能执行的是方法在父类中的实现,也可能是某个子类中的实现,它是由运行时刻具体的对象类型决定的。

8.编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串。

String str = new String("字符串".getBytes("GB2312"),"ISO-8859-1");

9.使用StringBuffer类与String类进行字符串连接时有何区别?

JAVA平台提供了两个类:StringStringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。

10.谈谈final, finally, finalize的区别。

final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。

finally是异常处理语句结构的一部分,表示总是执行。

finalizeObject类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。

11.String s = new String("xyz");创建了几个String Object?

两个,一个是string s,另一个是”xyz”。

12.Java有没有goto?

gotojava中的保留字,现在没有在java中使用。

13.数组有没有length()这个方法? String有没有length()这个方法?

数组没有length()这个方法,有length的属性。Stringlength()这个方法。

14.OverloadOverride的区别。

override(重写)

1)方法名、参数、返回值相同。

2)子类方法不能缩小父类方法的访问权限。

3)子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)

4)存在于父类和子类之间。

5)方法被定义为final不能被重写。

overload(重载)

1)参数类型、个数、顺序至少有一个不相同。  

2)不能重载只有返回值不同的方法名。

3)存在于父类和子类、同类中。

15.abstract classinterface有什么区别?

Interface只能有成员常量,只能是方法的声明;

abstract class可以有成员变量,可以声明普通方法和抽象方法。

声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzgzys.html