为什么 JavaScript 中 0.1+0.2 不等于 0.3 ?
在js中进行数学运算时,会出现0.1+0.2=0.300000000000000004的结果,一开始认为是浮点数的二进制存储导致的精度问题,但这似乎不能很好的解释为什么在同样的存储方式下0.3+0.4=0.7可以得到正确的结果。本篇笔记主要通过浮点数的二进制存储及运算,和IEEE754下的舍入规则,
十亿级流量下,我与Redis时延小突刺的战斗史
本文记录了一次线上服务,慢接口报警的解决流程,包括遇到线上问题的应急方案、分析问题的思路,主要集中在Redis响应比较慢时的分析和解决方案,通过对问题解决过程的总结,希望可以给大家一些参考。
分布式搜索引擎Elasticsearch的架构分析
本文作者将介绍ES的分布式架构,以及ES的存储原理和写索引机制。
vivo商城促销系统架构设计与实践-概览篇
本篇属于vivo商城促销系统概览介绍篇,重点对促销系统的技术架构、核心模块以及相关技术挑战进行介绍说明。
深入剖析 RSA 密钥原理及实践
本文从算法原理和组成结构出发,对RSA密钥进行了深入剖析,之后通过案例对RSA证书在不同场景下的应用做了介绍。
高效动画实现原理-Jetpack Compose 初探索
随着google推出JetpackCompsoe工具包,Android能轻松实现声明式的开发,文章将介绍声明式动效的强大与简洁之处。
图解 Promise 实现原理(一)—— 基础实现
本系列文章由浅入深逐步实现Promise,并结合流程图、实例以及动画进行演示,达到深刻理解Promise用法的目的
JDK ThreadPoolExecutor核心原理与实践
本文内容主要围绕JDK中的ThreadPoolExecutor展开,首先描述了ThreadPoolExecutor的构造流程以及内部状态管理的机理,随后用大量篇幅深入源码探究了ThreadPoolExecutor线程分配、任务处理、拒绝策略、启动停止等过程,其中对Worker内置类进行重点分析。
深入剖析RocketMQ源码-NameServer
RocketMQ是基于主题的发布与订阅模式设计的一款高性能、高吞吐量的消息队列,抛弃了业界常用的Zookeeper,而是使用自研的NameServer来实现元数据的管理。本文基于NameServer的源码来深入剖析NameServer的实现原理以及其中的一些编程技巧。
vivo 悟空活动中台 - 微组件状态管理(下)
悟空活动中台作为vivo移动互联网首选的在线制作活动平台,有哪些关键能力支撑了它?
MySQL 8 新特性之Clone Plugin
ClonePlugin是MySQL8.0.17引入的一个重大特性,为什么要实现这个特性呢?个人感觉,主要还是为GroupReplication服务。在GroupReplication中,添加一个新的节点,差异数据的补齐是通过分布式恢复(DistributedRecovery)来实现的。在MySQL8
Tomcat 优雅关闭之路
本文通过分析Tomcat启动和关闭的源码,讲述了Tomcat常用的两种关闭方式背后的原理,以及使用它们会遇到的异常情况。同时本文还讲述了Java中的shutdownhook机制在进程关闭时的作用以及日常开发中如何去使用shutdownhook。
宏任务和微任务的一个小事
本文根据Javascript规范入手,阐述了JS执行过程在考虑时效性和效率权衡中的演变,并通过从JS代码运行的基础机制事件队列入手,分析了JS不同任务类型(宏任务、微任务)的差别,通过这些差别给出了详细分析不同任务嵌套的复杂JS代码执行的分析流程。
Android系统Bitmap内存分配原理与优化
本文重点分析Bitmap内存占用的原理,顺带介绍查看图片内容的常用工具,以常见图片加载框架入手,举例说明其内存策略,最后提出一种优化内存分配的方案。适合初阶客户端开发工程师阅读。
异步编程之事件循环机制
本文着重讲解通过事件循环机制来实现多个异步操作的有序执行、并发执行;通过事件队列实现同级多个并发操作的先后执行顺序,通过微任务和宏任务的概念来讲解不同阶段任务执行的先后顺序,最后通过将浏览器和node下的事件循环机制进行对比,对比其事件循环机制的不同之处,以及在node端通过libuv引擎来实现多个
一文帮你搞懂 Android 文件描述符
介绍文件描述符的概念以及工作原理,并通过源码了解Android中常见的FD泄漏。
深入浅出 ZooKeeper
本文通过全面的介绍ZooKeeper,希望帮助读者加深对ZooKeeper的认知。
分布式集群如何实现高效的数据分布
随着互联网的发展,数据成指数级增长,对数据的存储造成了极大挑战。本文介绍了一种高效的解决方案——DHT,通过一个简单的DHT实例,由浅入深解析其中的优缺点,并一步步进行改进,加强对DHT的理解。
vivo 官网资源包适配多场景的应用
本文介绍了资源包的概念及使用场景,同时对资源包的几种使用方案进行对比。通过本文,大家可以快速掌握资源包的使用方法,解决单一配置满足多场景、多样式的问题。
DevTools 实现原理与性能分析实战
本文通过分析Chrome的DevTools的技术实现,特别是在浏览器内核中的实现部分,来展示这款被万千开发者所喜爱的开发工具背后的秘密。本文适合阅读对象主要有前端开发者、有志于开发Hybrid应用调试工具或重写webdriver实现对Chrome或WebView控制的应用工程师。