面试选择题

1.HashSet子类依靠()方法区分重复元素。

hashCode(),equals()

分析:
HashSet内部使用Map保存数据,即将HashSet的数据作为Map的key值保存,这也是HashSet中元素不能重复的原因。而Map中保存key值前,会去判断当前Map中是否含有该key对象,内部是先通过key的hashCode,确定有相同的hashCode之后,再通过equals方法判断是否相同。

HashSet 添加元素,首先比较hash值 是否有相同hash,没有则添加成功,有则继续比较equals,如果不同则添加成功,否则不添加。

2.Java 中的集合类包括 ArrayList 、 LinkedList 、 HashMap 等,下列关于集合类描述错误的是?

A.ArrayList和LinkedList均实现了List接口
B.ArrayList访问速度比LinkedList快
C.随机添加和删除元素时,ArrayList的表现更加快速
D.HashMap实现Map接口,它允许任何类型的键和值对象,并允许将NULL用作键或值

分析:

     1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 
     2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 
     3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。 

3.

分析:

选D 假如try中有异常抛出,则会去执行catch块,再去执行finally块;假如没有catch 块,可以直接执行finally 块,方法就以抛出异常的方式结束,而finally 后的内容也不会被执行,所以catch 和 finally 不能同时省略。

在JVM调用mian方法之前先用进行静态内容的初始化。顺序为:父类的静态变量, 父类的静态代码块 ,子类的静态变量,子类的静态代码块。

4.下面哪个不属于HttpServletResponse接口完成的功能?

A:设置HTTP头标  

response.setHeader("Refresh","3");//3秒刷新页面一次

B:设置cookie

Cookie c1 = new Cookie("username","only");

response.addCookie(c1);

C(错误):读取路径信息,request读取路径信息

D:输出返回数据

HttpServletResponse.getOutputStream().write();

5.Java语言中,方法的重写(Overriding)和重载(Overloading)是多态性的不同表现。下边哪些说法是对的?

答案是AC

重写是子类继承父类方法并对其进行修改,可选择调用父类方法或子类重写后的同名方法

重载是在一个类可以存在同名但参数列表不同的方法,可根据传入的参数调用相应的方法

 

1.java支持单继承,却可以实现多个接口。a对d错
2.接口没有构造方法,所以不能实例化,抽象类有构造方法,但是不是用来实例化的,是用来初始化的。c对
3.抽象类可以定义普通成员变量而接口不可以,但是抽象类和接口都可以定义静态成员变量,只是接口的静态成员变量要用static final public 来修饰。b错

6.线程的执行体

run()方法是用来定义这个线程在启动的时候需要做什么,但是,直接执行run()方法那就不是线程,必须使用start()启动,那样才是线程。

内存回收程序负责释放无用内存

C++可以多重继承,但是Java中对于类而言,只有单继承,接口可以多继承

列表List和集合Set

Set不能有重复的元素,且是无序的,要有空值也就只能有一个,因为它不允许重复。

List可以有重复元素,且是有序的,要有空值也可以有多个,因为它可重复。

 

读进去 写出来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值