摘要: 1. 前言 上篇文章讲了 Unsafe 类中 CAS 的实现,其实是在为这篇文章打基础。不太熟悉的小伙伴请移步 "Unsafe 中 CAS 的实现" 。本篇文章主要基于 来做源码解析。 2. 源码 ConcurrentHashMap 基于 HashMap 实现。 JDK1.7 和 JDK1.8 作为 阅读全文
posted @ 2020-03-15 23:55 当我遇上你csy 阅读(662) 评论(0) 推荐(0) 编辑
摘要: 前言 Unsafe 是位于 sun.misc 包下的一个类。Unsafe 提供的 API 大致可分为内存操作、CAS、Class 相关、对象操作、线程调度、系统信息获取、内存屏障、数组操作等几类。由于并发相关的源码很多用到了 CAS,比如 java.util.concurrent.atomic 相关 阅读全文
posted @ 2020-03-15 11:19 当我遇上你csy 阅读(475) 评论(0) 推荐(0) 编辑
摘要: 1. 前言 还是从面试中来,到面试中去。面试官在面试 Redis 的时候经常会问到,Redis 的 LRU 是如何实现的?如果让你实现 LRU 算法,你会怎么实现呢?除了用现有的结构 LinkedHashMap 实现,你可以自己实现一个吗?跳跃表、小顶堆行不行... 阅读这篇文章前建议大家先熟悉下 阅读全文
posted @ 2020-03-14 00:27 当我遇上你csy 阅读(396) 评论(0) 推荐(2) 编辑
摘要: 1. 概述 Hashset 实现 set 接口,底层基于 Hashmap 实现, 但与 Hashmap 不同的实 Hashmap 存储键值对,Hashset 仅存储对象。 HashSet 使用成员对象来计算 hashcode 值。 2. 原理 在《Head fist java》一书中有描述: 当你把 阅读全文
posted @ 2020-03-12 18:11 当我遇上你csy 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 一、前言 MySQL分页查询作为Java面试的一道高频面试题,这里有必要实践一下,毕竟实践出真知。 很多同学在做测试时苦于没有海量数据,官方其实是有一套测试库的。 二、模拟数据 这里模拟数据分2种情况导入,如果只是需要数据测试下,那么推荐官方数据。如果官方数据满足不了需求的话,那么我们自己模拟数据。 阅读全文
posted @ 2020-03-10 21:51 当我遇上你csy 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 1. 前言 上一篇从源码方面了解了JDK1.7中Hashmap的实现原理,可以看到其源码相对还是比较简单的。本篇笔者和大家一起学习下JDK1.8下Hashmap的实现。JDK1.8中对Hashmap做了以下改动。 默认初始化容量=0 引入红黑树,优化数据结构 将链表头插法改为尾插法,解决1.7中多线 阅读全文
posted @ 2020-03-06 09:48 当我遇上你csy 阅读(1093) 评论(0) 推荐(1) 编辑
摘要: 1. 前言 Hashmap可以说是Java面试必问的,一般的面试题会问: Hashmap有哪些特性? Hashmap底层实现原理(get\put\resize) Hashmap怎么解决hash冲突? Hashmap是线程安全的吗? ... 今天就从源码角度一探究竟。笔者的源码是OpenJDK1.7 阅读全文
posted @ 2020-03-05 13:14 当我遇上你csy 阅读(669) 评论(2) 推荐(0) 编辑
摘要: 1. 概述 Apache Kafka 是一个快速、可扩展的、高吞吐、可容错的分布式发布订阅消息系统。其具有高吞吐量、内置分区、支持数据副本和容错的特性,适合在大规模消息处理场景中使用。 笔者之前在物联网公司工作,其中 Kafka 作为物联网 MQ 选型的事实标准,这里优先给大家搭建 Kafka 集群 阅读全文
posted @ 2020-03-04 20:11 当我遇上你csy 阅读(4753) 评论(1) 推荐(0) 编辑
摘要: 1. 概述 这里是 Docker 实战系列第四篇。主要介绍分布式系统中的元老级组件 Zookeeper。 ZooKeeper 是一个开源的分布式协调服务,是 Hadoop,HBase 和其他分布式框架使用的有组织服务的标准。 分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均 阅读全文
posted @ 2020-03-03 22:20 当我遇上你csy 阅读(1624) 评论(0) 推荐(2) 编辑
摘要: 前言 最近参加了几场 Java 面试,发现大多数的微服务实践还是 Eureka 偏多,鉴于笔者的单位选型 Consul,这里对 Consul 做简单总结。 该篇是 Docker 实战系列的第三篇。传送门: "Docker 实战之 MySQL 主从复制" "Docker 实战之 Redis Clust 阅读全文
posted @ 2020-03-02 23:24 当我遇上你csy 阅读(1432) 评论(2) 推荐(3) 编辑