自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qiuchaoxi的博客

qiuchaoxi的博客

  • 博客(167)
  • 收藏
  • 关注

原创 Spring Boot中controller的使用

详细解释:https://www.cnblogs.com/juncaoit/p/7751340.html

2019-07-16 09:38:16 423

原创 spring boot 配置总结

1、@value单个配置2、@Component @ConfigurationProperties如果配置项很多,之间还有联系,把这些配置放到一个类里面去用@Autowired让 limitConfig的实体bean注入到HelloController里面,让HelloController可以使用 limitConfig里面的方法。...

2019-07-10 20:59:14 311

原创 Spring中的注解

1、@component (把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>)共同点:被@controller 、@service、@repository 、@component 注解的类,都会把这些类纳入进spring容器中进行管理。2、@Slf4j如果不想每次都写private final Logger log...

2019-07-10 20:43:10 332

原创 VIM

1、2、进入VIM3、游移光标4、进入插入模式5、在命令行模式下保存文档6、退出vim7、普通模式下删除vim文本信息8、vim重复命令9、游标的快速跳转10、复制粘贴和剪切11、在普通模式下进行字符的替换及撤销操作12、快速缩进13、查找14、使用vim编辑多个...

2019-04-08 11:10:54 276

原创 Linux

1.ctrl+c,强行终止当前程序2.table ,补全命令3. $ touch love_{1..10}_shiyanlou.txt 创建10个文件夹4. sudo adduser lileisu -l lileipwd5、新建空白文件:touch6、新建一个空目录:mkdirmkdir mydir7、文件复制:cp...

2019-04-02 19:17:50 219

原创 大数相乘

public class 大数相乘 { public static void main(String[] args) { String str1="123"; String str2="45"; System.out.println(multiply(str1,str2)); } public static String multiply(String str1,String...

2018-08-29 10:00:41 183

转载 JavaWeb秒杀业务场景设计

秒杀业务场景设计问题经常被面试的时候被问到,在实际业务中,也常常需要实现,下面我们来看看如何实现秒杀业务.秒杀业务,是典型的短时大量突发访问类问题特点:秒杀时网站的访问量大增;秒杀时购买的请求数量远小于库存,只有部分用户能够成功;业务流程简单,根据先后顺序,下订单减库存;首先看一下普通商品购买业务的基本逻辑 C1.png 那么,秒杀业务,会影响到上面的哪些方面...

2018-08-21 11:32:14 301

原创 大数相加,大数相减

public class 大数相加 { public static String add(String n1, String n2){ StringBuilder result = new StringBuilder(); // 反转字符串 String rn1 = new StringBuilder(n1)...

2018-08-20 15:42:26 425

原创 跳跃游戏

题目:给定数组,array[i]=k,表示从位置i向右跳K个距离 jump:表示目前跳了多少步 cur:表示如果只能跳jump步,他能达到的最远距离 next:代表如果再多跳一步,能够达到的最远距离public static void main(String[] args) { int[] array={2,3,1,1,4}; System.out.println(min(a...

2018-08-03 09:58:13 486

原创 股票买卖问题

题目:股票买卖问题,{7, 1, 5, 3, 6, 4}。买卖2次public static void main(String[] args){ int[] array={7, 1, 5, 3, 6, 4}; System.out.println(maxProfit(array)); } public static int maxProfit(int[] array){ ...

2018-08-03 09:41:27 846

原创 换钱最大的方法数

array={5,10,25,1},可以重复,求能组成15元的方法数。 dp[i][j]=sum(dp[i-1][j],dp[i][j-array[i]]);public static void main(String[] args){ int[] array={5,10,25,1}; int sum=15; System.out.println(min(array,sum)...

2018-08-03 09:34:13 250

原创 不重复换钱最少货币数

      array={5,2,5,3},各有一张,求能组成10元的最少的张数。      dp[i][j]=min(dp[i-1][j],dp[i-1][j-array[i]]+1);    public static void main(String[] args){ int[] array={5,2,5,3}; System.out.println(min(array,...

2018-08-02 16:34:13 281

原创 换钱最少的货币数

     array={5,2,3},有5元、2元、3元的若干张,求能组成20元的最少的张数。     dp[i][j]=min(dp[i-1][j],dp[i][j-array[i]]+1);     public static void main(String[] args){ int[] array={5,2,3}; System.out.println(min(arra...

2018-08-02 16:29:06 444

原创 最长公共子序列

dp[i][j]=max{dp[i-1][j],dp[i][j-1]},array1[i-1]!=array2[j-1]          =dp[i-1][j-1]+1,array1[i-1]==array2[j-1]          =0,i=0orj=0public static void main(String[] args) { String str1="abcde";...

2018-08-02 16:03:55 207

原创 最长公共子串

dp[i][j]=dp[i-1][j-1]+1,array1[i]==array2[j]        =1,array1[i]==array2[j],i=0orj=0public static void main(String[] args){ String str1="abc"; String str2="abgde"; System.out.println(find(st...

2018-08-02 15:35:09 200

原创 矩阵最短路径

dp[i][j]=Math.min(dp[i-1][j], dp[i][j-1])+array[i][j]public static void main(String[] args){ int[][] array={{1,3,5,9},{8,1,3,4},{5,0,6,1},{8,8,4,0}}; System.out.println(min(array)); } public ...

2018-08-02 15:15:05 2099

原创 最长回文串

dp[i][j]表示已i开头和以j结尾的字符串是回文串public static void main(String[] args){ String str="abcvovabe"; System.out.println(longest(str)); } public static String longest(String str){ if(str==null||str.le...

2018-08-02 14:36:25 135

原创 最长递增子序列

题目:一个数组{2,1,5,3,6,4,8,9,7},找出最长递增子序列。dp[i]=max{dp[i],dp[j]+1(0&lt;=j&lt;i,array[j]&lt;array[i])}public static void main(String[] args){ int[] array={2,1,5,3,6,4,8,9,7}; int[] dp=build(array);...

2018-08-02 11:27:47 243

原创 拔河问题

题目:n 个人参加拔河比赛,每个人有自己的重量,现在需要把他们分成两组进行比赛,每个人属于其中的一个组。为使比赛公平,求使得两组重量差最小的分配。dp[i][j]=max(dp[i-1][j],dp[i-1][j-array[i]]+array[i])public static void main(String[] args){ int[] array={10,23,41,12};...

2018-08-02 10:59:02 2463

原创 背包问题

题目:有3个物品,放入一个重量为10的背包,3个物品的重量分别是3,4,5。价值分别是4,5,6。请问如何放置,使背包的价值最大。dp[i][j]=max{dp[i-1][j],dp[i-1][j-w[i]]+p[i]},dp[i][j]表示前i个物品放到重量为j的背包里面的最大价值。(0&lt;i&lt;=3,0&lt;j&lt;=10)代码如下:public class 背包问题...

2018-08-02 10:16:55 164

原创 Redis 和 MySQL数据一致

1.MySQL和Redis处理不同类型的数据读请求:首先尝试从缓存读取,读到数据则直接返回;如果读不到,就读数据库,并将数据会写到缓存,并返回。写请求:先删除缓存,在更新数据库。如果删除缓存失败,那就不要更新数据库,如果说删除缓存成功,而更新数据库失败,那查询的时候只是从数据库里查了旧的数据而已,这样就能保持数据库与缓存的一致性。2.高并发情况下高并发情况下,可能会出现数据不一致的...

2018-07-31 16:31:39 1172

原创 LRU缓存结构

使用双向链表+哈希表链表头部保存的是最近时间被访问过的数据,尾部保存的是最长时间内没有被访问过的数据。当缓存满了,删除链表尾部的节点。每个链表的结构都被设为hashmap对象。哈希表保存每个节点的地址,可以基本保证在O(1)时间内查找节点。采用双向链表是因为这个头部和尾部进行数据删除的时间复杂度是O(1),如果是要删除中间的节点,则是单链表的节点删除,时间复杂度为O(1)。...

2018-07-31 15:15:57 1950

原创 C3P0数据库连接池死锁问题

死锁的产生原理是:存在线程同时占有两个以上的连接对象的情况。 比如某连接池中有2个连接对象。 有两个线程分别占用了一个,又分别来申请另一个。这时由于连接池空,而两个线程本身都卡在连接池上,不可能释放原来占有的连接对象,这时产生死锁。 连接池死锁,会导致软件和数据库相关的部份无响应。比如登陆功能,会用数据库做用户校验,发生连接池死锁后,登陆功能会无法使用(点登陆按钮后,长时间无相应)。策略...

2018-07-31 10:56:30 1969

原创 Linux下CPU占用率高分析方法

一、可能有线程一直占用CPU资源1. 先通过 ps 查看进程状态,找出进程的PID(8209)。2.jstack -l 8209 &gt; /usr/local/work/tomcat/8209.stack 导出PID对应的线程信息到文件3.对导出的线程文件下载本地做分析(可以文本打开)4. 通过top -H -p 8209 命令查看对应进程是哪个线程占用CPU过高(eg:8308...

2018-07-31 10:41:17 4815

原创 Linux常用命令

1、netstat 查看服务及监听端口netstat命令各个参数说明如下:  -t : 指明显示TCP端口  -u : 指明显示UDP端口  -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)  -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。  -n : 不进行DNS轮询(可以加速操作)即...

2018-07-31 09:44:00 144

转载 Xgboost如何处理缺失值

XgboostXgboost简介Xgboost[1]是由陈天奇提出的一种集成学习方法,要想了解Xgboost,这里建议先了解决策树,再了解GBDT(Gradient boosting descent tree)即梯度提升树,再学习理解Xgboost。推荐学习方式,阅读[1]这篇论文,你将对Xgboost如何处理缺失值,以及模型复杂度控制有更加深刻的理解(注:对论文中正则化方式有疑问,可留言...

2018-07-30 16:49:19 4703

原创 给定一个乱序数组a,找到所有两个和为target的数组下标index1,index2

给定一个乱序数组a,找到所有两个和为target的数组下标index1,index2使用hash_map,时间复杂度为o(n),空间复杂度为o(n).Exp:a{ 2, 3, 1, 4, 5, 6, 7 },target=6;输出:0    3          2    4import java.util.Arrays;import java.util.HashMap...

2018-07-30 16:27:44 1047 1

原创 PCA

1.特征中心化。即每一维的数据都减去该维的均值。2.计算B的协方差矩阵C3.3.计算协方差矩阵C的特征值和特征向量。4.选取大的特征值对应的特征向量,得到新的数据集。 ...

2018-07-28 16:19:53 178

原创 正向代理和反向代理

1. 正向代理:比如,客户端要访问Google,但是不直接去访问,而且让一个代理服务器去访问Google,然后代理服务器再将访问到的信息返回给客户端。这里的代理服务器所实现的功能就叫做正向代理。特点:Google并不知道是哪个客户端访问的。客户端要进行一些设置才能使用正向代理。根据这个特点,我们就可以在国外部署一个代理服务器,这个服务器有正向代理的功能。我们就可以通过这个代理服务器实现科学...

2018-07-25 20:16:27 303

原创 子查询和关联查询的区别

子查询就是查询中又嵌套的查询,表连接都可以用子查询,但不是所有子查询都能用表连接替换,子查询比较灵活,方便,形式多样,适合用于作为查询的筛选条件,而表连接更适合与查看多表的数据。子查询不一定需要两个表有关联字段,而连接查询必须有字段关联(所谓的主外键关系)1,表关联的效率要高于子查询,因为子查询走的是笛卡尔积2,表关联可能有多条记录,子查询只有一条记录,如果需要唯一的列,最好走子查询...

2018-07-19 22:30:02 11808 5

原创 java读取文件的方法

流可以分为字节流和字符流,字节流是以字节为单位(8比特),包含2个抽象类(inputstream、outputstream)。字符流是以字符为单位(16bit)。根据码表映射字符,一次可以读取多个字节,包含2个抽象类,reader,writer。主要区别:字节流在处理输入输出时不会用到缓存,而字符流用到了缓存。JAVA读取文件的方式:1.inputstream ,以字节为单位读取文件,常用于读...

2018-07-19 22:24:13 734

原创 桶排序、递归、迭代、尾递归

1. 桶排序:桶排序将[0,1)区间划分为n个相同的大小的子区间,这些子区间被称为桶。然后将n个输入元素分别放入各自的桶中。因为输入时均匀独立的,所以一般不会有很多数同时落在一个桶中的情况。这样,我们想对各个桶中的数据进行排序,然后遍历每个桶,按照次序把各个桶中的元素列出来即可。 对于N个待排数据,M个桶,平均每个桶[N/M]个数据的桶排序平均时间复杂度为:O(N)+O(M*(N/M)...

2018-07-16 22:15:11 478

转载 String实现 intern

0.引言什么都先不说,先看下面这个引入的例子:[java] view plain copyString str1 = new String("SEU")+ new String("Calvin");       System.out.println(str1.intern() == str1);    System.out.println(str1 == "SEUCalvin");...

2018-07-16 20:53:22 181

原创 高并发系统的设计

一、http连接池优点:1、降低延迟:如果不采用连接池,每次连接发起Http请求的时候都会重新建立TCP连接(经历3次握手),用完就会关闭连接(4次挥手),如果采用连接池则减少了这部分时间损耗,别小看这几次握手,本人经过测试发现,基本上3倍的时间延迟2、支持更大的并发:如果不采用连接池,来一个请求,就创建一个连接,导致资源瓶颈,无法建立新的连接。所以采用连接池,连接的复用,可以提高并发访问...

2018-07-12 20:28:11 6214

原创 为什么要用Redis,Redis有哪些优缺点?Redis如何实现扩容?

优点:1 读写性能优异,从内存当中进行IO读写速度快。2 支持数据持久化,支持AOF和RDB两种持久化方式(由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁 盘上,当redis重启后,可以从磁盘中恢复数据。redis提供两种方式进行持久化,一种是RDB持久化:指在指定的时间间隔内将内存中的数据集快照写...

2018-07-12 11:01:06 6310 1

原创 有人把公司内网的信息截图泄露到外面,如何找出截图的人?

1.重要图片或者文档里面加水印(傅里叶变换,时域到频域,傅里叶逆变换)。2. 所有终端监控敏感操作:另存、截图、剪贴板等操作进行监控,有上述行为一律上传到审计服务器上备份待查。3. 禁止未授权(未安装终端防护程序)的终端接入内网和业务系统。4. 有敏感操作通过摄像头拍摄人脸。5. 定期对硬盘进行文件扫描,关键字、相似度等方法识别出可能是敏感或者涉密的文件,并提取特征,进行标定。6. 同样采用散列值...

2018-07-10 10:48:19 3172

原创 贪吃蛇

1.把蛇的每一块看成一个对象,块与块之间用链表进行相连。所以整条蛇的结构是LinkedList的结构。LinkedList里面每一个对象为point结构(point类是一个点类,表示的是x,y)。就是蛇的每一块的横坐标和纵坐标。蛇是会动的,实际上就是插入一个头结点,删除一个尾节点。新插入的头结点根据蛇的当前方向决定。设置一个变量标志蛇的方向(可以通过按键改变)2.蛇移动到边界会退出游戏。2.食物也...

2018-07-04 16:41:03 195

原创 为什么需要编码?UTF-8和GBK是如何进行编码的

编码是为了在数据传输的过程中节省数据存储空间,可以节省带宽,加快传输速度。UTF-8:英文一个字节,中文3个字节。它可以使用1~4个字节表示一个符号GBK:英文两个字节,中文2个字节。UTF-8 是 Unicode 的实现方式之一。我们已经知道,英文字母只用一个字节表示就够了,如果 Unicode 统一规定,每个符号用三个或四个字节表示,那么每个英文字母前都必然有二到三个字节是0,这对于存储来说是...

2018-07-04 16:09:42 2510 2

原创 JDK、JRE和JVM三者之间关系

2018-07-03 22:31:26 166

原创 幂等性

幂等性:就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。举个最简单的例子,那就是支付,用户购买商品使用约支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额返发现多扣钱了,流水记录也变成了两条...步骤:1、查询订单支付状态2、如果已经支付,直接返回结果3、如果未支付,则支付...

2018-06-21 17:20:26 147

空空如也

空空如也

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

TA关注的人

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