定义类考题

  • 什么是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. React面试题汇总

    1.如何理解React中的组件间数据传递? ①父-子  通过props传递 ②子-父  在父中创建一个可以修改state的方法,之后把这个方法通过props传递给子,在子中调用这个方法 从而达到修改父 ...

  2. 7.1 Go interface

    7.1 Go interface 雨痕-Go语言笔记 接口采用了duck type方式,在程序设计中是动态类型的一种风格 `当看到一只鸟走起来像鸭子.游泳起来像鸭子.叫起来也像鸭子,那么这只鸟就可以被 ...

  3. Django之ORM属性类型和约束条件

              ORM属性类型: 1. CharField 字符串字段, 用于较短的字符串. CharField 要求必须有一个参数 maxlength, 用于从数据库层和Django校验层限制该 ...

  4. day05:数组与字典常识(20170217)

    #1:数组功能的使用:print ("a4A".isdecimal()) #print ("18".isdigit()) #判断是否是数字print (&quo ...

  5. poj2914无向图的最小割

    http://blog.csdn.net/vsooda/article/details/7397449 //算法理论 http://www.cnblogs.com/ylfdrib/archive/20 ...

  6. VMware虚拟机,vps忘记密码修改密码

      因为业务经常会用到虚拟机,然后过不了多久,登录密码就用不了. 解决问题有两种办法,其中一种是通过Dos命令窗:还有一个就是通过制作pe启动盘来操作,进行密码重置,删除等等. 制作pe启动盘的方式有 ...

  7. Mysql批量导入多个sql文件

    DB_edusuntk文件夹下有2000多个个sql备份文件,如何批量导入?首先新建一个main.sql,然后在main.sql文件里面这么写: source C:/sql/1.sql; source ...

  8. linux 去除^M 换行符

    一般,在windows下写的shell脚本,都会去linux执行,都会有^M 符号,那么怎么去除呢? 第一种方法:cat -A filename 就可以看到windows下的断元字符 ^M要去除他,最 ...

  9. Android_存储之SharedPreferences

    一.概述 SharedPreferences是一种轻量级的数据存储方式,采用键值对的存储方式. SharedPreferences只能存储少量数据,大量数据不能使用该方式存储,支持存储的数据类型有bo ...

  10. 脚本学习一(echo、echo off、@、start)

    1.echo表示显示此命令后的字符 脚本: 输出结果: 2.echo off表示在此语句后所有运行的命令都不显示命令行本身 脚本: 输出结果: 3.@与echo off相象,但它是加在每个命令行的最前 ...