自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MYSQL数据库底层基础专栏

什么时候需要重建索引?当索引建立后在实际业务使用中频繁发生update delete操作如何判断索引是否应该被重建?1.索引倾斜度,看是否浪费了空间,对索引进行分析analyze index #index_name validate structrue;2.在session中查询index_stats表select height,DEL_LF_ROWS/LF_ROWS from index_stats;当height的结果,即索引深度,从根节点到叶节点的高度,或者DEL_LF_ROWS/LF

2022-05-23 22:22:28 370

原创 JAVA面试宝典面经系列之JAVA基础-含JAVA基础语法,集合,线程等方面的使用与面试热点频点问题(二)

Java的序列化和反序列化序列化可以将对象转化为字节序列,字节序列可以保存在磁盘上,也可以通过网络传输,并允许程序将字节序列恢复为原来的对象,其中对象的序列化是指将一个对象写入IO流,对象的反序列化指从IO流获取到JAVA对象。如果对象需要支持序列化机制,则它的类需要实现Serializable接口,该接口是一个标记接口,没有提供任何的方法,只是表明对象可以被序列化,Java的很多类已经实现Serializable接口,String类,Date类都实现了。如果需要实现序列化,需要用对象流ObjectI

2022-05-22 11:05:55 304

原创 JAVA面试宝典面经系列之JAVA基础-含JAVA基础语法,集合,线程等方面的使用与面试热点频点问题

JAVA的基本数据类型需要了解有哪些基础数据类型,数据范围,以及它们所占内存空间数据类型所占内存空间数据范围byte1字节(8位)-2^8 ~ 2^8-1short2字节(16位)-2^16 ~ 2^16-1int4字节(32位)-2^32 ~ 2^32 -1long8字节(64位)-2^64 ~2^64-1float4字节(32位)-2^32 ~ 2^32-1double8 字节(64位)-2^64 ~2^64-1ch

2022-05-16 22:18:59 309

原创 Redis为什么比MYSQL快,理由不止单线程,深耕解析Redis底层结构

Redis为什么比MYSQL快主要是基于几个方面,其中最重要的就是Redis底层的多路复用1.Redis的读写是基于内存中的,相比数据库的读写是基于磁盘的,例如在数据库中数据是以树的形式存储的,每经过一个树节点即为一次IO操作,而Redis的读写不涉及磁盘,从操作上就比Mysql快了。2.第二个方面,即数据结构方面。Redis存储数据是以K-V的形式存储,时间复杂度是O1,而Mysql的底层一般是B+树,时间复杂度是Ologn,所以相比Redis速度也没有它快。3.第三个方面,也是比较片面的一个方

2022-05-14 12:36:20 1715

原创 git命令查看代码提交行数和提交次数排名

gitlab有的查看不到总的提交贡献行数。所以只能通过命令查看上命令git log --author="xxx" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -其中xxx替换为你的账号与其他用户比较提交的代码行数与排

2022-05-13 17:52:40 4380

原创 雪花算法如何确保全局唯一,原理详解

概念部分:雪花算法,是 Twitter 开源的分布式 id 生成算法。一般数据库的ID自增并不能满足分布式场景下全局唯一的情况。雪花算法主要是为了在分布式的场景下,生成有序,且全局唯一的ID。但是也不是所有地方/所有表都需要生成全局唯一ID,一般应用于比如订单,商品信息等系统主流程的情况下。也就是说一般像非主业务部分(系统配置,工作流配置等)系统配置:比如配置某个开关,比方美团订单派单给配送员的公里数配置,这个公里数一定不是在系统中写固定值的,一定是某个可以配置的范围值。否则改一次配置需要发一次

2021-06-13 22:49:42 1606

原创 利用SQL做好数调,修改表中某个日期的字段,只改变它的日期年月日,不改变原本的小时,分钟,秒

假设需求:把表 user的字段 created_time 的日期修改到 2021-05-04,时分秒不变sql:UPDATE user SET created_time =ADDTIME(DATE(‘2021-05-04’) +INTERVAL 0 HOUR,TIME(created_time)) where id=21203 ;说明:DATE() : 提取日期或日期/时间表达式的日期部分DATE(‘2020-02-25’) +INTERVAL 0 HOUR 等于 2020-02-25 00:0

2021-05-04 14:29:31 2374

原创 关于Maven编译时出现:unable to find valid certification path to requested target

首先这是一个网络证书问题,通常接入一些特殊的网络环境就会这样,比如校园网,这时就要跳过证书认证。在Maven命令后加入参数“-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true”...

2021-04-24 23:11:54 7712 1

原创 Maven生命周期解读,生命周期三阶段与Maven构建直接的关系

Maven 构建生命周期定义了一个项目构建跟发布的过程。一个典型的 Maven 构建(build)生命周期是由以下几个阶段的序列组成的:阶段作用验证validate验证项目,验证项目是否正确且所有必须信息是可用的编译 compile执行编译,源代码编译在此阶段完成测试 Test测试,使用适当的单元测试框架(例如JUnit)运行测试。包装 package打包,创建JAR/WAR包如在 pom.xml 中定义提及的包检查 verify检查,对集成测试

2021-03-15 22:28:14 187

原创 Java8--20道关于Stream流的题目练习

正题开始Student 类具有属性:不及格次数failCount,名字name,科任老师chineseTeacher,班主任classTeacher题目1:筛选学生不及格次数3次及3次以上的学生列表 List<String> arrayList = array.stream().filter(s -> s.getFailCount()>=3).map(s -> s.getName()).collect(Collectors.toList()); .

2021-03-14 09:51:30 3914 6

原创 SpringBoot整合ElasticSearch篇章一,点赞收藏,2021爱情事业满满

一、SpringBoot整合ElasticSearch1.SpringBoot整合ElasticSearch导入依赖Maven库以上加上SpringBoot整合ElasticSearch需要的maven依赖,通过官方文档我们可以知道其实就是这两个jar包在起作用2.链接ES的客户端 Link to ES client如下图:通过RestHighLevelCilent 对象,指定RestHighLevelCilent client = new RestHighLevelClie

2021-01-17 23:06:21 2266 10

原创 MYSQL数据库查询库中所有表是否包含指定列的SQL

select * from INFORMATION_SCHEMA.columns where COLUMN_NAME Like '%placement%'; 本来都不想写的,后面发现给库中表加上统一的字段,比如人员id,操作人name,最后更新时间time等等一些每张表必要的字段。根据以上SQL查询来验证是否漏加还是挺效率的。...

2021-01-13 20:09:33 622

原创 ElasticSearch安装启动时出现闪退,yml语法

在elasticsearch.yml文件中加上http.cors.enabled: true http.cors.allow-origin: "*"在yml语法中 :后面必须有空格,否则语法失效,会导致启动失败

2021-01-03 21:07:25 296

原创 Java程序员如何理解并使用RabbitMQ(二),从底层出发讲解MQ消息中间件的经典的七种工作模式

继上文 Java程序员如何理解并使用RabbitMQ(二),从底层出发讲解MQ消息中间件的经典的七种工作模式不多笔笔Routing路由模式队列和交换机的绑定,在订阅模式中可以任意绑定,但是在路由模式中不再可以任意绑定,而是要指定一个RoutingKey(路由key)消息的发送在向交换机(Exchange)发送消息时候,也必须指定消息的RoutingKeyExchange(交换机)不再把消息交给每一个绑定的队列,而是根据消息的Routing Key进行判断,只有队列的RoutingKey和消息的

2020-11-09 22:48:48 245

原创 Java8新特性:利用Stream的操作数据源,集合,数组等使用场景。再也不怕面试官问新特性

Stream介绍操作数据源–集合,数组等可以对数据源进行一系列流水线的操作–>产生一个新流,而且原数据不会有任何改变stream的特点:1.stream不会存储任何元素2.stream不改变源对象,返回一个持有结果的新stream3.stream操作是延迟执行的,意味着等到需要结果的时候才会执行步骤:创建stream -> 中间操作 -> 终止操作(如果不进行终止操作前面两步操作无效,终止操作可以是打印,可以是collect方法等)创建stream的方式第一种方式

2020-11-07 17:22:11 1479 3

原创 Java程序员如何理解并使用RabbitMQ(一),从底层出发讲解MQ消息中间件的经典的七种工作模式

RabbitMQ前言:RabbitMQ是一个消息代理 : 负责接受并转发消息。放在生活的角度来看,RabbitMQ就好比快递站点,快递员将快递放到站点,并确信快递员最终会把快递交给收件人。在这个例子里面,RabbitMQ好比快递站点,快递员。消费者是收件人。AMQP协议中的核心思想是生产者和消费者隔离,生产者不直接把消息发给队列消费。生产者通常不知道是否一个消息会被发送到队列,或者说生产者不知道消费何时会被队列消费,怎么消费。就好比快递员把快递放到站点,他不知道你何时过来取。生产者只是将消息发

2020-11-01 23:01:34 300

原创 如何防止页面重复提交,经典问题之一

表单重复提交面临页面优化时需要处理的最重要的问题之一,最常见、带来很多麻烦的一个问题。有很多的应用场景都会遇到重复提交问题,比如:点击提交按钮两次。 点击刷新按钮。点击退出按钮等待, 使用浏览器后退按钮重复之前的操作,导致重复提交表单。 使用浏览器历史记录重复提交表单。 浏览器重复的HTTP请求。提交请求时可能因为网速的原因,或者网页被恶意刷新,或者用户频繁点击,致使同一次请求被重复的操作数据库,这是一个比较棘手的问题。从前后端的角度共同出发,有很多种方式解决问题,提升浏览器性能和体验感

2020-10-25 19:24:06 1753

原创 Java程序员必须掌握的Oracle关于listagg() WITHIN GROUP()行转列函数的使用

前言所有版本的Oracle软件都可以使用 :select wm_concat(name) as name from user;但如果是oracle11g或者以上版本,官方推荐使用以下方法 :select listagg(name, ',') within group( order by name) as name from user;这个函数该怎么使用?首先,建一个表含以下字段 :列名字段类型xTypeNUMBERCitynvachar2(200)然后

2020-10-19 00:10:11 1215

原创 盘点IDEA那些你不知道的快捷键,学会不一定能涨薪,但一定会加大你的效率

以下是我整理的IDEA的快捷键,学会不一定能涨薪,但一定会加大你的效率。。。1.不多BB快捷键 : alt + insert效果 : 生成部分方法快捷键快捷键 : shift连按两下或者ctrl+shrift+F效果 : 查找代码快捷键 : ctrl+/效果 : 注释和取消注释选中行或者光标所在行快捷键 : ctrl+l效果 : 选中指定行快捷键 : 按住ctrl,移至代码中的类、接口上效果 : 可查看源码快捷键 : ctrl+d效果 : 复制并粘贴当前行快捷.

2020-10-08 23:20:13 157

原创 Git分布式版本控制工具和如何用IDEA提交代码至Git总结

1. Git概述1.1 Git与SVN对比SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而开发人员工作的时候,用的都是自己的电脑,所 以首先要从中央服务器下载最新的版本,然后开发,开发完后,需要把自己开发的代码提交到中央服务器。集中式版本控制工具缺点:服务器单点故障容错性差1.2 Git是分布式版本控制系统(Distributed Version Control System,简称 DVCS) ,分为两种类型的仓库:本地仓库和远程仓库本地仓库:是在开发人员自己电脑上的Git仓库.

2020-10-08 22:48:46 308

原创 学习了--Thrift的入门与基本使用

官网 : http://thrift.apache.org/

2020-09-13 12:12:22 470

原创 前端最火Vue从新手村到老师傅(二)

此文接上文__Vue3. Vue的数据交互前言Vue.js是可以构建一个完全不依赖后端服务的应用,同时可以与后端服务器进行数据交互同步界面的动态更新,Vue.js本身并没有与服务器的通信接口,通过插件形式实现基于AJAX,JSONP等技术的服务端通信Vue-resource是通过XMLHttpRequest或JSONP技术实现异步加载服务端数据的Vue.js插件,该插件提供一般的HTTP请求接口和RESTFul架构请求接口,Vue-resource是Vue提供的体格http请求插件,如同JQue

2020-09-09 23:16:08 100

原创 前端最火Vue从新手村到老师傅(一)

Vue是前端目前最火爆的框架,它提供了很重要的概念 : 组件,相比其他框架灵活性会高很多,博主前阵子跳槽跳到了一家公司,所做的项目就是前端用的Vue,就忐忑的心态赶紧学赶紧把vue捡起来,老工具人了

2020-09-09 23:14:07 128

原创 Java实际项目开发中Log4j日志记录中的logger使用方式

Log4j背景介绍Log4j是Apache的一个开源项目,使用Log4j,控制日志信息每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。Log4j的三大组件Log4j的三个组件 : 日志记录器(Logger),输出端(Appenders),日志格式化(Layout)Logger : 控制启动/禁用哪些日志记录语句,也可以对日志信息进行级别限制Appenders : 指定日志将打印到控制台还是文件Layout : 控制日志信息的显示格式Log4j使用.

2020-09-02 23:17:41 3104 1

原创 Springboot定时器多线程解决多个定时器冲突问题

Springboot自带的定时器如何使用 :https://editor.csdn.net/md/?articleId=107774815战术分析 :上次的博客疏忽了定时器的一个大重点…实际开发项目中一定不止一个定时器,很多场景都需要用到,而多个定时器带来的问题 : 就是如何避免多个定时器的互相冲突使用场景 :我们的订单服务,一般会有一个待支付订单,而这个待支付订单是有时间限制的,比如阿里巴巴的订单是五天,淘宝订单是一天,拼多多订单是一天,美团订单是15分钟…基金系统中,如何同时更新多个存储

2020-08-31 22:57:32 2197

原创 HashMap的核心方法put(K key,V value)方法源码详解,10分钟看完put方法源码知天知地

HashMap的核心方法就是 : put()和resize()HashMap面试面的比较多的部分就是hashmap的put方法了不多bb看源码~通过源码我们可以发现,put方法底层调用了一个putval方法,也就是说put方法中真正做事的是putval()方法通过源码我们很清晰的可以看到第一个参数调用了hash()方法,这个方法暗藏什么玄机?其实很简单这个putval方法有五个参数int hash 经过hash(Object key)扰动过后的hash值K key 不解释V va

2020-08-23 14:59:39 339

原创 数据存储分区--范围分区,哈希分区,列表分区,性能调优必不可缺少的部分

前言--这个话题是关于数据库的优化部分,数据库的优化有很多种形式,数据的存储分区就是其中一种存储分区主流的三个分法 : 范围分区,哈希分区,列表分区每个分区都有属于自己的特点和适合的应用场景如果不对数据库进行存储分区,当数据量大的时候,比方我想去在数据库的十万/百万条甚至更大的数据里查询一条数据,倘若数据库不存在分区,那就很损耗数据库的性能了当然,如果存储分区的分法不合适,例如哈希分区适用于数据重复率不高的数据,而这时你却用列表分区去进行数据库的分区,那结果会导致你分区之后的效率没有提高可能反

2020-08-12 23:55:06 6252

原创 BigDecimal中除法divide()方法的详细解析,带你走进源码的world

进入方法源码之前,按照惯例,了解一下方法都需要知道哪些常量//设置一个常量=0,判断用public final static int ROUND_UP = 0;//设置一个常量=7,判断用public final static int ROUND_UNNECESSARY = 7;//整型数字表示的BigDecimal,例a的intCompact值为122private final transient long intCompact;//Long类型的最小长度static

2020-08-10 17:21:33 4058

原创 SpringBoot内置提供的定时器详解教程,图文详解含代码

定时器常见的几种方式 :JDK自带的java.util.Timer类 ,但是只能按照某一个频率执行,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少。也就学Java初期会这么自己玩下,企业中一般不使用Quertz 一个功能比较强大的调度器,让程序在指定的时间执行(例如:每天12点更新某些数据),也可以按照你指定的频率执行(几秒/几分钟执行一次),但是配置起来比较复杂Spring3.0 以后自带的

2020-08-03 23:01:19 737

原创 在各类数据库中随机查询n条数据

使用场景 :楼主用在B/S客户端中随机显示一些推荐消息给用户的界面当中MySQL数据库查询随机数据: ????//这里的8是指你想要查几条随机数据SELECT * FROM Table_Name ORDER BY RAND() LIMIT 8;SQL Server数据库查询随机数据: ????//一样道理,将8替换为你想要查询的信息条数 SELECT TOP 8 * FROM Table_Name ORDER BY NEWID();Oracle: ????//楼主用的是O

2020-07-31 20:40:38 234

原创 Java中大小数BigDecimal的加减乘除用法及场景的详细介绍,看完不信你还会报Syntax error on token “+/-/*“, invalid AssignmentOperat异常

卖个小问题八大基本数据类型:char byte double int long short boolean float数值类型有:4个整数型 byte int long short2个浮点型 float double剩余1个字符型 char1个布尔型 boolean其中数值类型面临着很大的问题:我想要小数点后10位参与运算,假设科学家在计算的过程只能精确到小数点后2位,那可是要出大问题的int取值范围是[-2147483648, 2147483647],也就十个亿的长度,姓马名云和姓马名.

2020-07-28 20:57:29 494

原创 Springboot项目中,常用几种加密算法之一解析--详解BCrypt加密算法,图文详解不怕你学不会

BCrypt密码加密开发准备工作导入jar包<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId></dependency>导入bean@Bean public BCryptPasswordEncoder bcryptPasswor

2020-07-24 23:06:30 1492 2

原创 JAVA如何实现短信验证码--阿里云接口,新手式图文教学,个人项目有这一篇就够了

开发前准备工作: 开通阿里云账号/支付宝账号,小量金额(充个10快钱一个个人项目够用了),两个小时的审核时间https://account.aliyun.com/进入阿里云的官网,选择登录方式登录以后,点击短信服务点击管理控制台,进入后台页面点击国内消息,注册一下签名和模板,简单理解就是你想要发怎么样的短信,以及填写你的信息个人项目一般只需要如实填写签名和申请理由就好了,记得选取验证码~因为up主的次数满了无法再注册单体的验证码完成签名以后再回到刚刚的页面,点击添加模板,这里要记住.

2020-07-24 21:01:08 266

原创 idea创建springboot工程项目时,网络环境好的情况下总出现响应超时问题,提示无法连接http://start.spring.io的问题

经常创建springboot工程,总出现响应超时问题,或者无法连接http://start.spring.io导致创建失败解决方案第一种情况:首先排除网络问题:这种情况就多打开几次idea就行了第二种情况:Choose Initializr Service URL 问题在初创建时,不用default的url选用Custom,输入http://start.spring.io或者https://start.spring.io第三种情况: idea设置有问题...

2020-07-22 23:11:46 1101

原创 Thymeleaf中一个页面怎么嵌套另一个页面,关于页面嵌套,标签告诉你应该知道的

Thymeleaf页面中如何嵌套另一个页面按照惯例,先解析一下项目结构,static是该项目下的静态资源文件夹,主要用于放除了页面以外的资源,这里一般不放页面,因为在加载页面的时候,这些资源文件会先加载,加载时域里所需的数据还未存储,自然也就拿不到数据了,所以只能将页面放置在templates文件夹下templates这个文件夹下通常放一些动态页面,通常不能直接通过url直接进入页面,需要通过Controller层,跳到Controller请求数据再跳回页面,(=-=!!)看起来挺灵活的,毕竟

2020-07-17 22:20:23 4667 1

原创 Mybatis常见异常类型Could not set parameters for mapping离不开这个原因!

通常这是因为mybatis解析带有'%#{data}%'SQL语句产生的异常解决方案:1.将#改为$2.将'%#{data}%'或者'%'#{data}%等改为'%'#{data}'%'修改之后即可成功运行

2020-07-14 15:01:25 2099

原创 面对后端传过来的JSON数据前端开发中如何解析

首先解释一下我想要获取的数据,利用Ajax和后端进行异步请求然后后端发送过来的数据通过alert()是这样的那么问题就是我该如何得到这组数据中的msg中的数据或者data中的name的数据JSON.parse()方法,这个方法在我们的JS中是一个自带的方法,调用的时候直接通过JS对象.属性名就可以食用了...

2020-07-12 13:11:53 7782 2

原创 玩转SpringBoot整合Mybatis连接访问MySQL数据库

步骤1.导入相关的依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-.

2020-07-07 23:02:49 332

原创 SpringBoot如何配置热部署?教你用idea创建SpringBoot项目,图文结合傻瓜式教程

开发环境准备1.JDK必须是1.8或1.8以上2.Maven管理工具必须是3.2.5以上3.开发工具使用IDEA打开IDEA,等待加载完毕,根据提示框填写信息在所需要的依赖jar上打✔,SpringBoot将会自动为你导入依赖进入主页面之后,等待依赖下载,如果是第一次进入应该会花点时间...

2020-07-06 20:38:29 263

原创 手撕HashMap的resize()方法源码渗透解析+图解

散列表在不断的经过put()方法添加元素时 当指定长度的散列表达到扩容阈值 就要进行扩容的操作 如果不扩容 那么无法再往集合中添加元素 同时数据量达到一定程度还不扩容也会让HashMap的时间复杂的从O(1)–>O(n) 所以说扩容是很有必要的 但是扩容同时也带来两个问题 何时扩容? 怎样扩容?

2020-07-04 22:49:49 336

空空如也

空空如也

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

TA关注的人

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