自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (2)
  • 收藏
  • 关注

原创 MYSQL加锁情况

下面为大家讲述mysql的加锁情况首先要查看innodb_status_output_locks是否开启:若为开启,开启它,否则无法查看锁的情况:首先要知道锁模式的含义:IX:意向排它锁X:锁定记录本身和记录之前的间隙S:锁定记录本身和记录之前的间隙X,REC_NOT_GAP:只锁定记录本身S,REC_NOT_GAP:只锁定记录本身X,GAP:间隙锁,不锁定记录本身S,GAP:间隙锁,不锁定记录本身​X,GAP,INSERT_INTENTION:插入意向锁下面进入

2021-06-26 10:26:16 232

原创 类加载过程和new的过程

反射类加载过程:类加载机制:JVM把class文件加载到内存,并对数据进行校验、准备、解析、初始化,最终形成JVM可以直接使用的Java类型的过程其中loadClass的类加载过程有如下几步:加载 >> 验证 >> 准备 >> 解析 >> 初始化 >> 使用 >> 卸载加载:在硬盘上查找并通过IO读入字节码文件,使用到类时才会加载,例如调用类的main()方法,new对象等等,在加载阶段会在内存中生成一个代表这个类的jav

2021-06-26 09:56:37 493

原创 MVCC多版本并发控制

1、MVCCMVCC,全称Multi-Version Concurrency Control,即多版本并发控制。MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。MVCC在MySQL InnoDB中的实现主要是为了提高数据库并发性能,用更好的方式去处理读写冲突,做到即使有读写冲突时,也能做到不加锁,非阻塞并发读。2、当前读像select lock in share mode(共享锁), select for update ; update, in

2021-06-26 09:53:10 193

原创 注解和反射

注解什么是注解:Annotation是从JDK5.0开始引入的新技术)Annotation的作用:不是程序本身可以对程序作出解释.(这一点和注释(comment)没什么区别)可以被其他程序(比如:编译器等)读取.Annotation的格式:注解是以"@注释名"在代码中存在的,还可以添加一些参数值,例如:@SuppressWarnings(value=“unchecked”).Annotation在哪里使用?可以附加在package , class , method , field等上面﹐相

2021-03-13 15:52:26 106

原创 狂神说-----多线程笔记

线程简介多任务:边吃饭边玩手机,同时做多件事(但是实际上是分时进行的,大脑分时处理,时间交替很快)多线程:多车道,多条线路同时执行任务普通方法调用和多线程直接调用run和调用start函数的不同,直接调用run函数无法实现多线程Process 与 Thread程序:指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。进程:是执行程序的一次执行过程,是一个动态的概念。是系统资源分配的单位。一个进程可以包含有多个线程(如视频中同时听到声音、看到图像,还可以看弹幕)一个进程

2021-03-13 15:43:45 151

原创 狂神说Docker笔记

vdocker version/docker info 获取docker信息docker run [镜像名]:例如 docker run hello.world 本地如果没有的话,回去dockerhub上下载,dockerhub上没有就报错docker images:显示docker所有镜像(docker images -a)docker images -q:显示所有镜像的iddocker version:显示docker版本docker search mysql:检索mysqldocke

2021-03-13 15:30:03 349

原创 如何应对缓存穿透、缓存击穿、缓存雪崩问题

Key的过期淘汰机制Redis可以对存储在Redis中的缓存数据设置过期时间,比如我们获取的短信验证码一般十分钟过期,我们这时候就需要在验证码存进Redis时添加一个key的过期时间,但是这里有一个需要格外注意的问题就是:并非key过期时间到了就一定会被Redis给删除。定期删除Redis 默认是每隔100ms就随机抽取一些设置了过期时间的Key,检查其是否过期,如果过期就删除。为什么是随机抽取而不是检查所有key?因为你如果设置的key成千上万,每100毫秒都将所有存在的key检查一遍,会给CPU带

2021-02-24 17:07:05 94

原创 Redis主从复用(读写分离、哨兵配置、主备切换)

第一部分:读写分离本文只用了一个虚拟机,通过端口号搭一个伪的主从复用模拟了三个服务器(集群环境大于50%不可用)。redis启动通过三个不同的配置文件首先把解压的reids中的conf下的redis.conf复制到 /opt/redis/conf下把这个redis.conf改成公用的打开之后,修改配置:注释掉,表示所有ip都可以访问保护模式改成no注释掉端口,因为是公用的,每个用自己的配置开启后台启动:每个私有的都有进程文件,所有公用的注释掉:每个都有自己的dump.rdb

2021-02-24 14:38:36 280

原创 redis持久化方案(持久到磁盘上)

第一种持久化方案:bgsave比如说先存储一个name为zhangsan的数据客户端查看:假设意外宕机了:此时查看数据库已经不在了:所以引入了bgsave:再次宕机测试,发现数据此时任然存在:优点:命令简单,方便操作缺点:需要频繁使用这个命令第二种方案持久化方案:rdb查询配置可以发现:dir ./说明在本地打开之后看不懂,继续找配置文件,可以发现:这个就是rdb持久化方案的配置文件:save 900 1:900秒之内只有有一个key的值发生变化把数据持久化

2021-02-23 18:32:49 329

原创 认证授权注解的使用

@Secured //用户具有某个角色,可以访问方法1.使用前在启动类(配置类)开启注解//开启注解@EnableGlobalMethodSecurity(securedEnabled = true)2.在controller的方法在使用注解加上这个注解之后,用户具有sale和manager角色才可以访问为什么会加ROLE_,这是因为源码中带的有,不写不识别3.在userDeatialService中设置角色@PreAuthorize1.在启动类(配置类)上开启注解2.在con

2021-02-19 16:07:12 111

原创 SpringSecurity Web设置登录系统的账号、密码方式

设置登录系统的账号、密码三种方式方式一:在 application.propertiesspring.security.user.name=cxyspring.security.user.password=cxy方式二:编写类实现接口//@Configurationpublic class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(Authen

2021-02-19 15:39:15 595

原创 如何使用jenkins自动化部署项目

准备代码,提交到码云Git库代码中需要包含以下几部分内容:(1)代码中需要包含Dockerfile文件文件内容:FROM openjdk:8-jdk-alpineVOLUME /tmpCOPY ./target/demojenkins.jar demojenkins.jarENTRYPOINT ["java","-jar","/demojenkins.jar", "&"](2)在项目pom文件中指定打包类型,包含build部分内容2. 安装JAVA 运行环境第一步:上传.

2021-02-18 13:16:47 171

原创 SpringBoot整合定时器

在线生成cron表达式公式:http://cron.qqe2.com/cron表达式设置执行规则,也称 七子表达式(七域表达式)整合方法:1.首页再启动类上添加@EnableScheduling注解2.创建定时任务类:在这个类中设置使用表达式什么时候去执行举个例子:@Componentpublic class ScheduledTask { @Autowired private StatisticsDailyService dailyService; /**

2021-02-10 12:14:38 152

原创 手机号和邮箱的正则验证

//验证手机 checkPhone (rule, value, callback) { //debugger if (!(/^1[34578]\d{9}$/.test(value))) { return callback(new Error('手机号码格式不正确')) } return callback() }, //验证邮箱 checkEmail(rule, value, call.

2021-02-07 16:05:55 127

原创 富文本编辑器去掉自带的默认标签

写一个函数:deleteLable(str){return str.replace(/<[^>]+>/g, “”);}例如我想提交描述信息去掉自带的标签在提交之前:

2021-02-07 16:03:26 494

原创 Webpack使用

一、什么是WebpackWebpack 是一个前端资源加载/打包工具。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。从图中我们可以看出,Webpack 可以将多种静态资源 js、css、less 转换成一个静态文件,减少了页面的请求。二、Webpack安装1、全局安装npm install -g webpack webpack-cli2、安装后查看版本号webpack -v三、初始化项目1、创建webpack文件夹进入webpack目录,执

2021-02-05 09:27:51 66

原创 Babel转码器的使用(ES6 ---> ES5)

一、简介Babel是一个广泛使用的转码器,可以将ES6代码转为ES5代码,从而在现有环境执行执行。这意味着,你可以现在就用 ES6 编写程序,而不用担心现有环境是否支持。二、安装安装命令行转码工具Babel提供babel-cli工具,用于命令行转码。它的安装命令如下:npm install --global babel-cli​#查看是否安装成功babel --version三、Babel的使用1、初始化项目npm init -y2、创建文件src/example.js下面

2021-02-05 09:23:59 129

原创 JWT介绍及其用法

一、使用JWT进行跨域身份验证1、传统用户身份验证Internet服务无法与用户身份验证分开。一般过程如下:1.用户向服务器发送用户名和密码。2.验证服务器后,相关数据(如用户角色,登录时间等)将保存在当前会话中。3.服务器向用户返回session_id,session信息都会写入到用户的Cookie。4.用户的每个后续请求都将通过在Cookie中取出session_id传给服务器。5.服务器收到session_id并对比之前保存的数据,确认用户的身份。这种模式最大的问题是,没有分布式架构

2021-02-05 09:17:12 827

原创 实现EasyExcel对Excel读操作

一、实现EasyExcel对Excel读操作1、创建实体类import com.alibaba.excel.annotation.ExcelProperty;public class ReadData { //设置列对应的属性 @ExcelProperty(index = 0) private int sid; //设置列对应的属性 @ExcelProperty(index = 1) private String sname;​ pu

2021-02-05 09:12:34 125

原创 Feign(微服务互相调用)概念

一、Feign1、基本概念Feign是Netflix开发的声明式、模板化的HTTP客户端, Feign可以帮助我们更快捷、优雅地调用HTTP API。Feign支持多种注解,例如Feign自带的注解或者JAX-RS注解等。Spring Cloud对Feign进行了增强,使Feign支持了Spring MVC注解,并整合了Ribbon和Eureka,从而让Feign的使用更加方便。Spring Cloud Feign是基于Netflix feign实现,整合了Spring Cloud Ribbon和

2021-02-05 09:10:56 375

原创 Nacos使用方法

一、Nacos1、基本概念(1)Nacos 是阿里巴巴推出来的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。(2)常见的注册中心:Eureka(原生,2.0

2021-02-05 09:08:40 147

原创 SpringBoot使用Redis与 Jedis使用Redis

一、Redis介绍Redis是当前比较热门的NOSQL系统之一,它是一个开源的使用ANSI c语言编写的key-value存储系统(区别于MySQL的二维表格的形式存储。)。和Memcache类似,但很大程度补偿了Memcache的不足。和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到内存中,无法自动定期写入硬盘,这就表示,一断电或重启,内存清空,数据丢失。所以Memcache的应用场景适用于缓存无需持久化的数据。而Redis不同的是它会周期性的把更

2021-02-02 09:37:01 648 1

原创 解决mybatis报错org.apache.ibatis.binding.BindingException

三种解决方法:第一种:你可以发现打包的时候target下没有xml文件,所以直接复制xml到target中对于的目录即可第二种:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)问题,即在mybatis中dao接口与mapper配置文件在做映射绑定的时候出现问题,简单说,就是接口与xml要么是找不到,要么是找到了却匹配不到。Mapper接口开发需要遵循以下规范:Mapper.xml文件中的

2021-01-29 17:44:07 1192

原创 矩阵连乘问题

首先,需要知道,动态规划的基本要素1)最优子结构2)重叠子问题3)自底向上的求解方法矩阵连乘问题:给定n个矩阵{A1.A2…A}其中A;与A+1是可乘的 (i=1,2…,.n-1)确定计算矩阵连乘积的计算次序,使得依此次序计算矩阵连乘积需要的数乘次数最少。输入数据为矩阵的个数和每个矩阵的规模,输出结果为计算矩阵连乘积的计算次序和最少数乘次数。代码:package sortdemo;public class juzhen { /** * 求解最优值 * @

2020-12-22 20:13:18 181

原创 算法时间,空间复杂度

时间复杂度一般情况下,算法中的基本操作语句的重复执行次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n) / f(n) 的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作 T(n)=O( f(n) ),称O( f(n) ) 为算法的渐进时间复杂度,简称时间复杂度。T(n) 不同,但时间复杂度可能相同。 如:T(n)=n²+7n+6 与 T(n)=3n²+2n+2 它们的T(n) 不同,但时间复杂度相同,都为O(n²)。计算时间复杂度

2020-12-22 15:12:18 138

原创 算法分析之——8皇后问题

八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即:任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。使用到回溯算法高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。思路分析:1)第一个皇后先放第一行第一列2)第二个皇后放在第二行第一列、然后判断是否oK,如果不oK,继续放在第二列、第三列、依次把所

2020-12-22 14:19:34 290

原创 算法分析之0-1背包问题

思路分析和图解算法的主要思想,利用动态规划来解决。每次遍历到的第i个物品,根据w[i]和v[i]来确定是否需要将该物品放入背包中。即对于给定的n个物品,设v[i]、w[i]分别为第i个物品的价值和重量,C为背包的容量。再令v[i][j]表示在前i个物品中能够装入容量为j的背包中的最大价值。则我们有下面的结果:(1) v[i][0]=v[0][j]=0; //表示 填入表 第一行和第一列是0(2) 当w[i]> j 时:v[i][j]=v[i-1][j] // 当准备加入新增的商品的容量大

2020-12-22 10:44:46 90

原创 Kruskal算法JAVA版

package sortdemo;import java.util.Arrays;public class KruskalCase { private int edgeNum; //边的个数 private char[] vertexs; //顶点数组 private int[][] matrix; //邻接矩阵 //使用 INF 表示两个顶点不能连通 private static final int INF = Integer.MAX_VALUE;

2020-12-21 15:37:44 149

原创 Prim算法JAVA版

package sortdemo;import java.util.Arrays;public class Prim { public static void main(String[] args) { //测试看看图是否创建成功 char[] data = new char[]{'A','B','C','D','E','F','G'}; int verxs = data.length; //邻接矩阵的关系使用二维数组表示,10

2020-12-21 15:27:22 83

原创 贪心算法之会场安排问题

新手,留做记录package sortdemo;/** * 贪心算法 */public class test4 { public static int greedySelector(int[] s, int[] f, boolean[] a) { int n = s.length - 1; //安排第一个活动,标记为true a[1] = true; int j = 1; int count = 1;

2020-12-21 11:19:12 192

原创 算法分析之快速排序

假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列中所有比基准数大的数放在6的右边,比基准数小的数放在6的左边,类似下面这种排列。3 1 2 5 4 6 9 7 10 8在初始状态下,数字6在序列的第1位。我们的目标是将6挪到序列中间的某个位置,假设这个位置是k。现在就需要寻

2020-12-21 11:16:07 88

原创 算法分析之合并排序

合并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。合并排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2-路归并。合并排序也叫归并排序。图解:合并排序就是将一个数组分成左右两边,再将左边和右边的分别分成两

2020-12-21 11:05:32 304

原创 ==和equals方法的比较

“==”代表比较双方是否相同。如果是基本类型则表示值相等,如果是引用类型则表示地址相等即是同一个对象。Object类中定义有:public boolean equals(Object obj)方法,提供定义“对象内容相等”的逻辑。比如,我们在公安系统中认为id相同的人就是同一个人、学籍系统中认为学号相同的人就是同一个人。Object 的 equals 方法默认就是比较两个对象的hashcode,是同一个对象的引用时返回 true 否则返回 false。但是,我们可以根据我们自己的要求重写equals方法

2020-11-06 20:15:19 67

原创 JAVA面试题

作者:希望秋招拿到offer链接:https://www.nowcoder.com/discuss/452732?type=all&order=time&pos=&page=3&channel=0&source_id=search_all来源:牛客网1、牛客刷题●RabbitMQ有以下几种工作模式 :简单模式:一个生产者,一个消费者work模式:一个生产者,多个消费者,每个消费者获取到的消息唯一。订阅模式:一个生产者发送的消息会被多个消费者获取。路由模

2020-11-05 18:42:15 175

原创 ES6(ECMAScript 6)

一:let和const由于传统的var变量,在循环外面仍然可以访问例如:for(var i=0 ; i<3 ; i++){ console.log(i)}console.log(i)运行结果:我们发现在循环外面,打印i竟然有结果了,这并不是我们想要的,所以这时候使用let定义讲上面的var改成let之后,我们发现:说明此时在外面不能访问了const就是定义一个常量二:解构请看下面的代码:let arr=[1,2,3]const[x,y,z]=arrconso

2020-11-05 18:39:29 130

转载 JAVA发送邮件

Java 发送邮件使用Java应用程序发送 E-mail 十分简单,但是首先你应该在你的机器上安装 JavaMail API 和Java Activation Framework (JAF) 。您可以从 Java 网站下载最新版本的 JavaMail,打开网页右侧有个 Downloads 链接,点击它下载。您可以从 Java 网站下载最新版本的 JAF(版本 1.1.1)。下载并解压缩这些文件,在新创建的顶层目录中,您会发现这两个应用程序的一些 jar 文件。您需要把 mail.jar 和 acti

2020-11-05 17:43:23 487

原创 C语言知识的回顾(笔记)

第一章:总体上必须清楚:1,首先,程序上是有3种结构:顺序结构,选择结构(分支结构),循环结构。2,读程序都需要入口(main()),然后从最上到最下(碰到循环做循环,碰到选择做选择),且只有一个main函数3,计算机的数据在电脑中是以2进制的形式保存,数据存放的位置就是他的地址概念题:1,编译预处理(#include<stdio.h>)不是C语言的一部分,不占运行时间,不要加分号,C语言编译...

2020-11-05 17:28:55 468

原创 二分查找(递归和非递归)python实现

定义:二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。思路:比如说有一个列表L,里面有一组数字,并且这一组数字经过排序(L.sort()),把这个列表的长度整除二得到一个数(假设数组长度7,7//2=3),然后把这个列表看做为左边3个和右边4个,然后输入你要查找的数字,如果L[3]正好和你要查找的值(假设是x)相等,则把该值返回,如果L[3]>x,那么你所查找的值一定在L[3]的左边,然后

2020-11-05 17:17:54 388

原创 贪心算法(多机调度问题)

问题描述:设有n个独立的作业{1,2,…, n },由m台相同的机器进行加工处理。作业i所需的处理时间为i t 。现约定,每个作业均可在任何一台机器上加工处理,但未完工前不允许中断处理。作业不能拆分成更小的子作业。多机调度问题要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。这个问题是NP完全问题,到目前为止还没有有效的解法。对于这一类问题,用贪心选择策略有时可以设计出较好的近似算法。采用最长处理时间作业优先的贪心选择策略可以设计出解多机调度问题的较好的近似算法。按此策

2020-11-05 17:02:40 770

原创 Mybatis

dao:package com.itheima.dao;import com.itheima.domain.QueryVo;import com.itheima.domain.User;import java.util.List;/** * @author 黑马程序员 * @Company http://www.ithiema.com * * 用户的持久层接口 */public interface IUserDaodTx { /** * 查询所有用户

2020-11-02 23:35:34 69

jenkins.war

用于安装jenkins

2021-02-21

oracle实验对象管理及使用.docx

这是oracle数据库的实验三内容,其中主要是一些操作方式和操作流程,涉及到企业管理器的由于没有工具没有写,主要是oracle语句对象的操作与管理方面的

2019-11-18

空空如也

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

TA关注的人

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