XINDOO

AI工具人
提示词工程师
2021渐入佳境-XINDOO

2021渐入佳境

大家好,我是XINDOO,今天是2022年的第一天,写下我过去一年的自我总结。这已经是我连续第9年写总结了,等明年的时候可能会来个十年大总结(对我过去8年有兴趣可以看下文末链接)。 21年 疫情、经济下行、大厂裁员…… 可能影响了很多人,但...

赞(2)xindooxindoo总结 阅读(1337)去评论
为什么程序猿都应该学点linux命令?-XINDOO

为什么程序猿都应该学点linux命令?

大家好,我是xindoo,今天和大家分享下一个我的观点——程序猿都应该学点Linux命令!这也是这两年我做后端开发的切身体会。认识我的人可能都知道,我职业生涯比较“特殊”,我毕业后先是干的运维,然后再转的Java开发。 运维的经历苦不堪言,...

赞(3)xindooxindooLinux 阅读(1983)评论(1)
使用ffmpeg将图片拼接为视频-XINDOO

使用ffmpeg将图片拼接为视频

本文介绍下如何使用ffmpeg将大量图片拼接成一个视频,并介绍其中部分参数的含义。 使用ffmpeg将图片拼接成视频前,需要将图片文件名做下预处理,文件名中必须有数字将其次序标记出来,这里我直接使用数字将图片重命名了,如下: 直接使用命令f...

赞(3)xindooxindooffmpeg 阅读(1716)去评论

使用ffmpeg拼接视频踩坑记录

最近在工作中遇到一个ffmpeg的坑,特此记录下。我们在工作中,有个需求是将分段存储的视频拼接成一个完整的视频,发现使用ffmpeg拼接后视频时长不对。举个列子,我用ffmpeg将4个半小时的mp4视频拼接后,得到的视频长度远超过2小时,观...

赞(0)xindooxindooffmpeg 阅读(2614)去评论
Linux三剑客之awk入门指引-XINDOO

Linux三剑客之awk入门指引

大家好 我是xindoo,距我上次发技术文章已经过去快一个半月了,原因是最近确实非常非常的忙,工作日除了吃饭睡觉之外,要么是在工作,要么就是在去工作的路上,而周末的时候我只想 今天1024 程序猿节,百忙中抽空发篇一直想写好久的文章来凑个热...

赞(0)xindooxindooLinux 阅读(1292)去评论
七张图了解kafka基本概念-XINDOO

七张图了解kafka基本概念

kafka是apache基金会管理的开源流处理平台(官网http://kafka.apache.org/),但国内大多数人对其认知基本都是消息队列,所以我们先来了解下什么是消息队列。 消息队列 消息队列顾名思义就是存储消息的一个队列,消息生...

赞(0)xindooxindookafka 阅读(1401)去评论
正则表达式的高级用法——正|反向预查-XINDOO

正则表达式的高级用法——正|反向预查

我之前一直自诩精通正则表达式(毕竟我实现过正则引擎),但关于正则表达式有几个特殊用法我一直都不熟,一来是用的少,二来确实也没花心思学过。正好这两天有需要用到预查的功能,索性就学习整理出今天的博文。 介绍下今天的4位主角 ?=、?<=、...

赞(0)xindooxindoo工具 阅读(1361)去评论
某东14薪变16薪,是诚意还是套路?-XINDOO

某东14薪变16薪,是诚意还是套路?

上周朋友圈有好多刷屏事件,除了某滴被调查外,某司也宣布从两年内从14薪调整到16薪,博得了一大片好感。 然而在我看来这波涨薪真的毫无诚意,甚至 为什么这么说。来,先看几个具体的场景,以下内容纯属虚构,如有雷同那您就自认倒霉吧。 场景一:程序...

赞(1)xindooxindoo其他 阅读(2105)评论(1)

顶流博主都这么写文章标题,看完不会你来打我啊

我们小学三年级学写作文的时候就学过,一篇文章的标题是吸引读者的第一步,那技术文章的标题如何写才会有更高的点击率。 我呕心沥血总结了上百个热门文章的标题,总结出以下套路。我粗略将其分为10个类别,当然有些标题可以兼具多个类别的特征。 引发好奇...

赞(0)xindooxindoo其他 阅读(1738)去评论

Redis源码剖析之AOF

书接上回,上回我们详细讲解了Redis的RDB机制,RDB解决了redis数据持久化一部分的问题,为什么说一部分?因为rdb是redis中某一时刻的快照,那么在这次快照后如果数据有新的变更,它是不会被持久化下来的,必须得等到下次rdb备份。...

赞(1)xindooxindooRedis 阅读(1631)去评论

Redis源码剖析之RDB

我们小学三年级的时候就知道,redis是一个纯内存存储的中间件,那它宕机会怎么样?数据会丢失吗?答案是可以不丢。 事实上redis为了保证宕机时数据不丢失,提供了两种数据持久化的机制——rdb和aof。 rdb就定期将内存里的数据全量dum...

赞(0)xindooxindooRedis 阅读(2319)去评论
NAS打造自己的私有云存储-XINDOO

NAS打造自己的私有云存储

今天给大家分享下我的NAS搭建方案,去年双十一的时候入手了一套NAS设备,用了几个月时间,好用是好用,但确实还没发挥出其价值,目前它最大的功能就是给我的mac做time-machine备份,要是没这个备份的话,它就是家里另外一台积灰的电子设...

赞(0)xindooxindoo未分类 阅读(1861)去评论
Redis源码剖析之内存淘汰策略(Evict)-XINDOO

Redis源码剖析之内存淘汰策略(Evict)

Redis作为一个成熟的数据存储中间件,它提供了完善的数据管理功能,比如之前我们提到过的数据过期和今天我们要讲的数据淘汰(evict)策略。在开始介绍Redis数据淘汰策略前,我先抛出几个问题,帮助大家更深刻理解Redis的数据淘汰策略。 ...

赞(0)xindooxindooRedis 阅读(1547)去评论
30行代码实现蚂蚁森林自动偷能量-XINDOO

30行代码实现蚂蚁森林自动偷能量

@ 虽然我支付宝加了好多好友,平时有很多能量可以偷,但由于太懒,至今一棵树都没种成,所以心心念念把偷能量这事自动化。之前通过用代码模拟手机点按的方式,实现了朋友圈自动点赞,但当时蚂蚁森林的操作流程要比朋友圈点赞复杂很多,所以当时就没有实现自...

赞(2)xindooxindoo其他 阅读(2591)评论(1)

Redis源码剖析之数据过期(expire)

我之前统计过我们线上某redis数据被访问的时间分布,大概90%的请求只会访问最新15分钟的数据,99%的请求访问最新1小时的数据,只有不到千分之一的请求会访问超过1天的数据。我们之前这份数据存了两天(近500g内存数据),如果算上主备的话...

赞(1)xindooxindooRedis 阅读(1969)去评论

[翻译]正则引擎的几种分类

正则表达式引擎是正则表达式匹配算法的基础。其有多种不同的实现,但大多数都是基于Henry Spencer的NFA引擎。 正则引擎有两个大分类,DFA和NFA,像Perl、Java、.Net、PHP、Python、Ruby……等大多是工具都是...

赞(0)xindooxindoo工具 阅读(1989)去评论

Redis源码剖析之robj(redisObject)

我们在之前的文章中已经了解过一部分Redis的数据结构了,尤其是dict 中讲到,可以把redis看做一个hashtable,存储了一堆的key-value,今天就来看下key-value中value的主要存储结构redisObject(后...

赞(0)xindooxindooRedis 阅读(1728)去评论
我的2020总结-XINDOO

我的2020总结

对于大多数人来说,2020年啥也没干,就光见证历史了。前一段时间华盛顿邮报向读者征集如何描述2020年,一个九岁小孩拔得头筹。 过马路前你左右都看了,结果被潜水艇给撞了。 一句简单的调侃却道出了这一年的魔幻。 记得武汉封城那天晚上,我正好在...

赞(1)xindooxindoo总结 阅读(3020)评论(3)
Redis源码剖析之跳表(skiplist)-XINDOO

Redis源码剖析之跳表(skiplist)

最近要换新工作了,借着新老工作交替的这段窗口放松了下,所以专栏拖更了,不过我心里毫无愧疚,毕竟没人催更。 不过话说回来天天追剧 刷综艺的日子也很是枯燥,羡慕你们这些正常上班的人,每天都有正经工作内容,感觉你们过的很充实。[狗头] 计算机领域...

赞(0)xindooxindooRedis 阅读(2950)去评论
面试题精选:神奇的斐波那契数列-XINDOO

面试题精选:神奇的斐波那契数列

斐波那契数列,其最开始的几项是0、1、1、2、3、5、8、13、21、34…… ,后面的每一项是前两项之和,事实上,斐波那契在数学上有自己的严格递归定义。 f0 = 0 f1 = 1 f(n) = f(n-1) + f(n-2) 斐波那契数...

赞(1)xindooxindoo数学 阅读(3370)去评论

awk实现类sql的join操作

awk、grep和sed被称为linux三剑客,事实上grep和awk我在日常工作中也常用到(sed用的比较少),可能有些人对awk了解比较少,我先大概介绍下。 很多人以为awk只是一个文本处理工具,实际上他们也是这么用的。但事实上它其实是...

赞(0)xindooxindooLinux 阅读(2677)去评论
[翻译]CAP理论及其证明-XINDOO

[翻译]CAP理论及其证明

CAP是所有分布式系统的基础理论,任何分布式系统只能满足以下三种状态中的任意两种。 一致性(Consistency) 可用性(Availability) 分区容错性(Partition tolerance) 何为CAP理论? CAP理论是指...

赞(0)xindooxindoo理论 阅读(2699)去评论
Redis源码剖析之快速列表(quicklist)-XINDOO

Redis源码剖析之快速列表(quicklist)

何为quicklist,上次说到ziplist每次变更的时间复杂度都非常高,因为必须要重新生成一个新的ziplist来作为更新后的list,如果一个list非常大且更新频繁,那就会给redis带来非常大的负担。如何既保留ziplist的空间...

赞(0)xindooxindooRedis 阅读(4276)去评论
Redis源码剖析之压缩列表(ziplist)-XINDOO

Redis源码剖析之压缩列表(ziplist)

本来打算只用一篇文章来讲解Redis中的list,在实际写作过程中发现Redis中有多种list的实现,所以准备拆成多篇文章,本文主要讲ziplist,ziplist也是quicklist的基础。另外还有skiplist,skiplist虽...

赞(0)xindooxindooRedis 阅读(3863)去评论
面试题精选:单链表排序也能玩出花来-XINDOO

面试题精选:单链表排序也能玩出花来

今天国庆节,祝大家中秋节快乐,顺便给大家拜个早年[狗头]。不过最近还在准备面试的同学们不要浪太狠,还是要好好学习的鸭。 单链表的排序在数据结构类的面试题中简直是集大成者,什么排序、链表、链表删除、添加…… 都能体现在单链表排序上,也非常考验...

赞(0)xindooxindoo算法 阅读(3896)去评论
Redis源码剖析开篇-XINDOO

Redis源码剖析开篇

今年我启动了好几个比较有挑战的个人项目,比如写一门编程语言、成为一名视频UP主、写科幻小说…… 这些项目目前进度都很堪忧,一方面这些项目挑战都比较大,另一方面业余时间还要忙着吃吃喝喝、追剧、刷综艺、睡懒觉…… 不过有个项目进度不至于那么不堪...

赞(0)xindooxindooRedis 阅读(4368)去评论
面试题精选:字符串替换-XINDOO

面试题精选:字符串替换

字符串处理在程序猿日常工作工作中非常常见,常见到几乎各种语言中都已经封装好了字符串相关的API,我们只需要直接拿过来用就好。就拿Java为例,jdk中的String()类几乎封装了所有字符串相关的操作,其方法数量有近百个,几乎满足了程序猿所...

赞(0)xindooxindooJava 阅读(3745)去评论
程序猿职场求生指南-XINDOO

程序猿职场求生指南

职场法则: 只要你努力工作,办事靠谱,思虑周全,从不给领导添麻烦,从不向领导提要求。勤勤恳恳,兢兢业业…… 坚持下去,公司里的杂活,破事儿,棘手的事就都成了你的,而且你的老板会更有钱。 如何在职场中干最少的活拿最多的钱,一定是困扰大部分社畜...

赞(0)xindooxindoo其他 阅读(3630)去评论
面试题精选:数据伪造-XINDOO

面试题精选:数据伪造

这道题应该算是我原创的的一道题,来源于我遇到的一个具体需求。大致需求是已知一批数和每个数出现的次数,然后写个接口,每次调用都能返回已知数据中的某个数,且返回的概率和原始数据中每个数出现的概率一致,题目描述起来有些绕口,我们来举个实际的例子。...

赞(0)xindooxindooJava 阅读(3957)去评论
我背着CSDN偷偷记录了大半年我博客数据-XINDOO

我背着CSDN偷偷记录了大半年我博客数据

作为一个数据控+一个有追求的技术博主,总是希望自己能知道自己博客历史每日粉丝数量、阅读量、积分、评论……的数据,然而官方博客管理后台给展示的数据太少了,只有每日访问量、评论数、粉丝数、收藏数这几个数据,而且目前最多只能看最近一个月的数据。 ...

赞(0)xindooxindooJava 阅读(3777)去评论
面试题精选:两个线程按顺序交替输出1-100-XINDOO

面试题精选:两个线程按顺序交替输出1-100

陆陆续续,各个公司的校招季都开始了,我也成为了我司的校招面试官,最近也面了不少同学了,面试过程中也发现了很多问题,即有面试者的、也有面试官的、更有自己的问题,这里先挖个坑,后续写个博客详细聊聊,感兴趣的同学可以关注下。另外,我也有个专栏《面...

赞(0)xindooxindooJava 阅读(3784)去评论
Java中synchronized与ReentrantLock性能对比-XINDOO

Java中synchronized与ReentrantLock性能对比

前两天逛博客的时候看到有个人写了一篇博客说ReentrantLock比synchronized慢,这就很违反我的认知了,详细看了他的博客和测试代码,发现了他测试的不严谨,并在评论中友好地指出了他的问题,结果他直接把博客给删了 删了 了…… ...

赞(0)xindooxindooJava 阅读(4161)去评论
如何把百度伪装成Google-XINDOO

如何把百度伪装成Google

作为技术人使用百度被鄙视?但因为种种原因无法使用Google,为了解决这个尴尬的问题,我历时数月潜心研发了一款chrome插件,可以将百度的logo换成google的logo,完美的解决这个尴尬的问题。妈妈再也不用担心我因为用百度搜索技术问...

赞(0)xindooxindoo其他 阅读(4825)去评论
JDK11现存性能bug(JDK-8221393)深度解析-XINDOO

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

这是一篇鸽了很久的博客,因为博客内容和素材早就准备差不多了,但就是一直懒得整理,今天终于下定决心终于整理出来了,这也是这个bug JDK-8221393唯一一篇中文介绍博客。 先大致介绍下这个bug,准确说这个应该是jdk11新引入的zgc...

赞(1)xindooxindooJava 阅读(4783)去评论
生日悖论是啥?我用它省了上百G的内存-XINDOO

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

@ 生日悖论: 是指在不少于 23 个人中至少有两人生日相同的概率大于 50%。例如在一个 30 人的小学班级中,存在两人生日相同的概率为 70%。对于 60 人的大班,这种概率要大于 99%。从引起逻辑矛盾的角度来说,生日悖论并不是一种 ...

赞(1)xindooxindoo大数据 阅读(5249)去评论
[翻译]虚拟内存介绍-XINDOO

[翻译]虚拟内存介绍

原文地址An introduction to virtual memory 计算机是用来执行简单任务的复杂机器:比如 上网、文本编辑、网页服务、视频游戏……,还可以对数据进行操作,图片 音乐 文本 数据库…… 当计算机不使用的时候,程序和数...

赞(2)xindooxindooLinux 阅读(4905)去评论
Json字段选取器介绍和实现-XINDOO

Json字段选取器介绍和实现

最近为了工作方便写了一个小工具,这个小工具作用很简单,就是从一个json字符串中筛出你想要的部分。 介绍 背景是这样的,我们为了线上调试方便,有个工具可以模拟发起一次数据请求,然后将结果以json的形式展示到页面上。但问题是这个数据包含的信...

赞(2)xindooxindooJava 阅读(5349)去评论
面试题精选:循环队列-XINDOO

面试题精选:循环队列

近期在面试找工作的小伙伴们很多啊,我周围就有好几个认识的朋友在找工作,于是我突发奇想在CSDN开了一个面试题精选的专栏,主要会关注一些算法题、设计题,次要会补充一些java面试相关的题(比较本博主是java出身)。其实在此之前已经写过一些相...

赞(1)xindooxindoo未分类 阅读(5462)去评论
从0到1打造正则表达式执行引擎-XINDOO

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

今天是五一假期第一天,这里先给大家拜个晚 咳咳!!祝大家五一快乐,我这里给大家奉上一篇硬核教程。首先声明,这篇文章不是教你如何写正则表达式,而是教你写一个能执行正则表达式的执行引擎。 网上教你写正则表达式的文章、教程很多,但教你写引擎的并不...

赞(1)xindooxindoo算法 阅读(4928)去评论
大厂面试题:求根号2简单?高级算法你肯定不会-XINDOO

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

前两天逛github看到一道很简单的面试题——如何不用库函数快速求出$\sqrt2$的值,精确到小数点后10位! 第一反应这不很简单嘛,大学数据结构课讲二分查找的时候老师还用这个做过示例。但转念一想,能作为大厂的面试题,背后绝对没有那么简单...

赞(7)xindooxindooMath 阅读(7656)去评论
欢迎关注我的微信公众号-XINDOO

欢迎关注我的微信公众号

公众号注册n年了,但一直都没怎么发过文章,真是五年运营四年敷衍,去年年底在做自我年终总结的时候放下豪言说要开始重新运营公众号了,但一拖就拖到了3月底。这几个月想了好久的公众号定位,大概有些方向了(下文细说),所以决定摒弃我这间歇性踌躇满志持...

赞(2)xindooxindoo其他 阅读(5444)评论(2)
StampedLock源码分析-XINDOO

StampedLock源码分析

@[TOC] 前言 之前已经说过了ReentrantLock ReentrantReadWriteLock,可以参考之前的博客。在ReentrantReadWriteLock源码解析文末,我提到了ReentrantReadWriteLock...

赞(2)xindooxindooJava 阅读(5279)去评论
技术人必须知道的谷歌搜索技巧-XINDOO

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

前言 作为一个技术人,经常会遇到自己不懂或不知道的东西,这个时候就必须使用搜索引擎搜索相关的资料,当然大部分人都逃不过google,google上的内容繁多,如何快速检索和筛选自己想要的信息却成了问题。其实google提供了高级搜索的方式,...

赞(1)xindooxindoo其他 阅读(6826)去评论
Antlr实战之JSON解析器slowjson-XINDOO

Antlr实战之JSON解析器slowjson

最近一直在学习编译原理,然后就了解到了antlr4这个强大的工具,antlr的全称是(Another Tool for Language Recognition),是一款很强大的词法和语法分析工具,虽然是用java写成的,但它也能生成c++...

赞(0)xindooxindoo编程 阅读(5470)去评论
翻译:Java volatile 关键词-XINDOO

翻译:Java volatile 关键词

Java中的volatile关键词被用来将变量标记为“存储在内存中”。准确地的讲每次volatile变量的读取和写入都是直接操作内存,而不是cpu cache。 实际上自从java 5之后,volatile关键词保证除了volatile变量...

赞(0)xindooxindooJava 阅读(5121)去评论
2019年年终总结-XINDOO

2019年年终总结

时光荏苒,岁月如梭,不知不觉一年又过去了。19年的互联网格外的不景气,到处充斥着暴雷、裁员,然而这些都和我无关,但这些都让深刻认识到了困难时期抱着大厂大腿的好处(还好我18年没跳槽去小厂,哈哈)。 回到年终总结,这已经是我连续第七年写年终总...

赞(0)xindooxindoo总结 阅读(6136)评论(1)
Web服务压测神器wrk-XINDOO

Web服务压测神器wrk

wrk是一款开源的高性能http压测工具(也支持https),非常小巧,可以执行文件只有3M(其中主要是luajit和openssl占用绝大多数空间),别看核心代码3-5年没更新了,但依旧非常好用。虽然很早之前我就知道有这么个工具了,当时学...

赞(0)xindooxindoo工具 阅读(6927)评论(2)
ReentrantLock源码解析-XINDOO

ReentrantLock源码解析

谈到多线程,就不避开锁(Lock),jdk中已经为我们提供了好几种锁的实现,已经足以满足我们大部分的需求了,今天我们就来看下最常用的ReentrantLock的实现。 ~谢谢打赏~ 赏

赞(0)xindooxindooJava 阅读(5558)去评论
布隆过滤器(BloomFilter)原理 实现和性能测试-XINDOO

布隆过滤器(BloomFilter)原理 实现和性能测试

布隆过滤器(BloomFilter)是一种大家在学校没怎么学过,但在计算机很多领域非常常用的数据结构,它可以用来高效判断某个key是否属于一个集合,有极高的插入和查询效率(O(1)),也非常省存储空间。当然它也不是完美无缺,它也有自己的缺点...

赞(0)xindooxindoo算法 阅读(6408)去评论
用正则表达式匹配3的任意倍数-XINDOO

用正则表达式匹配3的任意倍数

正则表达式能匹配3的任意倍数?(注意是任意倍数) ,我曾经也很震惊,但确实可以。我5年多前练习正则表达式,在Regex Golf这个正则表达式测试网站上发现了这个题,当时完全没有任何头绪,于是我在知乎提问正则表达式如何匹配 3 的倍数 ,但...

赞(0)xindooxindoo算法 阅读(5856)评论(1)
一文告诉你CPU分支预测对性能影响有多大-XINDOO

一文告诉你CPU分支预测对性能影响有多大

来源于stackoverflow上的一个问题为什么处理有序数组比处理无需数组快,原文中已经有了一些探讨,这里我们首先来复现下结果,然后再解释下为什么! 我们有如下两段代码,代码看起来都是差不多的,实际上逻辑也是一样的,都是统计数组中小于TH...

赞(0)xindooxindoo计算机原理 阅读(6903)去评论
Alfred上可提高工作效率的Workflow推荐-XINDOO

Alfred上可提高工作效率的Workflow推荐

温馨提示:本文中Alfred是Mac平台的工具,不适用于其他平台。 Alfred是Mac平台上被很多人吹爆的一款效率提升软件,我刚毕业工作的时候就看到公司内网有人推荐,但没有尝试。 后来我跳槽后自己买了Macbook pro,在努力把笔记本...

赞(0)xindooxindoo工具 阅读(7379)去评论
局部性原理——各类优化的基石-XINDOO

局部性原理——各类优化的基石

学过计算机底层原理、了解过很多架构设计或者是做过优化的同学,应该很熟悉局部性原理。即便是非计算机行业的人,在做各种调优、提效时也不得不考虑到局部性,只不过他们不常用局部性一词。如果抽象程度再高一些,甚至可以说地球、生命、万事万物都是局部性的...

赞(0)xindooxindoo计算机原理 阅读(5863)去评论
持续学习——程序猿的军备竞赛-XINDOO

持续学习——程序猿的军备竞赛

“持续学习”是几乎所有大神都会给菜鸟们的建议之一,这个概念也不是最近被提出来的,早在两千多年前古希腊哲学家梭伦就提出“活到老学到老”,这可算最早的“持续学习”。近些年来持续学习在IT领域里又不不断被提及,程序猿们成为持续学习最大的一群实践者...

赞(3)xindooxindoo其他 阅读(5912)去评论
Ehcache食用指南-XINDOO

Ehcache食用指南

  最近我们有个服务的时延(Latency)略微上涨,gc时间上涨了一倍,dump出java堆(Heap)之后用Mat分析发现,有份cache数据占据了20%+的堆内存,拥有上千万个小对象。然而这部分数据只是部分逻辑会用到,所以它占据这么大...

赞(0)xindooxindooJava 阅读(6929)去评论
Java中的String、StringBuffer和StringBuilder-XINDOO

Java中的String、StringBuffer和StringBuilder

  作为作为一个已经入了门的java程序猿,肯定对Java中的String、StringBuffer和StringBuilder都略有耳闻了,尤其是String 肯定是经常用的。但肯定你有一点很好奇,为什么java中有三个关于字符串的类?一...

赞(0)xindooxindooJava 阅读(5541)去评论
LinkedHashMap源码解析-XINDOO

LinkedHashMap源码解析

相信即便是Java初学者都应该用过Java中的HashMap和TreeMap,但貌似大多数人都没怎么用过LinkedHashMap,对其知之甚少。因为基本上大多数情况下TreeMap和HashMap都能满足需求,只有在需要map中K-V保持...

赞(0)xindooxindooJava 阅读(5621)去评论

PriorityQueue 源码分析

  学过数据结构的人应该对Queue 队列很熟悉了,队列是一种先进先出(FIFO)的数据结构,所以它出队列的优先级就是进入队列的次序。但我们有时候需要其它的优先级,很多高级语言都会提供带优先级的队列,在Java中就是PriorityQueu...

赞(0)xindooxindooJava 阅读(5826)去评论
ThreadLocal Java多线程下的影分身之术-XINDOO

ThreadLocal Java多线程下的影分身之术

如果写过多线程的代码,你肯定考虑过线程安全问题,更进一步你可能还考虑在在线程安全的前提下性能的问题。大多数情况下大家用来解决线程安全问题都会使用同步,比如用synchron或者concurrent包提供的各种锁,当然这些都能解决问题。但有多...

赞(0)xindooxindooJava 阅读(5984)去评论
微信朋友圈自动点赞-XINDOO

微信朋友圈自动点赞

  我一直都不太喜欢给别人点赞,某一年(貌似是17年)微信出了一次朋友圈年报,那一整年我就点出去了几个赞,要知道当时我微信好友应该有300+。我觉得这是我不喜欢参与社交活动在网络世界的一种体现吧。不给别人点赞也没啥坏处,但你不评不赞,难免会...

赞(2)xindooxindoo其他 阅读(7002)去评论

Java WeakHashMap

  作为一个java开发者肯定都知道且使用HashMap,但估计大部分人都不太知道WeakHashMap。从类定义上来看,它和普通的HashMap一样,继承了AbstractMap类和实现了Map接口,也就是说它有着与HashMap差不多的...

赞(0)xindooxindooJava 阅读(5669)去评论

Java弱引用(WeakReferences)

  前一段时间当我面试有些来应聘高级java开发工程师岗位的候选人时,在我问的众多问题中,有个问题是“你能告诉我弱引用是啥吗”,我不期望得到像论文中的细节一样的答案。我很可能从有个20多年的老工程师口中得到“嗯……是不是和gc有关”这样的答...

赞(0)xindooxindooJava 阅读(5668)去评论
辞旧迎新又一年(18年年终总结)-XINDOO

辞旧迎新又一年(18年年终总结)

  赶在春节放假前写完我2018年的年终总结,虽然又晚了,但还是不能缺的。每次拖延都有很多的理由,这次主要是19年上班第一天喜提996,从此属于自己的时间又少了,哎,说到底其实还是自己拖延症犯了。   先概括下过去的一年,如果说17年是本命...

赞(0)xindooxindoo总结 阅读(5906)去评论

我常用的一些linux命令

  之前做过两年的运维,用过很多命令,深切体会到某些linux命令熟练掌握后对效率提升有多大。举个简单的例子,在做了研发后经常会有跑一些数据,对于结果数据的处理,我们的产品同学一般都习惯于用excel做统计,把数据复制到excel里,然后数...

赞(0)xindooxindoo操作系统 阅读(6075)去评论
七层网络协议-XINDOO

七层网络协议

  在前一篇博客运维往事 一次负载均衡坏点检测事故中我提到了在生产环境中在第四层和第七层做healthCheck,这个第四层和第七层到底是什么意思呢?除了第四层第七层之外,其他的几层到底是什么?这几层到底做了啥? ~谢谢打赏~ 赏

赞(0)xindooxindoo计算机原理 阅读(8202)去评论
运维往事 一次负载均衡坏点检测事故-XINDOO

运维往事 一次负载均衡坏点检测事故

  之前做运维,有一些印象很深的事故,今天来讲其中一个,为了大家能理解,先说一些背景。现在因为流量巨大,单台机器肯定不足以为所有用户提供服务,所以大公司几乎任何一个服务的背后都是一套集群,然而任意一台机器不是100%可靠,如果你想让你服务尽...

赞(0)xindooxindoo架构 阅读(6231)去评论
运维往事  公司生产服务器不让连公网-XINDOO

运维往事 公司生产服务器不让连公网

  15年毕业,就莫名其妙做了运维,也成为了阿里最后一批业务运维(pe)。刚开始做运维的时候由于基础知识太差,很多事情做了就做了,但也不理解为什么那么做了,知道后来跳出运维的圈子,自己做了开发,思路、见识、视野渐渐开阔之后也就慢慢明白了之前...

赞(0)xindooxindoo架构 阅读(7321)去评论

死锁

  之前在学校学习过程中,很少写多进程的代码,虽然操作系统中学过死锁相关的内容,但考试过后也基本就忘记了,后来自己也遇到过有些多进程死锁的情况,再加上看了有些资料,对死锁才算是有了有些深入的理解。 ~谢谢打赏~ 赏

赞(0)xindooxindoo操作系统 阅读(5818)去评论
Java HashMap源码浅析-XINDOO

Java HashMap源码浅析

  之前虽然很频繁使用java的hashmap,但一直都是纯用,至于里面怎么实现的,一直都是糊里糊涂的。今年4月份跳槽找工作,大概看了一下HashMap的源码,在面试过程中也被多位面试官问到HashMap的相关问题,有些问题也没回答出来。本...

赞(1)xindooxindooJava 阅读(5730)去评论
java.util.Random和concurrent.ThreadLocalRandom对比-XINDOO

java.util.Random和concurrent.ThreadLocalRandom对比

  最近工作中遇到了一个需求,需要以一定的概率过滤掉一部分的流量,想想只能用Random了,因为是在多线程环境下,我还特意确认了下Random在多线程是否能正常运行,Random的实现也比较简单,初始化的时候用当前的事件来初始化一个随机数种...

赞(0)xindooxindoo编程 阅读(7601)去评论
一道有趣的面试题-XINDOO

一道有趣的面试题

  前两天在刷leetcode的时候,遇到了一题Implement Rand10() Using Rand7(),rand7()可以给你等概率返回1-7的任意一个数,让你用rand7()实现一个rand10(),rand()可以等概率返回1...

赞(1)xindooxindoo编程 阅读(6351)去评论

DevOps和SRE

  之前总是把SRE和DevOps混为一谈,总觉得这两个是同一种东西在不同公司的叫法,知道前两天google又放出了《The Site Reliability Workbook》 ,书中对比了SRE和DevOps的异同。今日重新看wikep...

赞(0)xindooxindoo其他 阅读(6037)去评论

Leetcode contests 93 题解

868. Binary Gap   简单题,就是求一个数字二进制形式中两个1的最大间隔位置,比如22的二进制0b10110,最大距离就是2,0b100001,最大距离是5。 ~谢谢打赏~ 赏

赞(0)xindooxindoo编程 阅读(6140)去评论

Java生产者消费者的三种实现

  Java生产者消费者是最基础的线程同步问题,java岗面试中还是很容易遇到的,之前没写过多线程的代码,面试中被问到很尬啊,面完回来恶补下。在网上查到大概有5种生产者消费者的写法,分别如下。 用synchronized对存储加锁,然后用o...

赞(0)xindooxindooJava 阅读(7160)评论(2)
OpenTSDB简介-XINDOO

OpenTSDB简介

  OpenTSDB(Open time series data base),开发时间序列数据库。DB这个词很有误导性,其实并不是一个db,单独一个OpenTSDB无法存储任何数据,它只是一层数据读写的服务,更准确的说它只是建立在Hbase...

赞(0)xindooxindoo大数据 阅读(6770)去评论
『问题』如何被更好的解决-XINDOO

『问题』如何被更好的解决

  最近迷上了一个电视节目,说出来也不怕笑话,这个节目就是CCTV科教频道的《我爱发明》。过年回家的时候有天晚上发现播这个,后来每天晚上就看这个了。从家里回来后,业余时候也就是陪女朋友聊天、刷《老友记》、看《哈利波特》原著,再剩下实在无聊就...

赞(0)xindooxindooLife 阅读(5424)去评论

高效工程师系列(三) 持续学习

  学习机会不会被工作场所限制。我们应该时刻问自己如何提高自我?如何做的更好?接下来我应该学些什么来为我的未来做好准备呢?这些问题可能和工程无关。也许你对音乐、艺术、运动、写作或工艺品没任何兴趣。但我们学到的一些技能可能是跨职能的,有助于我...

赞(0)xindooxindoo效率 阅读(5591)去评论

Leetcode 295. Find Median from Data Stream

题目链接295. Find Median from Data Stream   在一个有序数组中找中位数,但需要支持再数组中添加新的元素。本来是有序里的,可以很轻易就查到中位数,但如果添加新数字后,不一定有序。如果先对数组排序,那代价就比较...

赞(0)xindooxindoo算法 阅读(5759)去评论

高效工程师系列(二) 花时间学习新技能

  工作中很容易被各种必须完成的事压得喘不过气来。我指导过的那些人,通常都是刚开始工作的人经常感觉到他们的工作任务清单在持续增长,而且进度远远的落在了后面,他们总是花很长时间追赶进度而不是花足够的时间开发能让他们更高效的新技能。 ~谢谢打赏...

赞(0)xindooxindoo效率 阅读(6362)评论(2)

欢送本命年(17年年终总结)

  17年的年终总结为什么起名叫『欢送本命年』呢!没错,17年是我本命年(毕竟我今年已经0x18岁了),发生了很多事让我相信有本命年水逆这回事,因为感觉17年是我人生中过的最不顺的一年,尤其是在工作上,感觉很坎坷,所以希望在新的一年里一切糟...

赞(0)xindooxindoo总结 阅读(5984)去评论