卖克的专栏

好记性不如烂笔头

分布式全局唯一ID--SnowFlake算法

    说到全局唯一ID,之前做的一个项目,有遇到类似的需求,会有多并发,但是,又需要类似于id的这么个存在。当时是直接采用的UUID(这个方案实施起来效率最高),当时为了赶进度,就匆匆忙忙的上线了。现在正好来总结一下。   一般情况,实现全局唯一ID,有三种方案,分别是通过中间件方式、UUID、...

2018-05-03 23:41:28

阅读数:70162

评论数:0

Kafka了解一下

Kafka背景       Kafka最初是由LinkedIn公司使用Scala语言实现的,用作LinkedIn的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础。现在它已被多家不同类型的公司作为多种类型的数据管道和消息系统使用。      领英在2011年捐赠...

2018-04-15 10:33:00

阅读数:71771

评论数:0

java 类加载器

类加载器基本概念 什么是类加载器 顾名思义,类加载器(class loader)用来加载 Java 类到Java 虚拟机中。 具体的说就是:Java源程序(.java 文件)在经过Java 编译器编译之后就被转换成 Java 字节代码(.class文件)。类加载器负责读取 Java字节代码,并转...

2017-06-23 18:09:13

阅读数:46749

评论数:0

记一次线上问题排查

  这周在上线一个功能的时候,碰到了“fail to respond”问题(上一篇文章),问题虽然解决了,但是解决的过程很痛苦,走了很多弯路,我觉得有必要记录下来。   情景还原:项目A(公司内部项目),项目A里面有调用项目B的接口(项目B是公司接入的第三方项目,类似于rabbitMQ的存在)。...

2018-11-25 23:57:01

阅读数:2020

评论数:8

httpClient: fail to respond

org.apache.http.NoHttpResponseException: www.abc.com:port failed to respond   这周在做一个功能,在调用外部接口的时候,莫名其妙的报这个错误。使用的类是很常见的HttpClient。网上看了其他文章,都是说什么设...

2018-11-23 22:08:46

阅读数:3277

评论数:0

相互保是骗局吗?

今天无意中看到一个讨论“相互保”的言论,正好我对这个产品也很有兴趣,所以来聊一聊“相互保”。 什么是保险?   “相互保”是保险的一种,所以说“相互保”之前,得说说什么是保险。 保险 (契约经济关系):保险(Insurance或缩写为insur),本意是稳妥可靠保障;后延伸成一种保障机制,...

2018-11-18 23:53:28

阅读数:4735

评论数:0

神奇排序--睡眠排序

 最近一段时间,微信群被“老板有毛病吧,写完排序就让我走”这个段子刷屏了   这个排序,其实很早之前就看到了,还记得初见此排序,惊为天人,见惯了那些冒泡、快排,睡眠排序简直是排序界一股清流啊!当时还准备在部门技术分享的时候,分享这个,但是,单单一个睡眠排序,无法支撑一场分享,才作罢。   ...

2018-11-17 14:10:51

阅读数:4990

评论数:1

什么是基数排序?

上一篇说了桶排序,这次说一下桶排序的扩展-基数排序。 基本概念   要说基数排序的话,那就必须得说一下两个概念。“基”和“桶”   基:基数排序里的“基”是什么意思呢?基的英文是radix,直接翻译是进制的意思,在基数排序里,指的是数字的位,比如数字123,这里1是百位的基,2是十位的基,3...

2018-11-10 22:10:52

阅读数:7150

评论数:0

什么是桶排序?

上一篇说了计数排序,一种稳定的排序,时间复杂度是指数级,但是,计数排序不适用于跨度很大或者浮点数,那么有没有可以处理浮点类型的稳定排序呢?桶排序就是。 桶排序的实现   首先说一下桶排序的桶是什么概念,这里的“桶”是一个区间范围,里面可以承载一个或多个元素。桶排序的第一步就是确定桶的个数和区间...

2018-11-05 00:21:53

阅读数:10622

评论数:2

什么是计数排序?

假设,有20个随机整数,取值范围是0到10,需要对其排序。可能第一反应是使用快速排序啊,快排的时间复杂度是O(nlog n)!但是,可不可以比O(nlog n)更快呢?这就是这篇文章要介绍的计数排序(从名字上来看,就是计算数字出现频次的排序方法,非常的见名知意)。 计排的实现   因为取值范围...

2018-10-28 22:39:51

阅读数:9633

评论数:0

记一次西藏之行

缘起   其实很久之前就有想去西藏的想法了,为什么想去呢,一方面是很多网文洗脑,说什么西藏地处边疆,远离尘世的喧嚣、藏人全民信教,朝圣十分虔诚啦,甚至是说西藏能洗涤心灵,哈哈。另一方面呢,其实是我个人想去一个没去过的地方。说起来也惭愧,虽然毕业四年多了,也出去玩了好些地方了,但是,一直都是江浙沪...

2018-10-21 20:14:55

阅读数:359

评论数:4

模板模式

什么是模板模式? 模板模式中,一个抽象父类,有抽象方法和实现方法;它有多个子类,子类里实现了父类的抽象方法,但是,最终的执行还是父类里实现的方法 为什么要使用模板模式? 模板模式使用很广泛的。 在编程领域,Hibernate的HibernateTemplate对象就是一个典型的例子,hiberna...

2018-09-27 18:31:06

阅读数:19502

评论数:0

什么是B-树?

什么是B-树呢?B-树全名 Balance Tree,读做B树(中间的-,只是分隔作用,不要读做B减树哦)。 #  B树的特征 B树首先它也是属于树结构,除了树结构的节点有序、查找高效外,还有以下特性。以一个m阶的B树来举栗: 根节点至少包含两个子节点; 每个中间节点包括k-1个元素和...

2018-09-24 18:51:07

阅读数:18475

评论数:1

如何实现抢红包算法?

  对抢红包,大家肯定不陌生,但是,有想过抢红包是如何实现的嘛?今天就来讨论下抢红包的几种实现。   首先,我们得明确一下需求和需求的限制条件。红包主要有三点限制 抢到的总额 = 红包的总额,不能多也不能少了 最小值是0.01元,即每个人都有份 每个人抢到的红包金额,尽量平均   假设红包...

2018-09-09 19:54:18

阅读数:23688

评论数:2

扔鸡蛋问题 动态规划大法

  之前有一篇文章“扔鸡蛋问题”,写的是指定鸡蛋个数在指定楼层,求最优解。里面列举了二分法、平方根法和解方程法,但是,如果鸡蛋个数和楼层数是待定的,那这三种方法都搞不定了。所以,这里又得引申出新的方法“动态规划大法”   首先说一下什么是动态规划。动态规划,英文Dynamic programmi...

2018-08-26 18:57:50

阅读数:6488

评论数:0

可变对象与不可变对象

  在之前的一篇文章“python中的赋值 值传递?”中,因为在调用方法时与方法内部,输出id是相同,所以不能理解官方的那句话 Remember that arguments are passed by assignment in Python.  要记住,Pyt...

2018-08-12 22:22:48

阅读数:12909

评论数:0

mysql 内连接、左连接会出现笛卡尔积?

  这周的部门周会,分享的同事说的是数据库优化相关,过程中,一个同事跟我讨论左连接查询,是不是笛卡尔积。我第一反应,左连接肯定不是笛卡尔积啊,左连接是以左表为准,左表有m条记录,则结果集是m条记录(哈哈,如果是你,你是不是也是这样的反映),同事听了,说内连接会是笛卡尔积。听到这句话的我的表情是这样...

2018-07-14 19:16:04

阅读数:11810

评论数:0

eclipse自动补全功能的缺陷

  这周在做一些代码的重构,在重构的过程中,踩了一个eclipse的大坑!这里记录一下   在eclipse里写java代码,你写好方法名字,再来个回车,eclipse会自动帮你把方法的参数给补全,补全的参数跟你在补全方法定义的参数名字“一致”,即我认为的效果是这样的 publi...

2018-07-08 13:52:45

阅读数:12617

评论数:0

扔鸡蛋问题

假如有100层楼,总共有2个鸡蛋。最低需要多少次才能试探出临界点,比如,在第三层扔下去,不碎;在第四层扔下去,碎了,那第三层和第四层就是临界点。   如果之前没准备过的话,大概第一个想到的就是二分法。 二分法   首先在第50层丢第一个鸡蛋,若鸡蛋碎了,则在第一层开始往上...

2018-07-01 21:45:56

阅读数:12369

评论数:0

美女和男人的游戏 博弈论

  美女和男人的游戏,这是很经典的案例了,游戏规则是:男女各投一次硬币,如果男女的硬币都是正面,则男人+3;如果都是反面,则男人+1;如果一正一反,则男人-1。 男\女 正面 反面 ...

2018-06-25 09:32:20

阅读数:6107

评论数:0

提示
确定要删除当前文章?
取消 删除