自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MyBatis——MapperFactoryBean

MapperFactoryBean 是实现了 FactoryBean 接口的工厂 bean,你日常调用的 dao 层接口就是 MapperFactoryBean 实例化的。

2024-04-29 15:38:23 306

原创 SpringMVC整体工作流程

2.DispatcherServlet接收到请求后会调用HandlerMapping处理器映射器,由此得知,这个请求该由哪一个Controller来进行处理(并未调用Controller);. 用户发起一个request请求,这个请求将会首先到达前端控制器DispatcherServlet中,由DispatcherServlet统一调度其他组件的使用;6. DispatcherServlet将ModelAndView交给ViewReslover视图解析器请求进行视图解析,然后返回真正的视图;

2024-04-28 00:13:17 537

原创 SpringCloud面试题——Sentinel

降级是通过开关配置将某些不重要的业务功能屏蔽掉,降级并不是功能不可用,而是用一种默认返回、异步执行、延迟处理等方式进行降低处理。在服务的依赖调用中,当被调用方出现故障时,调用方会主动停止调用,并根据业务进行相应处理。调用方主动停止调用的行为我们称之为熔断。限流是一种控制流量的技术,保护系统免受突发流量的影响。基本原理是通过控制请求的速率或数量,确保系统在可承受的范围内运行。漏桶算法:系统请求先进入漏桶,再从漏桶中逐一取出请求执行,控制漏桶的流量。

2024-04-27 15:31:54 685 1

原创 线程池面试题

就是一个管理线程的池子,它可以容纳多个线程,其中的线程可以反复利用,省去了频繁创建线程对象的操作。好处降低资源消耗,降低频繁创建、销毁线程带来的额外开销。降低使用复杂度。将任务的提交和执行进行解耦,我们只需要创建一个线程池,然后往里面提交任务就行,具体执行流程由线程池自己管理。

2024-04-19 11:23:06 219

原创 redis面试题——项目中怎么用的

内存的读写速度远快于磁盘的读写速度,确定后面不怎么变化,但是有很多读请求,那么直接将查询出来的结果放在缓存中,后面直接读缓存就好。:直接操作缓存能承受的请求是远远大于直接访问数据库的,redis单机承载并发量是mysql 单机的几十倍。项目中使用缓存保存医疗机构信息数据。用缓存,主要是高性能、高并发。

2024-04-18 11:12:31 181

原创 面试题——spring后置处理器

我们在系统中根据 @Bean或通过 @Component 定义的Bean对象在Spring中都会转换成一个个的BeanDefinition对象,如果我们在Spring创建这些对象加入到Spring容器之前,将不想要的BeanDefinition对象删除,而加入我们自己想要的BeanDefinition对象是不是就可以实现了?BeanDefinitionRegistryPostProcessor BeanFactoryPostProcessor 的子接口,bean定义注册处理器。

2024-04-01 01:09:06 338

原创 SpringCloud面试题——Nacos

CAP理论:一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。一致性是指每次读取都会收到最新的写入数据或错误信息。

2024-03-30 11:25:58 890

原创 java设计模式之——单例模式

构造函数private之后,还需要提供一个方法,可以初始化单例对象,并且要保证只能初始化一个单例对象,并且需要考虑线程安全的问题。具体到写法上,主要有5种。分别是懒汉、饿汉、静态内部类、双重校验锁以及枚举。

2024-03-08 16:03:19 706

原创 spring面试题

一:Autowvired和Resource的关系?

2024-03-07 16:54:58 365

原创 spring面试题—— IOC

IOC(inversion of control),就是控制反转的意思,是一种思想和理念,可以有不同的实现方式,没有Spring的话,我们要使用的对象,需要我们自己创建,而有了Spring的IOC之后,对象由IOC容器创建并管理,我们只需要在想要使用的时候从容器中获取就行了。值得说明的是,IOC只。

2024-02-01 15:37:26 422

原创 JVM面试——运行时数据区

栈、Java堆、方法区和以及运行时常量池组成。其中堆、方法区以及运行时常量池是线程之间共享的区域,而栈(本地方法栈+虚拟机栈)、程序计数器都是线程独享的。根据Java虚拟机规范的定义,JVM的运行时内存区域主要由程序计数器、虚拟机栈、本地方法。

2023-12-26 01:12:34 441

原创 JVM面试题

大的阶段可以分为类的加载、类的使用、以及类的卸载。类的加载阶段又分为加载、链接、初始化。其中连接过程又包含了验证、准备和解析。

2023-12-25 00:37:58 363

原创 Redis——IO多路复用

一:IO多路复用是什么

2023-12-24 03:19:18 646

原创 nacos源码详解

一:nacos服务注册底层源码详解

2023-12-21 15:19:26 374

原创 redis集群模式

Redis主要有三种集群模式,分别是:主从复制(Master-Slave Replication)、哨兵模式(Sentinel)和Redis Cluster模式。主从复制:主从模式中,包括一个主节点(Master)和一个或多个从节点(Slave)。主节点负责处理所有写操作和读操作,而从节点则复制主节点的数据,并且只能处理读操作。当主节点发生故障时,可以将一个从节点升级为主节点,需要手动实现故障转移。优点:在于简单易用,适用于读多写少的场景。

2023-12-20 00:45:19 513

原创 redis——分布式锁

一:实现一个分布式锁需要考虑哪些问题?独占性:任何时刻有且只有一个线程持有这个锁高可用:若redis集群环境下,不能因为某一个节点挂了而出现获取锁和释放锁失败的情况高并发请求下,依旧性能很好防死锁:不能出现死锁问题,必须有超时重试机制或者撤销操作,有个终止跳出的途径不乱抢:防止张冠李戴,只能解锁自己的锁,不能把别人的锁给释放了重入性:同一节点的同一线程如果获得锁之后,他可以再次获取这个锁

2023-12-19 00:46:04 485

原创 SpringCloud——Seata原理

Seata是一个阿里开源的分布式事务解决方案(Simple Extensible Autonomous TransactionArchitecture),用于在分布式系统中实现分布式事务。它旨在简化分布式事务的开发和管理,帮助解决分布式系统中的数据一致性问题。AT模式TCC模式Saga模式XA模式。

2023-12-14 09:43:12 262

原创 SpringCloud面试题——分布式事务

分布式事务是指在分布式系统中涉及到多个数据库或多个应用程序之间的事务处理,这些数据库或应用程序可能分布在不同的物理节点上,甚至可能位于不同的地理位置。在分布式事务中,需要确保所有参与者的事务操作都能够保持一致性,即所有参与者的事务要么全部提交成功,要么全部回滚。

2023-12-13 01:52:38 786

原创 Sentinel讲解

Sentinel是一个面向分布式架构的轻量级服务保护框架,实现服务降级、服务熔断、服务限流等功能比如当某个服务繁忙,不能让客户端的请求一直等待,应该立刻返回给客户端一个备选方案当某个服务出现问题,卡死了,不能让用户一直等待,需要关闭所有对此服务的访问,然后调用服务降级的方法并返回友好提示限流,比如秒杀场景,不能让用户瞬间都访问服务器,限制一次只可以有多少请求。

2023-12-11 22:37:14 2080

原创 mysql面试题——主从复制

其次才是采用 缓存的策略 ,比如使用 Redis将热点数据保存在内存数据库中,提升读取的效。那么首先考虑的是如何 优化SQL和索引 ,这种方式简单有效;最后才是对数据库采用 主从架构 ,进行读写分离。

2023-12-11 01:35:26 195

原创 mysql面试题——日志

一:为什么需要REDO日志缓冲池可以帮助我们消除CPU和磁盘之间的鸿沟,checkpoint机制可以保证数据的最终落盘,然而由于checkpoint 并不是每次变更的时候就触发 的,而是master线程隔一段时间去处理的。所以最坏的情况就是事务提交后,刚写完缓冲池,数据库宕机了,那么这段数据就是丢失的,无法恢复。事务包含持久性的特性,就是说对于一个已经提交的事务,在事务提交后即使系统发生了溃,这个事务对数据库中所做的更改也不能丢失。二:

2023-12-09 18:24:37 166

原创 spring面试题—— 事务

add方法,功能是向数据库添加数据的操作,其中部分代码有问题,正常情况下不能向数据库成功插入数据,如果没有事物管理,会成功插入数据,如果有事物管理,不会成功插入数据。spring事务的本质是底层数据库对事务的支持,spring并不直接管理事物,而是提供了多种事务管理器,具体的实现由持久化框架自己来做。Spring的事务管理会自动帮我们完成上面的2和4的步骤,不再需要我们自己去手动开启和关闭。

2023-12-07 10:09:36 587

原创 Nacos讲解

一:什么是Nacos?

2023-12-05 10:07:08 1533

原创 mysql面试题——索引创建与设计原则

一:哪些情况适合创建索引?

2023-12-05 02:08:04 990

原创 mysql面试题——MVCC

多版本并发控制,就是为了查询一些正在被另一个事务更新的行,并且可以看到它们被更新之前的值,这样在做查询的时候就不用等待另一个事务释放锁。

2023-12-02 00:42:54 923

原创 redis——布隆过滤器

由一个初值都为零的bit数组和多个哈希函数构成,用来快速判断集合中是否存在某个元素,不保存数据信息,只是在内存中做一个是否存在的标记。

2023-11-30 10:29:16 392

原创 mysql面试题——锁相关

共享锁(读锁):针对同一份数据,多个事务的读操作可以同时进行而不会互相影响,但任何事务都不能对数据进行修改,直到已释放所有共享锁。排他锁(写锁):如果一个事务对数据A加上排他锁后,则其他事务不能再对A加任任何类型的锁。获得排他锁的事务既能读数据,又能修改数据。

2023-11-28 00:33:44 161

原创 mysql面试题——分库分表

一:什么是分库,分表?

2023-11-27 11:31:05 159

原创 mysql面试题——其他问题

是一种可变长度的数据类型,它只会存储实际的字符串内容,不会填充空格。因此,在存储短字符串时,varchar可以节省空间。:是一种定长的数据类型,它的长度固定且在存储时会自动在结尾添加空格来将字符串填满指定的长度。

2023-11-27 02:01:50 403

原创 mysql面试题——事务相关

一组逻辑操作单元,使数据从一种状态变换到另一种状态。这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。

2023-11-23 01:11:38 389

原创 mysql面试题——索引相关

索引是数据结构。你可以简单理解为“排好序的快速查找数据结构”。

2023-11-20 21:59:32 123

原创 mysql面试题——存储引擎相关

MySQL支持多种存储引擎,比如InnoDB,MyISAM, MySQL大于等于5.5之后,默认存储引擎是InnoDB。

2023-11-20 21:32:59 158

原创 java使用 TCP 的 Socket API 实现客户端服务器通信

Socket 套接字是由系统提供于网络通信的技术, 是基于 TCP/IP 协议的网络通信的基本操作,要进行网络通信, 需要有一个 socket 对象, 一个 socket 对象对应着一个 socket 文件, 这个文件在 网卡上而不是硬盘上, 所以有了 sokcet 对象才能通过操作内存来操作网卡程序员进行网络编程主要是在 TCP/IP 五层网络模型中的应用层, 而数据在网络上传输, 需要进行封装和分用, 其中应用层需要调用传输层提供的 API , 这一组 API 就被称作 Socket API。

2023-11-18 11:36:26 349

原创 Netty面试题

一:为什么Netty适合做网络编程?使用简单:封闭了 Java 原生 NIO 类库繁琐的 API,使用起来更加高效;功能强大:预置多种编码能力,支持多种主流协议。同时通过 ChannelHandler 可以进行灵活的拓展,支持很强的定制能力;高性能:与其它业界主流 NIO 框架相比,Netty 综合更优。主要体现在吞吐量更高、延迟更低、减少资源消耗以及最小化不必要的内存复制;社区活跃:版本更新周期短,BUG 修复速度快

2023-11-17 10:50:27 123

原创 kafka面试题

(2)Partition(分区) : Partition是物理上的概念,体现在磁盘上面,每个主题包含一个或多个分区。:由多个Kafka节点组成的分布式系统,每个节点都可以存储一个或多个主题的分区副本,以提供高可用性和容错能力。:负责从Kafka集群中的一个或多个主题消费消息,并将消费的偏移量提交回Kafka以保证消息的顺序性和一致性。(1)Topic(主题) : 每条发布到Kafka集群的消息都有一个类别,这个类别被称为主题。:负责发布消息到Kafka集群中的一个或多个主题,每个主题包含一个或多个分区。

2023-11-17 09:38:45 127

原创 Synchronized面试题

java对象 是天生的Monitor,每一个对象都有成为Monitor的潜质,因为在Java设计中,每一个Java对象自打娘胎里出来就带一个看不见的锁,它叫内部锁或者Monitor锁。(2)轻量级锁每次退出同步块都需要释放锁,而偏向锁是在竞争发生时才释放锁,线程不会主动释放偏向锁。(1)争夺轻量锁失败时,自旋尝试抢占锁。

2023-11-16 01:07:10 405

原创 redis高级面试

如果在同一个时间点上,Redis中的同一个key被大量访问,就会导致流量过于集中,使得很多物理资源无法支撑,如网络带宽、物理存储空间、数据库连接等。什么是大Key:Redis中存储了大量数据的Key,不要误以为大 key只是表示Key的值很大,他还包括这个Key对应的value占用空间很多的情况多大算大Key以及它的危害?string 是value,最大512MB但是 >= 10KB 就是bigkeylist、hash、set和zset,含有的成员数量超过5000就是bigkey。

2023-11-13 16:34:44 443

原创 NIO讲解

4.1 channel4.2 Buffer4.3 Selector

2023-11-09 01:06:12 265

原创 OpenFeign讲解+面试题

底层通过JDK动态代理获取到接口中的服务信息,使用Ribbon管理后的RestTemplate进行调用。因为OpenFeign的底层是ribbon进行负载均衡,所以它的超时时间是由ribbon控制。是一个声明式的web客户端,只需要创建一个接口,添加注解即可完成微服务之间的调用。

2023-11-08 00:56:02 1162

原创 netty涉及到的操作系统知识

调用不会马上发出,安排一个时间再发起请求,当发出请求,可以马上得到答复,如果得到的不是完整的资源,调用者调用者会周期循环轮询发送IO请求,直到真正获得调用结果的通知,在此期间调用者可以去做别的。:调用发出后,会立马收到答复,如果得到的不是完整的资源,调用者会周期循环轮询发送IO请求,直到真正获得调用结果的通知,在此期间调用者可以去做别的。:调用不会马上发出,安排一个时间再发起请求,什么也不干,等待调用结果的通知。:调用发出后,调用者一直等待调用结果的通知,什么也不干。

2023-11-06 21:39:47 164

空空如也

空空如也

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

TA关注的人

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