摘要:
递归是一个重要的算法,希望你也能学得会。 递归的三大步骤 编写递归函数的步骤,可以分解为三个。 递归第一个步骤:明确函数要做什么 对于递归,一个最重要的事情就是要明确这个函数的功能。这个函数要完成一样什么样的事情,是完全由程序员来定义的,当写一个递归函数的时候,先不要管函数里面的代码是什么,而要先明 阅读全文
摘要:
使用缓存集群的时候,最怕的就是热key、大value这两种问题。热key问题,指的就是缓存集群中的某个key在瞬间被数万甚至十万的并发请求打爆。大value问题,指的是某个key对应的value可能有gb级别的大小,导致查询value的时候会引发网络相关的故障问题。这里说一下热key问题。 为什么要 阅读全文
摘要:
看一些文章会看到TDD开发模式,搜索后发现有主流四种软件开发模式,这里对它们的概念做下笔记。 TDD:测试驱动开发(Test-Driven Development) 测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论,TDD首先考虑使用需求(对象、功能、过程、接口等)。 主要是编写测试 阅读全文
摘要:
之前有被问到过数据库亿万级数据的优化问题,分表和分库是其中的一个重要知识点。 分表的概念与策略 对于大型的互联网应用来说,数据库单表的记录行数可能达到千万级甚至是亿级,并且数据库面临着极高的并发访问。采用主从复制(Master-Slave)模式的MySQL架构,只能够对数据库的读进行扩展,而对数据库 阅读全文
摘要:
位运算指的是针对整数的二进制进行的位移操作。 位运算提供比算术运算更高的效率,但是位运算的代码可读性较差,建议所有使用位运算的地方写上注释。 Java中提供7个位运算符用于位运算。 左移(<<) 左移运算是将操作数二进制值逐位左移若干位,左移过程中符号位不变,高位溢出则舍弃,低位则补0。 右移(>> 阅读全文
摘要:
流量削峰这个概念主要来自于互联网的业务场景。例如春节火车票抢购,大量的用户需要同一时间去抢购;又例如阿里的双十一秒杀,短时间内上亿的用户涌入,瞬间流量巨大(高并发)。具体就是,300万人在凌晨0点抢购一件数量只有500件的商品,最后能购买到的只有300万人中的这500人。从业务上来说,这种秒杀活动是 阅读全文
摘要:
今天开机混底薪的时候遇到一个JSON.stringify()在IE浏览器兼容模式下的问题。 问题描述 一个弹窗选择的功能原来好好的,突然就不行了。 想要调试调试不了,报错信息也看不到(一开F12这破IE浏览器就奔溃,FUCK-IE果然名不虚传)。 最后只能通过逐行提示调试法(alert大法好)去定位 阅读全文
摘要:
FreeMarker模板文件主要由以下4个部分组成:1.文本,直接输出的部分。2.注释,即<#–…–>格式不会输出。3.插值(Interpolation):即${..}或者#{..}格式的部分,将使用数据模型中的部分替代输出。4.FTL指令:FreeMarker指令,和HTML标记类似,名字前加#予 阅读全文
摘要:
As we all know that Kafka is very fast, much faster than most of its competitors. So what’s the reason here? Avoid Random Disk Access Kafka writes eve 阅读全文
摘要:
这世上的幸福有无数种,最美好的一种大概叫做,有人在爱着你。 01 著名的《小王子》里面有一句经典的论断:全世界有多少亿人,但爱你的人却只有那几个。 是啊,也许你会遇到千万个人,但会在乎你的人却只会有那么几个。 真正爱你的人,会视你为珍宝,为你遮风挡雨,为你抚平伤痛,还会陪你欢笑悲伤,一起走过坎坷不平 阅读全文