自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

if's Blog

个人博客http://ifyyf.com

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

原创 来一点mysql的面试题

来一点mysql的面试题文章目录来一点mysql的面试题数据库的三范式是什么简述索引的类型和对性能的影响为什么mysql要使用B+树(B和B+树的区别)(重要)B树和B+树的区别B树图示B+树图示使用了B+树有什么优势索引的基本原理mysql聚簇索引和非聚簇索引是什么?有什么区别?聚簇索引非聚簇索引区别聚簇索引的特点为什么主键索引比普通索引性能高?mysql的回表是什么?什么是回表?主键索引效率更快的原因索引覆盖MyISAM与InnoDB对比mysql锁有哪些?如何理解事务的基本特性和隔离级别(重要)基本

2021-11-27 16:12:19 2111 1

原创 简单谈谈MySQL的事务

简单谈谈MySQL的事务文章目录简单谈谈MySQL的事务事务的基本特性和隔离级别基本特性 ACID4个隔离级别隔离级别中可能出现的问题ACID是靠什么保证的什么是MVCCreadview是什么MVCC是如何实现不可重复读和可重复读的mysql的原子性和持久性是如何实现的当前读、快照读,到底读的是什么共享锁、排他锁事务的基本特性和隔离级别基本特性 ACID事务的基本特性就是ACIDACID,是指数据库管理系统(DBMS)在写入或更新资料的过程中,为保证事务(transaction)是正确可靠的,所必

2021-11-25 22:19:16 590

原创 简单谈谈MySQL的索引失效问题

简单谈谈MySQL的索引失效问题文章目录简单谈谈MySQL的索引失效问题前言课程简介mysql逻辑架构简述mysql的架构层次及其功能1、连接层2、服务层3、引擎层4、存储层存储引擎简介MyISAM与InnoDB对比谈谈SQL执行顺序7中join理论谈谈索引什么是索引?索引的优点与缺点优点缺点索引分类单值索引复合索引唯一索引主键索引基本语法创建删除查看索引结构BTree索引Hash索引full-text索引R-Tree索引应不应该创建索引哪些情况需要创建哪些情况不需要创建性能优化分析:SQL性能慢Expl

2021-11-19 16:34:34 415 1

原创 简单谈谈Juc并发编程

Juc笔记前言本课程学习与B站狂神说Java的JUC并发编程本课程的代码都放在了我的个人gitee仓库上了什么是JUC?java.util.concurrent jucjava.util.concurrent.atomic 原子性java.util.concurrent.locks 锁平时业务中可能用Thread或者像Runnable接口实现,没有返回值,而且效率相对于callable较低java.util.concurrent

2021-11-09 19:25:23 96

原创 简单谈谈ConcurrentHashMap

简单谈谈ConcurrentHashMap前言本文学习与B站ConcurrentHashMap底层原理剖析本文只简单讲解ConcurrentHashMap的一些面试题,用于理解ConcurrentHashMap,并不会特别深入如果对于HashMap不熟悉的读者,在阅读本文前可以先阅读我的另一篇博客《简单谈谈HashMap》ConcurrentHashMap的实现原理是什么?jdk7原理JDK7中的ConcurrentHashMap由Segment和HashEntry组成,即Concurren

2021-11-05 20:42:02 44

原创 简单谈谈HashMap

简单谈谈HashMap文章目录简单谈谈HashMap前言hash算法常用的哈希算法hashmap的数据结构jdk1.7和jdk1.8的区别简单讲解过程1.8之后为什么要引入红黑树?什么时候扩容?扩容源码高频集合扩容的信息什么时候转红黑树?HashMap 中 hash 函数是怎么实现的?还有哪些hash函数的实现方式?当两个对象的 hashCode 相等时会怎么样?什么是哈希碰撞,如何解决哈希碰撞?如果两个键的 hashCode 相同,如何存储键值对?HashMap集合类的成员1.序列化版本号2.集合的初始

2021-10-31 15:08:38 820 4

原创 RocketMQ学习笔记

RocketMQ学习笔记前言以下前言的几个问题选自博主割肉机的博文:一个用消息队列 的人,不知道为啥用 MQ,这就有点尴尬本文学习参考自B站尚硅谷的【尚硅谷】2021新版RocketMQ教程丨深度掌握MQ消息中间件为什么要使用消息队列?解耦传统模式的缺点:系统间耦合性太强,如上图所示,系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦!中间件模式的优点:将消息写入消息队列,需要消息的系统自己从消息队列中订阅,从而系统A不需要做任何修改

2021-10-25 23:40:21 96

原创 ElasticSearch笔记

ElasticSearch笔记文章目录ElasticSearch笔记前言下载地址本教程讲解什么ES的概述ES的安装es的启动es-head插件是什么下载安装kibana安装ES的核心概念IK分词器插件添加IK分词器自定义字典REST风格es的基础使用新版方法表格基础测试创建索引并插入文档数据创建指定类型的索引获取信息删除复杂一点的查询单条件带参查询结果过滤结果排序分页查询多条件查询精确查询结果高亮springboot集成es导入依赖创建springboot项目注入RestHighLevelClient到s

2021-10-14 22:28:00 128

原创 单例模式笔记

单例模式前言单例模式是指:确保一个类在任何情况下都绝对只有一个实例,隐藏其构造的方法,并提供一个全局访问点例如ServletContext、ServletConfig、ApplicationContext、DBPool你能记起多少单例?饿汉式,饱汉式,双重检查式,静态内部类式饿汉式缺点:当需要加载的单例对象数量过多时,会造成内存浪费==注:==如果是变成static代码块去new也是没有本质区别的——因为都是一开始就初始化了,不过至少可以放上对应的初始化的操作,还是比原生的要好一点点的/*

2021-09-20 21:32:19 40

原创 Stack类、Queue类和Deque类常用方法(防止忘记)

Stack类栈(Stack)是一种后进先出(LIFO)的数据结构,操作栈的元素的方法有:把元素压栈:push(E)把栈顶的元素“弹出”:pop(E)取栈顶元素但不弹出:peek(E)在Java中,我们用Deque可以实现Stack的功能最后,不要使用遗留类StackQueue类在Java的标准库中,队列接口Queue定义了以下几个方法:int size():获取队列长度;boolean add(E) / boolean offer(E):添加元素到队尾;E remove() / E p

2021-09-12 15:40:10 29

原创 定时自动关机程序/脚本

定时自动关机程序/脚本下载地址exe文件下载bat文件下载图示源码源码是bat脚本文件,利用工具转成了exe文件转换工具链接bat源码@echo offmode con: COLS=100 LINES=40title 定时关机程序COLOR 02clsECHO.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ECHO.::

2021-09-09 23:35:41 92

原创 bat文件转exe工具分享

bat文件转exe我们这里用到一个工具Bat_To_Exe_Converter点击下载下载地址安装完后打开是英文界面,修改语言为中文然后打开bat文件,选择好exe文件的图标,然后点击转换即可

2021-09-09 23:31:36 42

原创 windows和linux安装、使用minio服务端

windows和linux安装、使用minio服务端文章目录windows和linux安装、使用minio服务端windows安装minio上传了图片等文件怎么进行访问呢?linux的安装与使用之前一直用的都是windows的minio,但是服务器快过期,打算换到自己的ubuntu系统服务器上去,但是今天下载下来发现minio服务端好像更新了?界面多了很多东西,而且全英文看的也是眼花缭乱的,本次教程是写的windows和linux安装minio服务端的教程windows安装minio进入minio中

2021-09-03 16:46:08 114

原创 SpringCloud-Netflix笔记

SpringCloud笔记文章目录SpringCloud笔记前言微服务概述springcloud概述版本对比快速开始Eureka服务注册与发现什么是EurekaEureka的基本结构起步自我保护机制注册服务访问所有/单个微服务的信息集群环境搭建CAP原则及对比Zookeeper取舍策略Eureka比Zookeeper好在哪json被解析成了xml?Ribbon:负载均衡及Ribbon什么是RibbonRibbon能干嘛使用Ribbon实现轮询负载均衡自定义Ribbon负载均衡算法Feign负载均衡什么是F

2021-08-31 14:10:01 95

原创 子模块pom依赖无法导入

子模块pom依赖无法导入发现问题今天遇见一个问题,子模块创建后,复制pom依赖,但是在project structure中查看lib库中无内容,证明依赖没有正确导入,但是图片显示已经导入并且与父工程绑定了解决办法左上角File=>Setting,搜素输入Ignored Files可以看见子模块的pom依赖左边被打勾了,也就是被Maven忽略了,自然也就无法导入了,取消勾选再将pom的依赖剪切,重新粘贴,就会自动导入了...

2021-08-25 14:52:24 173

原创 idea的代码突然消失了怎么复原

idea的代码突然消失了怎么复原如果代码丢失,或者移动了,想在idea中复原之前的代码的话,idea有一个local history功能可以进行撤销操作与复原右键文件夹,选择local history,再show history接下来找到代码消失的记录,点击左上角撤销原操作即可复原...

2021-08-24 12:27:37 2162

原创 docker的学习笔记

docker学习笔记文章目录docker学习笔记入门核心概念docker能干嘛docker的安装安装docker的卸载配置阿里云加速镜像服务run的执行流程图解常用命令帮助命令镜像命令容器命令图形化界面portainer安装图示commit镜像容器数据卷数据卷的好处数据卷的使用-v 命令DockerFile数据卷的查看数据容器卷入门Docker是一个虚拟环境容器,可以将你的开发环境、代码、配置文件等一并打包到这个容器中,并发布和应用到任意平台中核心概念镜像:打包项目带上环境(镜像)—(docker

2021-08-20 00:18:44 45

原创 一键push的bat脚本

一键push的bat脚本前言每次提交代码都还在收到add,commit和push嘛,试试这款脚本说明默认提交说明:if于2021-08-18~18:00一键提交一键push时,提交说明可自定义,当然也可以自己修改成真·一键提交自动添加提交目录下的所有文件下载地址一键push一键pull注记得改一下后缀名为.bat另存为ANSI格式,不然会乱码修改代码中的默认提交内容代码一键push@echo off@echo // +---------------------

2021-08-18 02:46:57 234

转载 在浏览器地址栏中输入URL后发生了什么

在浏览器地址栏中输入URL后发生了什么前言转载于https://www.cnblogs.com/yanruizhe/p/11462462.html正文基本流程:①查询ip地址②建立tcp连接,接入服务器③浏览器发起http请求④服务器后台操作并做出http响应⑤网页的解析与渲染详细步骤:查询ip地址①浏览器解析出url中的域名。②查询浏览器的DNS缓存。③浏览器中没有DNS缓存,则查找本地客户端hosts文件有无对应的ip地址。④hosts中无,则查找本地DNS服务

2021-08-17 14:56:49 36

原创 Nginx部署vue项目和配置代理

1.nginx安装和启动# 安装nginxsudo apt-get install nginx# 启动sudo service nginx start验证安装# 安装完成后使用nginx -v检查,如果输出nginx的版本信息表明安装成功nginx -v# 如果输出类似于这样的版本号等,证明安装完成nginx version: nginx/1.14.0 (Ubuntu)2.修改nginx配置文件,部署项目查看nginx的配置,linux系统下的配置文件通常会存放在/etc目录下的n

2021-08-03 13:59:06 135

原创 解决Mysql在分类查询时报1055 - Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggre...

mysql报错 1055前言参考CSDN博主「心肝宝贝甜蜜饯儿」https://blog.csdn.net/loveliness_peri/article/details/88051316参考简书博主[东西汉]https://www.jianshu.com/p/3a4185923963错误描述[Err] 1055 - Expression #2 of SELECT list is not in GROUP BY clauseand contains nonaggregated colum

2021-06-10 23:13:56 50

原创 vue-axios和springboot同时接收(上传)MultipartFile文件和json数据

springboot同时接收MultipartFile文件和json数据话不多说直接贴代码后端用post方式,以@RequestParam接收数据 @PostMapping("/add") public void add(@RequestParam("multipartFiles") MultipartFile[] multipartFiles,@RequestParam("material") String material){}前端api.js中的方法export func

2021-06-04 00:18:45 623 1

原创 ubuntu安装redis

ubuntu安装redis切换root用户apt-get install redis-server然后y继续就行redis服务会自动启动# 检查Redis服务器系统进程~ ps -aux|grep redisredis 4162 0.1 0.0 10676 1420 ? Ss 23:24 0:00 /usr/bin/redis-server /etc/redis/redis.confconan 4172 0.0 0.0 11064 9

2021-05-24 22:03:00 36

原创 linux后台运行springboot项目

linux后台运行springboot项目直接运行关闭连接会失效java -jar xxxxx-0.0.1-SNAPSHOT.jarctrl+c 可以直接关闭进程后台运行nohup java -jar xxxxx-0.0.1-SNAPSHOT.jar可以直接进行IP端口进行访问也可以使用命令进行查看是否项目已经后台运行。进程查看的命令:ps -ef可以看到项目的进程号13803正在运行。如果需要停止项目的运行直接使用命令:kill 13803(进程号)...

2021-05-24 19:20:22 52

转载 Ubuntu安装mysql

Ubuntu安装mysql0.前言转载于CSDN博主「茗君(Major_s)」https://blog.csdn.net/qq_41375318/article/details/1156933621.更新源sudo apt update2.安装MySql服务器和客户端sudo apt install mysql-server mysql-client3.Ubuntu18.04安装过程中没有设置密码的环节(如果有就下面的不需要做了)sudo cat /etc/mysql/debian

2021-05-24 19:16:02 43

原创 ubuntu使用root用户下载安装jdk和文件上传失败问题

ubuntu下载安装jdk和文件上传失败问题文章目录ubuntu下载安装jdk和文件上传失败问题1.使用root用户1.1 给root用户设置密码:1.2 切换root权限2.下载安装jdk3.配置jdk环境变量3.1 修改 environment 文件3.2 修改 profile 文件3.3 配置立即生效3.4 检查Java命令4.文件上传失败1.使用root用户1.1 给root用户设置密码:命令:sudo passwd root输入密码,并确认密码。1.2 切换root权限输入命令

2021-05-24 18:12:24 62

原创 springboot配置多数据源

springboot配置多数据源1.建库建表1.1 创建数据库db1和数据库db21.2 在数据库db1中创建表db1CREATE TABLE `db1` ( `id` int unsigned zerofill NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, `age` int unsigned zerofill DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB

2021-05-20 22:20:08 161 7

原创 mybatis带上总数量的分页查询

mybatis带上总数量的分页查询假设数据库我用limit去查询,但是想要获取实体类和表中的总数量时,可以用到此方法直接上代码举例Mapper层/*** list.get(0)是具体数据(这个数据也可以是一个List)* list.get(1)是表中的总数量*/List<Object> selectUserByUserId(Integer userId);xml层 <!-- 总数量 --> <resultMap type="java.lang.Int

2021-04-13 15:50:10 218

原创 简单的线程池实现

简单的线程池实现直接上代码import java.util.ArrayList;import java.util.List;import java.util.Queue;import java.util.concurrent.LinkedBlockingQueue;/** * @author if * Description: 简单线程池实现 * date: 2021/4/12 20:07 */public class ThreadPoolImpl{ //使用锁机制保证数据安

2021-04-12 21:08:08 37

原创 @JsonIgnore注解后的对象属性无法获取

@JsonIgnore注解后的属性出错之前发了这样一篇文章在经过测试之后确实在json返回时会忽略@JsonIgnore注解的属性,但是在调用带有此注解属性的实体类对象的方法时发现被注释掉的属性值无法获取!具体体现在String类型的数据变为null,int类型的数据变为0所以在网上找了许多方法后终于找到了以下解决方法,既可以保证json返回时会忽略属性,且使用实体类对象的时候属性还是完整的即在实体类中手动去生成get和set方法(lombok自动生成的不行),然后在set方法上加@JsonP

2021-03-11 13:32:46 111 1

原创 java基本数据类型范围和溢出取值问题

java基本数据类型范围byte:-27 ~ 27-1,即-128 ~ 127。1字节short:-215 ~ 215-1,即-32768 ~ 32767。2字节有符号int:-231 ~ 231-1,即-2147483648 ~ 2147483647。4字节无符号int:0~232-1。long:-263 ~ 263-1,即-9223372036854775808 ~ 9223372036854775807。8字节溢出取值问题以byte类型为例,当byte b=(byte)128; 时,by

2021-02-18 17:21:27 114

原创 list序列化为string存入数据库

list序列化为string存入数据库因为数据库里字段和java的string是对应的,我们想要存储list的时候就可以使用json序列化,将list序列化后存入数据库,取出时json解析出来还是list直接上代码存入数据库时//list就是想要序列化的listJSONObject.toJSONString(list);源代码如下,返回一个string类型的值,将此值传入数据库即可public static final String toJSONString(Object object) {

2021-02-14 22:57:31 880 2

原创 mysql查询当天、昨天、本周、上周、近7天、近30天、本月、上个月、近6个月、本季度、上季度、本年和去年的数据

代码如下参考mysql 查询当天、本周,本月,上一个月的数据当天SELECT * FROM 表名 WHERE TO_DAYS(时间字段名) = TO_DAYS(NOW());昨天SELECT * FROM 表名 WHERE TO_DAYS(NOW()) - TO_DAYS(时间字段名) <= 1;本周SELECT * FROM 表名 WHERE YEARWEEK(DATE_FORMAT(时间字段名,'%Y-%m-%d')) = YEARWEEK(NOW());上周SELEC

2021-02-14 18:49:48 1869

原创 @JsonIgnore注解:json返回实体类时忽略某些属性

@JsonIgnore注解:json返回实体类时忽略某些属性在返回实体类json数据时不想将一些用户属性返回怎么办(例如储存在数据库中的salt值等)解决办法给实体类的属性上添加@JsonIgnore注解即可代码示例import com.fasterxml.jackson.annotation.JsonIgnore;public class User { @JsonIgnore private int userId; private String username;

2021-02-14 17:52:30 336

原创 java.sql.SQLDataException: Cannot determine value type from string ‘xxxxx‘

mybatis报错java.sql.SQLDataException: Cannot determine value type from string ‘xxxxx’解决方法:实体类中再添加一个无参构造器即可解决

2021-02-14 17:46:00 193 1

原创 SpringBoot的全局异常处理

SpringBoot的全局异常处理文章目录SpringBoot的全局异常处理注解@ControllerAdvice注解@ExceptionHandler具体操作1.创建MyExceptionHandler类2.Controller类编写测试接口代码3.测试4.总结注解@ControllerAdvice使用 @ControllerAdvice注解类放在项目中,Spring能扫描到的地方。就可以实现全局异常的处理注解@ExceptionHandler捕获到异常后会进入此注解的方法中去执行具体的代码(比

2021-02-13 18:58:26 1048 2

原创 自定义redis工具类

自定义redis工具类导包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>redis配置类新建一个redis包,然后包中新建RedisConfig类,自定义R

2021-02-10 16:01:23 150

原创 shiro的认证和授权

shiro的认证和授权文章目录shiro的认证和授权导依赖shiro中的md5加盐散列shiro的简单认证练习自定义realm类自定义realm实现shiro的认证和授权结果导依赖<dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.4.0</version&g

2021-02-09 01:38:23 194 1

原创 maven常用依赖大全

maven常用依赖大全文章目录maven常用依赖大全spring jdbcspring 注解事务spring mvcspring-testDubbo框架依赖zookeeper客户端依赖Log4j2依赖阿里巴巴fastjsonMySQL数据库连接驱动JDBC数据源连接池MyBatis框架依赖jedis依赖java发送邮件shirohibernate框架依赖spring动态代理依赖SPRING计划任务依赖QUARTZlog4j日志处理struts2框架依赖c3p0lombokjstl图片压缩工具类thumbn

2021-02-08 15:58:44 1599 2

原创 linux安装redis并根据配置文件启动服务

linux安装redis并根据配置文件启动服务一、安装gcc依赖由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v),如果没有安装,执行以下命令进行安装[root@localhost local]# yum install -y gcc二、下载并解压安装包wget http://download.redis.io/releases/redis-6.0.6.tar.gztar -xvf redis-6.0.6.tar.gz三、cd切换到redis解压目录下

2021-01-29 15:25:21 230 1

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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