Java简单笔试题(三)

2016年10月我们学校校招的某一招聘公司的笔试题:

1.抽象类和接口的区别是什么?

2.假设有两个int类型的变量a和b,a=1,b=5。不用其它变量把a和b的值转换过来,请选用任何语言的代码写出变量转换的主要逻辑。

3.Java集合类框架基本接口有哪些?

4.Interator和ListIterator的区别是什么?

5.为什么集合类没有实现Cloneable和Serializable接口?




参考答案:

一.抽象类和接口不同点:
1.抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。在高级语言上,一个类只能继承一个类(抽象类)(正如人不可能同时是生物和非生物),但是可以实现多个接口(吃饭接口、走路接口)。

2.抽象类中既可以有抽象方法也可以有非抽象方法,接口中的方法必须是抽象的;抽象类里边的抽象方法需要使用abstract关键字修饰,而接口中的抽象方法则不需要,但必须是公共的方法;抽象的子类可以选择性实现其基类的抽象方法,接口的子类必须实现。

3.抽象类中的变量是普通变量,接口里定义的变量只能是公共的静态的常量。

参考:
http://www.cnblogs.com/yongjiapei/p/5494894.htmlhttps://www.zhihu.com/people/qia-la-ma-zuo-fu-41/answers




二.自己能想到的解法:

a = b + a;
b = a - b; 
a = a - b;

其余解法:

参考:
http://www.cnblogs.com/stoneJin/archive/2011/10/28/2227684.html
http://blog.csdn.net/kangkermit/article/details/21371159

注:相同数字异或得0,不同数字异或得1。如:0^0=0,1^1=0。0^1=1,1^0=1。




三.Java集合类框架基本接口:
参考:
http://www.cnblogs.com/zedosu/p/6599652.html
另外了解一下:Collections工具类,Comparable接口,Comparator接口



四.Iterator和ListIterator的不同点:
1.作用范围不同,Iterator适用于所有集合类,Set,Map的子类以及List及其子类。而ListIterator只适用于List及其子类。

2.ListIterator有add方法,可以向List中添加对象,而Iterator不能。也就是说Interator只能遍历元素,而ListIteraotr可以遍历,修改,添加元素。

3.ListIterator和Iterator都有hasNext()和next()方法,可以实现顺序向后遍历,但是ListIterator有hasPrevious()和previous()方法,可以实现逆向(顺序向前)遍历。Iterator不可以。

4.ListIterator可以定位当前索引的位置,nextIndex()和previousIndex()可以实现。Iterator没有此功能。

参考:
http://blog.csdn.net/longshengguoji/article/details/41551491
http://www.oschina.net/uploads/doc/javase-6-doc-api-zh_CN/java/util/ListIterator.html



五.为什么集合类没有实现Cloneable和Serializable接口的原因:
集合类接口指定了一组叫做元素的对象。集合类接口的每一种具体的实现类都可以选择以它自己的方式对元素进行保存和排序。有的集合类允许重复的键,有些不允许。

参考:http://www.jianshu.com/p/52cb53c9a08c

你可能感兴趣的:(java,编程语言,校内招聘,笔试题)