- 博客(11)
- 收藏
- 关注
原创 【无标题】哈哈哈哈
1、MQ有哪些使用场景?(高频)异步处理:用户注册后,发送注册邮件和注册短信。用户注册完成后,提交任务到 MQ,发送模块并行获取 MQ 中的任务。系统解耦:比如用注册完成,再加一个发送微信通知。只需要新增发送微信消息模块,从 MQ 中读取任务,发送消息即可。无需改动注册模块的代码,这样注册模块与发送模块通过 MQ 解耦。流量削峰:秒杀和抢购等场景经常使用 MQ 进行流量削峰。活动开始时流量暴增,用户的请求写入MQ,超过 MQ 最大长度丢弃请求,业务系统接收 MQ 中的消息进行处理,达
2023-09-14 21:31:35
195
1
原创 JVN面试题总结
难易程度:☆☆☆出现频率:☆☆☆☆程序计数器:线程私有的,内部保存的字节码的行号。用于记录正在执行的字节码指令的地址。javap -verbose xx.class 打印堆栈大小,局部变量的数量和方法的参数。java虚拟机对于多线程是通过线程轮流切换并且分配线程执行时间。在任何的一个时间点上,一个处理器只会处理执行一个线程,如果当前被执行的这个线程它所分配的执行时间用完了【挂起】。处理器会切换到另外的一个线程上来进行执行。并且这个线程的执行时间用完了,接着处理器就会又来执行被挂起的这个线程。
2023-09-06 20:05:18
311
1
原创 集合大总结
数组特点:优点:缺点:根据数组索引获取元素的时候,会用寻址公式和索引公式计算出内存所对应的元素数据,如果索引从1开始,寻址地址会变成:a[i] = baseAddress +(i-1) * dataTypeSize,对于cpu来说增加了一个减法指令,性能相对来说就变低了.ArrayList底层实现是用动态的数组实现的;ArrayList初始容量为0,当第一次添加数据的时候才会初始化容量为10;ArrayList在进行扩容的时候是原来容量的1.5倍,每次扩容都需要拷贝数组;ArrayList再添加数据的:
2023-09-04 12:51:31
151
1
原创 多线程...
线程就是程序执行的路径或者控制程序的单元,一个程序可以有一个或多个线程,当一个程序存在多条条线程的时候就是多线程,一般线程的执行方式包括了。三个状态,多线程在运行时互相抢夺资源,造成线程在这个状态之间不断切换.就绪(wait),执行(run),阻塞(block)2.创建线程的三种方式。
2023-09-02 19:43:34
97
原创 数据库(Redis MySQL ES)
8 如果有大量的 key 需要设置同一时间过期,一般需要注意什么?12 Redis Cluster 会有写操作丢失吗?2 Redis 和 Memcached 的区别有哪些?3 为什么 Redis 单线程模型也能效率这么高?4 Redis有几种持久化方式?13 Redis 有哪些重要的健康指标?7 Redis 有哪几种数据淘汰策略?14 Redis中的大key怎么处理?6 Redis 有几种数据过期策略?15 缓存雪崩(缓存失效)了解过吗?17 缓存预热 缓存更新 缓存降级。9 Redis集群都有哪些方案?
2023-08-20 21:17:04
173
1
原创 JAVASE
该类定义好实现接口CommandLineRunner,并且交给Spring管理,当程序启动运行时,Spring会自动监测到该类,并且执行该类,为动态需求创建的,可以动态的加载类,动态的创建对象,动态的获取类的属性,动态的调用该类中的方法.例如:在SpringWeb项目中程序启动后自动创建一个对象(User对象)1.在配置文件中添加User实体类的全路径信息。(1)动态创建对象:Constrctor。(2)动态调用方法:Method。(3)动态获取属性:filed。2.定义一个程序启动监听器类。
2023-08-11 18:06:04
40
1
原创 Spring Bean生命周期底层源码
6.1.1先判断有没有BeanFactory,如果有的话销毁BeanFactory,没有的话创建BeanFactory,第一次创建的BeanFactory名为DefaultListableBeanFactory。该方法loadBeanDefinitions(beanFactory)加载配置文件中bean定义信息并封装成BeanDefinition对象;该方法就是实例化所有单例,非懒汉加载的Bean对象。5.1设置启动时间,设置容器关闭为false,设置容器容器为活跃true。2.构造方法,点进去。
2023-08-11 18:03:01
48
1
原创 Spring-Cloud(高级服务框架)
注意:在Redis持久化技术中有要求,执行RDB开始的数据和执行完毕的数据必须保持一致,但当子进程在进行RDB操作的时候,主进程此时将页表中的数据改了这样会导致持久化过程中数据不同步,导致持久化失败.此时就需要在fork子线程时采用copy-on-write技术,当主进程在写操作时不会直接对页表中的数据直接进行修改,而是会复制一份页表数据进行写操作,这样就保证子线程和主线程同事操作页表数据不同步问题。Redis数据是存储到内存中,当服务器宕机数据就会丢失,所以需要做数据的持久化。
2023-08-08 15:39:21
161
原创 S-S-M
SpringMVC核心组件:(1)DispatcherServlet(中央控制器):前端发送的请求都会首先经过该中央控制器,由它调用其他组件(2)HandlerMapping(处理器映射器):负责根据用户请求找到Handler(Controller),帮助请求地址找到对应的处理器(3)Handler(处理器):就是我们写的Controller,该处理器继承DispatcherServlet,涉及具体的用户业务需求(4)HandlerAdapter(处理器适配器):扩展处理器类型。
2023-08-07 09:55:49
71
原创 Spring—Cloud(基础服务框架)
(2)饥饿加载,是当Eureka-service服务启动后,自动拉去该服务中的服务列表,并保存咋到改内存中,不管是第一次访问还是后续访问,都会到负载均衡内存中寻找服务列表,这样提高了访问效率。(1)懒加载(默认方式),当第一次访问服务提供者的时候才会从Eureka-service服务中拉去服务列表,并将这些服务列表保存到自己的内存中,这样导致第一次请求时间过长。也称服务拉取,是基于服务提供者的服务名获取服务列表,然后根据负载均衡挑选服务。(3)消费者根据服务的提供者的服务名发现服务(也称为服务拉取)
2023-08-02 12:32:27
245
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人