Java大文件切割与合并

在做日志收集和处理的时候,经常会遇到对大文件的操作,当内存有限,又要求快速处理的时候,就需要考虑对文件进行切割,利用多线程将一个大文件切割成多个小文件,然后再对小文件分别操作,这样既可以限制内存的使用,又可以提高效率。 切割与合并,可以使用RandomAccessFile类,它支持对随机访问文件的读取和写入,程序可以直接跳到任意地方来读写数据。 文件切割 大文件的上传、下载、内容处理等操作,都会涉及到文件切割处理。 文件切割的流程: 1、设定切割后的小文件大小,根据原文件大小…

常用的排序算法

在日常工作中,虽然很少用到排序算法,但是,掌握一些常用的排序算法却是不可缺少的。尤其是一些公司的面试题,会经常提到这个。最近在一次面试过程中,就问到了相关问题,借此机会做一些整理,也好加深一些理解和记忆。 排序算法汇总 以下为排序算法汇总表: 算法分类 算法名称 交换排序 冒泡排序 鸡尾酒排序 奇偶排序 梳排序 侏儒排序 快速排序 臭皮匠排序 Bogo排序 插入排序 插入排序 希尔排序 伸展排序 二叉查找树排序 图书馆排序 耐心排序 归并排序 归并排序 梯级归并排序 振荡归并…

二分查找算法

二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功…

位运算

在许多古老的微处理器上,位运算比加减运算略快,通常位运算比乘除法运算要快很多。在现代架构中,位运算的运算速度通常与加法运算相同(仍然快于乘法运算)。 废话不说,直接上代码。