Java三种代理模式 静态代理、动态代理和cglib代理 代理模式是一种设计模式,提供了对目标对象额外的访问方式,即通过代理对象访问目标对象,这样可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。 代理模式是一种设计模式,提供了对目标对象额外的访问方式,即通过代理对象访问目标对象,这样可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。 静态代理 这种代理 … 继续阅读
分类目录归档:编程
crontab命令以及定时任务表达式
整理了一下crontab的定时表达式 crontab命令 Linux crontab是用来定期执行程序的命令。 当安装完成操作系统之后,默认便会启动此任务调度命令。 crond 命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。 语法 crontab [ -u user ] file 或 crontab [ -u user ] { -l | -r | -e } 参数说明 … 继续阅读
实现简单的集合Set
集合 Set:注重独一无二的性质,该体系集合可以知道某物是否已近存在于集合中,不会存储重复的元素。 用于存储无序(存入和取出的顺序不一定相同)元素,值不能重复。 特点 Java的Set接口继承于Collection接口,是一个不允许出现重复元素,并且无序的集合,主要有HashSet和TreeSet两种实现。 在判断重复元素的时候,Set集合会调用hashCode()和equal()方法来实现。 T … 继续阅读
哈希冲突
哈希冲突 由于哈希算法被计算的数据是无限的,而计算后的结果范围有限,因此总会存在不同的数据经过计算后得到的值相同,这就是哈希冲突。 简言之,不同的输入,经过哈希函数计算,得到相同的哈希值,这就是哈希冲突了。 解决冲突 解决哈希冲突的方法一般有:开放定址法、链地址法(拉链法)、再哈希法、建立公共溢出区等方法。 2.1 开放定址法 从发生冲突的那个单元起,按照一定的次序,从哈希表中找到一个空闲的单元。 … 继续阅读
哈希函数(Hash)
Hash 哈希函数 Hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。 这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。 简言之:把任意长度的 … 继续阅读
实现一个简单的栈Stack
栈 Stack 栈的特点是:先进后出(LIFO, Last In First Out) 定义 栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表。 操作 向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一 … 继续阅读