- 博客(89)
- 资源 (2)
- 收藏
- 关注
原创 java多线程进阶(九)ConcurrentHashMap
ConcurrentHashMap是一个多线程情况下依旧线程安全的HashMap集合
2022-07-08 23:16:45
1953
原创 java多线程进阶(六)JUC工具集
1、阻塞队列队列是一种线程表,可以一端插入,一端删除,是先进先出的基础结构。阻塞队列,需要支持两种情况在队列满溢的时候,添加线程需要被阻塞,删除线程需要被唤醒 在队列为空的时候,添加线程需要被唤醒,删除线程需要被阻塞由此可见,其实这就是一个生产者消费者模型。在JUC之中,有很多的阻塞队列实现,以下是一些通用方法添加方法add:添加元素,如果队列满了,则抛出异常 offer:添加元素,返回true/false,添加成功,返回true,否则返回false put:添加元素,如果队
2022-05-31 23:12:19
151
原创 java多线程进阶(三)可见性
执行程序,会发现程序无法自动结束,因为修改的stop值无法被线程thread感知到,这就是不同线程共享变量的可见性问题。
2022-05-09 20:58:45
1499
原创 java集合进阶(一)ArrayList源码
本篇文章多借鉴于b站账号:@河北王校长的直播,本人能力有限,阅读源码水平不足,此作为笔记以记录知识。此文章分析的是ArrayList源码,最为常见的集合之一,希望能对读者有所帮助1、RandomAccess:随机存取进入ArrayList类,第一行代码就是介绍ArrayList继承了哪些类,实现了哪些接口。AbstractList抽象列表类,List列表接口,Cloneable浅克隆接口,Serializable支持序列化接口,这些都是比较常用的接口,那么RandomAccess接口是做什么
2022-05-07 21:16:21
568
原创 java多线程进阶(一)线程
1、线程的概念开始学习多线程之前,要弄清出一个概念,什么是线程?线程是轻量级的进程,每一个进程内都包含N个线程。那么问题又来了,什么是进程?进程是每一个系统操作的执行操作。实际上,在进行系统操作时,无论是什么操作,都是需要CPU资源和磁盘IO的,磁盘IO相比其他操作,速度很慢,而CPU资源不可能等待IO,它非常宝贵,所以只能让CPU去执行其他的操作,这就是CPU的时间片切换为了能让CPU有切换的进程,系统设计了一种多进程,多个进程同步进行,互相隔离互不影响,但进程太重了,为了轻量化,
2022-04-21 02:15:05
372
原创 Spring框架进阶(九)Spring V3.0 AOP源码分析流程
1、总体分析在Spring的设计之中,AOP发生在实例化的过程中,在符合代理要求的情况下,返回的类从原生类改为代理类。整个代理切面方法会被组成一个代理链,通过递归的方式,将它们按顺序执行。2、源码分析回到上一节DI之中,可以看到,之前提到过在doCreateBean方法之中,有两个方法,一个是实例化方法createBeanInstance,一个是依赖注入方法pupolateBean。...
2022-04-20 00:47:59
603
原创 Spring框架进阶(八)Spring V3.0 DI源码分析流程
在Spring框架中,实现getBean方法的类是AbstractBeanFactory。在IOC完成对应的配置信息加载之后,IOC就可以开始对Bean进行管理了。但此时的Bean还没有完成依赖注入,只有经过依赖注入之后,才能继续使用。Bean的依赖注入过程发生在两种情形下:在getBean方法被首次调用的时候,触发依赖注入在非懒加载的情况下,容器解析Bean时进行预实例化
2022-02-23 01:20:09
319
原创 Spring框架进阶(七)Spring V3.0 IOC源码分析流程
第一步,在ApplicationContext中,BeandefinitionReader用loadBeanDefinitions方法读取到配置文件的配置,保存到BeanDefinition之中,完成定位。第二步,在ApplicationContext中获取到Beandefinition的列表,Beandefinition包含有Bean的名称和类信息,完成加载。第三步,DefaultListableBeanFactory用doRegistryBeanDefinition方法将Beandefiniti
2022-02-20 01:46:15
726
原创 Spring框架进阶(六)Spring V2.0 AOP
1、切面方式AOP是Spring框架最重要的功能之一,它负责减少代码的冗余,简化开发流程。AOP,就是面向切面,主要使用代理模式进行设计在Spring中,其实现流程是getBean:获取Bean的方法 ApplicationContext:不必赘述 AdvisedSupport:完成对配置文件的解析,构建切面与切点的关系 AopConfig:保存AOP配置信息 Advice:完成切面方法的回调 JDKDynamicAopProxy:生成代理类,此为JDK代理,还有CglibAopPro
2022-02-07 02:24:47
584
原创 Spring框架进阶(四)Spring V2.0 循环依赖
解决循环依赖并不需要三级缓存,只需要到二级缓存就可以完成循环依赖的解决,因为在实例化完成后就可以直接放入二级缓存,整个过程都不需要三级缓存参与
2021-12-30 02:19:05
468
原创 Spring框架进阶(三)Spring V2.0 IOC与DI
通过ApplicationContext调用getBean()方法来获得各种BeanFactory,通过BeanDefinitionReader读取配置文件信息,根据BeanDefinition创建Bean,得到的Bean无论是原生对象还是代理对象,都交给BeanWrapper进行装饰,所以getBean()方法,最后拿到的就是BeanWrapper对象
2021-12-23 17:41:35
392
原创 Spring框架进阶(二)Spring V1.0
spring的主要功能是IOC,DI,MVC,AOP,如果一个系统能实现这些功能,就可以实现一个简易版本的Spring框架。
2021-12-15 17:26:47
745
2
原创 SpringCloud基础(六)Hystrix:熔断降级
目录1、基础概念2、使用方式3、OpenFeign使用Hystrix实现降级3.1、接口写法3.2、实现FallbackFactory4、熔断机制5、依赖隔离5.1、线程池隔离5.2、信号量隔离6、Gateway使用Hystrix实现降级1、基础概念Hystrix是一个分布式组件,其主要功能有:对第三方客户端访问的依赖项的延迟和故障进行保护和控制 在复杂的分布式系统中阻止级联故障 快速失败,快速恢复 回退,尽可能优雅地降级 启用近实时监控,警报和操
2021-11-26 18:34:43
952
原创 SpringCloud基础(五)Gateway:微服务网关
在微服务场景下,前端访问不同服务的时候,需要做重复的工作,如鉴权,日志等功能,为了解决统一问题,就增加微服务网关进行整合,如限流,鉴权,缓存,熔断,日志,协议转换。...
2021-11-24 23:39:17
1994
原创 SpringCloud基础(四)Spring Cloud Config:配置中心
1、简介Spring Cloud Config是一个分布式配置中心的解决方案,它为分布式系统提供了外部画的集中式管理功能,包含Config Server和Config Client简单来说,就是Spring Cloud Config利用git仓库进行配置维护。当有请求到达Config Server时,Config Server就会向git请求,拉取配置,让所有服务感知到配置文件。2、简单使用根据上一篇内容的项目构建,继续本次项目编写。新建项目,选择config server...
2021-11-19 01:46:57
1426
原创 SpringCloud基础(三)OpenFeign:远程通信
1、基本介绍RestTenplate是Spring提供的用于访问Rest服务的客户端,它提供了很多可以方便访问远程http服务的方法,这些方法可以减少开发人员在编写客户端代码的工作量。
2021-11-10 18:31:38
589
原创 SpringBoot基础(二)集成插件
1、SpringBoot整合Servlet1.1、第一种方式首先自定义servlet类package com.lichong.demo;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import java
2021-10-28 18:30:27
368
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人