我的求学应聘之路(面试题)

最近面试见得比较多的是数据库和java基础的集合,这两个板块内容居多,下面分享一些我见过的题目。

1.ArrayList 和 Vector的区别。

(1):Vector是线程安全的,源码中有很多的synchronized可以看出,而ArrayList不是。导致Vector效率无法和ArrayList相比;
(2):ArrayList和Vector都采用线性连续存储空间,当存储空间不足的时候,ArrayList默认增加为原来的50%,Vector默认增加为原来的一倍;
(3):Vector可以设置capacityIncrement,而ArrayList不可以,从字面理解就是capacity容量,Increment增加,容量增长的参数。

2 .hashmap的数据结构

数组链表(我觉得只能这么答)

3 .HashMap的工作原理是什么?

HashMap是基于散列法(又称哈希法)的原理,使用put(key, value)存储对象到HashMap中,使用get(key)从HashMap中获取对象。当我们给put()方法传递键和值时,我们先对键调用hashCode()方法,返回的hashCode用于找到bucket(桶)位置来储存Entry对象。HashMap是在bucket中储存键对象和值对象,作为Map.Entry。并不是仅仅只在bucket中存储值。(想真的懂,真的需要去看一些大神的文章,了解底层原理以及存取源码各种存取判断,以及键值为空放入桶中的第一个位置,还有存的时候会进行三种比较,1.判断key为不为空,当key为null时,调用putForNullKey方法,并将该键值对保存到table的第一个位置 2.有的话会替换旧值放入新值以及返回旧值3.原HashMap中无该映射,将该添加至该链的链头)

4 .List、Map、Set三个接口,存取元素各有什么特点?

(1)List以特定索引来存取元素,可以有重复元素。
(2)Set不能存放重复元素(用对象的equals()方法来区分元素是否重复)。(3)Map保存键值对(key-value pair)映射,映射关系可以是一对一或多对一。
(4)Set和Map容器都有基于哈希存储和排序树的两种实现版本,基于哈希存储的版本理论存取时间复杂度为O(1),而基于排序树版本的实现在插入或删除元素时会按照元素或元素的键(key)构成排序树从而达到排序和去重的效果。

5 .请例举在JDK中几个常用的设计模式

(1)、单例模式

(2)静态工厂模式

(3)抽象工厂

(4)原型模式

(5)适配器模式

(6)装饰器模式

(7)外观模式

(8)享元模式

(9)代理模式

(10)迭代器模式

还有很多,我先发表,明天继续整理,困了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值