Google Guava之RateLimiter核心源码解读(中)

RateLimiter是Google Guava框架的一个限速器,通常用于控制对某个资源的访问速率。

限速常见的有两种实现方式,一种是令牌桶,另一种是漏桶。

RateLimiter选择了令牌桶作为其底层实现,按照固定速率投放令牌,同时支持突发流量。 … [阅读文章]

为什么《流量是蓝海》

今天要介绍的这本书,书名叫《流量是蓝海》。书的作者,是必要商城的CEO毕胜。

毕胜曾经就任于百度,历任总裁助理,市场总监等职务;2008年创办乐淘网并任CEO;2014年创办全球首个C2M电子商务平台——必要商城,现任必要商城CEO。

本书是少有的,既写出了创业的艰辛,遇到的问题,同时又给出了摸索的过程和答案。作者这种苦B的创业经历,即使明知道这样的经历之后能够成功,或许大多数人也是不会选择这条路的。 … [阅读文章]

图片压缩、格式转换、横竖分割(LTS)

图片压缩 TinyPNG

支持批量处理,最多20张图片,每张最大5M。

优点是操作简单,速度快,质量好。

https://tinypng.com/

Optimizilla

国内访问速度比较慢,压缩质量也不错,导出的文件名会变。

https://imagecompressor.com/ … [阅读文章]

Java JUC工具包之CyclicBarrier与CountDownLatch

假设有5个人约好一起去旅行,那么一般来说有2种组织出行方式,一种是自己组织自由行,另一种是跟团旅行。

在Java的JUC工具包中,有两个工具类可以类比这两种旅行方式,分别是CyclicBarrier和CountDownLatch。

两种旅行模式 … [阅读文章]

Java虚拟机系列文章:JVM指令、Class文件结构、垃圾收集、压缩指针

JVM指令分析实例

JVM指令分析实例一(常量、局部变量、for循环)

JVM指令分析实例二(算术运算、常量池、控制结构)

JVM指令分析实例三(方法调用、类实例)

JVM指令分析实例四(数组、switch)

JVM指令分析实例五(操作数栈)

Java … [阅读文章]

从科学记数法到浮点数标准IEEE 754

有点遗憾,由于这篇文章有大量的公式,如果直接发表内容公式会显示不了,因此只能发成图片。

如果想获得最佳的文字版阅读体验,请在评论中留下你的邮箱地址,私信分享给你。

以下为图片版本:

参考

https://zh.wikipedia.org/wiki/IEEE_754 … [阅读文章]

【系统性能优化】必知的一些关键数字(CPU仅1s,磁盘1个月,TCP包重传100年)

Google AppEngine Numbers

以下这组数字,来自于Brett Slatkin在2008年谷歌I/O大会的演讲《Building Scalable Web Applications with Google App Engine》。

英文原文:
http://highscalability.com/blog/2009/2/18/numbers-everyone-should-know.html … [阅读文章]

理解TCP三次握手,为什么是三次?兼谈初始化序号、发送和确认序号

上一篇关于TCP的文章,我们讲了TCP是如何一步步设计,来保证其消息发送的可靠性。参见:《TCP的滑动窗口机制,谈谈其设计演化过程(如何从无到有?从不可靠到可靠?)

这一节,我们就从TCP的三次握手开始,了解一下序号在TCP传输中的具体使用细节。 … [阅读文章]

TCP的滑动窗口机制,谈谈其设计演化过程(如何从无到有?从不可靠到可靠?)

理解TCP滑动窗口是如何工作的,对于理解TCP的其他知识是至关重要的。

相比于更为简单,同为传输层协议的UDP而言,TCP提供了对传输数据的质量保证。

在可靠性上,TCP确保传输的数据不丢失、不重复,也不会产生乱序。

同时,TCP还提供了流量控制,用于控制数据发送的速度,防止较快主机导致较慢主机的缓冲区溢出。 … [阅读文章]

Javassist实现JDK动态代理

提到JDK动态代理,相信很多人并不陌生。然而,对于动态代理的实现原理,以及如何编码实现动态代理功能,可能知道的人就比较少了。接下一来,我们就一起来看看JDK动态代理的基本原理,以及如何通过Javassist进行模拟实现。

JDK动态代理 示例

以下是一个基于JDK动态代理的hello … [阅读文章]