
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
本文是学习了immoc网视频之后的个人理解和知识汇总项目源码:https://github.com/jeff-leo/SpikeSystem,希望大家能star和fork一、秒杀系统中存在高并发的点 一个秒杀系统的基本流程基本如上所示 用户请求详情页,系统时间,请求秒杀接口,执行秒杀操作都是位于服务端,都会被大量访问,那么我们优化系统高并发就是从这四点着手1. 请求详情页的优化 详情页
1. 彻底关闭Selinux用vim打开 /etc/selinux/config在 SELINUX=enforcing 前面加个#号注释掉它然后新加一行 SELINUX=disabled保存,退出,重启系统2. 关闭iptablesservice iptables stop3. 修改iptables配置vim /etc/sysconfig/iptables4. 通过命令开启
前言在7月中旬的时候,突然想做一个上线的app,同时也巩固一下自己的android开发知识。于是开始动手坐了起来,终于在8月5号左右的时间,完成了历时20多天整个app的开发。我个人觉得,这个app虽不能说做得很好,但也是对我3个月的安卓学习的一个总结,当我发到论坛上,想听听其他开发人员的建议和评价时,另外意外的是,基本评论的都是好评。但与此同时,我也发现有很多android的初级学习者,看完第一
之前我们学习过弗洛伊德算法求最短路径,但是使用了三重循环,导致时间复杂度是O(n^3),而迪杰斯特拉算法应该是求最短路径的最好的算法了。迪杰斯特拉算法原理迪杰斯特拉算法实际上是使用贪心算法和bfs来求最短问题的,它的核心思想是,按照顶点来迭代,每一次迭代挑选当前离源点最短的路径(贪心思想),然后以挑选的这个最短路径的顶点作为源点,再发起贪心选择当前离源点最短的路径。它的核心实现使用了三个数组:d
(一)利用String的split()对字符串进行切割String text = "Hello, my name is liujianfeng";System.out.println(Arrays.toString(text.split("\\s")));//以空格为切割符System.out.println(Arrays.toString(text.split("\\W+")));//以
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}进行快速排序,序列的原始状态是这样的:







