自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Tong_zhi的博客

行百里者半九十

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

原创 异步编程-ExecutorService、CompletionService、CompletableFuture

1. ExecutorService中submit()和execute()的区别execute只能提交Runnable类型的任务,无返回值。submit既可以提交Runnable类型的任务,也可以提交Callable类型的任务,会有一个类型为Future的返回值,但当任务类型为Runnable时,返回值为null。submit()可以进行Exception处理:execute在执行任务时,如果遇到异常会直接抛出,而submit不会直接抛出,而是把异常保存在成员变量中,在FutureTask.get阻塞

2021-08-18 14:03:08 1165

原创 Http 请求的4种方式

1. RestTemplateRestTemplate: 是 Spring 提供的用于访问Rest服务的客户端, RestTemplate 提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。SpringBoot中先注册bean @Bean public RestTemplate restTemplate(){ return new RestTemplate(); } // 或者 @Bean public RestTe

2021-08-09 21:22:36 1734

原创 Spring Security 学习笔记1

认识 Spring Security 中常用的几个类1. SecurityContextHolderSecurityContextHolder 默认使用ThreadLocal策略来存储认证信息ThreadLocal:与当前线程绑定,用来存储用户信息获取当前用户信息Object principal = SecurityContextHolder.getContext().getAut...

2019-11-07 20:34:02 266

原创 Spring 实现简单过滤器 Filter

1. Filter 介绍Filter过滤器主要用来过滤用户的请求,允许用户对请求进行前置处理和后置处理,比如实现 URL 级别的权限控制、过滤非法请求等等。Filter 过滤器是面向切面编程——AOP 的据图实现(AOP切面编程只是一种编程思想而已)。Filter 是依赖于 Servlet 容器,如果要自定义过滤器的话,只需要实现 javax.Servlet.Filter 接口,然后重写里面的...

2019-11-05 19:20:48 2021

原创 开发中遇到的若干 Git 问题

远程先开好分支后拉到本地 检出远程的feature-branch分支到本地 git checkout -b feature-branch origin/feature-branch 本地先开好分支然后推送到远程创建并切换到分支git checkout -b feature-branch git push origin feature-branch:feature-bran...

2019-10-18 12:37:08 180

原创 排序算法之堆排序

/*7.堆排序最佳情况:T(n) = O(nlogn)最差情况:T(n) = O(nlogn)平均情况:T(n) = O(nlogn)*//* 从i节点开始调整,n为节点总数 从0开始计算 i节点的子节点为 2*i+1, 2*i+2 n是数组的大小*/void MinHeapFixdown(int a[], int i, int n) { for(int j = 2 *...

2019-07-28 19:07:17 253

原创 排序算法之基数排序

/*10.基数排序最佳情况:T(n) = O(n * k)最差情况:T(n) = O(n * k)平均情况:T(n) = O(n * k)*/int maxbit(int* arrays, int n) { int d = 1; int p = 10; for(int i = 0; i < n; i++) { while(arrays[...

2019-07-28 13:21:01 301

原创 排序算法之计数排序

/*8.计数排序计数排序假设n个输入元素中的每一个元素介于0 到 K 之间的整数*/void countingSort(int* arrays, int n) { int p = arrays[0]; for(int i = 1; i < n; i++) { p = max(p, arrays[i]); } int len = p +...

2019-07-28 13:19:47 184

原创 排序算法之快速排序

/*6.快速排序最佳情况:T(n) = O(nlogn)最差情况:T(n) = O(n2)平均情况:T(n) = O(nlogn) */void quickSort(int* arrays, int l, int r) { if(l < r) { int i = l, j = r, x = arrays[i]; while(i < ...

2019-07-28 13:18:55 205

原创 排序算法之归并排序

/*5.归并排序最佳情况:T(n) = O(n)最差情况:T(n) = O(nlogn)平均情况:T(n) = O(nlogn)*//*将两个有序的数组合并*/void toMerge(int* arrays, int l, int mid, int r, int* temp) { int i = l, j = mid + 1, k = 0; while(i ...

2019-07-28 13:18:10 247

原创 排序算法之希尔排序

/*4.希尔排序最佳情况:T(n) = O(nlog2 n)最坏情况:T(n) = O(nlog2 n)平均情况:T(n) =O(nlog2n)*/void shellSort(int* arrays, int n) { int gap, k, j, t; for(gap = n / 2; gap > 0; gap = gap / 2) { fo...

2019-07-28 13:17:20 175

原创 排序算法之插入排序

/*3.插入排序最佳情况:T(n) = O(n)最坏情况:T(n) = O(n2)平均情况:T(n) = O(n2)*/void inserSort(int* arrays, int n) { int temp, i = 0, j = 0; for(i = 1; i < n; i++) { temp = arrays[i]; j ...

2019-07-28 13:16:25 166

原创 排序算法之选择排序

/*2.选择排序最佳情况:T(n) = O(n2)最差情况:T(n) = O(n2)平均情况:T(n) = O(n2)*/void selectiveSort(int* arrays, int n) { int temp, m, k; for(int i = 0; i < n - 1; i++) { m = arrays[i]; ...

2019-07-28 13:13:24 183

原创 排序算法之冒泡排序

/*1.冒泡排序算法最佳情况:T(n) = O(n)最差情况:T(n) = O(n2)平均情况:T(n) = O(n2)*/void bubbleSort(int* arrays, int n) { int temp; for(int i = 0; i < n - 1; i++) { for(int j = 0; j < n - i ...

2019-07-28 13:09:24 163

原创 Windows 10安装Adobe XD出现白屏闪退问题

关于在我的电脑上出现的安装Adobe XD出现白屏闪退问题,困扰了我很长一段时间,在此记录我解决此问题的过程及方法:一开始,我的电脑打开也是白屏闪退,在网上尝试了很多解决方法,病急乱投医。首先,从尝试使用注册表更改BlockProtocolElevation值,看到贴吧上讲要将其值改成0,但是没有成功;其次,我尝试下载DirectXRepair修复工具修复电脑里的c++ 组件,但是电脑...

2019-03-16 13:43:43 3306

原创 MySQL8.0以上 root用户密码设置问题

MySQL出现root用户密码错误,或者修改root用户默认密码root 用户输入密码出现错误:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)步骤:1. 打开管理员窗口界面输入cmd命令:net stop mysql 将MySQL服务停止2. 接着输入my...

2018-12-02 16:18:58 7406 7

原创 2018 CCSP 杭州之行

2018CCSP过去好几天了,才想着来写点东西,杭州之行,给我留下深刻的印象,这是我第二次参加的关于程序竞赛的大型比赛,记得前一次是在秦皇岛参加CCPC,那时的比赛,在我的印象里,没有这次比赛激烈和精彩,虽然作为一名没有取得令人称赞的成绩的小白来说,没有什么资格来谈论比赛的方方面面,但是,这对于我来说却是成长的一个机会。在杭州电子科技大学下沙校区参加的ccsp,很荣幸我有这样的一个机会可以和清华等...

2018-10-29 16:53:09 924

原创 String提取指定分隔符的字符串到vector

例:提取在字符'/'之间的字符串如:/articles/2003//articles/&lt;int&gt;//articles/&lt;int&gt;/&lt;int&gt;//articles/&lt;int&gt;/&lt;int&gt;/&lt;str&gt;//static/&lt;path&gt;方法一:使用string的find函数和substr函数来提取...

2018-10-12 17:23:10 1773

转载 扩展KMP算法

摘自:https://segmentfault.com/a/1190000008663857问题定义:给定两个字符串S和T(长度分别为n和m),下标从0开始,定义extend[i]等于S[i]...S[n-1]与T的最长相同前缀的长度,求出所有的extend[i]。举个例子,看下表:i 0 1 2 3 4 5 6 7 S a ...

2018-09-14 19:14:03 190

原创 线段树下推标记(懒惰标记,延迟标记)

解释:理论上来说,如果[3, 9]这个区间被修改的话,那么下图中的所有绿色的结点的值都要得到重新计算的:但是实际上是没有必要这么做的——我们可以引进一种叫做Lazy Tag,即延迟标记的东西——的确对于[3, 9]这样一次修改操作,我可以只去修改如下图中橙色的结点,但是在这个基础上,我要在[3, 9]分解出的4个区间[3, 3], [4, 5], [6, 8], [9, 9]所对应的结...

2018-09-13 09:53:23 1882

转载 线段树详解

本文摘自:https://blog.csdn.net/yitongjun/article/details/53193724 目录:一:综述二:原理三:递归实现四:非递归原理五:非递归实现六:线段树解题模型七:扫描线八:可持久化 (主席树)九:练习题   一:综述假设有编号从1到n的n个点,每个点都存了一些信息,用[L,R]表示下标从L...

2018-09-13 09:45:43 218

转载 线段树初步理解

摘自:https://blog.csdn.net/zearot/article/details/52280189 一:为什么需要线段树?   题目一: 10000个正整数,编号1到10000,用A[1],A[2],A[10000]表示。 修改:无 统计:1.编号从L到R的所有数之和为多少? 其中1&lt;= L &lt;= R &lt;...

2018-09-12 16:13:41 166

转载 Linux下 <DIR> <dirent> <stat> 等结构体详解

以下为DIR结构体的定义: 1 struct __dirstream 2 { 3 void *__fd; 4 char *__data; 5 int __entry_data; 6 char *__ptr; 7 int __entry_ptr; 8 size_t __allocation; 9 size_t __size...

2018-07-04 21:42:34 324

转载 C语言中关于对目录的操作

1、获取当前目录操作:     在系统命令行下我们可以直接输入命令:pwd 来获取当前的工作目录,但是你知道这个命令是怎么执行的吗?它是由系统通过 Shell 程序来解释执行的,在我们自己编写程序的时候怎么能获取当前的工作目录呢?在标准C库中提供了一系列关于目录操作的接口函数:           char * getcwd(char * buf,size_t size);        getc...

2018-07-04 21:36:58 1265

转载 Linux基本命令<mv>详解

mv(选项)(参数)    剪切,或在同目录下移动重命名1.如果目标文件是文件夹,则源文件直接移动到该文件夹内,名字还是源文件的名字。2.如果目标文件时文件,则源文件移动的同时也会更改名字3.如果源文件为多个,则目标必须是目录,并且统一移动到目录下-b:当目标文件存在时,先进行备份在覆盖[root@bogon admin]# mv -b a/aa b/mv: overwrite `b/aa'? ...

2018-07-03 22:39:19 234

转载 Linux下<find>命令的应用

一、命令格式:find pathname -options [-print -exec -ok ...]二、命令功能:用于在文件树查找文件,并作出相应的处理(可能访问磁盘)三、命令参数:pathname:find命令所查找的目录路径。例如用 . 来表示当前目录,用/来表示系统根目录。-print :find命令对匹配的文件输出到标准输出。-exec:find命令对匹配的文件执行该参数所给出的she...

2018-07-03 22:37:11 232

转载 Linux下<xargs>命令

xargs命令用法 xargs用作替换工具,读取输入数据重新格式化后输出。 定义一个测试文件,内有多行文本数据:cat test.txta b c d e f gh i j k l m no p qr s tu v w x y z 多行输入单行输出:cat test.txt | xargsa b c d e f g h i j k l m n o p q r s t u v w...

2018-07-03 22:35:03 243

原创 linux 删除问题 一次删除多个目录下的相同扩展名的文件

示例:一次性删除某目录及其子目录下所有以.exe为后缀的文件。find . -name '*.exe' -type f -print -exec rm -rf {} \;说明:find:使用find命令搜索文件,使用它的-name参数指明文件后缀名。. :是当前目录,因为Linux是树形目录,所以总有一个交集目录,这里根据需要设置'*.exe': 指明后缀名,*是通配符" -t...

2018-07-03 22:32:15 2096

转载 Linux复制指定目录及子目录下特定类型的文件

首先建立一个用于测试的目录,用'tree'命令查看其结构如下所示:  可见,目录中主要包含用于测试的*.txt文件和用于充当炮灰的*。tes文件目标是保持当前的目录结构,只把txt文件复制出来 方法一:当不需要的文件类型较为单一时,可以通过完全复制然后删除指定类型的文件完成Step1 使用命令 cp -r test/ test2 将测试目录test下所有内容完全复制到test2,此时树形结构如下图...

2018-07-03 22:30:24 11104

转载 shell 命令目录文件4种复制方法

把/oldboy目录及子目录下面 所有以.sh结尾的文件复制到 /tmp下面手续创建环境:mkdir -p /oldboy/testcd /oldboyecho "oldboy"&gt;test/del.shecho "oldboy"&gt;test.shecho "oldboy"&gt;t.shtouch oldboy.txttouch alex.txt这里写图片描述 接下来进行实际...

2018-07-03 22:25:17 22123

转载 Shell中的$0、$1、$2的含义

在 shell 中我们会见到 $0、$1、$2这样的符号,这是什么意思呢? 简单来说 $0 就是你写的shell脚本本身的名字,$1 是你给你写的shell脚本传的第一个参数,$2 是你给你写的shell脚本传的第二个参数比如你新建了一个shell脚本 Test.sh, 内容如下:#!/bin/shecho "shell脚本本身的名字: $0"echo "传给...

2018-07-03 22:21:16 560

转载 Linux下shell<read>的用法

1、read基本读取 1 #!/bin/bash 2 #testing the read command 3 4 echo -n "Enter you name:" #echo -n 让用户直接在后面输入 5 read name #输入的多个文本将保存在一个变量中 6 echo "Hello $name, welcome to my program." ...

2018-07-03 22:18:31 371

转载 Linux <read>命令详解

read命令 Shell内建命令 read命令从键盘读取变量的值,通常用在shell脚本中与用户进行交互的场合。该命令可以一次读取多个变量的值,变量和输入的值都需要使用空格隔开。在read命令后面,如果没有指定变量名,读取的数据将被自动赋值给特定的变量REPLY 语法read(选项)(参数) 选项-p:指定读取值时的提示符;-t:指定读取值时等待的时间(秒)。 参数 变量:指定读取值的变量名。 ...

2018-07-03 22:15:03 566

转载 Linux文件锁

一、文件锁的分类:        翻阅参考资料,你会发现文件锁可以进行很多的分类,最常见的主要有读锁与写锁,前者也叫共享锁,后者也叫排斥锁,值得注意的是,多个读锁之间是不会相互干扰的,多个进程可以在同一时刻对同一个文件加读锁;但是,如果已经有一个进程对该文件加了写锁,那么其他进程则不能对该文件加读锁或者写锁,直到这个进程将写锁释放,因此可以总结为:对于同一个文件而言,它可以同时拥有多个读者,但是在...

2018-06-28 20:23:01 2822

转载 Linux下创建文本文件(vi/vim命令使用详解)

vi test.txt或者vim test.txt再或者touch test.txtvim是vi的升级版,指令更多,功能更强。下面是收集的vim用法,当在vim里面要实现退出,首先要做的是按【Esc】,然后再输入【:wq】一、一般模式:删除、复制与粘贴类命令x,X x为向后删除一个字符,X为先前删除一个字符nx(n代表数字) ...

2018-06-28 20:17:23 15115

转载 lseek函数

所有打开的文件都有一个当前文件偏移量(current file offset),以下简称为 cfo。cfo 通常是一个非负整数,用于表明文件开始处到文件当前位置的字节数。读写操作通常开始于 cfo,并且使 cfo 增大,增量为读写的字节数。文件被打开时,cfo 会被初始化为 0,除非使用了O_APPEND 。    使用 lseek 函数可以改变文件的 cfo 。        #include ...

2018-06-28 20:13:45 307

转载 Linux文件操作函数(open、write、read、close)

1. open()函数功能描述:用于打开或创建文件,在打开或创建文件时可以指定文件的属性及用户的权限等各种参数。所需头文件:#include &lt;sys/types.h&gt;,#include &lt;sys/stat.h&gt;,#include &lt;fcntl.h&gt;函数原型:int open(const char *pathname,int flags,int perms)参数...

2018-06-28 20:12:00 317

转载 Linux编译多个不同目录下的文件以及静态库、动态库的使用

一、  编译不同目录下的多个文件各个文件的布局如下:       head.h文件的代码:[cpp] view plain copy#ifndef  HEAD_H  #define  HEAD_H    int add(int a, int b);      #endif  /*HEAD_H*/  head.cpp文件的代码:[cpp] view plain copy#include    "he...

2018-06-28 20:07:28 548

转载 Windows上安装MySQL

转自:https://blog.csdn.net/u013235478/article/details/50623693MySQL针对不同的用户提供了2中不同的版本:MySQL Community Server:社区版。由MySQL开源社区开发者和爱好者提供技术支持,对开发者开放源代码并提供免费下载。MySQL Enterprise Server:企业版。包括最全面的高级功能和管理工具,不过对用户...

2018-06-10 15:17:18 204

转载 Linux下用命令行解压扩展名为“.zip”文件

语法:unzip 〔选项〕 压缩文件名.zip 各选项的含义分别为: -x 文件列表 解压缩文件,但不包括指定的file文件。 -v 查看压缩文件目录,但不解压。 -t 测试文件有无损坏,但不解压。 -d 目录 把压缩文件解到指定目录下。 -z 只显示压缩文件的注解。 -n 不覆盖已经存在的文件。 -o 覆盖已存在的文件且不要求用户确认。 -j 不重建文档的目录结构,把所有文件解...

2018-06-09 20:09:15 1618

空空如也

空空如也

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

TA关注的人

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