面经:)
来源:互联网 发布:淘宝有多少个商品种类 编辑:程序博客网 时间:2024/06/03 08:27
- -
面经
- HashCode与equals的区别与联系
- 在没有覆盖过equals过的情况下,使用equals方法都是调用Object类的equals方法。而equals方法主要是用于判断对象的引用地址是否是同一个地址。
- HashCode在计算时与对象的属性有关,因此在计算HashCode之后对象的属性不能随意更改。而且HashCode只在集合中使用。
- 将对象放入集合时,首先先判断要放入的对象的HashCode值是否与集合中的任意一个元素的HashCode值相等,如果不相等直接放入集合中,如果相等,则通过equals方法来判断要放入的对象与集合中的对象是否相等,如果相等则不放入,否则放入集合。
- HashMap的底层实现
- HasMap实际是一种“”数组散列“”,即“”数组+链表“”。
- HashMap底层实际是一个数组,数组中的每一项又是一个链表。
- 每个MapEntry其实就是一个key+value,除此之外,还持有一个指向下一个元素的引用,“”key+value“”+Entry
public Entry<K,V> implement Map.Entry<K,V>{ final K key; V value; Entry<K,V> next; final int hash;}
Hashput允许放空键和空值为null;
调用 indexFor(int h, int length) 方法来计算该对象应该保存在 table 数组的哪个索引处,通过h&table.length-1而HashMap底层数组的长度总是 2 的 n 次方,这是HashMap在速度上的优化。
阅读全文
0 0
- 面经(1)
- 面经(2)
- 面经(1)
- 面经(C++)
- 面经(卫星)
- 面经:)
- 微软SDE面经(电面+onsite)
- 微软SDE面经(电面+onsite)
- 微软SDE面经(电面+onsite)
- (转载)EMC面经
- 笔经 & 面经(实习)
- C++ 面经(1)
- 淘宝一面(面经)
- 面经(人人车)
- 百度面经(C++)
- 2011腾讯实习面经(笔试+一面+二面+HR面)
- java开发3轮技术面+hr面 面经(美团)
- 面经
- 第二章 SQL命令参考-COPY
- 第六周第二节课
- Mac 下搭建Python开发环境
- 计算机网络 学习摘要(2)
- 关于删除链表结点的小结(Java)
- 面经:)
- 游戏服务器端开发要点
- pl/sql编程
- Linux-第九单元总结
- Linux Mint 与shadowsocks 结合使用系统pac代理的方式【长期更新】
- Android Studio中查看连接手机的布局
- HQL内连接语句实测
- GreenDao官方文档翻译之(一)开始使用GreenDao
- Liunx的socket通讯的流程图分析