首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
why技术
why技术
创建于2021-11-29
订阅专栏
一个主要写代码,经常写文章的风骚程序猿。
等 806 人订阅
共179篇文章
创建于2021-11-29
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
面试官:啥是请求重放呀?
这是why的第 103 篇原创 你好呀,我是why。 如图,重放攻击,这题我真的在面试的时候遇到过,两次。 印象比较深的是第一次遇到这个面试题的时候,也是第一次听到“重放攻击”这个词的时候,一脸蒙蔽,
414天前,我以为这是编程玄学...| Java Debug 笔记
上面这个程序是不会正常结束的,因为变量 flag 没有被 volatile 修饰。 而在子线程休眠的 100ms 中, while 循环的 flag 一直为 false,循环到一定次数后...
老爷子这代码,看跪了!
几天前,发现在一个大佬云集的技术群里面,大佬们就 Happens-Before 关系和 as-if-serial 语义进行了激烈的讨论。 而我一看时间,快到 23 点了,大佬们都这么卷,那我必须得跟着
面试官一个线程池问题把我问懵逼了。
一个看似简单的、瞟一眼就能知道答案的问题。但是稍微一变化、一深入、就一脸懵逼了。要不你也来看看,你来你也懵逼...
有哪些道理是我当了程序员后才知道的?
然后当时我就花了几分钟的时间去回答了一下。 我也在公众号里面给大家分享一下吧,但是下面的这些观点,都是我的一家之言,理性讨论,不要开杠。 以下是原回答。 1.当你明白了技术永远是为了业务服务的时候,不再技术至上的时候,你就成长到程序员的下一个阶段了。 2.业务第一,产品第二,技…
这个Bug的排查之路,真的太有趣了。|项目复盘
是不是关注点都在 volatile 关键字上。 甚至马上就要开始脱口而出:volatile 只保证可见性,不保证原子性。而代码中的 race++ 不是原子性的操作,巴拉巴拉巴拉... 当他把代码发给我,我在 idea 里面一粘贴,然后把 main 方法运行起来后,神奇的事情出现…
我给Apache顶级项目贡献了点源码。|项目复盘
这篇文章其实并没有什么技术性的分享,从我的角度而言,更多是记录和思考。 把我对于源码和之前写的部分文章反哺给我的一些东西,带来的一点点思考分享给大家。 我很长时间没打开我的 Outlook 邮箱了。 这是第一次,我提交的 pr 被合并了。 这个 pr 是修复 LFU 缓存策略在…
凉了呀,面试官叫why哥设计一个排行榜。|技术点评
前两天,有一个读者给我发了一张图片。 这个题吧,其实就是考你面试准备范围的广度,见过就会答,没见过...就难说了。 当然,如果你在实际业务中做过排行榜,那么这题正中下怀,你也不要笑出声来,场景题面试官是会给你思考时间的。 所以你不要张口就来,你只需要眉头稍稍一皱,给面试官说:这…
布隆,牛逼!布谷鸟,牛逼!
哎,这糟糕透顶的排版,一言难尽....... 其实写文章和写代码一样。 结果定睛一看,代码上写的作者居然是自己。 甚至还不敢相信,还要打开看一下 git 的提交记录。 发现确实是自己几个月前亲手敲出来,并且提交的代码。 于是默默的改掉。 出现这种情况我也常常安慰自己:没事,这是…
Java并发编程常识
就这么个小功能,团队里的人十有八九写错。 上面这句话不是我说的,是梁飞在他的博客里面说的。 据网上的公开资料,梁飞,花名虚极。 2009 年加入阿里巴巴,负责中间件的开发,Dubbo 开源分布式服务框架作者,HTTL 开源模板引擎作者。 2012 年加入天猫,负责手机天猫 AP…
面试之后,扼腕叹息。
今天我面试了一位候选人。 他面试的这个岗位是一个外包岗位,所以简历使用的是外包公司的统一模板。 我已经用这个模板看了很多份简历了。 所以习惯性的先看了技术栈,然后嫖了一眼学历。 突然被抓住了眼球。 他的简历上写到 2015 年毕业于某高校计算机科学与技术专业。 而这个某高校的计…
哎,这让人抠脑壳的 LFU。
LFU 是真的难,脑壳都给我抠疼了。 如果说 LRU 是 Easy 模式的话,那么把中间的字母从 R(Recently) 变成 F(Frequently),即 LFU ,那就是 hard 模式了。 所以 LFU 的全称是Least Frequently Used,最不经常使用策…
其实吧,LRU也就那么回事。
LRU 算法,全称是Least Recently Used。 翻译过来就是最近最少使用算法。 这个算法的思想就是:如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。所以,当指定的空间已存满数据时,应当把最久没有被访问到的数据淘汰。 听描述你也知道了,它是…
我叫你不要重试,你非得重试。这下玩坏了吧?
前几天和一个读者聊天,聊到了 Dubbo 。 他说他之前遇到了一个 Dubbo 的坑。 然后他给我描述了一下前因后果,总结起来就八个字吧:超时之后,自动重试。 对此我就表达了两个观点。 第一个没啥说的,学艺不精,继续深造。 主要说说第二个。 有一说一,作为一个使用 Dubbo …
一个基于运气的数据结构,你猜是啥?
懂行的老哥一看这个小标题,就知道我要以排行榜作为切入点,去讲 Redis 的 zset 了。 是的,经典面试题,请实现一个排行榜,大部分情况下就是在考验你知不知道 Redis 的 zset 结构,和其对应的操作。 当然了,排行榜我们也可以基于其他的解决方案。比如 mysql。 …
面试官问我:什么是高并发下的请求合并?
前段时间一个在深圳的,两年经验的小伙伴出去面试了一圈,收割了几个大厂 offer 的同时,还总结了一下面试的过程中遇到的面试题,面试题有很多,文末的时候我会分享给大家。 他说对于这个场景题,面试的时候没有什么思路。 说真的,请求合并我知道,高并发无非就是快速的请求合并。 但是在…
这个Map你肯定不知道,毕竟存在感确实太低了。
好吧,其实本文并不是讲 Dubbo 的优雅停机的。 很明显,这个地方最关键的地方是红框框起来的部分。 最终,把传进来的 hook 放到了 hooks 里面。 这个 hooks 调用的是 put 方法,里面放了一个 key,一个 value。 盲猜也知道:这个 hooks 肯定是…
要我说,多线程事务它必须就是个伪命题!
分布式事务你应该是知道的。但是这个多线程事务...... 没事,我慢慢给你说。 如图所示,有个小伙伴想要实现多线程事务。 这个需求其实我在不同的地方看到过很多次,所以我才说:这个问题又出现了。 在此之前,我的回答都是非常的肯定:毋庸置疑,肯定是没有的。 我们先从理论上去推理一下…
快来,我悄悄的给你说几个HashCode的破事。
对咯,我这里就是以 HashMap 为切入点,给大家讲一下 Hash 冲突。 假设现在我们有个值为 [why技术] 的 key,经过 Hash 算法后,计算出值为 1,那么含义就是这个值应该放到数组下标为 1 的地方。 但是如图所示,下标为 1 的地方已经挂了一个 eat 的值…
下一页