
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
FastJson的pom依赖:<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.33</version></dependency>听闻FastJson使用特别的算法,速度非常快,甚至快过Google的protobuf,所以选择使用FastJso
背景利用Idea和Maven搭建了一个SSM的web项目,对子模块进行测试是非常重要的,此时我的工程结构如下:Maven中,src下有main和test两个目录,main是用来存放我们的工程文件,而test是用来存放测试文件的,此时我完成了Spring + myBatis的整合,并且要对SeckillMapper接口文件进行单元测试public interface SeckillMapper
什么是动态规划看到把原始问题划分成一系列子问题,我们很容易想到分治算法,但是对于分治算法,很可能会遇到子问题被重复使用就像下面这个矩阵连乘,分解为子问题就会出现三个重复子问题,用分治算法时,就会重复计算相同的子问题,使程序效率变得低下所以,这就是动态规划的用武之地:对于一个问题,可分为多个相关子问题,子问题的解被重复使用矩阵连乘问题对于矩阵连乘,假设A为10 * 100 的矩阵, B为100 *
什么是堆首先堆是一个完全二叉树,但同时他具有这样的要求:每一个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;每一个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图是一个大顶堆在此要补充一个二叉树的性质:二叉树的某个节点下标为i,则它的左孩子的下标一定为2i,右孩子下标一定为2i+1。案列分析假如现在我们要对这个序列,{50,10,90,30,70,40,80,60,20}进行
快速排序算法快速排序算法被称为20世纪十大算法之一,是最重要的算法之一,是一定要掌握和熟练的!快速排序的基本思想是:通过一趟排序,将无序序列分割成独立的两部分,其中一部分的关键字均比另一部分的关键字小,然后再对这两部分记录分别进行排序,从而达到整个无序序列达成有序。案例分析假如现在我们要对这个序列,{50,10,90,30,70,40,80,60,20}进行快速排序,序列的原始状态是这样的:
观察者模式的定义:观察者模式定义了一种一对多的依赖关系,被观察者一般称为主题,一个主题对象会有多个观察者,一旦主题更新了信息,就会推送到各个观察者处。举一个生活中常见的例子:3个人(观察者)都想买房(主题对象),于是他们都订阅了某楼盘的房价信息,一旦楼盘的房价变动,这3个人都会受到最新的房价。这就是观察者模式的作用。其实Java中,已经内置有实现观察者模式的api。但我们先来自己实现观察者模式。
弗洛伊德基本思想弗洛伊德算法作为求最短路径的经典算法,其算法实现相比迪杰斯特拉等算法是非常优雅的,可读性和理解都非常好。基本思想:弗洛伊德算法定义了两个二维矩阵:矩阵D记录顶点间的最小路径例如D[0][3]= 10,说明顶点0 到 3 的最短路径为10;矩阵P记录顶点间最小路径中的中转点例如P[0][3]= 1 说明,0 到 3的最短路径轨迹为:
贪心算法基本原理贪心算法的核心就是贪,就是总是做出当前看来最优的选择,因此可知,贪心算法不从整体去考虑,它做出的选择也是局部最优选择,从而达到全局优化选择。虽然贪心算法不一定能得到最优解,但是对很多问题,它是能够得到整体最优解的,因此贪心算法是否能到最优解,需要严格证明。贪心算法产生有化解的条件贪心选择性质:若一个问题的全局最优解可以通过局部最优解来得到,则说明该问题具有贪心选择性质。优化子
一、异常发生场景在使用Netty做Android消息推送时,发生了如下异常:io.netty.handler.codec.DecoderException: java.io.InvalidClassException: failed to read class descriptor很明显这是一个跟编解码相关的异常二、异常产生原因在整个推的项目中,消息是一个Message类,Message必须
分治法的原理讨论问题时,先来了解一下什么是分治法。分治法的意思就是,分而治之,也就是把一个问题,拆分成几个小问题,最后再汇总解决的方法通过大整数相乘问题来了解分治法假如现在我们要求两个大整数相乘的乘积,如1234 * 1234(这里为了了分析简便,所以不举形如1234567891234567这样的大整数,不必要在此纠结),那么按照我们小学学的乘法,就是用乘数的每一项去和1234相乘,这样很明







