自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

似水流年,是谁苍白了等待

将来成功的我一定会感谢现在努力的自己

  • 博客(200)
  • 资源 (2)
  • 收藏
  • 关注

原创 MySQL数据库查看是否锁表以及如何解决

近期系统在使用过程中总是出现数据库锁表情况,导致页面报错,经过排查,是由于系统在跑定时任务;将解决过程以及在以后开发过程中该怎样注意,做个总结,避免以后在出现;

2024-03-10 17:54:11 3556

原创 JDK 8 Stream流的优美用法——groupingBy结合joining用法

java8 stream流高级应用

2022-06-11 12:27:34 1351 2

原创 重启MySQL报Unit mysqld.service could not be

安装mysql修改完配置文件之后,重启mysql发现重启不了,报Unit mysqld.service could not be found ,大概意思就是说找不到mysqld.service。从网上找了很多种办法都不适合,最后查资料发现在/etc/init.d文件夹下缺少mysqld这样一个文件,这个文件和supper-files/mysql.server文件是一样的,因此将这个文件拷贝到/etc/init.d文件夹下,具体解决如下:1.找到mysqld.server 文件的位置..

2021-08-21 14:43:15 5668 52

原创 RabbitMQ 安装详细过程——提供安装资源

网址:rabbitmq.com/download.html一、概述:因为rabbitMQ是用erlang语言开发的,所以在安装rabbitmq之前需要先安装erlang,可以去erlang官网下载对应的版本,注意在安装的时候一定要看好版本。二、环境准备详情看:https://www.rabbitmq.com/which-erlang.html环境配置:linux:CentOS7三、需要软件可以根据自己的实际情况下载版本erlang:erlang-21.3.8.21

2021-07-27 17:19:46 1799 63

原创 Java多线程(二)——Volatile关键字保证可见性,有序性,禁止指令重排实现

一、特性1、保证线程可见性2、保证线程有序性3、禁止指令重排在内存模型层面,如果给一个变量加上volatile,就说明这个变量是可见的,每次修改完读的时候都是从主内存中读的,也就是说每次修改完都存盘了,而不再是存缓存,供本线程自身可见。加上volatile也就避免了线程从自己的工作内存中查找变量的值,必须到主存中获取他的值,线程操作volatile变量都是直接操作内存。那么系统如何保证数据的可见性,有序性,指令重排呢系统底层如何实现可见性1.MESI如果不能解决.

2021-07-19 11:55:11 1074 47

原创 Java多线程(一)——常用的方法

一、线程中常用的非静态方法start()功能:启动一个新线程,在新的线程运行run方法中的代码start方法只是让线程进入就绪,里面代码不一定立刻运行(CPU的时间片还没分给它)。每个线程对象的start方法只能调用一次,如果调用了多次就会出现IllegalThreadStateExceptionrun()功能:新线程启动后会调用的方法如果构造Thread对象时传递了Runnable参数,则线程启动会调用Runnable中的run方法,否则默认不执行任何操作,但可以创建Thread的子类

2021-07-16 20:42:33 319 24

原创 SSM整合 运行报Handler dispatch failed; nested exception is java.lang.AbstractMethodError: Method com/mcha

今天在整合SSM的时候,在运行过程中出现了如下错误:org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.AbstractMethodError: Method com/mchange/v2/c3p0/impl/NewProxyResultSet.isClosed()Z is abstract org.springframewor.

2021-07-10 15:30:51 2530 39

原创 MySQL事务实现原理

前言:在说事务事务的特点在事务的四个特点中,一致性是事务根本追求,而在某些情况下对事务的一致性造成破坏;事务的并发执行 事务故障或系统故障数据库系统通过并发控制技术和日志恢复技术来避免这种情况的发生并发控制技术保证了事务的隔离性,是数据库的一致性状态不会因为并发执行的操作被破坏。 日志恢复技术保证了事务的原子性,使一致性状态不会因事务或系统故障被破坏。同时使已提交的对数据的修改不会因系统崩溃而失去,保证了事务的持久性。持久性数据库总能保持一致性状态。事务一旦提交,其对数据库.

2021-06-14 17:50:37 2372 74

原创 string ,stringbuffer ,stringbuilder演进及使用场景和解决的问题

通过三张图对比他们的前世今生string stringbuffer stringbuilder演进String类被声明为不可变类,用final修饰,被声明为final class ,所有的属性也是用final修饰,也表明这个类不能被继承。String不可变的第二点是,用来存储字符串的char value[]数组被private和final修饰,当一个被final修饰的基本数据类型的变量,则其数值一旦在初始化之后便不能更改。因此他的对象是不可变的,在每次创建对象,字符串拼接都会产生

2021-06-01 20:16:22 569 57

原创 一条SQL语句从开始到结束到底经历了什么?

Mysql逻辑架构图Mysql逻辑架构分为两层第一层Server层第二层存储引擎层Server层连接器是指通常我们所看见的在创建一个表的时候需要连接数库,所以在连接数据库时候就需要用到连接器,保证客户端能连接到数据库。连接器就负责跟客户端建立连接获取权限,维持和管理连接。在连接完成后,如果没有其他的操作便处于空闲状态,默认8小时自动断开连接,当下次进行操作的时候需要重新连接数据库。但是在连接之前咱们还有一个必不可少的环节,那就是需要通过TCP的三次握手连接MySQL服务。

2021-05-30 20:47:53 1195 92

原创 HashSet添加元素源码分析

HashSet 其实底层还是用到的hashMap,讲hashset,其实本质就是在讲HashMap。在执行HashSet()时,会走HashSet的构造方法,详细步骤如下1.执行hashSet()public HashSet(){ map=new HashMap<>();}2.执行add()public boolean add(E e){ return map.put(e,PRESENT)==null; //PRESENT}PRESENT 其实.

2021-05-30 17:54:07 498 35

原创 雪花算法生成的ID在返回给前端之后和生成的不一样,到底是什么原因?

一、前言最近在做项目的时候发现用雪花算法生成的id传给前端以后跟生成的不一样,就纳闷,在想为什么会出现这样的问题?二、问题描述:雪花算法生成id为16位,返回到前端之后后两位变为0从两个点出发:1.第一次想到的是四舍五入,仔细检查了也不是四舍五入,有些比5大的数也变为0了。2.查Long类型和String类型数据长度。上网查了一下,long类型继承的是number类,而number类型精度为16位,而雪花算法生成的id为19位,因此会导致进度丢失插入数据库和返回前端对比

2021-05-19 21:35:52 3378 6

原创 LinkedList删除结点源码分析

目录前言那么LinkedList用来存储数据,那么跟ArrayList有什么区别?LinkedList删除结点是怎么样删除的?1、首先了解LinkedList类声明的变量有哪些2、内部类Node说明3.LinkedList.remove() 方法;默认删除第一个结点1)执行removeFirst2)执行removeFirst3)执行unlinkFirst(f), //将f指向的双向链表的第一个结点拿掉执行过程详解前言在学习LinkedList之前,...

2021-05-14 20:27:42 755 27

转载 Java知识体系最强总结(2020版)

大家好,我是CSDN的博主ThinkWon,“2020博客之星年度总评选"开始啦,希望大家帮我投票,每天都可以投多票哦,点击下方链接,然后点击"最大”,再点击"投TA一票"就可以啦! 投票链接:https://bss.csdn.net/m/topic/blog_star2020...

2021-02-28 21:20:57 291 5

原创 什么是双亲委派机制

双亲委派机制Java虚拟机对class文件采用的是按需加载的方式,也就是说需要使用该类是才会将它的class文件加载到内存生成class对象。而且加载某个类的class文件时,Java虚拟机采用的双亲委派模式,即把请求交由父类处理,它是一种任务委派模式。工作原理1) 如果一个类加载器收到了类加载请求,它并不会自己先去加载,而是把这个请求委托给父类的加载器去执行;2)如果父类加载器还存在其父类加载器,则进一步向上委托,依次递归,请求最终将到达顶层的启动类加载器。3)如果父类加载可以完成泪加

2021-02-28 21:10:34 564 6

原创 前端后端联调解决URL作为参数发生跨域问题

在前后端联调时,把url作为参数传递给后端,结果出现问题,原因是在发送请求的时候在浏览器从正确请求中会解析到两个域名,所以到后端的时候就会出现跨域问题,至于什么是跨域请参考https://www.jianshu.com/p/f049ac7e2220解决办法方法一:将前端需要作为参数的url编码,如下代码urls:encodeURIComponent(encodeURIComponent("https://blog.csdn.net")),后端进行对传递过来的代码就行解码,为“U...

2021-01-27 10:42:43 1062 16

原创 docker 下载安装Elasticsearch——网络超时解决办法(net/http: TLS handshake timeout)

一、简介全文搜索数据最常见的需求,开源的Elasticsearch 是目前全文搜索的引擎首选,也称为开源分布式搜索引擎。1.特点:分布式 零配置 自动发现 搜索自动分片 集群配置方便二、准备环境elasticsearch7.2.0 docker环境虚拟机 VMware Workstation Pro三、docker命令查找镜像1、docker search elasticsearch2.下载 ES 镜像 docker pull elasticsear..

2021-01-16 21:18:26 2134 61

原创 Redis缓存穿透和雪崩

一、什么是缓存穿透?定义:客户端查询了一个数据库中没有的记录导致缓存在这种情况下无法利用,称之为缓存穿透或者缓存击穿。如图,这是提条正常的查询语句,客户端查询id为“1”的这样一条记录,这条记录在数据库中,并且在第一次查询的时候会将记录放在redis缓存中,在之后的查询中,直接从缓存拿。那如果此时需要查询id为 “-1”的记录,这个记录不在数据库,因此频繁的请求id=“-1”,导致缓存失效,所有的请求都涌向数据库,这样就出现了咱们所说的缓存穿透。在流量大时,可能DB就挂掉了,要是有人利用不存

2021-01-15 15:52:12 499 20

原创 redis “出现error) MISCONF Redis is configured to save RDB snapshots, but it is currently 解决办法”

问题:(error) MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fail

2021-01-05 16:46:41 1132 6

转载 10分钟拿下 HashMap

请相信我,你一定会更优秀!备注:jdk版本为 1.7,初识 HashMap(后续会继续带你拿下1.8+的HashMap)目录1、什么是 HashMap,什么时候选择HashMap?2、HashMap 数据结构及其工作原理?2.1 数据结构2.2 工作原理3、HashMap和HashTable 的异同?4、如何优化 HashMap?1、什么是 HashMap,什么时候选择HashMap?说到容器,你肯定会想到 Java中对象存储容器还有ArrayList,Li...

2020-11-28 18:44:28 170 9

原创 MySQL事务

什么是事务要么都成功,要么都失败事务原则:ACID原则 原子性,一致性,隔离性,持久性 (脏读,幻读...)原子性(Atomicity)要么都成功,要么都失败一致性(Consistency)事务前后的数据完整性要保证一致。持久性(Durability) --事务提交事务一旦提交则不可逆,被持久化到数据库中!隔离性事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务操作数据所干事务之间要相互隔离。事务mysql...

2020-11-28 18:24:20 161 10

原创 redis事物的了解CAS(check-and-set 操作实现乐观锁 )?

和众多其它数据库一样,Redis作为NoSQL数据库也同样提供了事务机制。在Redis中,MULTI/EXEC/DISCARD/WATCH这四个命令是我们实现事务的基石。相信对有关系型数据库开发经验的开发者而言这一概念并不陌生,即便如此,我们还是会简要的列出Redis中事务的实现特征:1). 在事务中的所有命令都将会被串行化的顺序执行,事务执行期间,Redis不会再为其它客户端的请求提供任何服务,从而保证了事物中的所有命令被原子的执行。2). 和关系型数据库中的事务相比,在Redis事务中如果...

2020-11-28 18:20:42 764 3

原创 项目踩坑——mybatis更新数据库失败

对于刚开始学习mybatis和写SQL的小白来说,出现更新数据库失败这种情况可能很苦恼,怎么看SQL都没问题。现在将这个坑记录下来,提醒自己,也帮助可能会遇到这个问题的人。由于数据库没有设置默认值,数据库中在没有插入数据的情况下为NULL ,所有当更新的时候他会拿新的数据去和NULL做运算,导致怎么更新都为NULL,一直发现数据库中的数据没变,但是不为NULL的记录会改变。1.修改前的SQL。2.修改后的SQL。在之前的基础上做了个判断,这样才更新的时候就不会出现和NULL值做运算的情况

2020-11-18 21:14:30 2651 8

原创 JDK和JRE 的区别

首先是面向的人群不同JDK是面向开发人员使用的SDKJRE 是Java Runtime Enviroment 是java程序的运行环境,面向java程序的使用者,当然java程序员开发的时候也需要JRE,需要调试程序,需要代码跑起来。如果安装jdk,那么会有两套jre 如果安装jre,则有一套唯一的jre...

2020-10-26 14:35:18 155 8

原创 RabbitMQ——异步消息模型

一、是什么?RabbitMQ作为消息中间件的一种实现,常常被当作一种服务总线来使用。RabbitMQ原生就支持上面提到的两种消息模式。其他一些流行的消息中间件的实现有ActiveMQ,ZeroMQ,Azure Service Bus以及Amazon Simple Queue Service(SQS)。这些消息中间件的实现有许多共通的地方,这边文章中提到的许多概念大部分都适用于这些中间件。二、异步消息模型1.消息队列解决问题:解耦生产者和消费者利用消息队列可以解耦生产者和消费者。多个生产者

2020-10-26 14:30:48 571 7

原创 vue安装依赖报serve: `vue-cli-service serve`

问题问题原因:下载依赖的的仓库没有被授权或者自己设置的下载依赖地址不对,导致依赖下载不下来。解决办法1.删除项目中原有的依赖,将整个文件夹删掉:“node_modules ”执行命令npm install chromedriver --chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromedriver2.再次执行npm install 下载完成...

2020-10-26 14:24:02 22403 26

原创 自考总结

不知不觉中,已经经历了七次的自学考试了,每次自考都有不一样的收获和不一样的感受。每一次考试过程很重要,当然结果也挺重要,当然结果的好坏还是说明了过程中自己学的怎么样。 老师经常说:变是永远不变的,这次的自考一样,变是永远不变的,相同的方法,不同的科目。这次的考试和以往也有不同之处, 没有之前那样花太多的时间,其中最重要的原因可能是之前学习过一遍,这次复习很快就能学会,掌握二八定律,学会百分之八十的就可以。 总的来说,这次收货还是挺大,就拿C++来说,之前有...

2020-10-19 14:39:55 167 9

原创 三分钟了解什么是MyCat

最近一直在研究关于项目实战的一些技术点以及一些中间件,今天总结一下mycat的简单知识点,没有太深的东西,只是简单的知道它是什么,能干什么。

2020-09-02 14:44:23 1089 12

原创 设计模式六大原则

通过几个版本的迭代,更清楚的明白软件设计一个好的软件,怎样设计一个满足用户的软件?怎样设计一个让用户满意的软件?这是作为一个程序员必须要考虑的。要想设计出好的软件还得需要从最基本的原则开始,有了更优秀的设计理念,设计原则才能构建出一个好的软件,所以学习的时候我们需要掌握的原则有哪些?详情:https://zhuanlan.zhihu.com/p/114374066知道这些原则不难,但是怎么用,怎么理解它,这是关键,也是我们需要掌握的。怎么用,在哪里用,解决什么问题需要我们思考,.

2020-08-04 20:39:50 317 10

原创 考试后的学习更重要

本次自考与以往不同的是学习周期特别长,但是对书本上的知识的认知就比较系统,能有个宏观的把控,但是对于一些比较细节的点还是不能很好的把握。所以为什么老师会说学习往往在学习前和考试后,通过好几次的考试,学习,对整个学习的认知也有了很大的改变,在学习前对书本有很宏观的认识,整理出大概的框架,从一点入手联系起整本书,通过不断的重复和总结,给框架中慢慢添加细节。而考试后则是对自己那些地方还有欠缺的一个检验,所有的不足在考试过程中就会暴露出来,所以在考完试之后的学习就更重要,而且这种记忆是很深刻的,对于不知道的

2020-08-03 11:12:54 436 6

原创 创建SpringBoot项目出现Java:程序包org.springframework.stereotype 不存在——解决办法

前言:在出现问题是查了很多相关的资料,都说的是缺少依赖,需要导包之类的,但是没有说在创建项目后没有选择JRE和Delegate IDE build/run actions to Maven,需要将项目交给Maven管理,希望能对大家有所帮助吧。一、问题Java:程序包org.springframework.stereotype 不存在Java:程序包org.springframework.beans.factory.annotation不存在二、解决方法1.File——Setting

2020-07-14 11:31:28 22644 18

原创 快速搭建一个简单的SpringMVC环境

大家好,小编这次分享的主题是如何快速搭建一个SpringMVC环境,每一步都是笔者自己实践,最终实现效果。分享的每一篇博客都是经过用心总结,用心查资料所分享,希望自己用每次的记录,每次的分享成就自己更好的技术,如果您也喜欢分享,喜欢java,可以相互关注,相互交流,一起成长。

2020-07-09 16:28:57 4275 14

原创 什么是mock数据?

处于开发环境模拟接口返回的数据(用于开发状态后端还没给接口)不会影响生产环境,只是方便我们还没与后端交互时不阻塞我们开发流程。mock数据的好处团队可以并行工作,可以用演示开发成果,实时反馈开发进度模式测试并简单了解接口编写为全栈打基础。...

2020-06-30 22:03:16 4190 7

原创 前端对数组操作最常用的几种方法

由于前端的业务比较复杂,在数据的增删过程中可能需要以数组的形式操作,但是数组有时候可能会不满足用户的需求,比如说我在数组中插入某一个值,不影响原来的元素,或者删除一个元素。删除的时候从开头删呢还是结尾删,都需要考虑。所有js提供了几种常用的方法进行对数组操作,详解如下代码:1.push()①说明push()方法可向数组的末尾添加一个或多个元素,并返回新的长度。 如果出现push()方法,那后边就必须跟一个参数,最少是一个,其他的可选 push()方法可把它的参数顺序添加到arrayO...

2020-06-30 17:18:07 2681 5

原创 vue 实现父子组件传值和子父组件传值

先上一张图,vue 父子组件传值都用的图片。从张图入手了解如何传参。一、父组件1.引入子组件importrandomfrom"./child-random-paper";2.注册子组件components:{random,},3. 静态组件,循环体<liv-for="(item,index)inselectedTypeQuestion":key="item.id":ind...

2020-06-21 10:55:35 2973 25

原创 vue 实现在同一界面实现组件的动态添加和删除

1.插入静态组件,将自己想要循环的组件显示在页面上,利用v-for进行循环操作,操作包括增删。//所有要显示的子组件,写在一个li标签,有 v-for循环。<liv-for="(item,index)inquestionList"v-bind:key="index"><el-row:gutter="20"><el-coloffset="2":span="4">&lt...

2020-06-15 19:23:42 3966 13

原创 IntelliJ IDEA 提示 Error:java: 错误: 不支持发行版本 5——解决办法

一、问题二、原因原因是自己在配置项目的时候可能配置的JDK版本不一致,导致在编译的时候出错,其实自己看看自己的环境就能发现,很好解决。解决办法1.File——Project Structure。2.查看自己Project的SDK,也就是java版本。3.设置Modules,将SDK和之前的Project设置统一。4.File——Settings——Build,Excution,Deployment——Compiler——Java Compiler,修改Projec

2020-05-31 21:06:13 2006 5

原创 Spring注入(Injection)——教你一点一点知道什么是依赖注入及注入方式

前言在学习spring的时候有个很重的知识点,那就是注入,不同的注入方式为程序的运行效率,资源利用都有不同的好处,接下来就看看我通过看视频总结的注入,这里的注入不是依赖注入等知识,只是最简单的,依赖注入,反转控制等将在下篇博客总结。一、引入注入1.首先我们明确一个问题,什么注入? 通过spring工厂及配置文件,为所创建对象的成员变量赋值。我们在没有学习spring之前创建对象是通过在类里利用new关键进行创建,这样的方式大家都知道,耦合性比较高,不提倡这样做,但是在我们学...

2020-05-23 10:00:34 2716 16

原创 一张图让Java程序员搞懂JDBC

一、概述1.什么事JDBC?Java DataBase Connectivity(Java语言连接数据库)。2.本质JDBC是SUN公司制定的一套接口(interface)。Java.sql.*接口都有调用者和实现者面向接口调用,面向接口写实现类,这都属于接口编程。3.为什么要面向接口编程?解耦合:降低程序的耦合度,提高程序的扩展能力。态机制就是非常典型的:面向抽象编程。4.JDBC 开发前的准备工作。先从官网下载对应的驱动jar包,然后将其配置到环境变量classpath

2020-05-13 16:06:34 839 9

原创 InterlliJ IDEA 2020 新建java web 项目找不到 Static Web

由于IDEA版本更新,在新建工程的时候找不到Static Web,而且在插件里也找不到,没法下载。如图:没有Static Web新建项目的方法如下:File——>Project——>Java Enterprise——>Web Application——next项目命名——>选择文件存放路径——Finish在那个窗口新建由自己选择。新建项目结构运行效果到这里就创建好了,根据自己的需求建文件就可以了。...

2020-05-12 11:48:56 16035 19

KMP算法最快最有效的解决办法

KMP算法最快最有效的解决方法,让所有考软件设计师的同学都能轻松的解决KMP算法,不再为解决这个题而烦恼。

2020-04-29

三次握手和四次挥手详解

三次握手和四次挥手详解,觉得本博文写的很好,分享给正在学习或者学习完还对TCP的三次握手和四次挥手还不熟悉的人,相信看完之后就能明白了。

2020-04-08

空空如也

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

TA关注的人

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