自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 Redis(字典&hash表)

字典也可以称为Map、关联数组、映射、符号表。字典表在C语言中没有实现,所以Redis知己实现了字典。在字典中一个key对应一个value。key是唯一的。这些关联的键和值称为键值对。​ 字典的应用非常广泛,Redis数据库的底层实现就是字典,对数据库的增删改查都是使用的字典。

2024-04-08 16:17:33 661

原创 Redis(链表数据结构)

Redis自己实现的链表存储了一些额外的信息,比如头尾节点、长度字段、节点使用的类型。这些都对链表的查询速度进行了优化,设计思想就是以空间换时间参考:《Redis开发与实现》

2024-04-03 16:04:25 474

原创 Redis (String 底层数据结构)

所以根据上面的几个方面我们可以看出Redis使用SDS对字符串进行了优化。保证了字符串的安全性,提高了字符串操作的性能。参考:《Redis开发与实现》

2024-04-02 16:53:45 641

原创 1.索引的本质

索引是帮组MYSQL高效获取数据的排好序的数据结构。

2023-11-20 13:31:42 139

原创 BindingException

此异常是mybatis中抛出的。意思是使用的这个方法找到。但是因为mapperScan()已经扫描到了Mapper类了,在绑定Mapper.xml时没有绑定到导致的。

2023-08-16 16:33:04 213

原创 如何处理MQ消息堆积(面试)

ES 既有基本的搜索功能、又有字段类型的精确搜索、分词匹配、范围搜索、坐标搜索、分页查询等等。

2023-05-23 16:38:57 193

原创 4.搜索辅助功能

ES 既有基本的搜索功能、又有字段类型的精确搜索、分词匹配、范围搜索、坐标搜索、分页查询等等。

2023-04-10 10:44:07 456

原创 3.Elasticsearch基础操作

介绍ES的基本操作。如创建索引、mappings、doc的一些基本操作。在doc操作中将分别介绍查询单条数据和多条数据。通过DSL的方式和JAVA api的方式体现。

2023-04-10 10:37:34 632

原创 2. Elasticsearch客户端实战

Kibana是ELK家族中一个开源、免费的可视化数据搜索和分析平台。借助Kibana,用户不需要编码就可以将ES中分析的结果进行可视化呈现,如以常用的饼图、柱状图和时序图等方式呈现。除了可视化数据分析功能,Kibana还提供了Dev Tools,它是一款可以与ES进行交互式请求的工具,可以借助它进行DSL调试。限于篇幅,本节只介绍Kibana搭配单机版ES的配置方法ES 和客户端的通信是根据Http来通信的。用户可以通过任意语言来进行通信。例如:java、Python等。

2023-04-06 16:38:10 2466

原创 Elasticsearch搜索入门(读书笔记)

通过一个程序扫描文本中的每一个单词,针对单词建立索引,并保存该单词在文本中的位置、以及出现的次数用户查询时,通过之前建立好的索引来查询,将索引中单词对应的文本位置、出现的次数返回给用户,因为有了具体文本的位置,所以就可以将具体内容读取出来了。

2023-04-06 11:20:24 317

原创 5.ThreadLocal (1)

多线程访问同一个变量的时候,很容易出现问题,特别是多线程对一个共享变量进行写入的时候。为了线程的安全在进行数据写入时候会进行数据的同步。如上图: 如果要想实现多个线程操作同一个数据而不被其他线程所影响,就必须加锁操作,加锁又增加了使用的复杂度。ThredLocal的用处就是当多个线程操作同一个变量的时候可以在创建一个ThredLocal,把共享变量复制到线程的本地threadLocals(threadLocals是Thread的成员变量) 中,这样各个线程进行操作的时候只能操作自己本地数据,这样就.

2022-03-21 18:09:06 242

原创 4.线程死锁

线城死锁就是指两个或两个以上的线程在抢占资源时,造成相互等待的现象,称为死锁。在没有外力的情况下是会一直等待无法执行下去的。1. 死锁产生必须具备以下条件**互斥条件:**指线程获取到的资源进行排它性使用,即当获取该资源锁的时候其他线程是获取不到该锁资源的。**请求并持有:**当线程持有资源时,又要请求其他锁资源,但是其他所资源被其他线程所占有。但是等待的时候并不会释放自己所占有的资源。**不可剥夺条件:**自己获取的所资源当没有使用完的时候不释放锁资源。**环路等待条件:**环路等待就是.

2022-03-11 16:08:37 162

原创 @Aspect注解

AOP:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。而@Aspect 就是把一个类定义为切面供容器读取。​@before: 前置通知,在方法执行之前执行。@After:后置通知,在方法执行后执行。@AfterReturning: 返回通知,在方法返回结果之后执行。@AfterThrowing:异常通知,在方法抛出异常之后执行。@Around:环绕通知,围绕着方法执行。1. 实现步骤:1.1 导入jar包:这两个选一个就可以了,推荐使用第一个,因为第一.

2021-09-23 16:43:39 19123

原创 URISyntaxException

这个异常是在看线上问题时被发现的,这是由于通过HttpClient-jar调用链接时抛出的异常。原因时在拼接链接参数时拼接好的链接带有特殊字符造成的。例如:链接:www.baidu.com/get/index参数:{ "key":"3d53d8ce752e0316e4f651b862a6ba2a", "keywords":" 时", "region":"上海", "page_size":20, "page_num":1}最终拼接结果:www.ba.

2021-09-17 17:54:01 2746

原创 1. 策略模式详解和示例

1. 什么是策略模式:策略模式就是一种行为可能会因为不同的逻辑造成多个算法。比如人吃饭,美国人吃饭用刀叉,中国吃饭用筷子。都是吃饭的行为但是使用的工具(算法)不一样。而策略行为就是把这写工具封装为对象,不同的人会动态的调用不同的对象,来实现吃饭这一行为。​2. 策略模式组成:环境类(Context):用一个ConcreteStrategy对象来配置。维护一个对Strategy对象的引用。可定义一个接口来让Strategy访问它的数据。抽象策略类(Strategy):定义所有支持的算法的公共接口。

2021-09-17 16:55:23 1359

原创 HttpMessageNotReadableException异常原因和解决方法

HttpMessageNotReadableException : Http消息不可读异常到多都是在http controller 层 传入参数时所造成的不可解析的异常。造成原因:参数中传入的String类型的字段 在接收时 该映射字段时Integer类型当 Controller 曾 @RequestBody 接受参数时 调用接口时没有传参数时也会抛出此异常。上面是我遇到的两种情况 可能还有更多种情况 。解决方法由于还没有到Controller 层 就抛出了异常 我们是没有办法再自己的.

2021-09-15 14:01:28 33538

原创 java.sql.SQLException: null, message from server: “Host ‘XXXXX‘ is blocked because of many

原因是MySQL在高版本需要指明是否进行SSL连接SSL协议提供服务主要: 1)认证用户服务器,确保数据发送到正确的服务器;    .2)加密数据,防止数据传输途中被窃取使用;3)维护数据完整性,验证数据在传输过程中是否丢失;当前支持SSL协议两层:SSL记录协议(SSL Record Protocol):建立靠传输协议(TCP)高层协议提供数据封装、压缩、加密等基本功能支持SSL握手协议(SSL Handshake Protocol):建立SSL记录协议用于实际数据传输始前通讯双进行身

2021-09-03 15:27:55 505

原创 1.5 让出CPU执行权的yield方法

  Thread类中有一个静态的yield方法,当一个线程调用此方法后,实际上就是暗示线程调度器该线程请求让出CPU的使用。但是线程调度起可以额忽视这个请求。当该线程调用yield方法后,可能该线程还是会执行。因为和其他线程公平竞争还是又可能成功的。还有极端情况就是每次该线程都能抢占CPU资源。这样yield方法就相当没有用。...

2021-06-27 20:52:28 134

原创 4.让线程睡眠的sleep方法

1.4 让线程睡眠的sleep方法Thread 类中有一个静态方法的sleep方法,当该线程调用sleep方法后,就会暂时让CPU的调度权。但是监视器资源比如锁并不会释放出去。在指定睡眠时间后,函数会正常返回。如果线程在睡眠过程中如果如果调用了该线程的interrupt方法终端该线程,则会抛出sleep内的InterruptedException异常而返回。  下面举个例子,该线程在睡眠的拥有的监视器并不会被释放。package com.example.demo.runnable.ChapterO

2021-02-09 14:48:31 5359

原创 1.3 等待线程执行终止的join方法

等待线程执行终止的join方法在项目中往往会遇到这样一个场景,就是需要等待几件事情都给做完后才能走下面的事情。这个时候就需要用到Thread方法下的Join方法。join方法是无参且没有返回值的。package com.baidu.onepakage;public class JoinTest { public static void main(String[] args) throws InterruptedException { Thread theadOne

2021-02-06 23:11:43 175

原创 2.线程的通知与等待

1.2 线程的通知与等待java 中所有类都继承至Object类,所以就把锁定义给放到了Object类中。1.2.1 wait方法  wait方法可以释放当前锁对象,但是不能释放其他线程的锁对象。释放后就进入阻塞状态。唤醒方法:其他线程调用该锁对象的notify()、notifyAll()方法将其唤醒。其他线程调用该锁对象的interrupt()方法,该方法会抛出异常并返回。注意: 如果没有获取锁对象获取该锁就调用该对象的Wait方法,则时调用线程会抛出IllegalMonitorSt

2021-02-05 14:50:11 141 1

原创 Java并发编程之美阅读笔记(第一章)&第一天

1.1线程的创建与运行创建线程的方式有三种:1.继承Thread类、2.实现Ruunable接口、3.futrueTask方法。1.1.1 Thread类的实现和运行/** * @date 2020-1-21 * @author 49800 */public class ThreadTest { public static class MyThread extends Thread{ @Override public void run() {

2021-02-03 22:19:16 95

原创 MongoDB分页和条件查询

MongoDB 分页和条件查询mongoDB 很多需求页面需要分页也需要条件查询,Spring Data MongoDB中就帮助我们实现了这一功能,所以只要记住怎么用就可以很轻松的写出。废话不多说。下面写出我现在正在写的代码,共大家参考参考,下面还有解释。@Autowired CmsPageRepository cmsPageRepository; /** * 查询每页的CmsPage * * @param page 当前页数

2020-09-20 22:08:45 1273

原创 Java Excel 读取

项目场景:前几天要读取第三方公司放在ftp中的Excel文件,所以就写了这个功能,这个功能再Java 8是不推荐使用的,如果不是Java 8 大可以使用这一套。问题描述:其实hutool这个工具jar也是很好用的,想了解的都可以看下,里面相当于所有工具类的集成。但是不能导入这些jar包,所以只能手写了,好下面看代码。1.先创建一个Excel文件类public class ZengXianBean { /**产品名称*/ private String productName;

2020-09-11 14:55:36 190

原创 HashMap源码笔记(一)

HashMap是在面试的时候被经常问到的,而且在工作当中也是不可缺少的存在。我在上班划水的时候看了看HashMap的源码,发现还是有很多看不懂(小白一个)就在网上百度查了下,总结总结。

2020-08-31 15:43:03 194

原创 Set集合面试(口述)

Set集合面试(口述)Set集合父接口是Collection,也是单利元素集合,Set集合底层实现的是Map集合,其中Set实现的是Map中的Key值。所以Set集合中的元素是不允许重复的,同时也是只能有一个null值。Set集合常用到的集合有:hashSet、TreeSet.下面来说说这两个集合的各自特点:HashSet底层实现的就是HashMap,所以是根据HashCode来判断是否是重复元素。(下面有hashCode的解释)因为TreeSet要是额外使用红黑树来保证元素的有序性,所

2020-06-21 18:08:26 705

原创 List集合的面试口述

  List集合其实现的是Collection接口;List集合是有序的:也就是说存入的数据和取出的数据是一样的。List集合是可以动态扩容的,默认值大小是10,当添加到第11个的时候会自动扩容原来大小的1.5倍,也就是到15。常用到的集合是ArrayList和LinkedList,这两个集合都不是线程安全的。下面介绍下这两个集合:  ArrayList:底层是现实的是数组,数组是在在一个连续的内存中的,每个元素都是连续的,而且都是有索引的,所以当你知道一个元素的索引的时候就会知道其他元素

2020-06-20 11:53:08 211

原创 微服务SpringBoot集成Redis 开始使用操作String、List、hash、Zset数据类型

微服务SpringBoot集成Redis废话不多说,直接快速入门1.导入jar包<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>2.在application.yml中配置redi

2020-05-12 19:26:33 1003

原创 整合微服务Mybatis plus快速上手增删改查

整合微服务Mybatis plusMybatis plus 是Mybatis的升级版,只对Mybatis升级不改变源码,Mybatis能用的他都可以使用,而Mybatis plus最强大之处就是它封装了单表查询。能够使简单的查询更加简单快捷。1.使用Mybatis plus1.导入jar包<dependencies> <dependency> ...

2020-05-07 22:36:03 493

原创 01-Springboot快速入门

01-今日内容Spring概述、快速入门SpringBoot配置SpringBoot整合02-SpringBoot概述SpringBoot提供了一种快速使用Spring的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率SpringBoot功能1) 自动配置Spring Boot的自动...

2020-03-25 22:58:53 122

原创 1.java代码中&&和&的区别

1.java代码中&&和&的区别​&和&&都可以作为逻辑与运算,但是他们又有点不同,&两边的语句左边的为false时,还是会接着执行右边的语句,而&&在语句为false时,则不再执行右边的语句。​所以&&有着阻断的作用,在开发中通常会使用&&(短路与)来开发代码,这样可以节省资源...

2020-03-15 01:02:02 1114

原创 一.会话技术 cookie 快速入门

一.会话技术1.什么是会话技术会话技术就是浏览器在开始请求服务器后,到服务器或浏览器断开后,这段时间就是一次会话技术一次会话多次请求2.会话技术的功能在一次会话范围内的多次请求之间,共享数据3.会话的方式客户端:cookie 把数据存储到客户端服务器端:session 把数据存储到服务器端二.cookiecookie是客户端会话技术,将共享的数据存储到客户端1....

2020-01-31 18:49:32 138

原创 Ajax同步和异步

今日内容1. AJAX2. JSON一、AJAX1.什么是AJAX概念: ASynchronous JavaScript And XML 异步的JavaScript 和 XML Ajax 是一种异步刷新技术,用来在当前页面内响应不同的请求内容。 Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 Ajax是前端的技术,由浏览器进行解析执行。 ...

2020-01-05 23:41:34 137

原创 java File类

File类概念 - File类是文件或者目录(文件夹)的路径名的抽象的表达形式。 - 也就是说File类的构造方法里面可以放有真实存在的路径,也可以放不存在的,然后可以用File类的一些方法判断写的路径是否是真实存在的。File类的构造方法File(String pathname)将一个字符串路径分装成file对象也就是说我们可以用文件夹名称//文件夹名称//…//文件名称的字...

2019-12-12 20:55:40 96

原创 MySQL多表查询语法(案例解析)

今日内容1. 多表查询(重点)2. 事务3. DCL1.多表查询1.1 多表查询语法和数据准备1.1.1 查询语法select 字段列表from 表名列表where 条件列表group by 分组字段having 分组之后的条件order by 排序limit 分页限定1.1.2 数据准备-- 创建部门表CREATE TABLE dept( id...

2019-12-08 22:57:36 184

原创 MySQL约束课堂笔记

今日内容1. DQL:查询语句 1. 排序查询 2. 聚合函数 3. 分组查询 4. 分页查询2. 约束3. 多表之间的关系4. 范式5. 数据库的备份和还原1.DQL:查询语句(重点掌握)1.1 排序查询语法SELECT 字段名 FROM 表名 [WHERE条件] ORDER BY 字段名 [ASC|DESC];ASC: 升序,默认值DESC: 降序...

2019-12-06 22:04:20 221

原创 MySQL基础课堂笔记

今日内容1. 数据库的基本概念2. MySQL数据库软件 1. 安装 2. 卸载 3. 配置3. SQL1. 数据库的基本概念1.1 什么是数据库1. 数据库的英文单词: DataBase 简称 : DB DB:数据库 DBS(System):数据库系统 DBMS: 数据库管理系统 RDBMS:关系型数据库管理系统2. 什么数据库? * 用于存储和管理数据的仓库...

2019-12-04 22:05:21 135

原创 删除文件夹时说没有此权限administrator不能删除文件

选中要删除的文件,或文件夹,右击获取管理员权限,然后再删除即可。

2019-12-03 22:19:05 2678

原创 java集合实现斗地主

需求: 通过程序实现斗地主过程中的洗牌,发牌和看牌 思路: 1:创建一个牌盒,也就是定义一个集合对象,用ArrayList集合实现 2:往牌盒里面装牌 3:洗牌,也就是把牌打撒,用Collections的shuffle()方法实现 4:发牌,也就是遍历集合,给三个玩家发牌 5:看牌,也就是三个玩家分别遍历自己的牌

2019-11-28 22:15:16 243

原创 Map集合概述和范例

Map集合1.Map集合的概述和使用Map集合概述Interface Map<k,V> k:键的类型;v:值的类型将键映射到值的对象:不能包含重复的键,每个键可以映射到最多一个值。(如果存进两个一样的键的元素,后面的相同键的元素会把前面的值给覆盖掉)。K允许存储null键的,只能存储一个null键。2.Map集合的基本功能方法名说明v **p...

2019-11-22 22:42:05 151

空空如也

空空如也

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

TA关注的人

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