自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

云想衣裳花想容,春风拂槛露华浓

若非群玉山头见,会向瑶台月下逢

  • 博客(81)
  • 问答 (18)
  • 收藏
  • 关注

原创 递归快速获取机构树型图

一般组织架构都会有层级关系,根部门的parentId一般设置为null或者0等特殊字符,而次级部门及以下的parentId则指向他们父节点的id。以此为基础,业务上经常会有查询整个组织架构层级关系的需求,返回对象中的children属性用来存储子机构的集合,从而形成树型结构。1、获取所有根节点,根节点的集合就是最终返回对象的集合的元素数量size。这种情况一般使用递归写法,能快速完成需求。3、递归设置子节点的子节点集合。2、设置根节点的子节点集合。

2024-09-21 12:49:46 305 3

原创 如何高效记录并整理编程学习笔记?

只做笔记不去看,很容易就忘了,最好使用云文档类型,手机随时就可以看,也可以发表到csdn。手机电脑都可以看,随时同步笔记。做好清晰的标题,按照知识去分类。

2024-08-12 22:23:41 230 2

原创 使用自定义注解和AOP解决登录校验问题

在不改变源代码或者很少改变源代码的情况下,增强类的某些方法。在业务代码之前设置 切入点创建切面类,也就是比如登录校验的某些公共方法切面类从切入点切入流程,形成切面。

2024-08-10 22:20:30 353

原创 “八股文”在实际工作中是助力、阻力还是空谈?

首先,当前一份工作甚至一天几百份简历,HR都不会正眼瞧你,当你的简历触发了很多诸如:大数据量、高并发等关键词,HR才会多看一眼,并把你的简历送到技术那里筛选,如果企业是真的想要招人,便会给许多人一次面试的机会,在这种僧多肉少的情况下,面试官会觉得他们的时间很宝贵,这时,随便问几个常见的八股文的问题,就是对他们来说最快的筛选人的机会,根本不用费脑子去看你的项目,去感受你的能力,只要你答不对那也不会有后续了,所以八股文对求职者还是至关重要的。spring 春天;spring 春天;

2024-08-10 21:44:42 368

原创 JVM原理

Java Virtual Machine(Java虚拟机)。

2024-07-17 16:16:50 857 1

原创 MySQL中的锁

也称当前读, 读取的是最新版本, 并且对读取的记录加锁, 阻塞其他事务同时改动相同记录。select lock in share mode (共享锁)、select for update (排他锁)、update (排他锁)、insert (排他锁/独占锁)、delete (排他锁)、串行化事务隔离级别都是当前读。

2024-07-17 10:11:18 899

原创 MySQL MVCC原理

MVCC(Multi-Version Concurrency Control ,多版本并发控制)进行普通的SEELCT查询时才生效。它指的就是在使用读已提交、可重复读这两种隔离级别的事务在执行普通的SELECT操作时访问记录的版本链的过程,这样子可以使不同事务的读-写、写-读操作并发执行,从而提升系统性能。

2024-07-16 22:59:35 1249 1

原创 MySQL性能调优

针对联合索引,有范围查询会导致后面的列全部失效,无法充分利用这个联合索引。

2024-07-16 19:11:51 1177

原创 MySQL集群、Redis集群、RabbitMQ集群

MySQL-MMM 是 Master-Master Replication Manager for MySQL(mysql 主主复制管理器)的简称。脚本)。MMM 基于 MySQL Replication 做的扩展架构,主要用来监控 mysql 主主复制并做失败转移。其原理是将真实数据库节点的 IP(RIP)映射为虚拟 IP(VIP)集。

2024-07-15 22:05:24 2185

原创 Kubernetes

Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,方便进行声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态系统,其服务、支持和工具的使用范围广泛。各个组织是在物理服务器上运行应用程序。由于无法限制在物理服务器中运行的应用程序资源使用,因此会导致资源分配问题。虚拟化技术允许你在单个物理服务器的 CPU 上运行多台虚拟机(VM)。虚拟化能使应用程序在不同 VM 之间被彼此隔离,且能提供一定程度的安全性, 因为一个应用程序的信息不能被另一应用程序随意访问。

2024-07-15 15:17:58 716

原创 RabbitMQ

RabbitMQ 是一个消息代理:它接受并转发消息。生产仅仅意味着发送,发送消息的程序是生产者。队列是 RabbitMQ 中邮箱的名称,尽管消息通过 RabbitMQ 和您的应用程序流动,但它们只能存储在队列中。队列仅受主机的内存和磁盘限制,它本质上是一个大型消息缓冲区。许多生产者可以发送消息到一个队列,许多消费者可以尝试从一个队列接收数据。消费具有与接收类似的含义。消费者是一个主要等待接收消息的程序生产者、消费者和代理不必驻留在同一主机上;

2024-07-14 20:42:48 2158

原创 异步和线程池

1、2不能得到返回值,3可以获得返回值1、2、3不能控制资源,4可以控制资源的使用。

2024-07-14 17:02:16 350

原创 缓存与分布式锁

Spring Cache利用了AOP,实现了基于注解的缓存功能,并且进行了合理的抽象,业务代码只需要简单地加一个注解,就能实现缓存功能了。

2024-07-14 16:34:58 765

原创 SpringCoud组件

网关作为流量的入口,常用功能包括路由转发、权限校验、限流控制等。Spring Cloud Gateway 特点: 基于 Spring5,支持响应式编程和 SpringBoot2.0 支持使用任何请求属性进行路由匹配 特定于路由的断言和过滤器 集成 Hystrix 进行断路保护 集成服务发现功能 易于编写 Predicates 和 Filters 支持请求速率限制 支持路径重写。

2024-07-14 14:02:53 849

原创 本地事务和分布式事务

:一系列的操作整体不可拆分,要么同时成功,要么同时失败。:数据在事务的前后,业务整体一致。转账。A:1000;B:1000;转 200;事务成功:A:800 B:1200:事务之间互相隔离。隔离级别的一个核心问题是:一个事务的执行过程和结果是否会影响到其他正在执行的事务。可串行化是最高级别的隔离,即事务之间。(多个并行的事务的结果与一个一个串行执行的结果一样):一旦事务成功,数据一定会落盘在数据库。

2024-07-13 22:32:36 809

原创 接口幂等性

比如说支付场景,用户购买了商品支付扣款成功,但是返回结 果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额返发现多扣钱了,流水记录也变成了两条...,这就没有保证接口的幂等性。

2024-07-13 16:18:41 392

原创 Redis

redis是一个开源的key-value存储系统。Redis不仅仅是一个简单的缓存系统,还可以用作消息队列、计数器等功能。Redis 是单线程+多路 IO 复用技术。多路复用是指使用一个线程来检查多个文件描述符(socket)的就绪状态,比如调用select和poll函数,传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞知道超时。得到就绪状态后进行真正的操作,可以在同一个线程里执行。内存存储:Redis主要将数据存储在内存中,因此读写速度非常快。

2024-06-02 22:58:02 1024

原创 Java中锁的问题

在java中。锁是一种多线程编程的重要概念,用于保护共享资源的一致性。

2024-05-20 11:00:30 819

原创 获取当月第一天第一秒,最后一天最后一秒

获取date类型的日期,当月第一天第一秒,最后一天最后一秒

2022-07-01 16:08:23 1038 1

原创 十、内部排序,排序算法

10.1概述排序是计算机程序设计中的一种重要操作,它的功能是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列。内部排序:待排序记录存放在计算机随机存储器中进行的排序过程;外部排序:待排序记录的数量很大,以致内存一次不能容纳全部记录,在排序过程中尚需对外存进行访问的排序过程。10.2插入排序10.2.1直接插入排序它是将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表。时间复杂度是O(n^2)10.2.2其他插入排序(1)折半插入排序插入

2022-03-29 16:57:59 918

原创 静态查找、动态查找、哈希表

查找表是由同一类型的数据元素(或记录)构成的集合。

2022-03-29 13:44:43 729

原创 树和二叉树

树形结构是一种重要的非线性数据结构,是以分支关系定义的层次结构。1.1树的定义和基本术语树是n个结点的有限集。在任意一棵非空树中:1.有且仅有一个特定的称为根(root)的结点。2.当树的结点数量大于1时,其余结点可分为m个互不相交的有限集,其中每个集合本身又是一棵树,并且称为根的子树。树的结点包含一个数据元素及若干指向其子树的分支。结点拥有的子树数称为结点的度。度为0的结点称为叶子或者终端节点。...

2022-03-25 14:23:26 1657

原创 四、串、数组和广义表

4.1串类型的定义串(或字符串)是由零个或多个字符组成的有限序列。串中字符的数目n称为串的长度,零个字符串的串称为空串。串中任意个连续的字符组成的子序列称为该串的子串。包含字串的串相应的称为主串。...

2022-03-23 14:09:40 320

原创 三、栈和队列

3.1栈3.1.1抽象数据类型栈的定义栈是限定仅在表尾进行插入或删除操作的线性表。因此,表尾端称为栈顶(top),相应的,表头端称为栈底(bottom)。不含元素的空表称为空栈。栈是后进先出的线性表。3.1.2栈的表示和实现与线性表类似,栈也有两种存储表示方法。顺序栈和链式栈。顺序栈:栈的顺序存储结构是利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素在顺序栈中的位置。非空栈中的栈顶指针始终在栈顶元素的下一个位置上。链式栈3.

2022-03-23 10:45:50 580

原创 数据结构清华大学出版社目录

上一篇:二、线性表_尘埃不入你眼眸的博客-优快云博客

2022-03-22 16:11:33 625

原创 二、线性表

2.1线性表的类型定义线性表:一个线性表是n个数据元素有限序列。在稍复杂的线性表中,一个数据元素可以由若干个数据项组成。在这种情况下,常把数据元素称为记录,含有大量记录的线性表又称为文件。线性表的每个数据元素都有一个确定的位置,它的长度可以根据需要增长或缩短,即不仅可以访问也可插入和删除。2.2线性表的顺序表示和实现线性表的顺序表示指的是用一组地址连续的存储单元依次存储线性表的数据元素。称作顺序存储结构或顺序映像,通常称这种存储结构的线性表为顺序表。特点是:为表中相邻的元素a1和a2赋予相邻

2022-03-22 16:01:31 1169

原创 一、数据结构基本概念和术语

数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。数据:是对客观事物的符号表示。数据元素:是数据的基本单位,可由若干个数据项组成。数据对象:是性质相同的数据元素的集合,是数据的一个子集。各种数据元素之间的关系称为结构。集合:结构中的不同元素之间除了“同属一个集合外,别无其他关系”。线性结构:结构中的数据元素之间存在一个对一个的关系。树形结构:结构中的数据元素之间存在一个对多个的关系。图状结构或网状结构:结构中的数据元素之间存在多个对多个之间的关系。结构中定义的“

2022-03-22 10:59:20 673 1

原创 java8新特性lambda等

1.lambda表达式为什么使用Lambda表达式?lambda表达式是一个匿名函数,我们可以把lambda表达式理解为是一段可以传递的代码,可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使java的语言能力得到了提升。lambda表达式从匿名类到lambda的转换//匿名内部类Runnable r1 = new Runnable(){ @Override public void run(){ System.out.println("Thanks

2022-03-21 15:58:45 3221

原创 Eureka服务发现设计

一、随着服务的启动,许可证和组织服务将通过Eureka服务进行注册。这个注册过程将告诉Eureka每个服务实例的物理位置和端口号,以及正在启动的服务ID。二、当许可证服务调用组织服务时,许可证服务将使用Netfix Ribbon库提供客户端负载均衡。Ribbon将联系Eureka服务去检索服务位置信息,然后在本地进行缓存。三、Netfix Ribbon库将定期对Eureka服务进行ping操作,并刷新服务位置的本地缓存。任何新的组织服务实例现在都将在本地许可服务可见,而任何不健康的实例都将从本地

2022-03-18 16:58:38 284

原创 通用Mapper笔记

1.作用替我们生成常用增删改查操作的sql语句2.常用注解①@Table注解作用:建立实体类和数据库表之间的对应关系。默认规则:实体类类名的首字母小写就是表名用法:在注解的name属性中指定目标数据库的表名(实体类名字想怎么起不再被数据库表名限制)②@Column注解作用:建立实体类字段和数据库表字段之间的对应关系。用法:在注解的name属性中指定目标字段的字段名。③@Id注解使用该注解明确标记和数据库表中主键字段对应的实体类字段。④@GeneratedVal

2022-03-16 17:38:17 1366

原创 数据库MySQL

1. 为什么要使用数据库 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大多通过各种关系数据库来完成。 持久化的主要作用是将内存中的数据存储在关系型数据库中 2. 数据库与数据库管理系统2.1数据库的相关概念DB:数据库(Database) :即存储数据的“仓库”,其本质是一个文件系统。它保存了一系列有组织的数据。DBMS:数据库管理系

2022-03-16 16:14:20 1184

原创 SpringMVC执行流程

1.SpringMVC常用组件DispatcherServlet前端控制器:统一处理请求和响应,整个流程控制的中心,由它调用其他组件处理用户请求。HandlerMapping处理映射器:根据请求的url、method等信息查找Handler控制器方法。Handler处理器:自己开发,在DispatcherServlet的控制下Handler对具体的用户请求进行处理。HandlerAdapter处理器适配器:通过HandlerAdapter对处理器(控制器方法)进行执行。ViewResol

2022-03-16 10:06:56 439

原创 HttpMessageConverter

报文信息转换器,将请求报文转换为java对象,或将java对象转换为响应报文。它提供了两个注解和两个类型:@RequestBody@ResponseBodyRequestEntityResponseEntity1.@RequestBody@RequestBody可以获取请求体,需要在控制器方法设置一个形参,使用@RequestBody进行标识,当前请求的请求体就会为当前注解所标识的形参赋值.@RequestMapping("/testRequestBody") pub

2022-03-15 17:35:06 141

原创 SpringMVC获取请求参数

springMVC支持路径中的占位符当请求路径中将某些数据通过路径的方式传输到服务器中,就可以在相应的@RequestMapping注解的value属性中通过占位符{xxx}表示传输的数据,在通过@PathVariable注解,将占位符所表示的数据赋值给控制器方法的形参。<a th:href="@{/testRest/1/admin}">测试</a>@RequestMapping("/testRest/{id}/{username}")public String

2022-03-15 16:31:53 118

原创 RequestMapping注解

1.@RequestMapping注解的功能从注解名称上我们可以看到,@RequestMapping注解的作用就是将请求和处理请求的控制器方法关联起来,建立映射关系。 SpringMVC 接收到指定的请求,就会来找到在映射关系中对应的控制器方法来处理这个请求。2.注解的位置该注解标识一个类:设置映射请求的请求路径的初始信息。标识一个方法:设置映射请求的请求路径的具体信息。@Controller@RequestMapping("/test")public class RequestM

2022-03-15 14:05:07 608

原创 SpringMVC

1.什么是MVCMVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分。M:Model,模型层,指工程中的JavaBean,作用是处理数据。 JavaBean分为两类:一类为实体类bean,专门存储业务数据;一类是业务处理bean:指service或dao对 象,专门用来处理业务逻辑和数据访问。V:View,视图层,指工程中的html或jsp页面,作用是与用户进行交互,展示数据。C:Controller,控制层,指工程中的servlet,作用

2022-03-15 12:59:38 89

原创 spring

1.什么是微服务在微服务概念形成之前,绝大部分基于Web的应用都是使用单体架构的风格来进行的。在单体架构中,所有的UI(用户接口)、业务、数据库访问逻辑都被打包在一个应用程序中部署在一个服务器上。但是并不一定是同一个团队开发这个程序,它可能涉及多个团队的合作,他们所有的工作都被同步到单一的代码库中。随着应用的规模越来越大,团队之间沟通合作成本越来越大,某个团队修改代码都会造成整个程序的重新构建测试和部署。微服务通过将大型代码分解成小型的精确定义的部分,微服务是一种思想:分解和分离程序的功能,使他们完

2022-03-15 08:40:17 145

原创 第三方中介信贷平台

由第三方中介提供平台,让投资者把钱借出去,借款者获得贷款,平台收取服务费实现盈利。可由银行管理资金池,降低风险。涉及知识:Java基础、HTML、CSS、JavaScript、Spring、SpringMVC、MyBatis、SpringBoot、SpringCloud AlibabaMySQL、Redis、RabbitMQ、nginx、idea、maven、VMWare 虚拟机、CentOS 操作系统技术栈:后端SpringBootSpringCloud :微服务基础.

2022-03-14 14:18:58 472

原创 数据结构简

队列队列是一个有序列表,可以用数组或是链表来实现。遵循先入先出的原则数组模拟队列思路:有maxSize作为最大容量,因为队列的输出和输入分别从前后端处理,所以需要两个变量front和rear分别记录队列前后端的下标,front随着队列的输出改变,rear随着输入改变:将数据存入数组时:尾指针往后移:rear+1,当front==rear时,为空若尾指针 rear 小于队列的最大下标 maxSize-1 ,则将数组存入rear所指的数组元素中,rear==maxSize-1 队列满。数组

2021-08-30 10:16:25 82

原创 IO流相关练习

什么是java序列化,怎么实现java序列化?序列化就是一种用来处理对象流的机制,所谓对象流就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输与网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。*序列化的实现:*将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,实现这个接口只是为了标注该对象是可悲序列化的,然后使用一个输出流(如FileOutputStream)来构建一个ObjectOutputStream对象流对象,接着,使用

2021-08-29 16:18:54 126

空空如也

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

TA关注的人

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