java技术
文章平均质量分 89
why技术
在这里我会分享一些java技术相关的知识,用匠心敲代码,对每一行代码负责。感谢你的关注,愿你我共同进步。
展开
-
别问了,我真的不喜欢这个注解!
你好呀,我是why。我之前写过一些关于线程池的文章,然后有同学去翻了一圈,发现我没有写过一篇关于 @Async 注解的文章,于是他来问我:是的,我摊牌了。我不喜欢这个注解的原因,是因为我压根就没用过。我习惯用自定义线程池的方式去做一些异步的逻辑,且这么多年一直都是这样用的。所以如果是我主导的项目,你在项目里面肯定是看不到 @Async 注解的。那我之前见过 @Async 注解吗?肯定是见过啊,有的朋友就喜欢用这个注解。一个注解就搞定异步开发,多爽啊。我不知道用这个注解的人知不知道其原理原创 2021-09-06 12:36:25 · 2362 阅读 · 9 评论 -
几行烂代码,我赔了16万。
你好呀,我是why。前几天在某平台看到一个技术问题,很有意思啊。涉及到的两个技术点,大家平时开发使用的也比较多,但是属于一个小细节,深挖下去,还是有点意思的。来,先带你看一下问题是什么,同时给你解读一下这个问题:https://segmentfault.com/q/1010000040361592首先,这位同学给出了一个代码片段:他说他有一个 func 方法,这个方法里面干了两件事:1.先查询数据库里面的商品库存。2.如果还有库存,那么对库存进行减一操作,模拟商品卖出。对于第二件事,原创 2021-08-23 12:35:39 · 1325 阅读 · 9 评论 -
卷向字节码-Java异常到底是怎么被处理的?
你好呀,我是why,你也可以叫我歪歪。比如下面这位读者:他是看了我《神了!异常信息突然就没了?》这篇文章后产生的疑问。既然是看了我的文章带来的进一步思考,恰巧呢,我又刚好知道。虽然这类文章看的人少,但是我还是来填个坑。害,真是暖男石锤了。异常怎么被抛出的。 先上一个简单代码片段:运行结果大家都是非常的熟悉。光看这仅有的几行代码,我们是探索不出来什么有价值的东西。我们都知道运行结果是这样的,没有任何毛病。这是知其然。那么所以然呢?所以然,就藏在代码背后的字节码里面。通过 ja原创 2021-08-10 12:35:58 · 533 阅读 · 0 评论 -
这波性能优化,太炸裂了!
你好呀,我是why。不是,这不是我。我还年轻,也比他帅。这是今天文章的主人公。他叫做 Brett Wooldridge,你应该是不认识的。但是我把他的 github 截图给你看看,你一定知道他写的开源项目:看到了吗?他就是大名鼎鼎的 HikariCP 的爸爸啊。而且你看他的 github 的简介,写的很有感觉:Father of an angel who fell to Earth and somehow into my life.一个落到地球上的天使的父亲,她不知不觉地进入了我原创 2021-08-09 12:39:12 · 691 阅读 · 0 评论 -
Redis挂了,流量把数据库也打挂了,怎么办?
你好呀,我是歪歪。是这样的,前几天有个读者给我发消息,说面试的时候遇到一个场景题:他说他当时,一时间竟然找不到回答问题的角度,感觉自己没有回答到点子上。我仔细想了一下,确实是感到这个问题有一丝丝的奇怪,有一种让人千言万语,又突然懵逼不知从何说起的神奇力量。为什么这么说呢?我们先读题啊,仔细的读一遍题,我给你翻译一下。如果线上 Redis 挂了。然后所有请求打到数据库导致数据库也挂了。这是啥?Redis 挂了,不就是缓存都没了吗?缓存都没了,不就是缓存雪崩了吗?缓存雪崩了,不就导致数原创 2021-08-02 12:41:54 · 1075 阅读 · 1 评论 -
JVM优化过头了,直接把异常信息优化没了?
你好呀,我是why。你猜这次我又要写个啥没有卵用的知识点呢?不好意思,问的稍微有点早了,啥提示都没给,咋猜呢,对吧?先给你上个代码:public class ExceptionTest { public static void main(String[] args) { Strin原创 2021-07-20 12:41:37 · 596 阅读 · 1 评论 -
一个排序引发的BUG
你好呀,我是why。前两天在 Git 上闲逛的时候又不知不觉逛到 Dubbo 那里去了。看了一下最近一个月的数据,社区活跃度还是很高的:然后看了一下最新的 issue,大家提问都很积极。其中看到了这样的一个 issue,发现有点意思:https://github.com/apache/dubbo/issues/8055于是写下这篇文章给你分享一下这个 BUG 和 BUG 背后的故事。放心,就算你完全不懂 Dubbo,也不影响你了解这个 BUG。先说一下,下文中提到的 Dubbo 代码原创 2021-06-29 12:30:40 · 299 阅读 · 0 评论 -
曝光一个网站,我周末就耗在上面了。
这是why的第 107 篇原创文章你好呀,我是why。刚刚过去的周末你干啥了,是卷起来了,还是躺平了?我其实是想躺平的,但是无意间发现一个学习的网站,居然被这个网站吸引了,然后就跟着网站卷起来了。真是一个非常不错的网站,好东西,要大家分享,于是我决定“曝光”一下。介绍这个网站之前,我先问你一个问题:Arthas 这个 Java 程序诊断工具,你知道吧?我相信绝大部分同学都是知道的,但是也有很大一部分同学仅仅是在“纸上谈兵”的阶段而已。没有自己实际操作过。为什么呢?我猜你刚刚知道 Ar原创 2021-06-21 11:48:22 · 462 阅读 · 1 评论 -
我不服!这开源项目居然才888个星!?
你好呀,我是why。是的,我又发现了一个宝藏,又迫不及待的想分享给大家。这个宝藏是一个开源项目,或者叫做一本开源的书。让我意难平的是,这本写的如此具有学习潜力和指导意义的开源书,目前才 887 个 Star。赶得早不如赶得巧,我就是第 888 个点 Star 的人,听起来就很有缘分的样子:https://icyfenix.cn/先看一下我看了之后整理的思维导图吧:看不清没关系,文末会给你领取链接的。看完之后我个人的一个感受是:关于分布式架构方向,写的很多很全。而且都是笔者一路走过来原创 2021-06-11 12:52:00 · 418 阅读 · 1 评论 -
知乎的一次29.7元的咨询
你好呀,我是why。之前不是说有人在知乎上向我提起了一个咨询嘛。我今天整理了一下,把关键信息脱敏之后,分享出来给大家。但是写的过程中我其实几度是想要放弃的。感觉这玩意写出来像是一种人生导师的口吻。我自己都没活明白呢,何德何能去当别人的导师?所以需要事先说明一下的是,关于该问题的回复,纯粹是基于个人有限的人生阅历和职业生涯,加上自己的一些所见所闻,给出的自己角度的回答。每个人看问题的角度,导致最终得出的答案千差万别。没关系,理性交流,文明开杠。问题 您好,我是昨天晚上在知乎上和您聊天的人.原创 2021-05-31 11:51:55 · 278 阅读 · 1 评论 -
面试官:啥是请求重放呀?
这是why的第 103 篇原创你好呀,我是why。如图,重放攻击,这题我真的在面试的时候遇到过,两次。印象比较深的是第一次遇到这个面试题的时候,也是第一次听到“重放攻击”这个词的时候,一脸蒙蔽,于是我就连蒙带猜的,朝着接口幂等性的方向去答了。结果就凉了。要回答怎么防止重放攻击,那么我们得知道啥是重放攻击。学术上的解释是这样的:重放攻击(英语:replay attack,或称为回放攻击)是一种恶意或欺诈的重复或延迟有效数据的网络攻击形式。 这可以由发起者或由拦截数据并重新传输数据的对手来执行原创 2021-05-18 12:40:41 · 1865 阅读 · 0 评论 -
414天前,我以为这是编程玄学...
你好呀,我是why。不知道大家还有没有印象,我曾经写了这样的一篇文章:《一个困扰我122天的技术问题,我好像知道答案了。》文章我给出了这样的一个示例:public class VolatileExample { private static boolean flag = false; private static 原创 2021-05-10 12:36:52 · 337 阅读 · 0 评论 -
老爷子这代码,看跪了!
这是why的第 99 篇原创文章你好呀,我是why哥。不是,这个照片不是我,标题说的老爷子就是这个哥们,这事得从前几天说起。前几天,发现在一个大佬云集的技术群里面,大佬们就 Happens-Before 关系和 as-if-serial 语义进行了激烈的讨论。而我一看时间,快到 23 点了,大佬们都这么卷,那我必须得跟着卷进去,于是看了一下他们的聊天记录。而我,作为一只菜鸡,虽然没有什么参与感,但是感觉大佬们说的都挺有道理的,据理力争。所以基本上,我全程就是这样的:但是,当他们说着说着就聊原创 2021-04-27 13:15:13 · 401 阅读 · 1 评论 -
面试官一个线程池问题把我问懵逼了。
这是why的第 98 篇原创文章前几天,有个朋友在微信上找我。他问:why哥,在吗?我说:发生肾么事了?他啪的一下就提了一个问题啊,很快。我大意了,随意瞅了一眼,这题不是很简单吗?结果没想到里面还隐藏着一篇文章。故事,得从这个问题说起:上面的图中的线程池配置是这样的:ExecutorService executorService = new ThreadPoolExecutor(40, 80, 1, TimeUnit.M原创 2021-04-13 12:30:01 · 485 阅读 · 0 评论 -
这个Bug的排查之路,真的太有趣了。
这是why哥的第 92 篇原创文章在《深入理解Java虚拟机》一书中有这样一段代码:public class VolatileTest { public static volatile int race = 0; public static void increase() {&nbs原创 2021-03-16 20:17:14 · 349 阅读 · 0 评论 -
我给Apache顶级项目贡献了点源码。
这是why技术的第 91 篇原创文章这篇文章其实并没有什么技术性的分享,从我的角度而言,更多是记录和思考。把我对于源码和之前写的部分文章反哺给我的一些东西,带来的一点点思考分享给大家。一行源码我很长时间没打开我的 Outlook 邮箱了。前两天打开的时候发现我之前给 Dubbo 提交的 pr 居然已经被合并到 master 了:这是第一次,我提交的 pr 被合并了。这个 pr 是修复 LFU 缓存策略在 Dubbo 中即使配置了,也不起作用的 bug。于是我也算是为开源项目贡献过源码的人原创 2021-03-09 12:45:08 · 402 阅读 · 0 评论 -
凉了呀,面试官叫我设计一个排行榜。
这是why哥的第89篇原创文章前两天,有一个读者给我发了一张图片。我问:发什么肾么事了?于是有了这样的对话:他发的图,就是微信运动步数排行榜的截图:其实扯了这么多,这就是个常见的面试场景题:如何设计一个排行榜?这个题吧,其实就是考你面试准备范围的广度,见过就会答,没见过...就难说了。当然,如果你在实际业务中做过排行榜,那么这题正中下怀,你也不要笑出声来,场景题面试官是会给你思考时间的。所以你不要张口就来,你只需要眉头稍稍一皱,给面试官说:这题我想想啊。然后稍微组织一下语言,说出来就原创 2021-03-02 19:49:56 · 1962 阅读 · 3 评论 -
布隆,牛逼!布谷鸟,牛逼!
这是why的第86篇原创文章在早期文章里面我曾经写过布隆过滤器:哎,这糟糕透顶的排版,一言难尽.......其实写文章和写代码一样。看到一段辣眼睛的代码,正想口吐芬芳:这是哪个煞笔写的代码?结果定睛一看,代码上写的作者居然是自己。甚至还不敢相信,还要打开看一下 git 的提交记录。发现确实是自己几个月前亲手敲出来,并且提交的代码。于是默默的改掉。出现这种情况我也常常安慰自己:没事,这是好事啊,说明我在进步。好了,说正事。当时的文章里面我说布隆过滤器的内部原理我说不清楚。其实我只是原创 2021-02-02 20:06:40 · 918 阅读 · 1 评论 -
Java并发编程常识
这是why的第 85 篇原创文章写中间件经常要做两件事:1.延迟加载,在内存缓存已加载项。2.统计调用次数,拦截并发量。就这么个小功能,团队里的人十有八九写错。上面这句话不是我说的,是梁飞在他的博客里面说的。梁飞是谁?据网上的公开资料,梁飞,花名虚极。2009 年加入阿里巴巴,负责中间件的开发,Dubbo 开源分布式服务框架作者,HTTL 开源模板引擎作者。2012 年加入天猫,负责手机天猫 APP 的技术团队,见证了天猫双 11 无线化全过程。热衷参与开源社区建设,传播服务化原创 2021-01-26 12:56:21 · 334 阅读 · 0 评论 -
哎,这让人抠脑壳的 LFU。
这是why哥的第 83 篇原创文章让人抠脑壳的 LFU前几天在某APP看到了这样的一个讨论:看到一个有点意思的评论:LFU 是真的难,脑壳都给我抠疼了。如果说 LRU 是 Easy 模式的话,那么把中间的字母从 R(Recently) 变成 F(Frequently),即 LFU ,那就是 hard 模式了。你不认识 Frequently 没关系,毕竟这是一个英语专八的词汇,我这个英语八级半的选手教你:所以 LFU 的全称是Least Frequently Used,最不经常使用策略。原创 2021-01-12 12:33:21 · 249 阅读 · 0 评论 -
其实吧,LRU也就那么回事。
这是why哥的第 81 篇原创文章你面试的时候遇见过LRU吗?LRU 算法,全称是Least Recently Used。翻译过来就是最近最少使用算法。这个算法的思想就是:如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。所以,当指定的空间已存满数据时,应当把最久没有被访问到的数据淘汰。听描述你也知道了,它是一种淘汰算法。这个算法也是面试的一个高频考点。有的面试官甚至要求手撸一个 LRU 算法出来。其实我觉得吧,遇到这种情况也不要慌,你就按照自己的思路写一个出来就行原创 2020-12-29 12:08:18 · 248 阅读 · 0 评论 -
我叫你不要重试,你非得重试。这下玩坏了吧?
批评一下前几天和一个读者聊天,聊到了 Dubbo 。他说他之前遇到了一个 Dubbo 的坑。我问发生甚么事儿了?然后他给我描述了一下前因后果,总结起来就八个字吧:超时之后,自动重试。对此我就表达了两个观点。读者对于使用框架的不熟悉,不知道 Dubbo 还有自动重试这回事。是关于 Dubbo 这个自动重试功能,我觉得出发点很好,但是设计的不好。第一个没啥说的,学艺不精,继续深造。主要说说第二个。有一说一,作为一个使用 Dubbo 多年的用户,根据我的使用经验我觉得 Dubbo 提供重.原创 2020-12-15 12:29:42 · 224 阅读 · 0 评论 -
一个基于运气的数据结构,你猜是啥?
排行榜懂行的老哥一看这个小标题,就知道我要以排行榜作为切入点,去讲 Redis 的 zset 了。是的,经典面试题,请实现一个排行榜,大部分情况下就是在考验你知不知道 Redis 的 zset 结构,和其对应的操作。当然了,排行榜我们也可以基于其他的解决方案。比如 mysql。我曾经就基于 mysql 做过排行榜,一条 sql 就能搞定。但是仅限于数据量比较少,性能要求不高的场景(我当时只有 11支队伍做排行榜,一分钟刷新一次排行榜)。对于这种经典的面试八股文,网上一找一大把,所以本文就不去做.原创 2020-12-07 12:45:10 · 281 阅读 · 0 评论 -
面试官问我:什么是高并发下的请求合并?
这是why哥的第 76 篇原创文章从一道面试题说起前段时间一个在深圳的,两年经验的小伙伴出去面试了一圈,收割了几个大厂 offer 的同时,还总结了一下面试的过程中遇到的面试题,面试题有很多,文末的时候我会分享给大家。这次的文章主要分享他面试过程中遇到的一个场景题:他说对于这个场景题,面试的时候没有什么思路。说真的,请求合并我知道,高并发无非就是快速的请求合并。但是在我有限的认知里面,如果类似于秒杀的高并发扣库存这个场景,用请求合并的方式来做,我个人感觉是有点怪怪的不够传统。在传统的,或者说原创 2020-11-23 12:36:43 · 970 阅读 · 1 评论 -
这个Map你肯定不知道,毕竟存在感确实太低了。
这是why哥的第 75 篇原创文章从Dubbo的优雅停机说起好吧,其实本文并不是讲 Dubbo 的优雅停机的。只是我在 Dubbo 停机方法 DubboShutdownHook 类中,看到了这样的一段代码:很明显,这个地方最关键的地方是红框框起来的部分。而这个 addShutdownHook 其实是 JDK 的方法:java.lang.Runtime#addShutdownHook最终,把传进来的 hook 放到了 hooks 里面。你说 hooks 是这个什么玩意?这个 hooks原创 2020-11-16 12:46:36 · 430 阅读 · 0 评论 -
要我说,多线程事务它必须就是个伪命题!
这是why技术的第 74 篇原创文章深夜怼文的我别问,问就是不行分布式事务你应该是知道的。但是这个多线程事务......没事,我慢慢给你说。如图所示,有个小伙伴想要实现多线程事务。这个需求其实我在不同的地方看到过很多次,所以我才说:这个问题又出现了。那么有解决方案吗?在此之前,我的回答都是非常的肯定:毋庸置疑,肯定是没有的。为什么呢?我们先从理论上去推理一下。来,首先我问你,事务的特性是什么?这个不难吧?八股文必背内容之一,ACID 必须张口就来:原子性(Atomicity)原创 2020-11-09 13:06:50 · 974 阅读 · 1 评论 -
快来,我悄悄的给你说几个HashCode的破事。
这是why技术的第 72 篇原创文章Hash冲突是怎么回事在这个文章正式开始之前,先几句话把这个问题说清楚了:我们常说的 Hash 冲突到底是怎么回事?直接上个图片:你说你看到这个图片的时候想到了什么东西?有没有想到 HashMap 的数组加链表的结构?对咯,我这里就是以 HashMap 为切入点,给大家讲一下 Hash 冲突。接着我们看下面这张图:假设现在我们有个值为 [why技术] 的 key,经过 Hash 算法后,计算出值为 1,那么含义就是这个值应该放到数组下标为 1 的地方。原创 2020-11-02 12:27:08 · 669 阅读 · 0 评论 -
1000个并发线程,10台机器,每台机器4核,设计线程池大小
这是why哥的第 71 篇原创文章一道面试题兄弟们,怎么说?我觉得如果你工作了两年左右的时间,或者是突击准备了面试,这题回答个八成上来,应该是手到擒来的事情。这题中规中矩,考点清晰,可以说的东西不是很多。但是这都上血书了,那不得分析一波?先把这个面试题拿出来一下:1000 多个并发线程,10 台机器,每台机器 4 核,设计线程池大小。这题给的信息非常的简陋,但是简陋的好处就是想象空间足够大。第一眼看到这题的时候,我直观的感受到了两个考点:线程池设计。负载均衡策略。我就开门见山的原创 2020-10-26 12:34:11 · 2137 阅读 · 1 评论 -
这玩意比ThreadLocal叼多了,吓得why哥赶紧分享出来。
这是why哥的第 70 篇原创文章从Dubbo的一次提交开始故事得从前段时间翻阅 Dubbo 源码时,看到的一段代码讲起。这段代码就是这个:org.apache.dubbo.rpc.RpcContext使用 InternalThreadLocal 提升性能。相信作为一个程序猿,都会被 improve performance(提升性能)这样的字眼抓住眼球。心里开始痒痒的,必须要一探究竟。刚看到这段代码的时候,我就想:既然他是要提升性能,那说明之前的东西表现的不太好。那之前的东西是什么?原创 2020-10-19 13:24:59 · 552 阅读 · 1 评论 -
Doug Lea在J.U.C包里面写的BUG又被网友发现了
这是why的第 69 篇原创文章BUG描述一个编号为 8073704 的 JDK BUG,将串联起我的这篇文章。也就是下面的这个链接。https://bugs.openjdk.java.net/browse/JDK-8073704这个 BUG 在 JDK 9 版本中进行了修复。也就是说,如果你用的 JDK 8,也许会遇到这样的问题。先带大家看看这个问题是怎么样的:这个 BUG 说:FutureTask.isDone 方法在任务还没有完成的时候就会返回 true。可以看到,这是一个 P4原创 2020-10-10 12:48:44 · 696 阅读 · 0 评论 -
关于多线程中抛异常的这个面试题我再说最后一次!
这里why的第 66 篇原创文章一道面试题我一年前写过这篇文章《有的线程它死了,于是它变成一道面试题》,这是早期作品,遣词造句,排版行文都有一点稚嫩,但是不知咋地,还是有很多人看过。甚至已经进入了某网红公司的面试题库里面。所以我后面应该会重写一下,翻新翻新,再补充一点新的东西进去。现在先回顾一下这篇文章抛出的问题和问题的答案:一个线程池中的线程异常了,那么线程池会怎么处理这个线程?这个题是我遇到的一个真实的面试题,当时并没有回答的很好。然后通过上面的文章,我在源码中寻找到了答案。先给大家原创 2020-09-21 12:53:33 · 1488 阅读 · 3 评论 -
why哥被阿里一道基础面试题给干懵了,一气之下写出万字长文。
这是why的第 65 篇原创文章荒腔走板大家好,我是 why,欢迎来到我连续周更优质原创文章的第 65 篇。老规矩,先荒腔走板聊聊技术之外的东西。上面这图是去年的成都马拉松赛道上,摄影师抓拍的我。哎,真是阳光向上的 95 后帅小伙啊。今年由于疫情原因,上半年的马拉松比赛全部停摆了。今年可能也没有机会再跑一次马拉松了。只有回味一下去年的成都马拉松了。去年成都马拉松我跑的是半程,只有 21 公里,女朋友也报名跑了一个 5 公里的欢乐跑,所以前 5 公里都是陪着她边跑边玩。过了 10 公里后,赛道两原创 2020-09-13 16:50:21 · 358 阅读 · 0 评论 -
why哥这里有一道Dubbo高频面试题,请查收。
这是why的第 64 篇原创文章荒腔走板大家好,我是 why,欢迎来到我连续周更优质原创文章的第 64 篇。老规矩,先荒腔走板聊聊其他的。上面这图是我之前拼的一个拼图。我经常玩拼图,我大概拼了 50 副左右的 1000 个小块的拼图,但是玩的都是背后有字母或者数字分区提醒的那种,最快纪录是一天拼完一副 1000 块的拼图。但是上面这幅,只有 800 个小块,却是我拼过的最难的一幅。因为这个背后没有任何提示,只能按照前面的色彩、花纹、边框进行一点点的拼凑。前后花了我两周多的时间。这完全是一种找虐原创 2020-09-06 16:40:14 · 265 阅读 · 0 评论 -
没想到吧!关于Dubbo的『消费端线程池模型』官网也写错了。
这是why的第 63 篇原创文章荒腔走板大家好,我是 why,欢迎来到我连续周更优质原创文章的第 63 篇。老规矩,先荒腔走板聊聊其他的。上面这张图片是我前几天整理相册的时候看到的。拍摄于 2016 年 8 月 20日,北京。那个时候我刚刚去北京没多久,住在公司的提供的宿舍里面。宿舍位于北京二环内的一个叫做东廊下的胡同里。位置极佳,条件极差。我刚刚进入宿舍的时候,房间里面只有一张大床、一个矮矮的电视柜、一个不能摇头的风扇。我的房间也没有空调,到处都是灰蒙蒙的,用卫生间都是去楼下的公共卫生间。原创 2020-09-01 12:40:57 · 421 阅读 · 0 评论 -
笑了,面试官问我知不知道异步编程的Future。
荒腔走板大家好,我是 why,欢迎来到我连续周更优质原创文章的第 60 篇。老规矩,先来一个简短的荒腔走板,给冰冷的技术文注入一丝色彩。上面这图是我五年前,在学校宿舍拍的。前几天由于有点事情,打开了多年没有打开的 QQ。然后突然推送了一个“那年今日”发送的动态。这张图片就是那个动态里面的。2015 年 8 月的时候正是大三放暑假的时间,但是那个暑假我找了一个实习,所以暑假期间住在学校里面。宿舍就我一个人。那个时候我完全没有意识到,这是我程序猿生涯的一个真正的开端,也是我学生时代提前结束的宣告。.原创 2020-08-09 15:55:41 · 413 阅读 · 0 评论 -
我靠!Semaphore里面居然有这么一个大坑!
这是why的第 59 篇原创文章荒腔走板大家好,我是why哥 ,欢迎来到我连续周更优质原创文章的第 59 篇。上周写了一篇文章,一不小心戳到了大家的爽点,其中一个转载我文章的大号,阅读量居然突破了 10w+,我也是受宠若惊。但是其实我是一个技术博主来的,偶尔写点生活相关的。所以这篇还是回到技术上。但是我的技术文章有个特点是第一张图片都是我自己拍的。然后我会围绕这个图片进行一个简短的描述,我称之为荒腔走板环节。目的是给冰冷的技术文注入一丝色彩。我这样做已经坚持了很多篇 ,有的读者给我说:看完荒原创 2020-08-02 17:34:43 · 969 阅读 · 0 评论 -
我的程序跑了60多小时,就是为了让你看一眼JDK的BUG导致的内存泄漏。
这次的文章从JDK的J.U.C包下的ConcurrentLinkedQueue队列的一个BUG讲起。jetty框架里面的线程池用到了这个队列,导致了内存泄漏。同时通过jconsole、VisualVM、jmc这三个可视化监控工具,让你看见“内存泄漏”的发生。有点意思,大家一起看看。从一个BUG说起前段时间翻到了一个 JDK 有点意思的 BUG,带大家一起瞅瞅。https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8137185memory le原创 2020-07-12 22:08:23 · 1218 阅读 · 2 评论 -
快来!我从源码中学习到了一招Dubbo的骚操作!
荒腔走板大家好,我是 why,欢迎来到我连续周更优质原创文章的第 55 篇。老规矩,先来一个简短的荒腔走板,给冰冷的技术文注入一丝色彩。魔幻的 2020 年的上半年过去了,很多人都在朋友圈和上半年说再见,我也不例外。上面这张照片,就是我在朋友圈发的一张图片。这张照片是我在公司去年年会的时候拍的,出处来自电影《飞驰人生》。电影里面有人问张弛:你五年连续获得冠军的必胜绝招是什么?张驰满怀深情的回答:必胜绝招只有两个字—奉献。就是把你的全部,奉献给你所热爱的一切。什么是热爱?可以用电影里面的.原创 2020-07-07 12:46:38 · 242 阅读 · 0 评论 -
我从LongAdder中窥探到了高并发的秘籍,上面只写了两个字...
这是why的第 53 篇原创文章荒腔走板大家好,我是why。时间过的真是快,一周又要结束了。那么,你比上周更博学了吗?先来一个简短的荒腔走板,给冰冷的技术文注入一丝色彩。上面这图是我之前拼的一副拼图,一共划分了800块,背面无提示,难度极高,我花了两周的时间才拼完。拼的是坛城,传说中佛祖居住生活的地方。第一次知道这个名词是 2015 年,窝在寝室看纪录片《第三极》。其中有一个片段讲的就是僧人为了某个节日用沙绘画坛城,他们的那种专注,虔诚,真挚深深的打动了我,当宏伟的坛城画完之后,他静静的等待原创 2020-06-22 12:44:10 · 363 阅读 · 0 评论 -
震惊!ConcurrentHashMap里面也有死循环,作者留下的“彩蛋”了解一下?
JDK BUG这篇文章,聊一下我最近才知道的一个关于 JDK 8 的 BUG 吧。首先说一下我是怎么发现这个 BUG 的呢?大家都知道我对 Dubbo 有一定的关注,前段时间 Dubbo 2.7.7 发布后我看了它的更新点,就是下面这个网址:https://github.com/apache/dubbo/releases/tag/dubbo-2.7.7其中有 Bugfixes 这一部分:每一个我都去简单的看了一下,其他的 Bugfixes 或多或少都和 Dubbo 框架有一定的关联性。但是上面原创 2020-06-14 21:37:39 · 416 阅读 · 1 评论