自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Rabbit MQ整合springBoot

【代码】Rabbit MQ整合springBoot。

2023-07-21 20:24:30 249

原创 【二分查找法】

二分查找法。

2022-10-19 22:22:38 205

原创 【二分查找】875. 爱吃香蕉的珂珂

珂珂可以决定她吃香蕉的速度 k (单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉 k 根。如果这堆香蕉少于 k 根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。返回她可以在 h 小时内吃掉所有香蕉的最小速度 k(k 为整数)。输入:piles = [30,11,23,4,20], h = 5。输入:piles = [30,11,23,4,20], h = 6。输入:piles = [3,6,7,11], h = 8。珂珂喜欢慢慢吃,但仍然想在警卫回来前吃掉所有的香蕉。

2022-10-17 23:16:26 152

原创 【二分查找】查找大于target的最小值 ☆☆☆☆☆

【代码】【二分查找】查找大于target的最小值。

2022-10-16 22:05:20 154

原创 【快速排序】select k查询

215. 数组中的第K个最大元素给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。/*** 功能:给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。* 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。* 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。*

2022-10-16 09:55:19 237

原创 【快速排序】

三路快速排序解决了 一个相同元素数组时间复杂度为 o(n²)问题,而一个有序数组时间复杂度为 o(n²) 解决方式则为使用左侧替换随机索引值解决。问题:如果是个等值数组,元素够多会造成栈溢出。时间复杂度为 o(nlogn)

2022-10-15 14:33:19 390

原创 【 归并排序】

有序的归并排序是 o(n)级别 -->n/2+n/4+n/8+…因为每一层都不需要merge,每两个叶子节点都通过一个节点生成的。o(nlogn)级别,因为每一层处理数据量是 o(n)级别,一共有 logn 层。归并排序是无法原地排序的。

2022-10-08 23:07:55 117

原创 【归并排序】统计逆序对个数

在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。比如一个序列为 4,5,1,3,2, 那么这个序列的逆序数为7,逆序对分别为(4, 1), (4, 3), (4, 2), (5, 1), (5, 3), (5, 2),(3, 2)。

2022-10-08 20:35:13 301

原创 【链表】递归翻转链表 和 正常链表翻转

【代码】【链表】递归翻转链表。

2022-09-25 17:40:10 195

原创 链表递归

【代码】链表递归。

2022-09-25 09:19:55 110

原创 循环队列 和 链表队列

【代码】循环队列。

2022-09-19 22:16:52 292

原创 插入排序 和 选择排序

时间复杂度是:1+2+3+…+n ==> (1+n) * n /2 ==> ½ * n² + ½ * n ==> o(n ²)对于有序的插入排序,它的时间复杂度是 o(n),但是整体一般认为 o(n²)。循环不变量:[0,i)是排好序的,[i,n) 是无序的。不开辟新数组空间排序。类似于扑克牌插入排序。

2022-09-18 21:58:04 152

原创 栈的语法匹配问题解决

给定⼀个字符串,只包含 ( , [ , { , ) , ] , } ,判定字符串中的括号匹配是否合法。 * 如 ”()” , “()[]{}” 是合法的 * 如 “(]”, ”([)]” 是⾮法的

2022-09-18 19:17:06 114

原创 springcloud 统一配置中心config server

一、config server作用:1、不方便维护,所以该系统的服务公用一份配置。2、配置内容的安全和权限3、热加载(config服务启动后,任何对配置文件得改动不需要重启服务,可以热加载)二、配置pom文件 <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifact.

2022-08-24 22:03:40 408

原创 mybatis

mybatis

2022-08-24 21:39:55 294

原创 Spring Bean 生命周期

3、对于 prototype 的 bean 多例模式,何时调用getBean对象时创建bean对象,之后则不会再管理后续的生命周期(不会调用destory方法)。1、BeanPostProcessor 后置处理器不是单独针对某一个bean生效,而是针对IOC容器中所有bean都会执行。2、spring容器默认是使用单例模式,容器启动时创建所有单例bean,容器关闭时销毁bean。MyBeanPostProcessor 后置处理器。1、spring只帮我们管理单例bean。......

2022-08-14 08:38:52 171

原创 spring 高级装配

如下有两种方式一种是分别两个xml表示两个环境,第二种是一个xml里面配置两个并设置profile属性,如下就是第二种演示。①如果同时设置了spring.profile.active=dev和spring.profile.default=pro,只激活dev配置。②如果没有配置spring.profile.active,只配置了spring.profile.default,才会读取default配置。③那些没有定义在profile中的bean,任何时候都创建。下面是web.xml中配置。..........

2022-07-20 22:25:19 251

原创 第十七章:容器深入研究

第十七章:容器深入研究文章目录第十七章:容器深入研究前言二、collection的可选操作1、未获支持的操作三、List的功能方法总结前言提示:这里可以添加本文要记录的大概内容:二、collection的可选操作1、面向对象设计中的契约,无论你选择如何实现该接口,都可以向接口发送消息,但是可选操作违反这基本原则。2、collection中的增加或移除都是可选操作,意味着实现类并不需要这些方法提供功能定义。3、未获支持的操作,可以延迟到需要时在实现。4、ArrayList、HashSet

2022-02-16 22:35:37 788

原创 十九章:枚举类型

十九章:枚举类型一、Enum类二、enum基本特性1、方法案例2、静态导入3、向enum中添加新方法4、switch语句中的enum实例5、values() 的神秘之处三、使用接口组织枚举四、使用Enum替代标志五、EnumMap一、Enum类public abstract class Enum<E extends Enum<E>> implements Comparable<E>, Serializable { //枚举实例常量名 private f

2021-09-25 20:40:26 243

原创 二十章:注解

提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、元注解二、注解元素1.注解元素类型2.默认值限制三、注解不支持继承四、注解与反射总结前言1、注解也称为元数据2、注解的出现简化一些重复的开发,经常配合aop使用3、没有元数的注解,叫标记注解4、注解更加干净整洁,易读代码,方便扩展5、以及编译时类型检查一、元注解元注解专职负责注解其他注解,一般就是我们的自定义注解注解作用描述@Target注解作用的位置;ElementType参数

2021-09-09 22:48:44 315

原创 Dubbo整合springboot基本使用

1、服务提供者配置application.yml文件server: port: 8083 #项目端口 spring: application: name: meting-user #服务名称 dubbo: server: true #开启dubboservice服务 registry: zookeeper://localhost:2181 #注册到注册中心 protocol: #dubbo服务提供者使用的协议及端口 name: du

2021-03-13 15:37:40 236

原创 springboot实现自定义自动装配

实现方法激活自动装配 - @EnableAutoConfiguration实现自动装配 - XXXAutoConfiguration配置自动装配实现 - META-INF/spring.factories1、Springboot服务引导类@EnableAutoConfigurationpublic class MyAutoConfigruationBootStrap { public static void main(String[] args) { Config

2020-11-26 15:39:24 834 1

原创 RabbitMQ 集群构建

一、集群架构模式1、主备模式实现RabbitMQ高可用集群,一般在并发和数据量不高的情况下,也称为Warren模式。与主从模式区别:主从模式中从节点提供读功能,而主备模式中备用节点不提供,用来主节点挂了HaProxy切换备用节点作用。2、远程模式远程模式可以实现双活的一种模式,简称Shovel模式,所谓Shovel就是我们可以吧消息进行不同数据中心的复制工作,可以跨地域的让两个MQ集群互联。由于前面MQ服务过热,达到阈值,所以加上Shovel进行消息同步,提高订单确认速度,保证可靠性。3

2020-11-10 16:39:45 622 1

原创 RabbitMQ 高级特性

一、如何保证消息100%投递成功①保障消息成功发出②保障MQ节点成功接收③发送端收到MQ节点(Broker)确认应答④完善的消息进行补偿机制(因为前面可以能哪一步出现网络问题导致失败)解决方案如下:1、消息入库,然后发送成功后修改状态,外加定时任务轮询发送失败的消息生产者在发送消息前,先将业务信息和要发送的消息分布入库到对应的数据库;第二步在将消息发送的MQ中;第三步是MQ接收到消息反馈给发送者;第四步监听确认接收到了消息更新消息状态;如果步骤一都失败那就需要使用快速失败;有一个分布式定

2020-11-09 14:50:14 487

原创 RabbitMQ 概念和基本用法

一、互联网大厂为什么选择RabbitMQ①RabbitMQ是使用Erlang语音编写的,并且基于AMQP协议;②它是一个开源的消息代理和队列服务器,可以通过普通协议实现夸语言、跨平台之间的高性能、高可靠、可用性数据共享服务。③可以提供可靠的投递模式(confirm)、返回模式(return)④与springAMQP整合完美,提供丰富的api⑤集群模式丰富、表达式配置、HA模式、镜像队列模型二、RabbitMQ 是如何做到高性能的核心就是Erlang语言,这种语言具有和原生socket一样的低延

2020-11-03 17:29:48 511

原创 springcloud 服务容错和Hystrix

服务间调用出现故障,而这个服务又被其他服务调用,然后级联效应,又由于请求是同步的,导致服务发生雪崩效应一、二、作用服务降级、依赖隔离、服务熔断、监控服务降级:优先核心服务,非核心服务不可用或若可用通过HystrixCommand注解指定fallbackMethod(回退函数)中具体实现降级逻辑、三、环境配置 <dependency> <!--触发服务降级--> <groupId>org.springframewo

2020-11-02 11:06:52 167

原创 网关服务zuul

一、服务网关的要素稳定性、高可用、高并发、性能、安全、拓展性

2020-11-01 21:21:22 452 2

原创 微服务拆分

一、微服务拆分哪些不适合:1、系统包含很多强事务场景2、业务相对稳定,迭代周期长3、访问压力不大,可用性要求不高二、服务拆分方法论1、单一职责、高内聚。低耦合2、关注点分离-按职责、业务-按通用性-按粒度先拆分业务功能在拆分对应的数据...

2020-10-30 23:49:06 245

原创 springCloud eureka

服务启动时向注册中心注册,注册中心为了保证高可用性使用集群方式,客户端想要访问任何一个服务可以从注册中心拿取,也可以由代理转发请求到可用服务器。服务注册和发现:客户端发现:eureka就是,就是客户端通过注册中心按照负载均衡机制(轮询、hash等)从注册中心获取到ip,然后访问。服务端发现:典型的nginx、zookeeper、kuberneters,客户端通过主机的ip和端口向代理发送请求,代理将请求转发到任何一个可用的服务上;注册中心和后台注册服务是对客户端不可见得。一、注册中心服务端

2020-10-28 21:40:56 163

原创 分布式消息中间件设计

一个请求后台经过多个系统协同处理才得到结果,需要使用消息中间件解耦

2020-10-20 17:02:01 135

原创 分布式事务解决方案之消息中间件

2020-10-20 13:19:54 177

原创 AQS截图

栅栏和countdownlatch区别是,栅栏可以重复利用线程,特别是不确定的线程数量

2020-10-15 18:19:16 121

原创 synchronized

一、synchronized1、原理:synchronize是线程互斥的,所以能保证共享数据一致性。synchronize底层是有 monitorenter 和 monitorexit 两个jvm指令;他能保证任何线程在enter之前从主内存中读取共享数据,在exit将共享数据刷新到主内存。可参考 深入synchronize原理2、如下反编译带有synchronize代码程序:3、获取 和 释放 对象关联的monitor锁机制synchronize是不可中断的只有像sleep、wai

2020-10-14 14:16:39 348

原创 自旋锁、乐观锁、悲观锁、重入锁、公平锁

1、乐观锁:假定没有冲突,在更新数据时比较发现不一致时,则读取新值修改后重试更新。(自旋锁就是一种乐观锁)2、悲观锁:假定会发生冲突,所有操作都加上锁,比如读数据操作。3、自旋锁:循环使用cup时间,尝试cas操作直至成功返回true,不然一直循环。(比较内存值与线程旧值是否一致,一致则更新,不然则循环)4、共享锁(多读):给资源加上读锁,其他线程也可以加读锁,可以同时读,不可以加写锁。5、独享锁(单写):给资源加上写锁,可以修改资源,其他线程不能再加锁。6、可重入锁、不可重入锁:线程获取到一把锁

2020-10-13 23:36:24 2393

原创 线程安全问题

一、可见性、有序性// 1、 jre/bin/server 放置hsdis动态链接库// 测试代码 将运行模式设置为-server, 变成死循环 。 没加默认就是client模式,就是正常(可见性问题)// 2、 通过设置JVM的参数,打印出jit编译的内容 (这里说的编译非class文件),通过可视化工具jitwatch进行查看// -server -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly -XX:+LogCompilatio...

2020-10-12 18:40:28 238

原创 线程池

一、为什么要用线程池1、频繁的创建、启动、关闭线程消耗大量的系统资源2、提高系统响应速度,当有任务到达时,通过复用已存在的线程,无需等待新线程的创建便能立即执行;3、方便线程并发数的管控。因为线程若是无限制的创建,可能会导致内存占用过多而产生OOM,并且会造成cpu过度切换(cpu切换线程是有时间成本的(需要保持当前执行线程的现场,并恢复要执行线程的现场))。4、提供更强大的功能,延时定时线程池。详情参考...

2020-10-11 11:11:56 200

转载 读写分离锁,读写锁设计模式

对于共享数据的操作无非读和写,多线程条件下,对于共享资源是否冲突,如下图:如上可以看出对于写操作是不需要加锁的,这样可以很大提升性能;写操作都需要具有排他方式的加锁。public class ReadWriteLock { //等待读操作线程数 private int watingReades; //正在读得线程数,这里支持多线程同时读取 private int readeingReades; //等待写的线程数 private int wateingW

2020-09-22 13:39:06 598

原创 十三章:字符串

十三章:字符串public final class String extends Object implements Serializable, Comparable, CharSequenceString是被final修饰的不可变类一、不可变StringString对象是不可变的,具有可读特性,无论对它如何操作都不会改变该物理位置的对象,只会生成新的对象。每当String对象传给方法...

2020-03-15 10:20:02 127

原创 十二章:通过异常处理错误

十二章:通过异常处理错误七、java异常标准1、 Throwable:作为异常抛出的基类,实现Serializable(方便序列化存储和数据传输)。​ ①Error:继承自Throwable,用作编译时错误和系统错误。​ ②Excepton:可以被抛出的基本类型,常用的有RuntimeException。通常用户使用的自定义异常需要望文生义,所以异常通常使用名称就知道是什么问题,而...

2020-03-08 16:51:10 298

原创 第十章:内部类

第十章:内部类1、内部类表面上看就是一种代码隐藏机制2、其实内部类能与外部类通信,并且含有一个外部类的引用,所以能访问外部类所有的成员,包括private3、内部类解决一部分的语言设计问题;类具有单继承的局限性,接口可以多继承、多实现,当然类也能多重继承(A继承B,B继承C);然而多个内部类可以继承或实现多个接口,保证了语言的完整性。一、链接外部类内部类有权访问内部类所有成员,包括私有...

2020-02-24 20:19:45 170

空空如也

空空如也

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

TA关注的人

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