Java基础面试十道题(二)

来源:互联网 发布:餐车淘宝客服接待用语 编辑:程序博客网 时间:2024/05/29 05:55
1)说出一些常用的类,包,接口,请各举5个
常用的类:String,BufferedReader,Integer,ArrayList,Vector
常用的包:java.lang ,java.awt ,java.io ,java.util ,java.sql
常用的接口:Collection,List,Map,Serializable,Runnable


2)接口有什么优点?
答:接口有以下优点:
1、接口只是一个框架而没有实现,因此在接口定义时不需要考虑接口中的方法如何实现。
2、利用接口可达到实现多继承的目地。
3、可以在不暴露对象的类的前提下,暴露对象的编程接口。
4、不用强迫类关系在无关类中截获相似处(采用适配器就可以了)。
5、声明想执行的一个或多个方法。


3)静态变量和实例变量的区别
静态变量也称作类变量,由static修饰,如:static int ss; ss就是静态变量,它只能通过类来访问。
实例变量没有static修饰符,它只能通过实例对象来访问。
同一类的不同的实例对象有自己的实例变量,但是它们共享同一个静态变量。当一个实例对象修改了它的实例变量时,不会影响其他的实例对象。如果一个实例对象修改了静态变量,则会影响其他的对象实例。


4)是否可以从一个static方法内部发出对非static方法的调用?
不可以,如果其中包含对象的method(),不能保证对象初始化.


5)作用域public,private,protected,以及不写时的区别
区别如下:
作用域       当前类      同包      子孙类    不同包
public           √            √             √              √
protected      √            √             √              ×
friendly        √            √             ×              ×
private         √            ×             ×              ×
不写时默认为friendly


6)final, finally, finalize的区别
1.final :
用于声明属性,方法和类,分别表示属性不可变(为常量),方法不可覆盖(不可重写),类不可继承。
2.finally:
是异常处理语句结构的一部分,表示总是执行。
3.finalize:
是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。 


7)匿名内部类是否可以继承其它类?是否可以实现接口? 
可以继承其他类,也可以实现接口。


8)java中实现多态的机制是什么?
方法的重写Overriding和重载Overloading是Java多态性的不同表现。


9)Overload和Override的区别,Overloaded的方法能否改变返回值的类型?
方法的重写Overriding和重载Overloading是Java多态性的不同表现。
重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。
如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。
如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。


10)abstract class和interface的区别
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类。
接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。
0 0
原创粉丝点击