美团面试拷打:ConcurrentHashMap 为何不能插入 null?HashMap 为何可以?

这篇具有很好参考价值的文章主要介绍了美团面试拷打:ConcurrentHashMap 为何不能插入 null?HashMap 为何可以?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

周末的时候,有一位小伙伴提了一些关于 ConcurrentHashMap 的问题,都是他最近面试遇到的。原提问如下(星球原贴地址:https://t.zsxq.com/11jcuezQs ):

美团面试拷打:ConcurrentHashMap 为何不能插入 null?HashMap 为何可以?,Java面试进阶指北,大厂面试,Java面试,面试,java,职场和发展

整个提问看着非常复杂,其实归纳来说就是两个问题:

  1. ConcurrentHashMap 为什么 key 和 value 不能为 null?
  2. ConcurrentHashMap 能保证复合操作的原子性吗?

下面我会以此提供这两个问题的详细答案,希望对你有帮助。

ConcurrentHashMap 为什么 key 和 value 不能为 null?

ConcurrentHashMap 的 key 和 value 不能为 null 主要是为了避免二义性。null 是一个特殊的值,表示没有对象或没有引用。如果你用 null 作为键,那么你就无法区分这个键是否存在于 ConcurrentHashMap 中,还是根本没有这个键。同样,如果你用 null 作为值,那么你就无法区分这个值是否是真正存储在 ConcurrentHashMap 中的,还是因为找不到对应的键而返回的。

拿 get 方法取值来说,返回的结果为 null 存在两种情况:文章来源地址https://www.toymoban.com/news/detail-680024.html

  • 值没有在集合中 ;

到了这里,关于美团面试拷打:ConcurrentHashMap 为何不能插入 null?HashMap 为何可以?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 美团为何花20亿买下王慧文的AI梦想?

    美团于2023年6月29日在港交所公告,以20.65亿人民币收购了光年之外的全部股权。光年之外是一家致力于推动实现通用人工智能(AGI)的创新企业,由美团联合创始人王慧文创立。王慧文因身体原因,已经离岗就医休养。美团表示,通过收购事项获得领先的AGI技术及人才,有机

    2024年02月11日
    浏览(21)
  • word插入图片为何无法显示?

    word是我们常用的软件,在使用过程中,我们难免会遇到这样或那样的问题,解决问题的思路我认为首先要找出原因,然后再想办法解决才是最好的方案。 如果在 Word 文档中插入的图片无法显示,可能是以下原因之一: 1. 图片文件已被删除或移动到其他位置。 2. 图片文件格式

    2024年02月08日
    浏览(41)
  • ConcurrentHashMap 面试题 30 问

    ConcurrentHashMap 在 jdk1.7 中的结构: 在 jdk1.7 版本及其以下版本中, ConcurrentHashMap 的数据结构是由 Segments 数组 + HashEntry 数组 + 链表实现的 不同的是, ConcurrentHashMap 中的数组被分为大数组和小数组,大数组是 Segment ,小数组是 HashEntry , Segment 本身是基于 ReentrantLock 可重入锁来

    2024年02月09日
    浏览(62)
  • 【2023美团后端-8】删除字符串的方案,限制不能连续删

    小美定义一个字符申是“美丽串”,当且仅当该字符串包含”mei”连续子串。例如”meimei”、“xiaomeichan\\\"都是美丽串,现在小美拿到了一个字符串,她准备删除一些字符,但不能删除两个连续字符。小美希望最终字符串变成美丽串,她想知道有多少种删除方案? 输入描述 一个

    2024年02月07日
    浏览(32)
  • Java进阶(ConcurrentHashMap)——面试时ConcurrentHashMap常见问题解读 & 结合源码分析 & 多线程CAS比较并交换 初识

    List、Set、HashMap作为Java中常用的集合,需要深入认识其原理和特性。 本篇博客介绍常见的关于Java中线程安全的ConcurrentHashMap集合的面试问题,结合源码分析题目背后的知识点。 关于List的博客文章如下: Java进阶(List)——面试时List常见问题解读 结合源码分析 关于的Set的博

    2024年02月06日
    浏览(45)
  • 【面试】美团面试真题和答案

    问题来源于某客,如下图所示: 问题链接:https://www.nowcoder.com/feed/main/detail/b12f8ece42f6485d8e462ab872c4f8d8 答案解析 线程池的创建方法总共有 7 种,但总体来说可分为 2 类: 通过 ThreadPoolExecutor 创建的线程池; 通过 Executors 创建的线程池。 线程池的创建方式总共包含以下 7 种(其

    2024年02月12日
    浏览(27)
  • 【美团面试】软件测试面试题

    功能测试(Function test) 0. 什么都不输入,点击提交按钮,看提示信息。(非空检查) 1.输入正确的用户名和密码,点击提交按钮,验证是否能正确登录。(正常输入) 2.输入错误的用户名或者密码, 验证登录会失败,并且提示相应的错误信息。(错误校验) 3.登录成功后能否

    2024年02月16日
    浏览(34)
  • 三重积分为何不能直接带入积分区域?搞懂这些,重积分基本可以了

    重点:积分的结果均为数值,仅与 被积表达式 和 积分区间 有关!!! 看积分区间和被积表达式: 一重积分积分区间是长度,一段长度,被积表达式是关于x的函数。 二重积分积分区间是区域,一片区域,被积表达式是关于x,y的函数。 三重积分积分区间是空间,一块空间,

    2023年04月18日
    浏览(33)
  • 面试题:HashMap线程不安全 ConcurrentHashMap为什么线程安全

    面试的时候先会喊你说说集合,那些集合线程不安全?当你说了 HashMap 线程不安全,面试官可能会进一步询问你是否了解 ConcurrentHashMap ,以及它是如何实现线程安全的。 ArrayList、LinkedList、TreeSet、HashSet、 HashMap 、TreeMap等都是线程不安全的。 HashTable 是线程安全的。 来看个例

    2024年04月23日
    浏览(33)
  • Linux 面试题-(腾讯,百度,美团,滴滴)

    http://192.168.200.10/index1.html http://192.168.200.10/index2.html http://192.168.200.20/index1.html http://192.168.200.30/index1.html http://192.168.200.40/index1.html http://192.168.200.30/order.html http://192.168.200.10/order.html 答案: cat t.txt | cut -d ‘/’ -f 3 | sort | uniq -c | sort -nr netstat -an | grep ESTABLISHED | awk -F \\\" \\\" ‘{print $5

    2024年02月08日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包