volatile可见性原理最强总结

herman 6年前 (2020-01-11) 3191浏览

最近看到一篇很好的 volatile 可见性原理总结,分享给大家! volatile 是一种轻量且在有限的条件下线程安全技术,它保证修饰的变量的可见性和有序性,但非原子性。相对于 synchronize 高效,而常常跟 synchronize...

从根上理解order by limit分页数据重复问题

herman 6年前 (2020-01-11) 2581浏览

这个问题相信不少人都遇到过,但很少有人追根溯源。今天我抽出一点时间,来讨论讨论 order by + limit 在什么情况下会出现分页数据重复。 昨天在“CTO”群提问了之后,不少大神都回答的相当正确。我这里结合一下他们的回答,并补充一些内...

被 YYYY-MM-dd Bug 到的除了你还有腾讯微信!

herman 6年前 (2020-01-03) 3120浏览

Ctrl + C 和 Ctrl + V 使用惯了,Bug 都一样,翻车也一起翻! 这两天,相信不少公司都被 YYYY-MM-dd 的时间格式化方式坑到了。其中包括,小米,微信等互联网一线大型公司。 微信赞赏里面直接出现了错误日期的 Bu...

对不起,网上的那些 Redis 分布式锁的用法都是错的!

herman 6年前 (2019-12-23) 3156浏览

Redis 分布式锁的文章,网上一大片。但是大多数的实现,都有存在漏洞!这也正是为什么 Redis 的作者推出 Redlock 的原因之一了。 今天,我来说说,常见的 Redis 分布式锁都有哪些漏洞! 分布式锁的 N 多 Bug,你真...

吐槽一下 Java 8 Lambda 表达式的优缺点

herman 6年前 (2019-12-12) 5857浏览

使用 Java 8 有很长的一段时间了,对它的 Lambda 表达式爱不释手,但是最近发现它的缺点也不少! 原本项目跑的是很顺利的,直到有一天改了某个需求,随手把这个任务分给了其他新同事,谁知新同事看不懂 Lambda,源码阅读起来太困难了!...

Mac 下 ProtoBuf 的安装教程

herman 6年前 (2019-11-30) 3869浏览

Mac 下的软件安装其实非常的简单。前提是你安装 Homebrew,今天就有一个新手 Mac 用户问我如何安装 ProtoBuf,这里我录制了一个小的视频教程和写了这篇文章,方便大家在 Mac 下安装 ProtoBuf。 安装之前,我们可以先...