自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RabbitMQ

流程:消息发送方发送设置了过期时间的消息到交换机,交换机路由到队列,但是该队列没有服务消费方,所以队列中的消息一定会过期,将该队列指定死信交换机,死信交换机将消息路由到死信队列,服务消费方监听死信队列,实现延时队列。- 前2个问题可以利用消息的确认机制,消息生产者发送到交换机,发送成功交换机返回ack,失败返回nack,交换机转发消息队列,失败会返回nack。消息成为死信后默认是被丢弃,如果队列指定了死信交换机,消息就会进入死信交换机,由死信交换机路由到死信队列。- 生产者发送的消息没有到达交换机。

2023-04-11 14:40:52 68

原创 SpringBoot & SpringCloud

(1)SpringCloud是微服务架构的一站式解决方案(2)提供了五大组件,解决了微服务系统架构在开发中遇到的所有问题,注册中心(配置中心),远程调用,网关,服务健康和保护(3)SpringCloud大多数组件都不是SpringCloud自己开发的,而是将各个公司成熟的技术组合起来。(4)这些技术主要来自2家公司Netflix,Alibaba。

2023-04-11 10:54:35 144

原创 MySQL

索引是提高查询效率的一种数据结构;比如如果没有索引要找一个年龄=25的人,就需要进行全盘扫描查找,时间复杂度是O(n)但是把年龄使用二叉查找树存入,那么时间复杂度只需要O(logN),但是MySQL底层用的不是二叉查找树,是B+树(B+树每个节点存的数据更多,每个节点的子树更多,这样保证海量数据树也不会很深)索引的分类:(1)普通索引 index:对索引字段没有要求。(2)唯一索引 unique index:要求索引字段值不能重复。同时增加唯一约束。

2023-04-08 15:53:28 134

原创 Mybatis

(1)原理是基于拦截器首先,在MyBatis内部定义了一个拦截器接口,所有的插件都要实现该接口。分页插件的原理就是使用MyBatis提供的插件接口,实现自定义插件,在插件的拦截方法内,拦截待执行的SQL,然后根据设置的dialect(方言),和设置的分页参数,重写SQL ,生成带有分页语句的SQL,执行重写后的SQL,从而实现分页(2)编写自定义插件//拦截的方法//返回拦截器的代理对象//设置一些属性。

2023-04-07 11:07:49 133

原创 SSM相关

在一个方法上加了@Transactional注解后,Spring会基于这个类生成一个代理对象,会将这个代理对象作为bean,在当使用这个对象的方法时,如果这个方法存在@Transactional注解,那么代理逻辑会先把事务的自动提交设置为false,然后再去执行原本的业务逻辑方法,如果执行业务没有出现异常,那么代理逻辑中就会将事务进行提交,如果执行业务逻辑方法出现了异常,那么会将事务进行回滚。在使用spring框架时,可以有两种实现事务的方式,一种是编程式的,一种是声明式的。传统的mvc中才会有父子容器;

2023-04-06 20:45:34 115

原创 JavaWeb

(1)Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则。(2)接受客户端的请求,给客户端做出响应(1)Java Server Pages:Java服务器端页面(2)JSP本质上就是一个Servlet。

2023-04-06 11:34:34 93

原创 4.JVM

(1)可达性分析算法将"GC Roots"作为起点,从这些引用向下搜索指向的对象,能找到的对象就标记为非垃圾对象,找不到的对象就标记为垃圾对象。(2)引用计数器法。

2023-04-06 10:56:12 92

原创 3.多线程相关

compare and switch (比较并交换)作用:可以保证对共享变量的操作是原子性。原理:操作共享变量前,先查看该共享变量是否进行了修改,如果进行了修改,重试。如果没有进行修改,修改共享变量。

2023-04-05 14:46:27 155

原创 2.集合相关

(4)底层通常通过Hash表和二叉搜索树实现,TreeSet基于二叉搜索树,HashSet基于HashMap,但是HashMap基于哈希表,哈希表=数据+链表+红黑树。HashTable,或者利用Collections工具类提供的synchronizedMap(map),利用装饰者设计模式,增强。(4)底层通常通过线性表(数组,链表)实现,ArrayList基于数组,LinkList基于链表。(1)Collection有三个子接口:List,Set,Queue。(2)有索引:可以通过索引操作元素。

2023-02-12 17:03:59 124

原创 任务调度快速入门

在开发系统的时候,有时需要在特定的时间执行一些任务,或者周期性的执行一些任务。比如:某电商系统需要在每天上午10点,下午3点,晚上8点发放一批优惠券。某电商系统需要在每天凌晨0:10结算前一天的交易数据。每天凌晨删除过期的垃圾信息。每隔10分钟处理一次未支付的订单。每隔10s同步MySQL中的数据到ElasticSearchSpring Task是一个功能强大的任务调度框架,它可以满足很多复杂的调度需求,可以在JavaSE项目。

2023-02-11 23:51:20 398

原创 EasyExcel快速入门

EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。

2023-02-11 23:33:05 228

原创 Minio快速入门(Linux)

MinIO 是在 GNU Affero 通用公共许可证 v3.0 下发布的高性能对象存储。MinIO的快速入门和环境的快速搭建

2023-02-11 22:58:35 2565

原创 1.基础语法

java基础面试题

2023-01-29 12:25:50 158 1

原创 Java面试题

面试题目录

2023-01-29 12:15:31 84

空空如也

空空如也

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

TA关注的人

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