摘要:在日常项目开发中,随机的场景需求经常发生,如红包、负载均衡等等。在Java中的,使用随机,一般使用Random或者Math.random()。这篇文章中主要就来介绍下Random,以及在并发环境下一些更好的选择ThreadLocalRandom。 一.Random 1.Random使用 Random 阅读全文
posted @ 2020-04-07 16:58 怀瑾握瑜XI 阅读(261) 评论(0) 推荐(0) 编辑
摘要:一.介绍 AtomicLong是Java中Doug Lea大神在JDK 1.5实现的long类型的原子类,能远在的维护一个long类型的值。它提供了自增自减、累加累减等等数值常用的API,这些操作都是原子操作: 自增自减操作 long getAndIncrement(); long incremen 阅读全文
posted @ 2020-04-03 10:32 怀瑾握瑜XI 阅读(93) 评论(0) 推荐(0) 编辑
摘要:本文主要介绍spring boot的神器之一, 自动配置 ,主要从以下几个方面介绍自动配置: 1. 先决条件Starter 2. spring.factories机制 3. Enable系列注解 4. 自动配置原理 6. 自动配置实例分析 7. 创建自己的Starter和自动配置 一.先决条件Sta 阅读全文
posted @ 2020-03-17 17:06 怀瑾握瑜XI 阅读(322) 评论(0) 推荐(0) 编辑
摘要:一.前言 本篇文章主要来讲讲Conditional的作用,形式和实现原理,只有透彻的理解了Conditional系列,才能更好的学习spring boot的自动配置,因为它是自动配置能够实现的一大利器!主要从以下几个方面介绍Conditional Conditional是什么及作用 Conditio 阅读全文
posted @ 2020-03-17 16:51 怀瑾握瑜XI 阅读(124) 评论(0) 推荐(0) 编辑
摘要:一.前言 本文主要讲解spring boot应用启动的流程,看spring boot在启动过程中,如何实现以下几个非常重要的过程: 1. 如何决定是web应用 2. 创建spring环境 3. 创建上下文 对于每个步骤的原理细节,本文不详细介绍。本文旨在探索宏观的流程控制。 二.整体流程 众所周知, 阅读全文
posted @ 2020-03-17 16:48 怀瑾握瑜XI 阅读(96) 评论(0) 推荐(0) 编辑
摘要:一.前言 在两年前已经开始关注spring boot,但是那时还停留在看文章和官方的guides阶段。对于其中给出的各种features也只是一知半解,认为是理所当然。直到后来项目中大量使用spring boot后,才对其各种特性有所清晰的认知。刚好赶上前段时间,同事离职交接,接手了他之前负责的项目 阅读全文
posted @ 2020-03-17 16:47 怀瑾握瑜XI 阅读(106) 评论(0) 推荐(0) 编辑
摘要:一.Kryo介绍 Kryo是一个快速且高效的针对Java对象序列化的框架。它的特点: 1. 序列化的性能非常高 2. 序列化结果体积较小 3. 提供了简单易用的API Kryo序列化被很多开源项目使用,社区非常活跃,版本迭代也比较快。以下的重大项目中都在使用Kryo Apache Hive Apac 阅读全文
posted @ 2020-03-17 16:42 怀瑾握瑜XI 阅读(265) 评论(0) 推荐(0) 编辑
摘要:FST序列化全称是Fast Serialization,它是对Java序列化的替换实现。既然前文中提到Java序列化的两点严重不足,在FST中得到了较大的改善,FST的特征如下: 1. 比JDK提供的序列化提升了10倍,体积也减少3 4倍多 2. 支持堆外Maps,和堆外Maps的持久化 3. 支持 阅读全文
posted @ 2020-03-17 16:40 怀瑾握瑜XI 阅读(700) 评论(0) 推荐(0) 编辑
摘要:一.序列化定义 Wike中对序列化的定义如下: In computing, serialization (or serialisation) is the process of translating data structures or object state into a format tha 阅读全文
posted @ 2020-03-17 16:37 怀瑾握瑜XI 阅读(79) 评论(0) 推荐(0) 编辑
摘要:在前篇文章中介绍了TCP协议的三大特性,其中可靠性是依赖一系列的机制,如:校验和,分组发送,超时重传,流量控制得到保证。 一.数据交互 TCP在交互数据时,采用多种机制保证可靠性,同时也保证TCP的性能,主要是分组、延迟ACK等等。 1.分组确认 对于连续的数据传输有三种方式: 1. 单个单个字节发 阅读全文
posted @ 2019-04-02 16:24 怀瑾握瑜XI 阅读(294) 评论(0) 推荐(0) 编辑