HashMap线程安全体现在哪里?如果你到现在还不清楚赶紧看下去,明明白白补一补~。在Java中,HashMap是一种常用数据结构,它以键值对形式存储和管理数据。然而,由于HashMap在多线程环境下存在线程安全问题,因此在使用时需要格外小心。简单来说:在 hashMap1.7 中扩容时候,因为采用是头插法,所以会可能会有循环链表产生,导致数据有问题,在 1.8 版本已修复,改
一、前言 日期转换与格式化在项目中应该是比较常用了,最近同事小刚出去面试实在是没想到被 SimpleDateFormat 给摆了一道... 面试官:项目中日期转换怎么用?SimpleDateFormat 用过吗?能说一下 SimpleDateFormat 线程安全问题吗,以及如何解决? 同事
原创 2021-06-05 17:35:08
784阅读
作者 |Fann_s来源 |https://juejin.im/post/5d6228046fb9a06add4e37fe引言周五去面试又被面试一个问题问哑巴了面试官:StringB...
原创 2021-06-21 16:58:47
108阅读
引言 周五去面试又被面试一个问题问哑巴了 面试官:StringBuilder和StringBuffer区别在哪?我:StringBuilder不是线程安全,StringBuffer是线程安全面试官:那StringBuilder不安全点在哪儿?我:。。。(哑巴了) 在这之前我只记住了StringBuilder不是线程安全,StringBuffer是线程安全这个结论,至于String
转载 2021-06-18 16:23:02
56阅读
面试官:StringBuilder和StringBuffer区别在哪? 我:StringBuilder不是线程安全,StringBuffer是线程安全
转载 2021-07-27 15:01:25
45阅读
作者:千山 juejin.im/post/5d6228046fb9a06add4e37fe 引言 面试官:StringBuilder和StringBuffer区别在哪? 我:StringBuilder不是线程安全,StringBuffer是线程安全 面试官:那StringBuilder不安全
转载 2021-05-25 21:33:36
87阅读
周五去面试又被面试一个问题问哑巴了面试官:StringBuilder和StringBuffer区别在
转载 2022-03-18 15:25:51
52阅读
面试官:StringBuilder和StringBuffer区别在哪? 我:StringBuilder不是线程安全,StringBuffer是线程安全 面试官:那StringBuilder不安全点在哪儿? 我:。。。(哑巴了)
转载 2021-07-27 15:01:47
70阅读
## 为什么Java ArrayList不是线程安全 在Java中,ArrayList是一种动态数组数据结构,它可以根据需要动态增加或减少容量。然而,ArrayList并不是线程安全,这意味着多个线程同时访问ArrayList操作可能导致不可预测结果。这是因为ArrayList内部结构并没有设计为支持并发操作,因此在多线程环境下可能会出现数据不一致情况。 ### 为什么ArrayL
原创 2024-03-31 03:12:35
255阅读
在上一篇《Java HashMap笔记之一:基本原理》中已经介绍了Java中HashMap基本原理,包括初始大小、初始化时机、内部Entry数组大小为什么是2幂、扩容原因和时机等。本篇来介绍下HashMap为什么不是线程安全。 HashMap线程安全根本原因-扩容 导致HashMap线程安全根本原因是扩容。扩容就是在put加入元素个数超过capacity * loadFacto
Java中ArrayList为什么不是线程安全 在Java中,`ArrayList` 是一个非常常用数据结构,它可以动态地存储对象并允许快速访问。尽管如此,在多线程环境下,`ArrayList` 使用可能会引发许多问题,尤其是数据不一致性和潜在并发修改异常。根据《Java Documentation》定义,线程安全是指一个方法或类在多线程环境中能够被多个线程安全地访问而不会引发竞态
原创 6月前
45阅读
        一直以来都知道HashMap是线程安全,但是到底为什么线程安全,在多线程操作情况下什么时候线程安全?让我们先来了解一下HashMap底层存储结构,HashMap底层是一个Entry数组,一旦发生Hash冲突时候,HashMap采用拉链法解决碰撞冲突,Entry内部变量:final Object key; Object valu
JAVA中线程池JAVA线程为什么要用线程池了解JAVA线程线程池实现原理向线程池提交任务关闭线程池 JAVA线程池为什么要用线程池池化思想有很多技术都进行了应用,如线程池、数据库连接池等,池化技术思想主要是为了减少每次获取资源消耗,提高对资源利用率。 在JAVA中使用线程好处有:(《JAVA并发编程艺术》)降低资源消耗:通过重复利用已创建好线程以减少创建、销毁线程所造成
转载 2023-12-10 09:17:10
24阅读
一、HashMap是线程安全 前言 只要是对于集合有一定了解一定都知道HashMap是线程安全,我们应该使用ConcurrentHashMap。但是为什么HashMap是线程安全呢,之前面试时候也遇到到这样问题,但是当时只停留在***知道是***层面上,并没有深入理解***为什么是***。于是今天重温一个HashMap线程安全这个问题。首先需要强调一点,HashMap线程
转载 2023-09-22 17:08:03
87阅读
很清楚,SimpleDateFormat 不是线程安全,多线程下需要为每个线程创建不同实例。不安全原因是因为使用了 Calend
原创 2023-02-13 10:11:28
279阅读
概述就像在介绍中说,这一篇文章想要讨论两个与 Redis 有关问题就是:为什么 Redis 在最初版本中选择单线程模型?为什么 Redis 在 4.0 之后版本中加入了多线程支持?这两个看起来有些矛盾问题实际上并不冲突,我们会分别阐述对这个看起来完全相反设计决策作出分析和解释,不过在具体分析它们设计之前,我们先来看一下不同版本 Redis 顶层设计: Redis 作为一个内存
转载 2024-09-23 10:48:05
45阅读
注:本系列文章中用到jdk版本均为java8相比很多同学在刚接触Java集合时候,线程安全List用一定是Vector。但是现在用到线程安全List一般都会用CopyOnWriteArrayList,很少有人再去用Vector了,至于为什么,文章中会具体说到。接下来,我们先来简单分析以下Vector源码。一、Vector集合源码简析由于本文重点不是Vector集合,因此只是简单
转载 2021-06-07 17:00:17
114阅读
2评论
注:本系列文章中用到jdk版本均为java8相比很多同学在刚接触Java集合时候,线程安全List用一定是Vector。但是现在用到线程安全List一般都会用CopyOnWriteArrayList,很少有人再去用Vector了,至于为什么,文章中会具体说到。接下来,我们先来简单分析以下Vector源码。一、Vector集合源码简析由于本文重点不是Vector集合,因此只是简单
转载 2021-04-07 10:35:07
129阅读
2评论
注:本系列文章中用到jdk版本均为java8相比很多同学在刚接触Java集合时候,线程安全List用一定是Vector。但是现在用到线程安全List一般都会用CopyOnWriteArrayList,很少有人再去用Vector了,至于为什么,文章中会具体说到。接下来,我们先来简单分析以下Vector源码。一、Vector集合源码简析由于本文重点不是Vector集合,因此只是简单
转载 2021-01-31 13:25:49
131阅读
2评论
注:本系列文章中用到jdk版本均为java8 相比很多同学在刚接触Java集合时候,线程安全List用一定是Vector。但是现在用到线程安全List一般都会用CopyOnWriteArrayList,很少有人再去用Vector了,至于为什么,文章中会具体说到。接下来,我们先来简单分析以
原创 2021-06-03 16:33:03
253阅读
  • 1
  • 2
  • 3
  • 4
  • 5