自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

I want to know a little more.

一点一点的进步。。。

转载 MySQL覆盖索引

一、覆盖索引 覆盖索引(covering index)指一个查询语句的执行只用从索引中就能够取得,不必从数据表中读取。也可以称之为实现了索引覆盖。 如果一个索引包含了(或覆盖了)满足查询语句中字段与条件的数据就叫做覆盖索引。二、覆盖索引实例 1.未建立索引前 select SQL_NO_C...

2020-07-10 13:57:45 12 0

转载 MySQL force Index 强制索引概述

以下的文章主要介绍的是MySQLforce Index 强制索引,以及其他的强制操作,其优先操作的具体操作步骤如下:我们以MySQL中常用的hint来进行详细的解析,如果你是经常使用Oracle的朋友可能知道,Oracle的hincvt功能种类很多,对于优化sql语句提供了很多方法。 同样,在M...

2020-07-10 13:54:42 7 0

转载 MySQL优化之hints

大妈让我整理MySQL优化的一些工具和方法,整理到MySQL hints的时候,没有找到满意的中文文章,于是自己翻译了一篇关于MySQL hints的小文章。如下: 每个程序员都喜欢优化,甚至有时我们知道不应该去做。为了满足大家的意愿,MySQL提供了一些关键字,在SQL语句中使用这些关键字,可...

2020-07-10 13:53:24 9 0

转载 Java线程池异常处理

自定义线程池MyThreadPoolExecutor执行任务的时候,如果任务报错,也不会被导致线程池被销毁。因为底层实现会把任务抛出的异常catch住且不打印。

2020-07-09 16:45:31 15 0

转载 kafka是push还是pull

Broker Kafka集群包含一个或多个服务器,这种服务器被称为broker Topic 每条发布到Kafka集群的消息都有一个类别,这个类别被称为topic。(物理上不同topic的消息分开存储,逻辑上一个topic的消息虽然保存于一个或多个broker上但用户只需指定消息的topic即...

2020-07-09 09:41:05 18 0

转载 关于LSM树

前言 推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。 关于LSM树 LSM树,即日志结构合并树(Log-Structured Merge-Tree)。...

2020-07-09 09:37:30 28 0

转载 关于Redis热点key的一些思考

关于Redis热点key的一些思考 昨天在和一个已经跳槽的同事聊天时,询问他这段时间面试时碰到的一些问题。自己也想积累一下这方面的知识。其中他说了在面试某赞公司时面试官问他关于热点Key的的解决方案。于是针对这次谈话以及上网查的一些资料后的思考进行一下总结。方便后续自己查阅。 什么是热点Key...

2020-07-09 09:28:52 16 0

原创 Spring默认是否开启循环引用

测试Spring是否开启循环引用: GitHub:https://github.com/a422478514/java-practice/tree/master/src/main/java/com/daquan/_202007/_01/spring/cyclereference MyDemoA...

2020-07-08 19:54:45 17 0

转载 Spel表达式

8.Spring 表达式语言 (SpEL) 8.1介绍 Spring表达式语言(简称SpEl)是一个支持查询和操作运行时对象导航图功能的强大的表达式语言. 它的语法类似于传统EL,但提供额外的功能,最出色的就是函数调用和简单字符串的模板函数。 尽管有其他可选的 Java 表达式语言,如 OG...

2020-07-08 19:49:04 29 0

转载 3次握手4次挥手

记得刚毕业找工作面试的时候,经常会被问到:你知道“3次握手,4次挥手”吗?这时候我会“胸有成竹”地“背诵”前期准备好的“答案”,第一次怎么怎么,第二次……答完就没有下文了,面试官貌似也没有深入下去的意思,深入下去我也不懂,皆大欢喜! 作为程序员,要有“刨根问底”的精神。知其然,更要知其所以然。这...

2020-07-08 17:41:29 18 0

转载 Spring Aop详解

1. 什么是AOP? AOP是Aspect Oriented Programming的缩写,意思是:面向切面编程,它是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。 可以认为AOP是对OOP(Object Oriented Programming 面向对象编程)的补充,主要使...

2020-07-07 21:16:47 34 0

原创 深入理解 Java try-with-resource 语法糖
原力计划

背景 众所周知,所有被打开的系统资源,比如流、文件或者Socket连接等,都需要被开发者手动关闭,否则随着程序的不断运行,资源泄露将会累积成重大的生产事故。 在Java的江湖中,存在着一种名为finally的功夫,它可以保证当你习武走火入魔之时,还可以做一些自救的操作。在远古时代,处理资源关闭...

2020-07-07 19:52:02 34 0

原创 Srping配置文件属性注入

Spring中可以通过两种方式把资源文件中properties里的key-value注入到bean中。 第一种:xml方式 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&qu...

2020-07-06 20:09:10 17 0

转载 Lombok天天用,却不知道它的原理是什么?

作者:不学无数的程序员 来自:urlify.cn/y2UnAn 相信大家在项目中都使用过Lombok,因为能够简化我们许多的代码,但是该有的功能一点也不少。 那么lombok到底是个什么呢,lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java...

2020-07-06 14:35:09 57 0

原创 ContextClosedEvent和ContextStoppedEvent

这两个事件看起来都是等于容器要关闭,其实不然,close是spring容器真正销毁了才会触发,而stop事件只是容器把实现了Lifecycle的bean给stop了,还可以使用start将其重新启动。

2020-07-04 11:49:55 30 0

转载 Spring常见面试题(超详细)

1、Spring是什么? Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。常见的配置方式有三种:基于XML的配置、基于注解的配置、基于Java的配置。 主要由以下几个模块组成: ...

2020-07-04 11:12:40 63 0

原创 Bean的初始化流程

通过main函数启动spring容器加载bean时,会有以下流程: 1、通过实现BeanFactoryPostProcessor并覆盖postProcessBeanFactory()可以在spring容器初始化时拿到ConfigurableListableBeanFactory的实例,Con...

2020-07-03 18:59:59 29 0

原创 MySql在RR隔离级别下能否解决幻读问题

很多文章提到mysql的默认隔离级别是rr,且rr隔离级别是能够解决幻读的。如果能解决,串行化的存在意义何在呢,其实在rr隔离级别下,显然是不可以解决所有幻读的问题的的。如图:

2020-07-03 16:10:56 22 0

原创 Spring使用MessageSource获取

Exception in thread "main" org.springframework.context.NoSuchMessageException: No message found under code 'welcome' for locale &...

2020-07-03 12:18:49 26 0

原创 Idea社区版不支持Diagrams视图

Idea社区版不支持Diagrams视图

2020-07-03 12:06:23 36 0

原创 Spring资源国际化

Spring中提供了资源国际化的模板实现,可以通过简单的配置即可实现资源国际化。 下面给个小栗子: 1、配置国际化资源xxx.properties 在resources目录下新建三个文件: i18n.properties相当于父文件,i18n_xxx.properties相当于子文件,...

2020-07-03 12:02:40 28 0

原创 IDEA:*.properties文件中文乱码解决方案

idea已经设置统一编码UTF-8(没有设置过的同学可以设置下:IDEA正确设置编码统一为UTF-8),但是通过spring获取*.properties中的中文还是会乱码。 所以要按照以下配置,配置完成后重启idea。

2020-07-03 11:48:18 38 0

原创 Spring-Aware

Aware的作用 我们在实际的开发中,我们却经常要用到Spring容器本身的功能资源,所以Spring容器中的Bean此时就要意识到Spring容器的存在才能调用Spring所提供的资源。 Aware是一个具有标识作用的超级接口,实现该接口的bean是具有被spring 容器通知的能力的,而被...

2020-07-02 18:51:22 35 0

原创 sql error : The table is full

SpringBoot项目使用mybatis操作mysql,批量执行插入语句时,提示sql error:the table xxx is full。 询问DBA得知可能是两个问题: 1、mysql所在机器硬盘满导致 2、临时表空间的缓冲区需要调整 本人查看mysql所在机器确实硬盘空间剩余&...

2020-07-02 17:54:38 26 0

原创 mac创建alias别名

经常会遇到在命令行中要执行一长串命令,命令还是重复的,手打费劲,使用别名可以很好的解决这个问题: 1、创建别名 alias connect_mysql = "mysql -h xxxx -p xxx -d xxx" 2、使用别名 在控制台输入以下字符并按回车相当于输入了...

2020-07-02 12:38:40 27 0

原创 Spring自定义事件发布-监听
原力计划

一、监听器模式 监听者通过向发布者注册自身(自身可以理解为监听者对象),如果有事件发生,发布者会调用注册列表里的监听者的某方法并把事件(事件内部持有事件源)作为参数传入。 在Spring中需要我们自己定义事件监听器、事件。发布器不需要自定义,但需要设法通过上下文拿到发布器。(可以思考下为什么这...

2020-07-01 17:04:44 41 0

转载 干掉restful:graphql真香!

背景 REST作为一种现代网络应用非常流行的软件架构风格,自从Roy Fielding博士在2000年他的博士论文中提出来到现在已经有了20年的历史。它的简单易用性,可扩展性,伸缩性受到广大Web开发者的喜爱。 REST 的 API 配合JSON格式的数据交换,使得前后端分离、数据交互...

2020-06-30 12:15:04 40 0

原创 Idea变量断点调试

Idea支持在操作某个类下的属性时加上断点,断点会在任何使用到该变量的地方生效:

2020-06-30 11:58:33 49 0

原创 Idea方法断点调试

Idea支持在某个方法前加断点: 要注意,Class pattern要填 包名+类名:

2020-06-30 11:52:14 23 0

原创 Idea异常断点调试

有时候我们想要监控某个特殊的异常会发生在哪,就需要用到异常断点,这个断点和普通断点不大一样,不需要在代码行左侧打,而是直接通过图中所示配置:

2020-06-30 11:33:23 24 0

转载 断点调试原理

断点调试原理 对于程序员来说,debug的时间往往比写程序的时间还要长。尤其对我这种专写bug为主的程序员来说,一个好的调试器意味着早点下班和休息。现在方便的调试器很多,有著名的Visual Studio(VS)等IDE,也有免费的Windbg和GDB等等。加个断点也很简单,就是按一下键而已。但...

2020-06-30 11:20:17 21 0

原创 Idea下条件断点DEBUG

目录 断点调试 断点调试步骤 ​ 条件断点调试 断点调试原理 软件断点 硬件断点 其他 断点调试 断点调试是指自己在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后你可以一步一步往下调试,调试过程中可以看各个变量当前的值,出错的话,调试到出错的代码行即显示错...

2020-06-30 11:01:15 23 0

转载 消息队列之 RabbitMQ

关于消息队列,从前年开始断断续续看了些资料,想写很久了,但一直没腾出空,近来分别碰到几个朋友聊这块的技术选型,是时候把这块的知识整理记录一下了。 市面上的消息队列产品有很多,比如老牌的 ActiveMQ、RabbitMQ ,目前我看最火的 Kafka ,还有 ZeroMQ ,去年底阿里巴巴捐赠给...

2020-06-29 15:38:35 20 0

原创 idea下java无法加载主类

问题描述:在运行java文件的main函数时提示无法加载主类 解决方式:删除project,重新创建java类解决 问题原因:猜测是因为建包的时候使用了数字作为包名,或是从github上克隆项目后导致。 推荐解决方案:重新导入(新建)下项目 ...

2020-06-29 12:24:18 23 0

原创 idea下使用java8语法报错

有没有同学发现,自己的idea里配置了高版本的jdk,项目模块也选择了高版本的jdk,代码中java语法还是报错。 试下修改这个: 在修改之前要确保下图的配置要选择高版本的jdk: 问题原因可能是:默认项目导进去时候就是编译环境是jdk1.5版本的,虽然Project和Modules...

2020-06-29 11:19:22 21 0

原创 java中的包名不能以数字开头

java中的包名不能以数字开头,原因是jvm不能正常加载数字开头的包名。

2020-06-29 10:13:03 53 0

原创 spring-rabbitmq优雅关机

1、添加一个jvm关闭状态标识status 2、在rmq的消费者端代码创建aop切面,过滤onMessage方法,并添加判断status如果处于关闭状态则执行reject+requeue逻辑。(可以适当延时执行,防止消息循环通知) 3、注册个JVM关闭的钩子 ...

2020-06-28 20:03:55 70 0

转载 RabbitMQ镜像队列实现原理

一、镜像队列使用 1.镜像队列作用 ​ RabbitMQ默认集群模式,并不包管队列的高可用性,尽管队列信息,交换机、绑定这些可以复制到集群里的任何一个节点,然则队列内容不会复制,固然该模式解决一项目组节点压力,但队列节点宕机直接导致该队列无法应用,只能守候重启,所以要想在队列节点宕机或故障也能正常...

2020-06-28 17:53:59 44 0

原创 Spring-RabbitMQ配置详解

一、virtual-host vhost是rabbitmq分配权限的最小细粒度。比如我们可以为一个用户分配一个可以访问哪个或者哪一些vhost的权限。 但是不能为用户分配一个可以访问哪一些exchange,或者queue的权限,因为rabbitmq的权限细粒度没有细化到交换器和队列,他的最小细粒...

2020-06-28 17:05:49 30 0

转载 玩大发了,Tomcat 8.5 升级有坑…

最近某个系统做了环境升级: Tomcat 8.5.x JDK 1.8.x 有个系统升级后出现没有这个方法异常: threwexception; nestedexceptionis java.lang.NoSuchMethodError: ... ... 上线后系统起不...

2020-06-24 09:51:46 39 0

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