xindoo的博客XINDOO

xindoo is
always here

【今日观点】 我的2020总结

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

七张图了解kafka基本概念-XINDOO
kafka

七张图了解kafka基本概念

xindoo阅读(96)评论(0)赞(0)

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

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

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

xindoo阅读(73)评论(0)赞(0)

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

某东14薪变16薪,是诚意还是套路?-XINDOO
其他

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

xindoo阅读(141)评论(1)赞(0)

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

其他

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

xindoo阅读(302)评论(0)赞(0)

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

Redis

Redis源码剖析之AOF

xindoo阅读(333)评论(0)赞(1)

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

Redis

Redis源码剖析之RDB

xindoo阅读(460)评论(0)赞(0)

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

NAS打造自己的私有云存储-XINDOO
未分类

NAS打造自己的私有云存储

xindoo阅读(418)评论(0)赞(0)

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

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

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

xindoo阅读(375)评论(0)赞(0)

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

30行代码实现蚂蚁森林自动偷能量-XINDOO
其他

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

xindoo阅读(472)评论(1)赞(1)

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

Redis

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

xindoo阅读(532)评论(0)赞(1)

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

工具

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

xindoo阅读(446)评论(0)赞(0)

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

Redis

Redis源码剖析之robj(redisObject)

xindoo阅读(519)评论(0)赞(0)

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

我的2020总结-XINDOO
总结

我的2020总结

xindoo阅读(777)评论(2)赞(1)

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

Redis源码剖析之跳表(skiplist)-XINDOO
Redis

Redis源码剖析之跳表(skiplist)

xindoo阅读(1485)评论(0)赞(0)

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

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

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

xindoo阅读(1411)评论(0)赞(0)

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

Linux

awk实现类sql的join操作

xindoo阅读(1339)评论(0)赞(0)

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

[翻译]CAP理论及其证明-XINDOO
理论

[翻译]CAP理论及其证明

xindoo阅读(1319)评论(0)赞(0)

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

今年是冷冬?我爬了北京10年的气温,哟 还真是!-XINDOO
算法

今年是冷冬?我爬了北京10年的气温,哟 还真是!

xindoo阅读(1319)评论(0)赞(0)

WARNING: 非严谨气相数据分析,旨在表达数据分析过程,结论还是看看就好,更严谨的信息请查阅专业的气相资料。 10月份的北京,仿佛酷热的夏季戛然而止,然后变成了春夏秋冬随机播放的模式,与往年不同的是今年很多人都在说“今年比去年冷多了”。...

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

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

xindoo阅读(1897)评论(0)赞(0)

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

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

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

xindoo阅读(2250)评论(0)赞(0)

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

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

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

xindoo阅读(2370)评论(0)赞(0)

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

Redis源码剖析之SDS(Simple Dynamic String)-XINDOO
Redis

Redis源码剖析之SDS(Simple Dynamic String)

xindoo阅读(2274)评论(0)赞(0)

SDS(simple dynamic string)是Redis提供的字符串的封装,在redis中也是存在最广泛的数据结构,它也是很多其他数据结构的基础,所以才选择先介绍SDS。 SDS也兼容部分C字符串API(strcmp,strlen)...

Redis源码剖析开篇-XINDOO
Redis

Redis源码剖析开篇

xindoo阅读(2731)评论(0)赞(0)

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

面试题精选:字符串替换-XINDOO
Java

面试题精选:字符串替换

xindoo阅读(2323)评论(0)赞(0)

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

程序猿职场求生指南-XINDOO
其他

程序猿职场求生指南

xindoo阅读(2394)评论(0)赞(0)

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

面试题精选:数据伪造-XINDOO
Java

面试题精选:数据伪造

xindoo阅读(2462)评论(0)赞(0)

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

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

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

xindoo阅读(2575)评论(0)赞(0)

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

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

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

xindoo阅读(2441)评论(0)赞(0)

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

Java中synchronized与ReentrantLock性能对比-XINDOO
Java

Java中synchronized与ReentrantLock性能对比

xindoo阅读(2847)评论(0)赞(0)

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

如何把百度伪装成Google-XINDOO
其他

如何把百度伪装成Google

xindoo阅读(3306)评论(0)赞(0)

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

如何制作一个可以自动更新的Github个人主页-XINDOO
其他

如何制作一个可以自动更新的Github个人主页

xindoo阅读(3210)评论(2)赞(0)

Github近期上线一个新的功能,就是你在自己账号下创建一个和自己用户名同名的仓库,并在仓库下创建一个README.md文件,这个文件就会被展示在你的Github个人主页。源于markdown的强大描述能力,你可以在你的Github首页展示...

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

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

xindoo阅读(3508)评论(0)赞(1)

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

生日悖论是啥?我用它省了上百G的内存-XINDOO
大数据

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

xindoo阅读(3633)评论(0)赞(1)

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

[翻译]虚拟内存介绍-XINDOO
Linux

[翻译]虚拟内存介绍

xindoo阅读(3594)评论(0)赞(2)

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

Json字段选取器介绍和实现-XINDOO
Java

Json字段选取器介绍和实现

xindoo阅读(3732)评论(0)赞(2)

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

从0到1打造正则表达式执行引擎(二)-XINDOO
未分类

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

xindoo阅读(3750)评论(0)赞(1)

在上篇博客从0到1打造正则表达式执行引擎(一)中我们已经构建了一个可用的正则表达式引擎,相关源码见https://github.com/xindoo/regex,但上文中只是用到了NFA,NFA的引擎建图时间复杂度是O(n),但匹配一个长度...

面试题精选:循环队列-XINDOO
未分类

面试题精选:循环队列

xindoo阅读(4046)评论(0)赞(1)

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

从0到1打造正则表达式执行引擎-XINDOO
算法

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

xindoo阅读(3755)评论(0)赞(1)

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

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

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

xindoo阅读(4753)评论(0)赞(6)

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

欢迎关注我的微信公众号-XINDOO
其他

欢迎关注我的微信公众号

xindoo阅读(4191)评论(1)赞(2)

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

StampedLock源码分析-XINDOO
Java

StampedLock源码分析

xindoo阅读(4031)评论(0)赞(2)

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

技术人必须知道的谷歌搜索技巧-XINDOO
其他

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

xindoo阅读(4709)评论(0)赞(1)

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

Antlr实战之JSON解析器slowjson-XINDOO
编程

Antlr实战之JSON解析器slowjson

xindoo阅读(4038)评论(0)赞(0)

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

翻译:Java volatile 关键词-XINDOO
Java

翻译:Java volatile 关键词

xindoo阅读(3947)评论(0)赞(0)

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

ReentrantReadWriteLock源码解析-XINDOO
Java

ReentrantReadWriteLock源码解析

xindoo阅读(4129)评论(0)赞(0)

上回说到ReentrantLock,今天来谈谈读写锁(ReentrantLock)和其具体实现ReentrantReadWriteLock。看这篇文章前,强烈建议你回到先读懂ReentrantLock,因为ReentrantReadWrit...

2019年年终总结-XINDOO
总结

2019年年终总结

xindoo阅读(4623)评论(1)赞(0)

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

Web服务压测神器wrk-XINDOO
工具

Web服务压测神器wrk

xindoo阅读(4862)评论(2)赞(0)

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

ReentrantLock源码解析-XINDOO
Java

ReentrantLock源码解析

xindoo阅读(4386)评论(0)赞(0)

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

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

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

xindoo阅读(5047)评论(0)赞(0)

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

用正则表达式匹配3的任意倍数-XINDOO
算法

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

xindoo阅读(4361)评论(0)赞(0)

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

一文告诉你CPU分支预测对性能影响有多大-XINDOO
计算机原理

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

xindoo阅读(5260)评论(0)赞(0)

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

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

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

xindoo阅读(5715)评论(0)赞(0)

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

局部性原理——各类优化的基石-XINDOO
计算机原理

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

xindoo阅读(4663)评论(0)赞(0)

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

持续学习——程序猿的军备竞赛-XINDOO
其他

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

xindoo阅读(4852)评论(0)赞(3)

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

浮点数美丽的表象(为什么要慎用浮点数)-XINDOO
计算机原理

浮点数美丽的表象(为什么要慎用浮点数)

xindoo阅读(4729)评论(0)赞(0)

现在假设你负责一个广告公司的结算系统,你需要统计下月度点击收入,生成一个月度报告。假设有2000w个点击,每个点击平均1元,我们用小学数学计算就知道总收入是2000w。但是我们用计算机累加就会出问题了。如果我们用float存储数据,floa...

Ehcache食用指南-XINDOO
Java

Ehcache食用指南

xindoo阅读(5445)评论(0)赞(0)

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

Java中的String、StringBuffer和StringBuilder-XINDOO
Java

Java中的String、StringBuffer和StringBuilder

xindoo阅读(4703)评论(0)赞(0)

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

LinkedHashMap源码解析-XINDOO
Java

LinkedHashMap源码解析

xindoo阅读(4679)评论(0)赞(0)

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

Java

PriorityQueue 源码分析

xindoo阅读(4843)评论(0)赞(0)

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

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

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

xindoo阅读(4894)评论(0)赞(0)

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

微信朋友圈自动点赞-XINDOO
其他

微信朋友圈自动点赞

xindoo阅读(5340)评论(0)赞(2)

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

Java

Java WeakHashMap

xindoo阅读(4615)评论(0)赞(0)

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

Java

Java弱引用(WeakReferences)

xindoo阅读(4683)评论(0)赞(0)

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

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

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

xindoo阅读(4867)评论(0)赞(0)

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

用fbprophet预测北京未来一个月的气温-XINDOO
机器学习

用fbprophet预测北京未来一个月的气温

xindoo阅读(5099)评论(0)赞(0)

  fbprophet是facebook开源的时序数据预测包,提供了简洁的python和R api,可以对时序数据做一些预测,也提供了有些简单的趋势分析。更多细节可以看下官方文档。官方doc中给了一个数据集作为prophet的入门,这里我也...

操作系统

我常用的一些linux命令

xindoo阅读(4997)评论(0)赞(0)

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

七层网络协议-XINDOO
计算机原理

七层网络协议

xindoo阅读(5947)评论(0)赞(0)

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

运维往事 一次负载均衡坏点检测事故-XINDOO
架构

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

xindoo阅读(5201)评论(0)赞(0)

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

运维往事  公司生产服务器不让连公网-XINDOO
架构

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

xindoo阅读(5344)评论(0)赞(0)

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

操作系统

死锁

xindoo阅读(4920)评论(0)赞(0)

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

Java HashMap源码浅析-XINDOO
Java

Java HashMap源码浅析

xindoo阅读(4750)评论(0)赞(1)

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

java.util.Random和concurrent.ThreadLocalRandom对比-XINDOO
编程

java.util.Random和concurrent.ThreadLocalRandom对比

xindoo阅读(6228)评论(0)赞(0)

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

一道有趣的面试题-XINDOO
编程

一道有趣的面试题

xindoo阅读(5267)评论(0)赞(0)

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

其他

DevOps和SRE

xindoo阅读(4909)评论(0)赞(0)

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

编程

Leetcode contests 93 题解

xindoo阅读(5183)评论(0)赞(0)

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

Java

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

xindoo阅读(5700)评论(2)赞(0)

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

Java

Java线程间同步(诡异的IllegalMonitorStateException )

xindoo阅读(4669)评论(0)赞(0)

  前两天去面试,被问到了一个线程同步的问题,两个线程依次输出1……100,一个线程只输出奇数,一个只输出偶数。之前工作中没写过线程同步的代码,只知道使用object的wait()和notify()方法可以实现线程同步,之前也看过线程池实现...

大数据下的实时热点功能实现讨论(实时流的TopN)-XINDOO
大数据

大数据下的实时热点功能实现讨论(实时流的TopN)

xindoo阅读(5364)评论(0)赞(0)

  我司内部有个基于jstorm的实时流编程框架,文档里有提到实时Topn,但是还没有实现。。。。这是一个挺常见挺重要的功能,但仔细想想实现起来确实有难度。实时流的TopN其实离大家很近,比如下图百度和微博的实时热搜榜,还有各种资讯类的实时...

OpenTSDB简介-XINDOO
大数据

OpenTSDB简介

xindoo阅读(5566)评论(0)赞(0)

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

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

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

xindoo阅读(4605)评论(0)赞(0)

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

效率

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

xindoo阅读(4546)评论(0)赞(0)

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

算法

Leetcode 295. Find Median from Data Stream

xindoo阅读(4787)评论(0)赞(0)

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

效率

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

xindoo阅读(5021)评论(2)赞(0)

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

总结

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

xindoo阅读(4992)评论(0)赞(0)

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

其他

西屋时间胶囊

xindoo阅读(4651)评论(0)赞(0)

  时间胶囊是是一种用来把某些东西存放到未来再打开的容器,因其具备跨越时间的属性,所以被称为时间胶囊。历史上最著名的时间胶囊是在1939年世博会被埋下的西屋时间胶囊 是准备在6939年打开的,除了一些当时的代表性物品,还有爱因斯坦、物理学家...

最小二乘法的极大似然解释-XINDOO
机器学习

最小二乘法的极大似然解释

xindoo阅读(5029)评论(0)赞(0)

  最开始学习机器学习的时候,首先遇到的就是回归算法,回归算法里最最重要的就是最小二乘法,为什么损失函数要用平方和,而且还得是最小?仔细想想最小二乘法视乎很合理,但是合理在哪,怎么用数学方法来证明它合理。 ~谢谢打赏~ 赏

xindoo

联系我联系我们