自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(113)
  • 资源 (1)
  • 收藏
  • 关注

原创 抽象类和接口有什么区别?

6. 抽象类和接口都允许一些默认方法,抽象类里面是非抽象方法,而接口里面就是jdk8加的方法,其类在继承抽象类或者实现接口时,对于默认方法,子类可以直接用,也可以进行重写,这样在不破坏原有的代码基础,使得抽象类和接口更加灵活强大!接口的修饰符是public,而抽象类可以是public protected privite等。1.抽象类(abstract)是事物的共有,主要是继承。4.抽象类是单继承,一个类可以有多个接口。3.抽象类有抽象方法,也有非抽象方法。2.抽象类是有构造方法。

2024-04-25 00:01:29 240

原创 链表反转-迭代

链表反转通过迭代

2024-04-24 22:45:31 316

原创 两个对象 hashCode()相同,则equals()否也一定为true?

这个不一定,因为俩个对象的hash值可能相同,但是值不一定相同,也就是所谓的哈希冲突,只有通过equals方法才能看出来是不是相等,当然了如果俩个对象的值相等,那么hash一定相等,如果要避免hash冲突,可以重写hashCode()方法。

2024-04-23 23:47:46 96

原创 重写和重载

就是子类重写父类的方法,其方法名 返回值类型 参数必须相同,其方法体 跑出异常等可以不同,其实为了多态,同一个事物的不同提现,父类的方法就是共性,而子类的方法就是共性加个性,这就是多态。就是方法的参数的个数 顺序 类型不同,这就是重载,其是为了提供更加丰富多彩的方法调用,满足不同的情况。Java中的重写和重载都是为了多态。

2024-04-23 23:38:08 62

原创 什么是架构?说说我的理解

其实就是根据企业的具体情况给出的一个解决方案,并且这个架构能升级,如果企业的流量突然暴增,也能适应变化,这才是好的架构,一个项目是采用单体架构了?还是采用前后端分离?还是说直接微服务了?其实最合适的就是最好的,当然了后续这个架构能升级,这就是好的架构,其实技术不是那么的重要,真正重要的是你对一个业务的理解,然后采用合适的技术,并且对于一个技术细节也要采用合适的策略,然后达到满足企业的要求,所以要具体情况具体分析,这个特别重要,真正重要的是业务,因为软件是对现实世界的模拟!

2024-04-23 23:08:18 753 1

原创 final和finally以及finalize

finalize是垃圾回收方法,但是其已经过时了,Java有垃圾自动回收,这是在垃圾自动回收💰执行的代码,现在Java对于这个方法的替换是try-with-resources或者手动。finally是try-catch中,不管怎么样,finally中的代码都会被执行。final主要是一个修饰符,用于修饰类 变量 方法。其修饰类的时候,其是最终类,其不能被继承。其修饰变量的时候,变量成常量,不能改变。其修饰方法的时候,方法不能被重写。

2024-04-23 22:56:08 94

原创 ==和equals

=其对于基础数据类型比较的是具体值,对于引用类型,其比较的是对象在堆中的地址值。equals 其比较的是对象的内容,但是要对象的重写,这就是==和equals。

2024-04-23 22:41:50 83

原创 java中有哪几种方式创建线程执行任务?

线程的4中实现方式

2024-04-23 19:17:22 136

原创 如何应对集群的网络分区问题?也就是脑裂问题

如何应对集群的网络分区?也就是脑裂问题

2024-04-23 14:49:12 560

原创 Redis集群什么情况下整个集群不可用了?

Redis集群在什么情况下不可用?以及该怎么整?

2024-04-23 14:11:55 170

原创 Redis的应用场景

Redis的应用场景

2024-04-23 13:11:28 76

原创 说说redis的集群的原理吧

当然了集群的元数据每个节点都会保存,虽然说redis配置多个从节点很费钱,但是这个时代真正值钱的数据,因为训练ai大模型需要大量的有价值的数据,数据是非常值钱的,还有数据分析可以从数据当中分析出很多有价值的信息,所以说多弄几个从节点比起数据本身的价值来说可以说是九牛一毛了,对于事物的认知很重要,我对于数据为什么值钱,我以前没理解,我学习过机器学习和深度学习,用ai大模型之后,以及了解ai大模型背后的大致原理,我就真正深刻地明白了数据的宝贵!其实跟redis集群背后的原理有关,其主要是。

2024-04-22 02:10:11 333

原创 Redis的内存淘汰策略

Redis的内存淘汰策略

2024-04-21 01:45:03 290

原创 说说redis的持久化

Redis持久化

2024-04-21 00:44:34 150

原创 为什么redis在进行持久化存储的过程中使用Fork()

fork()在操作系统,所以本身就是高效的,加之现代操作系统的copy-on-write(cow机制),fork子进程之后不会立即复制其数据,只有父进程数据变动的时候才会进行复制,才会写入硬盘,这样就提高了效率,避免了资源浪费。fork会完全复制一样的子进程,包括内存数据,意味着子进程可以访问父进程中所有的数据,从而不会影响父进程的运行过程。即便是子进程把数据写到硬盘的过程中出现了问题,也不会影响到父进程的运行,不会影响请求访问redis。

2024-04-21 00:44:14 102

原创 Redis的过期策略

Redis的过期策略

2024-04-21 00:43:53 118

原创 Redis的内存淘汰策略(简单版)

Redis的内存淘汰策略(简单版)

2024-04-21 00:43:26 304

原创 说说你对redis操作原子性的理解

2.对于一些复杂的操作,其涉及多个底层操作,直接将其打包成一个原子性操作,要么全部做成,要么全部失败,对于脚本或者事务来说,如果其一部分实现了,另外一个部分没有实现,那么直接回滚,取消已经实现的,这就是redis能确保实现原子性的原因。1.redis的单线程,在键值存储上是单线程服务,为实现原子性提供了可能。就是一个操作是不可中断的,要么全部执行成功要么全部执行失败。这样的redis能够提供高效和可靠的服务。什么是redis操作的原子性?

2024-04-20 14:12:18 197

原创 使用redis有哪些好处了?

其支持redis集群和数据分片机制,实现了数据分布和水平扩展,提高了系统的高可用性和水平扩展。有序集合 哈希 流 超级日志 位图 等等。3.持久化技术:其通过RDB快照或者AOF日志实现了redis的持久化。1.高性能:其底层使用了内存作为硬件基础,高速处理读写。2.缓存:其作为缓存,为减少数据库的压力做了巨大的贡献。其支持各种各样的数据类型,如字符串 列表 集合。其操作命令简单易用,容易理解。

2024-04-20 13:53:36 72

原创 说说redis的数据类型

10.streams(流):Redis5新增的数据类型,主要用于消息队列,用于多生产者多消费者模型,redis流是可追踪的 持久化的 ,能够处理多达亿条消息!2.List(列表):按照插入顺序进行排序,可以进行元素的重复,可以对列表的两端进行插入或者删除,从而实现队列和栈等数据结构。3.set(集合):就是无序的 唯一的数据集合,也就是不能重复,其可以进行集合的增删,也可以进行交集并集或者补集等操作。1.字符串(String):其存储二进制的数据,对数据可以进行原子性的增加或者减少操作。

2024-04-20 13:41:25 206

原创 为什么单线程的redis的效率这么高?

2.内存:其使用了内存做为硬件基础,还使用了c语言操作cpu和内存,加之其使用了字符串 集合 等简单高效的数据结构,无需数据转换 数据的序列化,从而提高了效率。当然了redis只适合短时间的大量访问,如果是长时间的话,就要用redis集群了,或者多实例部署或者计算密集型星任务交给其他更适合的工具。1.非阻塞io,使得redis在发出读取请求之后,在等待期还可以干别的事情,没有必要完全干等着,啥也干不了。3.单线程本身,其在键值存储使用了单线程,避免了多线程的切换 以及锁等机制。

2024-04-20 13:03:29 160

原创 redis是单线程还是多线程了?

如果涉及持久化存储 异步删除 集群同步更新,这样就涉及多线程了,所以说redis不是完全的单线程,看情况了。如果涉及key-value的键值存储服务,那么就是单线程,也就是网络io和读写操作。

2024-04-20 12:47:34 58

原创 如何实现redis的高可用?

2.哨兵模式:就是为了解决主从模式的弊端从而在主从模式的基础上加了哨兵,从而可以实现自动监控,自动更换节点,如果主节点崩了那么自动切换为从节点,让从节点进行顶替。1.主从模式:就是一个住节点,多个从节点,但是弊端是一个主节点崩了,需要手动的切换从节点,这个挺麻烦的。其具备数据切片,将一个数据通过切片从而分散到各个节点,从而实现了数据冗余也实现了负载均衡。其每个数据切片,当主节点崩了,从节点自动顶替。

2024-04-20 12:31:04 362

原创 为什么redis把所有数据都放在内存

为什么redis把大量数据放在内存

2024-04-20 11:51:26 65

原创 什么是非阻塞I/O?

非阻塞IO

2024-04-20 11:32:05 73

原创 Redis为什么这么快?

redis为什么这么快

2024-04-20 11:14:21 59

原创 一个redis实例可有存放多少个key了?

redis实例我们一般指的是运行在服务器上的一个redis服务进程,根据hash表的规定,其可以存放2的32次方-1,也就是40多亿个key,但是实际不可能,因为你要考虑一个key-value的大小,还有服务器的内存,所以一个实例不可能有那么多key,这就是解释。

2024-04-20 02:16:51 74

原创 如何解决热key问题

什么是热key问题?就是一个key的数据被大量访问,导致key所在节点的redis服务器承受巨大的压力甚至导致服务器直接崩了,这种情况如何解决了?讲所有的redis节点弄成一个哈希环,然后通过哈希散列,将热key均匀地散列到各个节点,从而解决热key的单个节点压力过大或者崩的局面。根据特定的规则,将数据进行切片,将数据均匀地分布在各个缓存节点,从而避免单个节点的压力过大或者直接崩了的局面!通过在业务刚启动或者在业务的低峰期的时候,直接经常需要访问的数据从数据库加载到缓存中,让请求访问数据库。

2024-04-20 02:04:04 402

原创 缓存击穿的解释

缓存击穿就是一个缓存key过期了,但是这个时候有大量请求请求这个key的数据,然后直接越过redis直接访问数据库,这样的话,数据库扛不住这么大的访问量直接崩了。

2024-04-20 01:39:43 185

原创 缓存穿透的解释

4.布隆过滤器:就是在到达缓存或者数据库之前,用布隆过滤器,来查看其是否存在,如果不存在其肯定不存在,但是其判断存在就不太确定了,可能真的存在也可能真的不存在,布隆过滤器的底层是hash(哈希),但是其效果依旧很好了!1.缓存空对象:对于大量的同一个查询进行设置为key-null,设置时间为30秒,避免短时间大量的重复恶意查询,保护数据库,不至于崩。就是一个数据在缓存和数据库中都不存在,但是还是被大量查询,导致数据库承受不了,直接崩了。1.恶意用户多次查询同一个数据。

2024-04-20 01:22:40 743

原创 对Redis的理解

高可用是redis是用了哨兵模式的redis集群,其会一个redis服务崩了,会切换一个新的redis,一般来说是3个redis服务组成一个集群,这就是redis的高并发和高可用,当然了redis之所以这么快因为其硬件是内存条,而数据的硬件是磁盘或者说是固态硬盘,所以redis很快!高性能是访问数据库中的数据,其会通过redis然后访问数据库,这样就提高了访问的效率。Redis是一个缓存数据库,其是为了高性能和高可用而生的。

2024-04-20 00:58:14 85

原创 消息队列的确认机制和持久化选项

其过程是生产者把消息发送给队列,然后队列接受到信息的同时会把信息存储到磁盘,然后队列把消息发送给消费者,消费者收到之后,发送个确认信息,队列接受到之后,会把队列中的和磁盘中的发送给消费者的消息给清除了,这就是持久化选项,这也是消息队列十分强大的原因之二。生产者把消息发送给队列,队列再把消息发送给消费者,发送给消费者之后,如果消费者接受到了消息,会给队列发送一个确认的信息给队列,队列收到以后就会删除消费者接受到的这个消息。是为了不会因为系统发生故障,从而使得消息丢失,其会把消息存储在磁盘而不是内存。

2024-04-20 00:04:48 436 1

原创 消息队列的简介

消息队列的简介

2024-04-19 21:58:33 294

原创 Redis雪崩

Redis雪崩

2024-04-19 21:26:23 327

原创 Tomcat出现404极其特殊的一种情况

Tomcat出现404极其特殊的一种情况

2022-12-02 16:39:03 616 1

原创 MarkDown专业学习

Markdown是个强大的记笔记的软件,记笔记简单高效,重要的是其可以装换为pdf html等多种格式,对于学习编程,学习专业课啥的,绝对是一个好的帮手,做电子笔记的好帮手

2022-10-01 01:53:18 192

原创 依赖倒转(置)原则

依赖倒转(置)原则

2022-05-19 19:21:42 230

原创 接口隔离原则

接口隔离原则

2022-05-19 11:58:09 96

原创 SpringMVC的执行原理

今天复习SpringMVC真的感觉原理很重要因为万变不离其宗,这是SpringMVC的原理图:执行步骤分析:1.DispatchServlet就是前置控制器,是SpringMVC的控制核心,第一步就是发送请求,然后DispatchServlet接受请求并拦截请求我们假设其url为:http://localhost:8080/myweb/hello将如上url分为3个部分http://localhost:8080 服务器域名myweb 部署在服务器上的web站点hello表示控制器通过

2022-05-01 16:48:52 303

原创 java.lang.IllegalArgumentException: argument type mismatch

java.lang.IllegalArgumentException: argument type mismatch

2022-04-19 11:25:22 1420

用java的面向对象语言来操作关系型数据库 dao层.zip

就是用面向对象来操控关系型数据库,这是框架的基础,框架是在dao层的延伸,到层就是封装了对于数据库的一些操作

2021-08-04

空空如也

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

TA关注的人

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