定义类考题

  • 什么是Hash?什么是HashMap?
  • HashMap 的工作原理是什么
  • HashMap HashTable的区别
  • 为什么要用HashMap

源码类考题

  • 什么是hash碰撞,怎么减少碰撞,
  • hash是怎么实现的
  • 为什么hashMap 选择用红黑树
  • 重新调整 HashMap 大小存在什么问题吗
  • hashmap的主要参数都有哪些?
  • hashmap的数据结构是什么样子的?自己如何实现一个hashmap?
  • 说说hashmap的存取过程?
  • 说说hashmap如何处理碰撞的,或者说说它的扩容?
  • 当两个对象的 hashCode 相同会发生什么?

扩展类考题

  • 谈谈你对红黑树的理解
  • 红黑树 二叉树什么关系
  • 能解决hash碰撞吗,解决方案是什么
  • HashTable是什么
  • 可以使用 CocurrentHashMap 来代替 Hashtable 吗
  • CocurrentHashMap1.7 1.8优化了什么
  • 结合CocurrentHashMap谈谈 CAS

总结

其实HashMap 作为Java集合类中key-value结构的代表,对其的掌握很大程度能考察你的java基本功。

围绕以上问题,其实考察的是这几个方面。

  • HashMap是什么,原理?
  • HashMap源码是否熟悉
  • 扩展方面,整个Collection体系你知道多少?HashTable,HashSet,CocurrentHashMap等,简单的比较以下就明了
  • 内功,通过源码分析,往里挖,可能问问Hash算法,高并发原理等,展开扩展新的考点。

那么带着这些问题,我们来分析以下HashMap的原理,顺便看看能不能以上几个方面找到答案!

参考文章:

面试总结hashmap

HashMap常问面试题整理

HashMap?面试?我是谁?我在哪

HashMap(二)之面试题系列的更多相关文章

  1. .NET面试题系列[0] - 写在前面

    .NET面试题系列目录 .NET面试题系列[1] - .NET框架基础知识(1) .NET面试题系列[2] - .NET框架基础知识(2) .NET面试题系列[3] - C# 基础知识(1) .NET ...

  2. 【转载】.NET面试题系列[0] - 写在前面

    原文:.NET面试题系列[0] - 写在前面 索引: .NET框架基础知识[1] - .NET框架基础知识(1) http://www.cnblogs.com/haoyifei/p/5643689.h ...

  3. .NET面试题系列

    索引: .NET框架基础知识[1] - http://www.cnblogs.com/haoyifei/p/5643689.html .NET框架基础知识[2] - http://www.cnblog ...

  4. .NET面试题系列[16] - 多线程概念(1)

    .NET面试题系列目录 这篇文章主要是各个百科中的一些摘抄,简述了进程和线程的来源,为什么出现了进程和线程. 操作系统层面中进程和线程的实现 操作系统发展史 直到20世纪50年代中期,还没出现操作系统 ...

  5. .NET技术面试题系列(1) 基础概念

    这是.NET技术面试题系列第一篇,今天主要分享基础概念. 1.简述 private. protected. public.internal 修饰符的访问权限 private : 私有成员, 在类的内部 ...

  6. C#刷遍Leetcode面试题系列连载(2): No.38 - 报数

    目录 前言 题目描述 相关话题 相似题目 解题思路: 运行结果: 代码要点: 参考资料: 文末彩蛋 前言 前文传送门: C# 刷遍 Leetcode 面试题系列连载(1) - 入门与工具简介 上篇文章 ...

  7. Java容器--2021面试题系列教程(附答案解析)--大白话解读--JavaPub版本

    Java容器--2021面试题系列教程(附答案解析)--大白话解读--JavaPub版本 前言 序言 再高大上的框架,也需要扎实的基础才能玩转,高频面试问题更是基础中的高频实战要点. 适合阅读人群 J ...

  8. .NET面试题系列[8] - 泛型

    “可变性是以一种类型安全的方式,将一个对象作为另一个对象来使用.“ - Jon Skeet .NET面试题系列目录 .NET面试题系列[1] - .NET框架基础知识(1) .NET面试题系列[2] ...

  9. .NET面试题系列[15] - LINQ:性能

    .NET面试题系列目录 当你使用LINQ to SQL时,请使用工具(比如LINQPad)查看系统生成的SQL语句,这会帮你发现问题可能发生在何处. 提升性能的小技巧 避免遍历整个序列 当我们仅需要一 ...

随机推荐

  1. 【Java_Eclipse】Eclipse插件如何卸载?

    本博客我们讲一下对于Eclipse的插件卸载 1.Eclipse中:Window——Install  New  SoftWare 2.找到相应插件卸载即可

  2. 10个典型的JavaScript面试题

    问题1:作用域 考虑如下代码:   JavaScript   1 2 3 4 5 6 7 (function() {   var a = b = 5;   })();   console.log(b) ...

  3. python之Phantomjs无界面浏览器引擎自动化测试

    文字搬运工,本文主要介绍PhantomJS功能,其中有屏幕快照功能,为后面更新[python接口自动化脚本更新版本],其中新版本中新增自动发送邮件功能正文带图片,使用PhantomJS截取图片后发送邮 ...

  4. MySQL创建用户,并设置指定访问数据库

    一.创建用户并授权 1. 登录mysql mysql -u root -q输入密码2. 创建数据库(已有数据库就不需要建立) create database newDB;//以创建newDB为例3. ...

  5. Kubernetes学习笔记(八):Deployment--声明式的升级应用

    概述 本文核心问题是:如何升级应用. 对于Pod的更新有两种策略: 一是删除全部旧Pod之后再创建新Pod.好处是,同一时间只会有一个版本的应用存在:缺点是,应用有一段时间不可用. 二是先创建新Pod ...

  6. 创建并加入节点&练习

    1.节点的属性 节点的属性:所有节点都有的属性 元素节点,   属性节点,   文本节点 nodeType            只  读  属  性 nodeName       返回对应节点的名字 ...

  7. PHP获取今日、本周、本月、今年的开始日期和结束日期

    /** * 今天开始的Y-m-d H:i:s * * @return string */ public static function beginToday() { return date('Y-m- ...

  8. java方法句柄-----4.你所不知道的MethodHandle【翻译】

    Method Handles in Java 1.介绍 在本文中,我们将探讨一个重要的API,它是在Java 7中引入的,并在Java 7版本之后更加完善:全限定名是:Java.lang.invoke ...

  9. maven工程打胖瘦jar包插件

    <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <versio ...

  10. Java实现 LeetCode 822 翻转卡片游戏(暴力)

    822. 翻转卡片游戏 在桌子上有 N 张卡片,每张卡片的正面和背面都写着一个正数(正面与背面上的数有可能不一样). 我们可以先翻转任意张卡片,然后选择其中一张卡片. 如果选中的那张卡片背面的数字 X ...