java面试集锦

来源:互联网 发布:千兆网络用什么网线 编辑:程序博客网 时间:2024/06/05 20:42

 一:面向对象的特征有哪些方面  

封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

继承:多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。

多态:不同类的对象对同一消息作出响应。

抽象:不了解对象全部,只了解我需要的部分。

二:int 和 Integer 有什么区别

int是基本数据类型,默认值跟基本类型的类型相关。

Integer是引用类型,默认值为null。

三:breakcontinue的区别

break:跳出循环,不再执行剩余部分。

continue:停止当次循环,回到循环起始处,进入下一次循环操作。continue语句之后的语句将不在执行。

四:说出ArrayList,Vector, LinkedList的存储性能和特性

ArrayList和Vector都是使用数组方式存储数据,允许直接按序号索引元素,索引数据快而插入数据慢。

Vector线程安全,性能较差。

ArrayList线程不安全,性能较好。

LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。

五:HashMap和Hashtable的区别

HashMap是Hashtable的轻量级实现(非线程安全的实现),

他们都完成了Map接口,

主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。

六:Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

方法的重写Overriding和重载Overloading是Java多态性的不同表现。

重写Overriding是父类与子类之间多态性的一种表现,

重载Overloading是一个类中多态性的一种表现。

如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。

如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。

Overloaded的方法是可以改变返回值的类型  

七:abstract class和interface有什么区别?

抽象类中存在抽象方法,接口中方法全部是抽象方法。

抽象类和接口都不能创建实例。

抽象类中不能有抽象构造函数或抽象静态方法。

接口只可以定义static final成员变量。

抽象类只能被单继承,但是接口却可以被多实现。

八:short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 

short s1 = 1; 

s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型,这样子才可以正确的编译)  

short s1 = 1;

s1 += 1;(可以正确编译)

 九:Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 

 Math.round(11.5)==12  

Math.round(-11.5)==-11  

round方法返回与参数最接近的长整数,参数加1/2后求其floor.

十:接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?

接口可以继承接口。

抽象类可以实现(implements)接口,

抽象类可以继承实体类,但前提是实体类必须有明确的构造函数。






原创粉丝点击