9 xindoo

尚未进行身份认证

我要认证

一个有趣有料的程序猿,9年技术博主,曾在阿里做过3年运维相关工作,现为某厂Java后端开发工程师,拥有丰富的挖坑踩坑填坑背锅经验[狗头],专注于Java,对操作系统、网络、编译原理也有涉猎,目前正在写一门简易的脚本语言。

等级
TA的排名 3k+

[视频]程序猿到底要不要刷Leetcode?

程序猿到底要不要刷Leetcode.mp4

2020-08-03 10:01:34

JDK11现存性能bug(JDK-8221393)深度解析

这是一篇鸽了很久的博客,因为博客内容和素材早就准备差不多了,但就是一直懒得整理,今天终于下定决心终于整理出来了。先大致介绍下这个bug,准确说这个应该是jdk11新引入的zgc的一个bug,该bug在被触发的情况下会导致进程CPU使用率会逐渐升高,如果不管的话最终CPU会到100% 影响服务可用性,而且这个性能bug在jdk11最新的代码中仍未修复。不过不用担心,这个bug触发的要求比较苛刻,估计这也是jdk开发者不修复该bug的原因之一。另外,我在翻看jdk12源码时发现该bug已被修复,并且有些相关设

2020-07-12 13:07:16

生日悖论是啥?我用它省了上百G的内存

生日悖论: 是指在不少于 23 个人中至少有两人生日相同的概率大于 50%。例如在一个 30 人的小学班级中,存在两人生日相同的概率为 70%。对于 60 人的大班,这种概率要大于 99%。从引起逻辑矛盾的角度来说,生日悖论并不是一种 “悖论”。但这个数学事实十分反直觉,故称之为一个悖论。生日悖论是有个有趣的概念,但这和我省上百G的内存有什么关系?背景首先介绍下背景,工作中我负责了一个广告数据系统,其中一个功能就是对同一次请求的广告曝光去重,因为我们只需要知道这次请求这个广告的一次曝光就行了,那些同一

2020-07-04 13:44:53

为什么美国程序员工作比中国程序员工作轻松、加班少?

转自:量子位(整理)+ 知乎按惯例,先问是不是,再问为什么。从知乎回答浏览量看,是的。那么为什么美国程序员就可以到点下班回家,而中国程序员就要每天“主动”、“无偿”加班呢?仔细看了群众们热情的回答之后,大概可以分为几派:1、产品经理不够通情达理,导致效率低下2、表演性加班,太早回家会被认为不努力工作3、不尊重技术人才,35岁警告⚠️4、中国处于后发追赶,不加班是追不上的一起来看看具体的吐槽内容:开发和 PM 的斗争...

2020-07-02 12:22:42

一文理解操作系统虚拟内存

原文地址An introduction to virtual memory计算机是用来执行简单任务的复杂机器:比如 上网、文本编辑、网页服务、视频游戏……,还可以对数据进行操作,图片 音乐 文本 数据库……当计算机不使用的时候,程序和数据都安静地躺在磁盘里,即便你关机了数据也会在。运行一个应用就是让处理器(CPU)读取和执行程序代码的机器指令处理数据。磁盘可以保存大量的信息,但存取的时候都非常非常慢,比CPU慢得多,如果CPU直接从磁盘中读取指令,显然会成为整个系统的性能瓶颈。为此,主存/内存(R.

2020-06-25 14:44:58

Json字段选取器介绍和实现

最近为了工作方便写了一个小工具,这个小工具作用很简单,就是从一个json字符串中筛出你想要的部分。介绍背景是这样的,我们为了线上调试方便,有个工具可以模拟发起一次数据请求,然后将结果以json的形式展示到页面上。但问题是这个数据包含的信息非常多,动不动就上千行(如上图),但每次debug的时候,只想看里面特定的几个字段,平常只能依赖于浏览器搜索工具一行一行搜,可能想看的字段会间隔好几屏,一行行看即低效还容易漏。 如果要看JsonArray的数据,我之前是拷贝出来,然后用grep把字段筛出来,但这样又丢.

2020-06-20 22:54:42

从0到1打造正则表达式执行引擎(二)

在上篇博客从0到1打造正则表达式执行引擎(一)中我们已经构建了一个可用的正则表达式引擎,相关源码见https://github.com/xindoo/regex,但上文中只是用到了NFA,NFA的引擎建图时间复杂度是O(n),但匹配一个长度为m的字符串时因为涉及到大量的递归和回溯,最坏时间复杂度是O(mn)。与之对比DFA引擎的建图时间复杂度O(n^2),但匹配时没有回溯,所以匹配复杂度只有O(m),性能差距还是挺大的。DFA和NFA我们已经多次提到了NFA和DFA,它俩究竟是啥?有啥区别?首先,NF

2020-05-31 20:03:26

技术团队如何培养新人

文章目录对新人设立明确的阶段性目标提高新人培训的优先级和重视程度完善师徒体系增加理论知识的比重模拟实战经验分享定期培训题外话水一篇我17年写的内容。背景是我当时工作方向上的变化,但一直感觉上手很慢。刚工作时也有这种体会,当时纯觉得自己菜,但后来看了《Site Reliability Engineering》和《The effective engineer》之后发现不完全是自己菜,而是缺少正确的指引,很多东西完全靠自己踩坑才知道了,学习效率很低。这种状态下,除了被别人质疑能力外,还会逐渐产生自我怀疑,导致情

2020-05-18 21:50:50

面试题精选:循环队列

近期在面试找工作的小伙伴们很多啊,我周围就有好几个认识的朋友在找工作,于是我突发奇想在CSDN开了一个面试题精选的专栏,主要会关注一些算法题、设计题,次要会补充一些java面试相关的题(比较本博主是java出身)。其实在此之前已经写过一些相关的文章了,已经整理到专栏里的,后续会持续更新,希望对大家有所帮助,有兴趣的旁友可以关注下。今天分享的面试题是循环队列,我对这道题记忆深刻,因为我在14年参加来校招面试的时候,二面面试官就问了这道题,当时我没有完全答上来(不过面试官居然给我过了),后来我当面试官的时候也

2020-05-10 17:06:57

从0到1打造正则表达式执行引擎(一)

文章目录前置知识有限状态机状态机下的正则表达式串联匹配并连匹配 (正则表达式中的 **|**)重复匹配(正则表达式中的 **? + ***)重复0-1次 ?重复1次以上重复0次以上匹配指定次数特殊符号(正则表达式中的 **. \d \s……**)子表达式(正则表达式 **()**)练习题代码实现建图匹配下集预告功能完善化DFA引擎正则引擎优化今天是五一假期第一天,这里先给大家拜个晚年,咳咳!!我...

2020-05-01 17:28:42

面试题精选:求根号2简单?高级算法你肯定不会

前两天逛github看到一道很简单的面试题——如何不用库函数快速求出2\sqrt22​的值,精确到小数点后10位! 第一反应这不很简单嘛,大学数据结构课讲二分查找的时候老师还用这个做过示例。但转念一想,能作为大厂的面试题,背后绝对没有那么简单,于是我google了下,结果找到了更巧妙的数学方法,甚至发现了一件奇闻趣事…… 一道简简单单的面试题,不仅能考察到候选人的编程能力,还能间接考察到候选人的数...

2020-04-12 20:30:23

欢迎关注我的微信公众号

公众号注册n年了,但一直都没怎么发过文章,真是五年运营四年敷衍,去年年底在做自我年终总结的时候放下豪言说要开始重新运营公众号了,但一拖就拖到了3月底。这几个月想了好久的公众号定位,大概有些方向了(下文细说),所以决定摒弃我这间歇性踌躇满志持续性萎靡不振的毛病,硬着头皮开更了。自我介绍大家好 我是xindoo,这个id在我上高中的时候就被我创造出来了,也用了好久了,所以基本上你在全球各网站看到名...

2020-03-22 23:51:17

StampedLock源码分析

文章目录前言乐观锁 or 悲观锁源码分析构造函数读锁相关API乐观读锁的实现读锁的获取读锁的释放写锁相关API写锁的获取写锁的释放其他API读锁转写锁写锁转读锁转乐观锁ReadLockView和WriteLockView注意事项参考资料前言之前已经说过了ReentrantLock ReentrantReadWriteLock,可以参考之前的博客。在ReentrantReadWriteLock源...

2020-03-22 16:22:04

技术人必须知道的42个谷歌搜索技巧

前言作为一个技术人,经常会遇到自己不懂或不知道的东西,这个时候就必须使用搜索引擎搜索相关的资料,当然大部分人都逃不过google,google上的内容繁多,如何快速检索和筛选自己想要的信息却成了问题。其实google提供了高级搜索的方式,只是很多人都不太清楚,配合简单的google搜索表达式,可以让你的搜索事半功倍,这里我济源巧合看到国外一篇网站对google搜索命令总结比较完整,整理翻译如下,...

2020-03-15 22:31:11

Antlr实战之JSON解析器slowjson

最近一直在学习编译原理,然后就了解到了antlr4这个强大的工具,antlr的全称是(Another Tool for Language Recognition),是一款很强大的词法和语法分析工具,虽然是用java写成的,但它也能生成c++、go……等语言的代码。它的主要作用就是你可以用巴科斯范式来描述语法规则,然后它帮你生成对应的解析器。大家都知道实践是最好的学习方式,要快速深刻地理解antl...

2020-03-08 20:49:11

刘未鹏:为什么你应该(从现在开始就)写博客

今天转载一篇刘未鹏10多年前的一篇博客《为什么你应该(从现在开始就)写博客》,我觉得总结的非常好,上大学的时候我就看过了,因为这篇博客所以我从13年开始坚持写博客。刘未鹏最近博客也不更了,可能他的博客慢慢就沉下去了,但我觉得他很多优质的内容不能沉,就比如这篇文章,我觉得很适合初入CSDN、刚开始学技术的同学,所以特此转载一次。 原文地址http://mindhacks.cn/2009/02/1...

2020-03-01 18:33:20

Java volatile 关键词

文章目录变量可见性问题Java volatile可见性保证volatile 完全可见性保证指令重排序挑战Java volatile和有序性(Happens-Before)保证volatile还不够什么时候volatile就足够了?volatile的性能考量原文地址Java中的volatile关键词被用来将变量标记为“存储在内存中”。准确地的讲每次volatile变量的读取和写入都是直接操作内存,...

2020-02-23 19:41:58

如何做好一个面试官

找到了我17年写的一篇关于面试官的思考,没有发在csdn上,经过三年的时间,今天看来某些想法不够成熟,所以整理修改后重新发出来。首先声明一点,我没怎么面试过别人,只是参加过几场面试,经历的面试官只有小20个吧,所以根本没有资格去评判某个面试官是不是合格的面试官。但经过我最近的一些经历,以及朋友做面试官的体会,再加上自己对面试的思考,形成了一个自己对面试官好坏评判的标准。其实也算是最自己将来面...

2020-02-20 21:42:56

10行命令60秒快速定位性能瓶颈

文章目录总述1. uptime2. dmesg|tail3. vmstat 1每列的含义4. mpstat -P ALL 15. pidstat 16. iostat -xz 17. free -m8. sar -n DEV 19. sar -n TCP,ETCP 110. top后续分析今天为大家翻译一篇来自Netflix技术博客的Linux Performance Analysis in ...

2020-02-05 14:56:32

ReentrantReadWriteLock源码解析

上回说到ReentrantLock,今天来谈谈读写锁(ReentrantLock)和其具体实现ReentrantReadWriteLock。看这篇文章前,强烈建议你回到先读懂ReentrantLock,因为ReentrantReadWriteLock其实是在ReentrantLock的基础上实现的,可以参考我之前的博客ReentrantLock源码解析既然有了锁,为什么还需要读写锁?我们来想象下...

2020-02-03 20:54:50

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获得
  • 签到王者
    签到王者
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 技术圈认证(专家版)
    技术圈认证(专家版)
    博客专家完成年度认证,即可获得
  • 推荐红人
    推荐红人
    发布高质量Blink获得高赞和评论,进入推荐栏目即可获得
  • 精彩红人
    精彩红人
    发布高质量Blink获得高赞和评论,进入精彩栏目即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力计划专属勋章
    原力计划专属勋章
    2019年《原力计划【第一季】》专属勋章,现已经开启第二季活动啦,小伙伴们快去参加吧
  • 原力探索
    原力探索
    参与《原力计划【第二季】——打卡挑战》的文章入选【每日精选】的博主将会获得此勋章。
  • 原力突破
    原力突破
    参与《原力计划【第二季】— 打卡挑战》的文章入选【打卡挑战周榜】的博主,即可获得此勋章。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 分享精英
    分享精英
    成功上传11个资源即可获取