2018-03-28
大文件内容对比多线程版本

线程池 线程池消费拆分任务 线程池消费合并任务 测试这是上一篇的续作,对于这个算法,其中可以同时进行的部分有 拆分后对每一个块的排序可以同时进行 合并时的不同范围之间可以同时进行,例如拆分为10个小块,那么1-5小块的合并跟6-10小块的合并过程可以同时进行 合并的不同阶段之间不可以同时进行,因为...

Read More
 2018-03-26
大文件内容对比

大文件内容排序 测试最近接到一个需求,要对两个系统的订单进行对比,找出其中的差异,对比结果有4种:一致、不一致、丢失、多余。如果数据量少,处理起来就很简单,例如要对A,B两份数据进行对比: 将数据A放入哈希表 遍历数据B,依据id从A中查找对应的订单 若从A中找到了对应的订单,则比较是否一致,并将此订...

Read More
 2015-04-22
设计模式与原则

设计模式的定义:在某情境下,针对某问题的某种解决方案。但是满足此定义的方案并不一定是设计模式,设计模式要求解决方案必须是可复用的。 设计模式的作用大体上是:优化结构,消除依赖,将面向过程转为面向对象。按照功能,一般可以将设计模式分为创建型行为型结构型三大类。 本文将列举这些设计模式,并对每个设计模式进行简要描述,描述格式为:名称,定义,案例,适用性,结构,效果,应用,相关。

Read More
 2015-04-09
RMI

Java RMI 指的是远程方法调用 (Remote Method Invocation)。RMI能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法, 其威力体现在它强大的开发分布式网络应用的能力上,它可以被看作是RPC的Java版本。

Read More
 2014-10-09
Bitmap

bitmap所谓bitmap就是用一个bit位来标记某个元素对应的value,而key即是这个元素。由于采用bit为单位来存储数据,因此在可以大大的节省存储空间算法思想32位机器上,一个整形,比如 int a; 在内存中占32bit,可以用对应的32个bit位来表示十进制的0-31个数,bitmap算法利用这种思...

Read More
 2014-09-19
八种排序

1.直接插入排序 2.希尔排序(缩小增量排序) 3.简单选择排序 4.堆排序 5.冒泡排序 6.快速排序 7.归并排序 8.基数排序1.直接插入排序基本思想:在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好...

Read More
 2014-06-26
Effective Java

一 创建和销毁对象 1.考虑用静态工厂方法代替构造器 2.遇到多个构造器参数时要考虑用构建器 3.用私有构造器或者枚举类型强化Singleton属性 4.通过私有构造器强化不可实例化的能力 5.避免创建不必要的对象 6.消除过期的对象引用 ...

Read More
 2014-06-10
SSH

登陆 过程 公钥登陆 远程操作 绑定本地端口 本地端口转发 远程端口转发 其他参数登陆-p指定主机的端口$ ssh -p port user@host默认端口为22$ ssh user@host默认使用本机用户名$ ssh host过程 远程主机接收到用户的登陆请求,把自己的公钥发给用...

Read More
 2014-04-15
Custom Fileupload

HTTP 分析 设计 关键代码 源码获取本文的目的是简要说明如何编写一个文件上传组件,使他的功能类似 commons-fileupload, 并在结尾处提供了完整代码的获取方式。HTTP本文讨论的是基于 HTTP 协议的文件上传,下面先来看看 HTTP 请求的真面目。首先,用 JavaSe 类库中的 ...

Read More
 2014-04-09
算法小汇

三色旗 汉诺塔 斐波那契数列 骑士周游 帕斯卡三角三色旗问题描述:一条绳子上悬挂了一组旗帜,旗帜分为三种颜色,现在需要把旗帜按顺序将相同的颜色的放在一起,没有旗帜的临时存放点,只能在绳子上操作,每次只能交换两个旗帜例如:原本旗帜的顺序为rwbrbwwrbwbrbwrbrw需要变成bbbbbbwwwww...

Read More
 2014-02-23
IP 类型

分类IP通过地址开头判断类型,将以 0,10,110 开头的地址分为ABC三类将ip转换成十进制后A类地址第一个字节在 0 - 127 之间,B类地址第一个字节在 128 - 191 之间C类地址第一个字节在 192 - 223 之间然后剩下的位被分为网络号与主机号,主机有两个特殊的值:主机号全部为0的ip代表一...

Read More
 2014-02-20
Linux启动流程

1.加载内核 2.启动初始化进程 3.确定运行级别 4.加载开机启动顺序 5.用户登陆 6.进入 login shell 7.打开 non-login shell1.加载内核操作系统接管硬件以后,首先读入/boot 目录下的内核文件。2.启动初始化进程内核文件加载以后,就开始运行第一个程序/sbi...

Read More
 2013-11-17
为什么要用补码表示负数

抛开二进制不谈,我们先来看看10进制假设世界上没有负号且数字最大只有3位,我们要把 0~999 分成两部分,一部分表示负数,一部分表示正数,而且不影响他们的运算规律,应当如何去做?首先,最大的负数加上一等于零,那么用999表示最大的负数再合适不过,现在需要正负数各一半,那么正数部分应当为 0 ~ 499,负数部分...

Read More
 2015-04-22
设计模式与原则

设计模式的定义:在某情境下,针对某问题的某种解决方案。但是满足此定义的方案并不一定是设计模式,设计模式要求解决方案必须是可复用的。 设计模式的作用大体上是:优化结构,消除依赖,将面向过程转为面向对象。按照功能,一般可以将设计模式分为创建型行为型结构型三大类。 本文将列举这些设计模式,并对每个设计模式进行简要描述,描述格式为:名称,定义,案例,适用性,结构,效果,应用,相关。

Read More
 2013-11-17
为什么要用补码表示负数

抛开二进制不谈,我们先来看看10进制假设世界上没有负号且数字最大只有3位,我们要把 0~999 分成两部分,一部分表示负数,一部分表示正数,而且不影响他们的运算规律,应当如何去做?首先,最大的负数加上一等于零,那么用999表示最大的负数再合适不过,现在需要正负数各一半,那么正数部分应当为 0 ~ 499,负数部分...

Read More
 2014-06-26
Effective Java

一 创建和销毁对象 1.考虑用静态工厂方法代替构造器 2.遇到多个构造器参数时要考虑用构建器 3.用私有构造器或者枚举类型强化Singleton属性 4.通过私有构造器强化不可实例化的能力 5.避免创建不必要的对象 6.消除过期的对象引用 ...

Read More
 2014-06-10
SSH

登陆 过程 公钥登陆 远程操作 绑定本地端口 本地端口转发 远程端口转发 其他参数登陆-p指定主机的端口$ ssh -p port user@host默认端口为22$ ssh user@host默认使用本机用户名$ ssh host过程 远程主机接收到用户的登陆请求,把自己的公钥发给用...

Read More
 2014-02-20
Linux启动流程

1.加载内核 2.启动初始化进程 3.确定运行级别 4.加载开机启动顺序 5.用户登陆 6.进入 login shell 7.打开 non-login shell1.加载内核操作系统接管硬件以后,首先读入/boot 目录下的内核文件。2.启动初始化进程内核文件加载以后,就开始运行第一个程序/sbi...

Read More
 2014-02-23
IP 类型

分类IP通过地址开头判断类型,将以 0,10,110 开头的地址分为ABC三类将ip转换成十进制后A类地址第一个字节在 0 - 127 之间,B类地址第一个字节在 128 - 191 之间C类地址第一个字节在 192 - 223 之间然后剩下的位被分为网络号与主机号,主机有两个特殊的值:主机号全部为0的ip代表一...

Read More
 2014-04-15
Custom Fileupload

HTTP 分析 设计 关键代码 源码获取本文的目的是简要说明如何编写一个文件上传组件,使他的功能类似 commons-fileupload, 并在结尾处提供了完整代码的获取方式。HTTP本文讨论的是基于 HTTP 协议的文件上传,下面先来看看 HTTP 请求的真面目。首先,用 JavaSe 类库中的 ...

Read More
 2018-03-28
大文件内容对比多线程版本

线程池 线程池消费拆分任务 线程池消费合并任务 测试这是上一篇的续作,对于这个算法,其中可以同时进行的部分有 拆分后对每一个块的排序可以同时进行 合并时的不同范围之间可以同时进行,例如拆分为10个小块,那么1-5小块的合并跟6-10小块的合并过程可以同时进行 合并的不同阶段之间不可以同时进行,因为...

Read More
 2018-03-26
大文件内容对比

大文件内容排序 测试最近接到一个需求,要对两个系统的订单进行对比,找出其中的差异,对比结果有4种:一致、不一致、丢失、多余。如果数据量少,处理起来就很简单,例如要对A,B两份数据进行对比: 将数据A放入哈希表 遍历数据B,依据id从A中查找对应的订单 若从A中找到了对应的订单,则比较是否一致,并将此订...

Read More
 2014-10-09
Bitmap

bitmap所谓bitmap就是用一个bit位来标记某个元素对应的value,而key即是这个元素。由于采用bit为单位来存储数据,因此在可以大大的节省存储空间算法思想32位机器上,一个整形,比如 int a; 在内存中占32bit,可以用对应的32个bit位来表示十进制的0-31个数,bitmap算法利用这种思...

Read More
 2014-09-19
八种排序

1.直接插入排序 2.希尔排序(缩小增量排序) 3.简单选择排序 4.堆排序 5.冒泡排序 6.快速排序 7.归并排序 8.基数排序1.直接插入排序基本思想:在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好...

Read More
 2014-04-09
算法小汇

三色旗 汉诺塔 斐波那契数列 骑士周游 帕斯卡三角三色旗问题描述:一条绳子上悬挂了一组旗帜,旗帜分为三种颜色,现在需要把旗帜按顺序将相同的颜色的放在一起,没有旗帜的临时存放点,只能在绳子上操作,每次只能交换两个旗帜例如:原本旗帜的顺序为rwbrbwwrbwbrbwrbrw需要变成bbbbbbwwwww...

Read More
 2015-04-09
RMI

Java RMI 指的是远程方法调用 (Remote Method Invocation)。RMI能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法, 其威力体现在它强大的开发分布式网络应用的能力上,它可以被看作是RPC的Java版本。

Read More