自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 排序算法——快速排序简介

快速排序是找出一个元素(理论上可以随便找一个)作为基准(pivot),然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基准右边的元素值 都不小于基准值,如此作为基准的元素调整到排序后的正确位置。递归快速排序,将其他n-1个元素也调整到排序后的正确位置。最后每个元素都是在排序后的正 确位置,排序完成。所以快速排序算法的核心算法是分区操作,即如何调整基准的位置以及调整返回基准的最终位置以便分治递归。

2016-06-30 09:26:32 79

转载 Java混淆器和java混淆编译

一般的java混淆器,主要针对Java应用进行,如只保留main入口,直接针对java字节码的类库进行混淆。而我以前的工作主要是编写公共底层库,需要做一些源代码保护,最后用的是apusic提供的joc.jar混淆编译器,可直接针对源代码进行混淆编译。目前joc下载链接已经失效,而且不支持jdk1.5以上版本了。无奈只能重新对Java混淆器进行选型。Allatori 功能上似乎还行,就是不知道有没有有效期等其他问题。试验了proguard4.2/Allatori-2.1-Demo/yguard-2.2.0三种

2016-06-29 14:17:07 2450

转载 select、poll、epoll之间的区别总结

select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用户空间。

2016-06-29 12:00:19 178

原创 activemq简介

(1)、点对点方式(point-to-point)点对点的消息发送方式主要建立在 Message Queue,Sender,reciever上,Message Queue 存贮消息,Sneder 发送消息,receive接收消息.具体点就是Sender Client发送Message Queue ,而 receiver Cliernt从Queue中接收消息和"发送消息已接受"到Quere,确认消息接收。消息发送客户端与接收客户端没有时间上的依赖,发送客户端可以在任何时刻发送信息到Queue,而不需要知道接

2016-06-28 14:08:21 174

原创 半同步半异步I/O简介

同步模式编程简单,但是I/O的利用利率低;而异步模式编程复杂,但是I/O利用率高。综合同步异步的有优点,就有了半同步半异步的设计模式。这个模式中,高层使用同步I/O模型,简化编程。低层使用异步I/O模型,高效执行。half sync/half async可以很好的使得"变成复杂度"和"执行效率"之间达到一种平衡.半同步半异步模式在下面的场景中使用:系统必须响应和

2016-06-27 17:17:27 139

原创 B*树简介

B*树是B+树的变体,在B+树的非根和非叶子结点再增加指向兄弟的指针; B*树定义了非叶子结点关键字个数至少为(2/3)*M,即块的最低使用率为2/3(代替B+树的1/2);       B+树的分裂:当一个结点满时,分配一个新的结点,并将原结点中1/2的数据复制到新结点,最后在父结点中增加新结点的指针;B+树的分裂只影响原结点和父结点,而不会影响兄弟结点,所以它不需要指向兄弟的指

2016-06-27 17:06:15 237

原创 Leader/Follower线程模型简介

(1)线程有3种状态:领导leading,处理processing,追随following;(2)假设共N个线程,其中只有1个leading线程(等待任务),x个processing线程(处理),余下有N-1-x个following线程(空闲);(3)有一把锁,谁抢到就是leading;(4)事件/任务来到时,leading线程会对其进行处理,从而转化为processing状态,处理完成之后,又转变为following;(5)丢失leading后,following会尝试抢锁,抢到则变为leadin

2016-06-27 17:03:08 243

原创 ConcurrentMap总结

ConcurrentMap总结

2016-06-23 10:19:11 105

原创 mysql数据库查询优化总结

mysql数据库查询优化总结

2016-06-23 10:18:02 172

原创 B-树简介

B-树是一种多路搜索树(并不是二叉的):       1.定义任意非叶子结点最多只有M个儿子;且M>2;       2.根结点的儿子数为[2, M];       3.除根结点以外的非叶子结点的儿子数为[M/2, M];       4.每个结点存放至少M/2-1(取上整)和至多M-1个关键字;(至少2个关键字)       5.非叶子结点的关键字个数=指

2016-06-22 15:44:21 239

原创 socket编程简介

socket编程简介阻塞、非阻塞同步、异步处理

2016-06-17 17:51:33 73

原创 二分查找简介

二分查找简介

2016-06-17 15:32:54 74

原创 B+树简介

B+ 树的优点在于:由于B+树在内部节点上不好含数据信息,因此在内存页中能够存放更多的key。 数据存放的更加紧密,具有更好的空间局部性。因此访问叶子几点上关联的数据也具有更好的缓存命中率。B+树的叶子结点都是相链的,因此对整棵树的便利只需要一次线性遍历叶子结点即可。而且由于数据顺序排列并且相连,所以便于区间查找和搜索。而B树则需要进行每一层的递归遍历。相邻的元素可能在内存中不相邻,所以缓存命中性没有B+树好。但是B树也有优点,其优点在于,由于B树的每一个节点都包含key和value,因此经常访问的元素

2016-06-17 11:53:28 414

转载 mysql数据库引擎分析

mysql的MyISAM和InnoDB两个存储引擎的索引实现方式:MyISAM引擎使用B+ Tree作为索引结构,叶节点存放的是数据记录的地址。MyISAM引擎的辅助索引(二级索引)和主索引在结构上没有区别,只是辅助索引的key可以重复,叶节点上存放的也是数据记录的地址。MyISAM索引文件和数据文件是分离的,索引文件仅保存数据记录的地址。InnoDB中表数据本身就是按B+ Tree组织的

2016-06-17 11:51:18 226

原创 B树简介

b树又称二叉搜索树,英文全称binary search tree ,其定义如下:1、每个节点最多能拥有2个子节点(即每个非叶子节点最多拥有2个指针指向左右节点);2、非叶子节点的左指针指向小于其关键字的左子树,右指针指向大于其关键字的又子树;3、每个节点节点存储一个关键字;查找过程:b树的搜索从根节点开始:如果查找的关键字和节点的关键字相等则命中,查找成功;如果

2016-06-17 11:07:48 637

原创 主键索引和唯一性索引有什么区别

主键和唯一性索引区别如下:1、主键是一种特殊的唯一性索引,索引不一定是主键;2、主键只能有一个,唯一性索引可以设置多个;3、主键不能为空,唯一性索引可以为空;4、主键可以作为其他表的外键,唯一性索引不能;相同点:1、作为查询条件都可以加速查询结果;2、数据变动后索引都需要重建,一定程度上回影响到数据库的性能;

2016-06-17 09:37:08 1104

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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