自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 为什么非主键索引的叶子结点存放的数据是主键值?

如果普通索引中不存放主键,而存放完整的数据,那么就会造成数据冗余。虽然提升了查询性能,但是需要更多的空间来存储冗余的数据。维护麻烦。一个地方修改数据,需要在多棵索引树上修改。...

2023-02-02 12:07:33 767

原创 MongoDB修改密码失败的原因

认真学技术

2022-12-11 17:48:04 397 1

原创 seata启动服务报错:Caused by: java.lang.ClassNotFoundException: io.seata.spring.annotation.datasource.Seata

好好改bug

2022-07-31 12:54:04 1845 2

原创 吃完早饭,画一下快速排序算法

以 12,11,15,23,8,10为例随机选取一个基准,我是习惯性选取第一个元素,以12为基准一、以12为基准由于选的基准元素是左边的,所以最右边开始遍历比较。10小于12,则a[i]=a[j]然后,从左遍历比较,由于刚刚交换了元素,所以L前进一步,即++i11小于12,则不动。L继续前进一步,++i15大于12,则a[j]=a[i]由于刚刚交换了元素,则R后退一步,即–j8小于12,则把8放左边,a[i]=a[j]由于刚刚交换了元素,所以L前进一步,即++i15大于1

2022-04-20 12:14:12 880 3

原创 手撕算法---爬楼梯,我用递归实现,让我伤心了

周一打卡leetcode爬楼梯这道算法题,我思考良久,决定使用递归实现,调试完没问题呀!刚提交就给我报超出时间限制。。。不讲武德,欺负小姑凉果不其然,递归代码虽然简洁高效,但是,也有很多弊端。比如,堆栈溢出、重复计算、函数调用耗时多、空间复杂度高等问题。leetcode 70.爬楼梯假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?示例1:输入:n = 2输出:2解释:有两种方法可以爬到楼顶。1. 1 阶 + 1

2022-03-07 15:06:54 668

原创 手撕算法---基于数组实现栈的数据结构

从功能上来说,数组或链表确实可以替代栈,但是,特定的数据结构是对特定场景的抽象!当某个数据集合只涉及在一端插入和删除数据,并且满足后进先出、先进后出的特性,这时我们就应该首选“栈”这种数据结构。栈既可以用数组来实现,也可以用链表来实现。用数组实现的栈,我们叫作顺序栈,用链表实现的栈,我们叫作链式栈。1.基于数组实现的顺序栈public class ArrayStack { private String[] items; // 数组 private int count; // 栈中

2022-03-04 15:13:59 264

原创 手撕算法---LRU缓存淘汰策略,问的这么频繁

众所周知,缓存的大小有限!当缓存被用满时,这就需要缓存淘汰策略来决定哪些数据应该被清理出去。常见的策略有三种:先进先出策略 FIFO(First In,First Out)、最少使用策略 LFU(Least Frequently Used)、最近最少使用策略 LRU(Least Recently Used)。看下LeetCode上这道LRU设计题:1.请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。实现 LRUCache 类:LRUCache(int capacity

2022-03-02 22:48:03 514

原创 手撕算法---链表注意点,警惕指针丢失和内存泄漏

写链表代码非常考验思维能力!到处是指针的操作,边界条件的处理,大学时学习数据结构,都没有思考这么全面。以单链表为例:插入一个节点1.注意一定要先将新的结点的next指针指向b结点,再将a的next指针指向新结点,否则颠倒顺序的话会引起指针丢失,自己指向自己!// 将m的结点的next指针指向b结点;m->next = a->next; // 将a的next指针指向m结点;a->next = m; 2.当链表为空,插入新节点,第一个结点和其他结点的插入逻辑是不一样的。

2022-02-25 17:10:33 861

原创 RabbitMQ可以不使用交换机,直连队列吗?

可以的!消费者和生产者使用相同的参数声明队列就可以,重复声明不会改变队列,谁先生效就用谁。channel.queueDeclare(QUEUE_NAME, false, false, false, null);

2022-02-06 14:38:25 2497

原创 项目中RabbitMQ如何保证消息的可靠性传输

1.使用事务消息2.使用消息确认机制发送方确认:channel设置为confirm模式,每条消息会被分配一个唯一id。消息投递成功,信道会发送ack给生产者,包含了id,回调ConfirmCallback接口。如果发生错误导致消息丢失,发送nack给生产者,回调ReturnCallback接口。ack和nack只有一个被触发,且只有一次,属于异步触发,可以继续发送消息。@Component@Slf4jpublic class MyCallBack implements RabbitTempla

2022-02-06 13:16:03 1211

原创 RabbitMQ消息中间件碎片化知识的年终总结

为什么要有MQ?流量削峰、应用解耦、异步处理四大概念:生产者、消费者、交换机、队列六大模式(核心部分):1.简单模式2.工作模式3.发布/订阅模式4.路由模式5.主题模式6.发布确认模式...

2022-01-29 11:58:25 8433

原创 RabbitMQ延时队列插件rabbitmq_delayed_message_exchange-3.8.0.ez,有需要的朋友可自取

资源: rabbitmq_delayed_message_exchange-3.8.0.ez链接: https://pan.baidu.com/s/1Ht2x4JZcaOtdERkpAFy61g提取码: v781

2022-01-23 13:16:21 1828

原创 面试官让你手写一个Java虚拟机,说说你会主要考虑哪些结构呢?

JVM整体结构线程共享:方法区、堆线程私有:虚拟机栈、本地方法栈、程序计数器JVM架构模型基于栈的指令集架构。优点:跨平台、指令集小、编译器容易实现。缺点:性能比基于寄存器的架构差、实现同样的功能需要更多的指令。JVM的生命周期启动:通过引导类加载器(BootStrap ClassLoader)创建一个初始类initial class来完成,这个类由虚拟机的具体实现指定。执行:一个运行中的Java虚拟机有着清晰的任务:执行Java程序程序开始时,它才运行。程序结束时,他就停止

2022-01-11 16:02:01 3440

原创 JVM中唯一一个不会发生GC和OOM的存储区域

PC寄存器JVM中的PC寄存器是对物理PC寄存器的的一种抽象模拟。用来存储指向下一条指令的地址,也是即将要执行的指令代码。由执行引擎读取下一条指令。占用内存很小,运行速度最快。线程私有。唯一一个没有OOM的区域。...

2022-01-11 14:25:02 4689

原创 单例池、单例Bean、单例模式

单例池、单例Bean、单例模式的区别:单例Bean不表示Spring容器中只有一个Employee类型的Bean,可以创建多个不同名的Employee类型的Bean。单例模式是指每次创建的对象都是同一个。单例池底层是一个ConcurrentHashMap,第一次创建单例对象时,会把它存入ConcurrentHashMap,下次再创建该对象时,会直接从单例池中拿。...

2021-04-17 10:40:29 890

原创 【2021春招】上海哔哩哔哩后端开发面经

最近面试,真是有些累了,跑了几个公司,综合公司离我家的路程及薪资等其他方面,我真正意向的比较少。可能没有房贷车贷的原因,我不是很有压力,天天在家闲着!在牛客上找B站的面经,比较少,一只手都能数的过来!而且不是后端开发的面经。那我就来个热乎的吧!昨天hr小姐姐约好面试时间,今天下午4点B站视频面,在牛客上进行的。1.自我介绍2.介绍项目3.对项目中的细节提问4.数据库中a和b两个字段,什么操作能把a和b变成一个字段,并用逗号连接?5.对索引了解吗?数据库为什么要使用索引?6.数据结构中,栈或队列

2021-04-09 18:13:15 450

原创 【2021春招】上海哈罗Java开发岗面经

2021年3月16号上午,我投了哈罗的简历,下午就给我发了通知,告诉我17号晚上7点面试。我有点措不及防,时间有些仓促,没想到哈罗的效率这么快!技术面:1.自我介绍。2.说一下你做过的项目。3.讲一下你对AQS的理解。4.谈一下多线程中的CAS。5.Spring中Bean的生命周期。6.Spring中的Bean默认是单例模式,这种单例模式是线程安全的吗?7.Spring中的事务有哪几种方式?8.Spring事务中有个注解@Transactional,它底层是怎么实现的?9.Spring

2021-03-19 10:15:55 368 1

原创 【2021春招】上海移为通信Java开发岗面经

面试约的是下午三点,刚到那家公司楼下,hr让前台小姐姐下来接我。然后就把我带到了前台,先填一份信息,然后把我的手机要走了,紧接着就反手甩给我一套笔试题!没想到竟然还有笔试。笔试题出的有水平啊!做完笔试题,我感觉元气有所消减,我觉得自己不会凉凉了吧!把试题交上去后,被hr带到一个会议室,开始漫长的等待,等的真无聊,于是拿出了我包里的小镜子,看看我的妆容有没有花,头发有没有凌乱。技术面:1.自我介绍2.在校时的成绩排名?3.谈谈微服务的理解?4.Spring的AOP和IOC的源码?5.数据结构中的

2021-03-11 14:16:51 382 5

原创 面试官问我:数组下标为什么要从0开始?为什么不是从1开始?

说实话,这个问题我原来真的没有思考过呢!通过学习,我发现它是跟操作系统的内存寻址相关的!先上一个简单的数组内存结构图:int[] array = {1,2,3,4};内存地址是由寻址公式计算而来,操作系统的寻址公式其实就是通过下标找到对应的内存地址。假如数组首地址是1000,由于int类型在内存中是占4个字节,则array[0] = 1000array[1] = 1004array[2] = 1008array[3] = 1012下标从0开始:addr = 1000 + index *

2020-11-12 11:35:27 732 2

原创 看懂JVM指令,字节码文件如何解析?

class 文件中的程序的执行逻辑,java 文件中编写程序的逻辑。JVM 对 class 文件的具体执行方式1、写 Java 代码public class Test { public static void main (String args[]){ int i = 10; int j = 20; int k = i + j; System.out.println(k); }}2、编译成 class 字节码文件(

2020-10-27 10:50:14 152 1

原创 BI 维度建模十大基本原则

BI 维度建模的十大基本原则总结原则一:将详细的原子数据载入到维度结构中原子数据需详细,维度建模应该使用最基础的原子数据进行填充。因为来自用户查询的过滤和分组请求都是不可预知的,用户通常不希望每次只看到一条单一的记录,但是你无法预测用户想过要隐藏或掩盖哪些数据,如果只有汇总数据,那么当个用户想要深入挖掘数据时,他们就会遇到障碍。原则二:围绕业务流程构建维度模型原则三:确保每个事实表都有一个...

2020-03-13 13:46:47 3796

原创 BI 维度建模学习笔记

商务智能BI 维度建模学习笔记总结维度建模维度建模是使数据库变得简单的一项长期技术。维度建模被广泛接受为数据分析的首选技术,因为它同时满足了两个需求:向业务用户交付可以理解的数据提供快速查询性能维度建模是数据仓库建设中的一种数据建模方法。Kimball最先提出这一概念。其最简单的描述就是,按照事实表,维度表来构建数据仓库,数据集市。这种方法就是星型模式(Star-schema)。...

2020-03-13 12:08:46 1074

kafka-eagle-2.0.8.tar.gz

kafka-eagle-2.0.8.tar.gz

2021-12-28

apache-jmeter-5.1.zip

apache-jmeter-5.1.zip

2021-07-22

空空如也

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

TA关注的人

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