HashMap面试题

在这里插入图片描述

9.为什么加载因子设置为0.75,初始化临界值是12?

在这里插入图片描述

在这里插入图片描述

10.float ft = ((float)s / loadFactor) + 1.0F;这一行代码中为什么要加1.0F ?

在这里插入图片描述

11.key的hash值如何计算的?

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

12.集合的初始化容量为什么必须是2的n次幂?如果输入值不是2的幂比如10会怎么样?

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

//创建HashMap集合的对象,指定数组长度是10,不是2的幂

HashMap hashMap = new HashMap(10);

public HashMap(int initialCapacity) {//initialCapacity=10

this(initialCapacity, DEFAULT_LOAD_FACTOR);

}

public HashMap(int initialCapacity, float loadFactor) {//initialCapacity=10

if (initialCapacity < 0)

throw new IllegalArgumentException("Illegal initial capacity: " +

initialCapacity);

if (initialCapacity > MAXIMUM_CAPACITY)

initialCapacity = MAX

必看视频!获取2024年最新Java开发全套学习资料 备注Java

IMUM_CAPACITY;

if (loadFactor <= 0 || Float.isNaN(loadFactor))

throw new IllegalArgumentException("Illegal load factor: " +

loadFactor);

this.loadFactor = loadFactor;

this.threshold = tableSizeFor(initialCapacity);//initialCapacity=10

}

/**

  • Returns a power of two size for the given target capacity.

*/

static final int tableSizeFor(int cap) {//int cap = 10

int n = cap - 1;

n |= n >>> 1;

n |= n >>> 2;

n |= n >>> 4;

n |= n >>> 8;

n |= n >>> 16;

return (n < 0) ? 1 : (n >= MAXIMUM_CAPACITY) ? MAXIMUM_CAPACITY : n + 1;

}

在这里插入图片描述

13.HashMap的扩容机制是怎么样的?JDK7与JDK8有什么不同吗?

在这里插入图片描述

在这里插入图片描述

14.hashmap1.7和1.8的区别

在这里插入图片描述

详解

15.HashMap的扩容是什么

在这里插入图片描述

在这里插入图片描述

16.HashMap JDK7产生死锁的原因

详解

17.HashMap 为什么线程不安全?

详解

18.HashMap的主要参数都有哪些?

在这里插入图片描述

总结

蚂蚁面试比较重视基础,所以Java那些基本功一定要扎实。蚂蚁的工作环境还是挺赞的,因为我面的是稳定性保障部门,还有许多单独的小组,什么三年1班,很有青春的感觉。面试官基本水平都比较高,基本都P7以上,除了基础还问了不少架构设计方面的问题,收获还是挺大的。


经历这次面试我还通过一些渠道发现了需要大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。

蚂蚁金服5面,总结了49个面试题,遇到的面试官都是P7级别以上

方面的问题,收获还是挺大的。


经历这次面试我还通过一些渠道发现了需要大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。

[外链图片转存中…(img-BoZDg8MF-1716442193956)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值