标签:ConcurrentHashMap

Java

【J2SE】java编程思想之数组与集合学习总结

puefu.he 发布于 2019-03-18

数组 简述 数组是一种效率最高的存储和随机访问对象引用的一个简单的线性序列,虽然访问快速,但为之付出的代价是数组的大小固定,并且在其生命周期中不可改变。数组与其他容器之间的区别在于:效率、类型和保存基本类型的能力。但随着自动包装机制的出现,容器已经可以与数组几乎一样方便,而数组仅...

阅读(7)评论(0)赞 (0)

Java

Guava — Bloom Filter原理

2

songhua.gao 发布于 2019-03-16

去重在软件开发中经常需要用到,在Java当中一般使用Set集合,面对大量数据则可以利用取MD5签名等值后再进行去重,然而Set集合的实现原理决定了如果有大量的key需要判断,必然会需要大量的内存来支撑,且随着数据量增大效率也变得不那么尽人意。另外业务中存在着很多对精确性不需要那么...

阅读(13)评论(0)赞 (0)

Java

蚂蚁金服面试题及答案之二面

小丁 发布于 2019-03-15

二面 22、你有什么问题想问我的吗? 1、自我介绍、工作经历、技术栈 2、项目中你学到了什么技术? 3、微服务划分的粒度? 4、微服务的高可用怎么保证的? 负载均衡与反向代理,隔离,限流,降级,超时与重试,回滚,压力测试与应急预案 5、常用的负载均衡,该怎么用,你能说下吗? 1、...

阅读(44)评论(0)赞 (0)

Java

JAVA中锁的深入理解与解析

6

xirruiqiang 发布于 2019-03-14

如果想要透彻的理解java锁的来龙去脉,需要先了解以下基础知识。 基础知识之一:锁的类型 锁从宏观上分类,分为悲观锁与乐观锁。 乐观锁 乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期...

阅读(24)评论(0)赞 (0)

Java

java.util.concurrent 并发包使用指南

8

xiaoli.he 发布于 2019-03-14

本文只要是对java.util.concurrent包下的相关开发工具做一个简单的介绍,引导各位认识在这个包下的类,并尝试在项目中使用它, 本文不会去解释关于 Java 并发的核心问题 – 其背后的原理,也就是说,如果你对那些东西感兴趣,请参考《Java 并发指南》。...

阅读(23)评论(0)赞 (0)

Java

深入剖析Java即时编译器(下)

7

dulong 发布于 2019-03-14

在引入分层编译之前,我们需要手动的选择编译器。对于启动性能有要求的短时运行程序,我们会选择C1编译器,对应参数-client,对于长时间运行的对峰值性能有要求的程序,我们会选择C2编译器,对应参数-server。 Java7引入了分层编译,使用-XX:+TieredCompila...

阅读(18)评论(0)赞 (0)

Java

CAS原理分析及ABA问题详解

1

xiaoli.wang 发布于 2019-03-13

CAS 即 Compare And Swap 的缩写,翻译成中文就是 比较并交换 ,其作用是让CPU比较内存中某个值是否和预期的值相同,如果相同则将这个值更新为新值,不相同则不做更新,也就是CAS是 原子性 的操作,其实现方式是通过借助 C/C++ 调用CPU指令完成的,所以效率...

阅读(24)评论(0)赞 (0)

Java

JAVA多线程使用场景和注意事项

4

wenming.gapo 发布于 2019-03-13

我曾经对自己的小弟说,如果你实在搞不清楚什么时候用HashMap,什么时候用ConcurrentHashMap,那么就用后者,你的代码bug会很少。 他问我:ConcurrentHashMap是什么? -.- 编程不是炫技。大多数情况下,怎么把代码写简单,才是能力。 多线程生来就...

阅读(21)评论(0)赞 (0)

Java

JAVA多线程使用场景和注意事项

3

changyuan.xu 发布于 2019-03-13

我曾经对自己的小弟说,如果你实在搞不清楚什么时候用HashMap,什么时候用ConcurrentHashMap,那么就用后者,你的代码bug会很少。 他问我:ConcurrentHashMap是什么? -.- 编程不是炫技。大多数情况下,怎么把代码写简单,才是能力。 多线程生来就...

阅读(17)评论(0)赞 (0)

Java

[译]Java进阶知识 – 线程间通信

邓龙华 发布于 2019-03-12

CountdownLatch , CyclicBarrier 分别适合什么场景呢? 大部分情况下, 子线程只需要关心自身执行的任务. 但在某些复杂的情况下, 需要使用多个线程来协同完成某个任务, 这就涉及到线程间通信(inter-thread communication)的问题了...

阅读(24)评论(0)赞 (0)

Java

Java工程师手册

小丁 发布于 2019-03-11

Set 和 List 区别?Set 如何保证元素不重复? Java 8 中 stream 相关用法、apache 集合处理工具类的使用、不同版本的 JDK 中 HashMap 的实现的区别以及原因 Collection 和 Collections 区别 Arrays.asList...

阅读(39)评论(0)赞 (0)

Java

10分钟掌握ConcurrentHashMap 3分钟清楚和HashMap、Hashtable的区别

5

xirruiqiang 发布于 2019-03-11

ConcurrentHashMap 顾名思义就是同步的HashMap,也就是线程安全的HashMap,所以本篇介绍的ConcurrentHashMap和HashMap有着很重要的关系,所以建议之前没有了解过HashMap的可以先看看这篇关于HashMap的原理分析 《HashMa...

阅读(26)评论(0)赞 (0)

编程技术

『互联网架构』软件架构-分布式系列并发编程atomic&collections(31)

4

yanxinchi 发布于 2019-03-11

在java中提供了一种对于原子操作的类,Atomic的包名为java.util.concurrent.atomic。这个包里面提供了一组原子变量的操作类,这些类可以保证在多线程环境下,当某个线程在执行atomic的方法时,不会被其他线程打断,而别的线程就像自旋锁一样,一直等到该方...

阅读(27)评论(0)赞 (0)

Java

5面阿里,终获offer(Java后端)

2

yeseng 发布于 2019-03-10

作者:ppxyn。本文来自读者投稿。该文已加入笔主的开源项目——JavaGuide(一份涵盖大部分Java程序员所需要掌握的核心知识的文档类项目),地址: https://github.com/Snailclimb… 。觉得不错的话,记得点个Star。 在接触 Jav...

阅读(40)评论(0)赞 (0)

Java

使用Map.merge()替代ConcurrentHashMap

刘莉莉 发布于 2019-03-10

Map.merge()意味着我们可以原子地执行插入或更新操作,它是线程安全的,ConcurrentHashMap虽然也是线程安全的,但不是所有操作都是,例如get()之后再put()就不是了,这时使用merge()确保没有更新会丢失。 Map.merge() 可以解释如下:它将新...

阅读(32)评论(0)赞 (0)

Java

订阅 + 定时任务重构后台主机操作任务

6

puefu.he 发布于 2019-03-08

问题描述 主机状态一直显示有问题,去向动态链接库请求数据时,除了第一台主机访问成功外,以后的每一台主机返回的结果都是 9(HOST_NOT_FOUND) 。 研究了很久也没研究明白,最后求助潘老师。 潘老师指出是指针有问题,主机的指针是我们构造出来的,虽然该指针指向对象的 nam...

阅读(28)评论(0)赞 (0)

Java

假如我是面试官,我会这样虐你

1

hanze 发布于 2019-03-08

又是金三银四的时候,我希望这份面试题能够祝你一臂之力! 自我和项目相关 1、自我介绍 2、你觉得自己的优点是?你觉得自己有啥缺点? 3、你有哪些 offer? 4、你为什么要离开上家公司?你上家公司在xxx,我们公司在xxx,离这么远为什么要选择我们这里? 5、上家公司的同事和领...

阅读(117)评论(1)赞 (0)

Java

你应该知道的缓存进化史

15

hellas 发布于 2019-03-07

1.背景 本文是上周去技术沙龙听了一下爱奇艺的Java缓存之路有感写出来的。先简单介绍一下爱奇艺的java缓存道路的发展吧。 可以看见图中分为几个阶段: 第一阶段:数据同步加redis 通过消息队列进行数据同步至redis,然后Java应用直接去取缓存 这个阶段优点是:由于是使用...

阅读(43)评论(0)赞 (0)