自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大唐雨夜的博客

实时更新博客地址:https://gitee.com/dtyytop/devnotes

  • 博客(165)
  • 资源 (5)
  • 收藏
  • 关注

原创 leetcode Top题单归纳总结

树94. 二叉树的中序遍历226. 翻转二叉树递归滑动窗口

2022-03-20 09:36:27 506

原创 Flink踩坑实录

Flink日常开发异常收录

2022-11-20 12:17:11 618 1

原创 代码面试分类刷题列表

分类刷题列表,难易排列

2022-11-01 07:46:28 455

原创 MySQL索引优化

InnoDB索引有聚簇索引和辅助索引。对于MySQL,NULL是一个特殊值,处理方式与其他值不同,不能使用=等运算符,对NULL做算术运算的结果还是NULL,count该字段时不会包括NULL等,NULL比空字符需要更多的存储空间。MySQL可以在含有NULL的列上使用索引(复合索引也可以),但是NULL和其他数据有区别,不建议列上使用NULL,建议给默认值0,空串。复合索引使用时遵循最左前缀原则,就是最左优先,即查询中使用到最左边的列,那么查询就会使用到索引,如果从索引的第二列开始查找,索引将失效。

2022-10-31 07:30:00 386

原创 explain执行计划详解

explain执行计划分析,是SQL优化的重要手段。id表示查询中执行 select 子句或操作表的顺序。id的执行顺序规则:id相同id不同下图中,age是普通索引,age=18时,表中有多条数据,访问类型为all,没有走索引;当age=22,表中只有一条数据时,访问是ref。表示查询时可能使用到的索引,并不是真正用到。表示查询时真正使用到的索引,显示索引字段名称。查询优化器根据统计信息估算查询到结果需要扫描多少行数据。rows越少效率越高。查询使用了索引的字节数据量。可以判断是否全部使用了组合索

2022-10-24 08:00:00 476

原创 MySQL索引原理

索引可以提升查询速度,会影响where查询,以及order by排序。MySQL索引类型如下:从索引存储结构划分:B Tree索引、Hash索引、FULLTEXT全文索引、R Tree索引从应用层次划分:普通索引、唯一索引、主键索引、复合索引从索引键值类型划分:主键索引、辅助索引(二级索引)从数据存储和索引键值逻辑关系划分:聚集索引(聚簇索引)、非聚集索引(非聚簇索引)

2022-10-19 08:13:29 233

原创 MySQL的三种日志文件

InnoDB有三种重要的日志文件:undo log,redo log,bin log。

2022-10-16 20:46:00 1401

原创 MySQL架构原理4 InnoDB存储引擎结构(了解)

Iru list:表示正在使用的缓冲区,管理clean page和dirty page,缓冲区以midpoint为基点,前面链表称为new列表区,存放经常访问的数据,占63%;改性LRU:链表分为new和old两个部分,加入元素时并不是从表头插入,而是从中间midpoint位置插入,如果数据很快被访问,那么page就会向new列表头部移动,如果数据没有被访问,会逐步向old尾部移动,等待淘汰。dirty page:脏页,被使用age,数据被修改过,页中数据和磁盘的数据产生了不一致。

2022-10-14 07:45:00 504

原创 MySQL架构原理之存储引擎

是否需要事务?有,InnoDB是否存在并发修改?有,InnoDB是否追求快速查询,且数据修改少?是,MyISAM在绝大多数情况下,推荐使用InnoDB。

2022-10-11 22:53:05 110

原创 MySQL架构原理之体系架构

MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层。

2022-10-10 07:30:00 247

原创 MySQL架构原理之执行机制

查询执行引擎负责执行SQL语句,此时会根据SQL语句中表的存储引擎类型,以及对应的API接口与底层存储引擎存或者物理文件的交互,得到查询结果并返回给客户端。如果采用查询缓存,MySQL就需要花费很大精力维持查询缓存数据的一致性,并发高时影响性能。毕竟数据库资源更加真贵。解析器(Parser)将客户端发送的SQL进行语法解析,生成“解析树“。检查“解析树“是否合法,例如这里将检查数据表和数据列是否存在,还会解析名字和别名,看看它们是否有歧。划,可以分为两类:静态优化(编译时优化)、动态优化(运行时优化)。

2022-10-10 07:30:00 258

原创 MQ和多线程异步有什么区别?

在系统调用时,我们可能使用MQ实现自产自销。此处直接使用多线程异步是否也可以实现?使用多线程异步也可以实现,但是不够优雅。主要在于多线程和MQ的区别。项目较大时优先使用MQ,否则都可以。

2022-10-03 19:37:15 1808

原创 使用Kapcha生成验证码

使用Kapcha生成验证码

2022-10-03 11:37:40 329

原创 URL添加无效查询参数,防止浏览器查缓存

URL完全相同时,浏览器可能直接从缓存中取结果数据。因此,可以添加无效查询参数,防止浏览器查缓存。

2022-10-02 18:00:47 471

原创 BigDecimal在生产上怎么用?

使用BigDecimal#valueof方法与直接使用字符串构造相同。

2022-09-17 21:00:57 137

原创 如何配置 Kafka 无消息丢失

kafka在三个阶段可能出现消息丢失,分别是生产消息、消费消息、页缓存操作后异步刷盘。

2022-09-13 23:55:46 557

原创 kafka高性能的原因

Customer从broker读取数据,采用sendfile,将磁盘文件读到OS内核缓冲区后,直接转到socket buffer进行网络发送。Producer生产的数据持久化到broker,采用mmap文件映射,实现顺序的快速写入;partition顺序读写,充分利用磁盘特性,这是基础;批操作:批量读写、批量压缩。分区分段加稀疏索引。

2022-09-13 23:29:45 194 1

原创 请说一下浏览器从输入URL 到页面展示这个过程中都经历了什么?你能答出来吗?

请说一下浏览器从输入URL 到页面展示这个过程中都经历了什么?你能答出来吗?

2022-08-14 22:52:00 640

原创 服务化架构、SOA、微服务是什么关系

服务化架构是宏观目标,SOA与微服务架构是落地实现。服务化架构-强调对业务垂直拆分形成多个服务模块。然而分布式子系统没有标准,需要一个平台例如ESB,提供中心化服务,例如提供格式转换等,很重量级。微服务则给服务架构提供了标准。将单个应用程序拆分成多个小型程序,运行在自己的进程中,进行轻量级通信。...

2022-07-03 21:34:14 1624

原创 虚拟机CentOS安装RabbitMQ

虚拟机CentOS安装RabbitMQ

2022-06-08 08:04:21 307

原创 FileZilla或者SecureCRT连接虚拟机过慢的解决方法

FileZilla或者SecureCRT连接虚拟机过慢的解决方法

2022-05-31 00:11:58 1597

原创 leetcode Top100题单

leetcode Top100 整理,用于热点题快速翻阅。

2022-05-17 08:05:38 2398

原创 IDEA插件开发:自定义二级菜单

二级菜单选项,开发相当简单。本文短小精悍,一步到位。有图有真相。

2022-05-14 10:44:53 1481 2

原创 一篇详细实用的IDEA插件开发指南

工作时,创建项目module时,总是有很多模板代码(公司内部框架的一些样板代码),配置起来感觉浪费时间,就开发了个插件。

2022-05-12 22:18:43 6546

原创 分布式接口幂等性的实现

接口幂等性幂等性:f(f(x)) = f(x),幂等元素运行多次,还等于它原来的运算结果。在系统中,一个接口运行多次,与运行一次的效果是一致的。什么时候需要幂等性?并不是所有的接口都要求幂等性,要根据业务设计。重复提交、接口重试、前端操作抖动等场景,例如用户一次提交一个订单,支付时只能扣一次钱。幂等性策略核心思想:通过**唯一的业务单号**保证幂等性。非并发的情况,可以查询某个业务是否操作过,没有则执行(查询券是否使用过);并发时,操作过程加锁(分布式锁)。select操作,不对数据有影响,天

2022-05-08 21:28:45 973

原创 SpringBean循环依赖

循环依赖所谓的循环依赖是指,A 依赖 B,B 又依赖 A,它们之间形成了循环依赖。1、三级缓存解决循环依赖Spring通过三级缓存的方式来解决循环依赖的问题。DefaultSingletonBeanRegistry类中的三个缓存变量//一级缓存:单例缓存池,用于保存所有的完整单例bean private final Map<String, Object> singletonObjects = new ConcurrentHashMap<>(256);//三级缓存:早期对

2022-04-30 15:54:28 1108

原创 插件开发暂时记录

package com.lzp;import com.intellij.openapi.actionSystem.AnAction;import com.intellij.openapi.actionSystem.AnActionEvent;import com.intellij.openapi.editor.Document;import com.intellij.openapi.fileEditor.FileEditorManager;import com.intellij.openapi.

2022-04-25 23:56:34 142

原创 代码面试之动态规划总结(持续更新中)

class Solution { public int fib(int n) { if (n == 0 || n == 1) { return n; } int[] dp = new int[n + 1]; dp[0] = 0; dp[1] = 1; for (int i = 2; i <= n; i++) { dp[i] = dp[i - 2] +

2022-04-14 12:39:44 503

原创 一次性编译通过Spring 5.3.x源码

之前看了一些博客和视频课程,都是使用Spring 5.1.x和gradle 5.6.3编译,他们编译的倒是很顺利,但本人实际操作总是缺少各种依赖,不可行。强烈推荐下面的博客https://www.cnblogs.com/zpstudy0/p/16096041.html一个小建议就是,查找配置博客时,按照时间选最近的,例如一周内,老博客很多没用,照着搞还浪费时间!...

2022-04-09 22:40:57 361

原创 代码面试之数组

数组相关代码面试题

2022-04-09 09:41:32 1481

原创 Java数组foreach赋值不生效的问题

问题是我在完成LeetCode第23题时遇到的,我采用的是最小堆加上递归的解决方式。递归中,我对参数数组lists做了foreach,并且赋值,发现lists的值不会改变,结果是栈溢出。当改成直接修改数组元素时AC。for (int i = 0; i < lists.length; i++) { if (lists[i] != null && minVal == lists[i].val) { pre.next = lists[i]; li

2022-04-04 23:18:42 2847

原创 自定义IOC和AOP的实现思路

1、对象之间耦合的问题假设代码如下实现,service内部调dao层实现。public class TransferServiceImpl implements TransferService { private AccountDao accountDao = new JdbcAccountDaoImpl();}在Service层调上面语句,显然存在对象耦合问题,不符合面向接口编程的规则。假设Dao层接口有了新的实现方式,必须修改service层代码。如果不用new对象,则需要用反射创建

2022-04-04 21:45:30 448

原创 Mybatis核心流程源码分析

Mybatis启动过程// 1. 读取配置文件,读成字节输入流,注意:现在还没解析InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");// 2. 解析配置文件,封装Configuration对象。创建DefaultSqlSessionFactory对象SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().b

2022-04-01 00:32:57 226

原创 Mybatis层次结构与执行流程

Mybatis功能架构Mybatis的功能架构分为三层:API接⼝层:提供给外部使⽤的接⼝ API,调⽤数据处理层来完成具体的数据处理。MyBatis和数据库的交互有两种⽅式:a. 使⽤传统的MyBatis提供的API ;b. 使⽤Mapper代理的⽅式。数据处理层:负责具体的SQL查找、SQL解析、SQL执⾏和执⾏结果映射处理等,完成一次数据库调用操作。基础⽀撑层:负责最基础的功能⽀撑,包括连接管理、事务管理、配置加载和缓存处理,是基础组件。Mybatis的主要构件与层次结构总体执行流程

2022-04-01 00:30:31 598

原创 Mybatis缓存实现原理

Mybatis缓存mybatis提供了对缓存的支持,分为一级缓存和二级缓存,可以通过下图来理解:①、一级缓存是SqlSession级别的缓存,默认开启。不同的sqlSession之间的缓存数据区域(HashMap)是互相不影响的。②、二级缓存是mapper级别的缓存,基于mapper文件的namespace,多个SqlSession去操作同一个Mapper的sql语句,多个SqlSession可以共用二级缓存,二级缓存是跨SqlSession的。一级缓存⼀级缓存到底是什么?⼀级缓存什么时候被创建

2022-03-28 07:45:00 1606

原创 HashMap实现原理总结

HashMap自问自答

2022-03-18 07:45:00 471

原创 Spring AOP实现原理

AOP使用三步走使用AOP主要分为三步:1)、将业务逻辑组件和切面类都加入到容器中;告诉Spring哪个是切面类(@Aspect)2)、在切面类上的每一个通知方法上标注通知注解,告诉Spring何时何地运行(切入点表达式)3)、开启基于注解的aop模式;@EnableAspectJAutoProxyAOP原理总结AOP原理:【看给容器中注册了什么组件,这个组件什么时候工作,这个组件的功能是什么?】debug思想从启动类入手,找到继承/实现关系的顶层,在顶层接口实现方法和自己手写的代码上

2022-03-08 09:29:31 255

原创 @SpringBootApplication到底帮我们做了什么

SpringBootApplication注解@SpringBootApplication,标识某个类上说明这个类是 SpringBorn的主配置类。@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan( excludeFilters = {@Fil

2021-09-02 07:44:19 481

原创 什么是微服务

2014 martin fowler提出。微服务是一种架构风格(服务微化)。一个应用应该是一组小型服务;可以通过HTTP的方式进行互通; 每一个功能元素最终都是一个可独立替换和独立升级的软件单元;微服务文档https://martinfowler.com/articles/microservices.html#MicroservicesAndSoa微服务增加了运维工作量。单体应用:通常将应用打成war包,放到Tomcat中执行即可。便于开发、测试、部署,扩展简单(多台服务器复制应用,使用负载均衡机

2021-09-01 08:04:35 104

原创 Spring Boot简介

Spring boot来简化 Spring应用开发,约定大于配置, 整合了整个Spring技术栈,是J2EE一站式解决方案。有点像门面模式。背景:J2EE笨重的开发、繁多的配置、低下的开发效率、复杂的部署流程、第三方技术集成难度大。解决:Spring全家桶”时代。Spring Boot→J2EE一站式解决方案Spring Cloud→分布式整体解决方案优点:快速创建独立运行的应用,使用嵌入式的 Servlet容器,应用无需打成WAR包;简化开发,starter自动依赖与版本控制;方便集成主.

2021-09-01 08:03:13 97

jdk1.8中文版本.7z

jdk1.8中文谷歌翻译版,1.8版本是当前开发非常流行的版本,希望文档对你有所帮助

2020-04-04

CSS揭秘(图灵图书)

当初花了不少钱买的电子版,无论书评还是文字都是超高清、可以文本选择,并且有标签的。

2017-07-01

概率机器人.pdf 高清版

这本书大家都懂,自主导航必备,和多视图几何都是学slam必备书籍

2016-04-04

空空如也

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

TA关注的人

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