自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

youthlql的博客

主要是Java技术栈的博客,比如JVM原理,JVM调优,容器源码,并发原理,JUC源码,Mysql原理(事务,锁,索引),Mysql优化,Netty,Dubbo源码,计算机网络,操作系统,缓存,MQ,分布式等等 作者: youthlql 链接: htt

  • 博客(68)
  • 收藏
  • 关注

转载 【转载】深入分析 G1 垃圾收集器实现原理

​ G1(Garbage First)垃圾收集器是续 CMS 收集器后的另一款跨时代的垃圾收集器,其开启了分区垃圾收集器的先河。G1 通过时间预测模型尽可能地满足用户对暂停时间的要求(用户可以通过-XX:MaxGCPauseMillis=XXX,来指定垃圾收回时最大的暂停时间),G1 利用压缩算法优化回收垃圾更多的分区,所以他被称作垃圾优先(Garbage First)垃圾收集器。

2023-06-15 16:05:59 462

转载 【转载】G1垃圾收集器原理剖析

G1垃圾收集器原理剖析

2023-06-15 15:23:23 361

原创 Spring源码系列- 第10章-SpringMVC中的HandlerAdapter源码解析

***/ @Override //决定使用哪个url注册 protected String [ ] determineUrlsForHandler(String beanName) {} }很简单,意思就是只要你的BeanName是以/开头,就会将这个Bean封装成一个BeanNameUrlHandlerMapping映射。具体路径怎么写呢?你可以在你的类上写一个,这样就有路径了。代表的意思就是/helloReq。

2022-10-05 19:46:56 994 2

原创 Spring源码系列-第9章-SpringMVC请求处理源码和HandlerMapping原理

/HandlerMapping的registry中找映射,返回HandlerMethod,真正执行当前请求的方法 if(handler == null) {} //找到前面的目标方法以后,还要构造一个处理器链;= null) {}F7进入try {//寻找当前请求谁能处理 return(handlerMethod!= null?} }F7进入可以看到还是从mappingRegistry里获取。

2022-10-05 19:34:58 898

原创 Spring源码系列-第8章-SpringMVC子容器和Spring父容器的启动原理

AbstractAnnotationConfigDispatcherServletInitializer能更快的整合Spring和SpringMVC后面的讲解都用这个测试类因为咱们的QuickAppStarter没有onStarup()所以就调用了父类AbstractDispatcherServletInitializer的,没想到AbstractDispatcherServletInitializer也是继续调用父类的}@Override //注册ContextLoaderListener;

2022-09-06 22:51:04 320

原创 Spring源码系列-第7章-AOP的执行流程原理和监听器原理

AOP的执行流程原理和监听器原理

2022-09-06 22:34:44 309

原创 网址收藏-技术类

官网https//mirrors.tuna.tsinghua.edu.cn/官网https//mirrors.huaweicloud.com/官网https//opensource.alibaba.com/官网https//www.linuxidc.com/官网http//www.sousou88.com/官网https//www.renren.io/官网http//redisdoc.com/官网https//spring.io/描述有jdk的下载镜像。...

2022-08-01 21:50:13 600

原创 正则表达式详解-附带Java操作

文章目录正则表达式Java里的正则相关Regexp_RegTheoryPatternMethodMatcherMethod基本介绍元字符-转义符元字符-匹配符元字符-选择匹配符元字符-限定符元字符-定位符分组捕获分组非捕获分组非贪婪匹配反向引用String类使用正则表达式实例匹配URL验证电子邮件是否合法验证是不是整数或者小数解析URL资料常用正则表达式大全正则表达式元字符-详细说明正则表达式笔记来自b站韩顺平-正则表达式Java里的正则相关Regexp_package cn.imlql.re

2022-04-25 23:55:30 2232 1

原创 几十个精选壁纸网站,配色网站,字体网站

文章目录生活网址收藏壁纸Wallpaper Engine彼岸图网千叶网FoodiesfeedP站画师通(可以当做P站国内版)极简壁纸必应壁纸WallhavenwallroomwallpaperscraftPsiupuxa10WALLPAPERWallpapermaidenCgwallpapers堆糖Wallpaper AbyssWallhereAlphacoderH128壁纸前端素材和UI配色网站中国色配色表Color Huntitmeo字客materialui日本色UI原型设计墨刀jquery样式库17素

2022-03-19 13:07:04 4122

原创 Spring源码系列-第6章-AOP的后置处理器和代理对象的创建

文章目录第6章-AOP的后置处理器和代理对象的创建测试类MainConfigAopOpenConfigLogAspectHelloServiceAnnotationMainTest如何分析Spring的一个新功能分析@EnableXXX找到负责AOP功能的后置处理器@EnableAspectJAutoProxyAspectJAutoProxyRegistrar#registerBeanDefinitions()Debug调用栈ImportBeanDefinitionRegistrarAopConfigUti

2022-03-19 12:10:53 5722

原创 Spring源码系列-第5章-IOC容器刷新流程

文章目录第5章-容器刷新流程流程图-容器刷新容器创建AnnotationConfigApplicationContext有参构造AnnotationConfigApplicationContext#this()无参构造AnnotatedBeanDefinitionReader有参构造AnnotationConfigUtils#registerAnnotationConfigProcessors()注册Spring内部几个核心组件RootBeanDefinitionAbstractBeanDefinition

2022-02-13 18:13:34 5555

原创 Spring源码系列-第4章-Bean初始化流程

文章目录第4章-Bean初始化流程流程图-bean初始化流程AbstractApplicationContext#refresh()AbstractApplicationContext#finishBeanFactoryInitialization()DefaultListableBeanFactory#preInstantiateSingletons()工厂Bean的初始化方式AbstractBeanFactory#isFactoryBean()测试类Debug调用栈DefaultListableBean

2022-01-28 10:59:46 5734

原创 Spring源码系列-第3章-后置处理器和Bean生命周期

文章目录第3章-后置处理器和Bean生命周期再来看一下我们的测试类MyBeanPostProcessorMyInstantiationAwareBeanPostProcessorMyMergedBeanDefinitionPostProcessorMySmartInstantiationAwareBeanPostProcessorMyBeanFactoryPostProcessorMyBeanDefinitionRegistryPostProcessorCatbeans2.xmlMainTest继续Bean

2022-01-28 10:58:07 4984

原创 Spring源码系列-第2章-后置工厂处理器和Bean生命周期

文章目录第2章-后置工厂处理器和Bean生命周期什么是BeanPostProcessor?BeanFactoryPostProcessor的接口关系BeanPostProcessor接口关系什么是InitializingBean?测试类MyBeanPostProcessorMyInstantiationAwareBeanPostProcessorMyMergedBeanDefinitionPostProcessorMySmartInstantiationAwareBeanPostProcessorMyIni

2021-12-24 11:53:51 5053

原创 Spring源码系列-第1章-Spring源码纵览【持续更新中】

文章目录必读第1章-Spring源码纵览概述简单的继承关系图Spring框架整体流程核心组件接口分析Resource资源方法实现类ResourceLoader资源加载器方法实现类BeanFactory-Bean工厂AbstractApplicationContextGenericApplicationContextDefaultListableBeanFactory注册BeanDefinition-1MainTest测试类Debug调用栈AbstractApplicationContext#refresh(

2021-12-08 19:42:29 7467 5

原创 07.Dubbo源码系列V1-Dubbo第七节-服务调用源码解析

文章目录第七节: Dubbo服务调用源码解析服务导出的Netty启动源码DubboProtocolExchangersHeaderExchangeHeaderExchangeServerTransportersNettyTransporterNettyServerChannelHandlersAbstractServerNettyServer分割服务提供端执行逻辑概述JavassistProxyFactory服务消费端执行逻辑Dubbo的异常处理文章可能会优先更新在Github,包括文章纠错与增加内容

2021-11-12 16:18:42 1059

原创 06.Dubbo源码系列V1-Dubbo第六节-服务引入源码解析

文章目录第六节: Dubbo服务引入源码解析过程Dubbo官方给的Demo服务引入过程概述什么是服务引入大致的步骤监听源码分析-解析@Reference注解上的配置ReferenceBeanReferenceConfigMockClusterWrapperRegistryAwareClusterRegistryAwareClusterInvoker源码分析-监听注册中心并第一次拉取provider配置RegistryProtocolRegistryDirectoryFailbackRegistryZooke

2021-11-12 16:17:58 767

原创 05.Dubbo源码系列V1-Dubbo第五节-服务导出源码解析

文章目录第五节: Dubbo服务注册(导出)源码解析服务导出原理概述服务概念的演化服务导出思想确定服务的参数确定服务的参数概述确定服务的参数源码ServiceBeanServiceConfigAbstractInterfaceConfigConfigManagerAbstractConfigEnvironment确定服务支持的协议URL作用构造服务最终的URL开始服务注册相关过程公用源码ServiceConfig启动Netty,Tomcat等Server源码RegistryProtocolDubboProt

2021-11-12 16:17:04 488

原创 04.Dubbo源码系列V1-Dubbo第四节-Spring与Dubbo整合原理与源码分析

文章目录第四节: Spring与Dubbo整合原理与源码分析处理@Service处理Properties文件实例解析@EnableDubboDubboConfigConfigurationRegistrar流程DubboConfigBindingRegistrar此类总结代码注释DubboConfigBindingBeanPostProcessor代码注释DefaultDubboConfigBinder总结DubboComponentScanRegistrar代码注释ServiceAnnotationBea

2021-11-12 16:15:42 382

原创 03.Dubbo源码系列V1-Dubbo第三节-可扩展机制SPI源码解析【万字文持续更新中】

文章目录第三节: Dubbo的可扩展机制SPI源码解析SPI的概念Java的SPI机制项目目录MainTestDataSaveServiceMySQLSaveServiceRedisSaveServiceSPI文件示例Java的SPI机制的作用Dubbo为什么要实现自己的SPI机制?DemogetExtensionLoader源码ExtensionLoader源码getExtension()createExtension()getExtensionClasses()loadDirectory()loadRe

2021-09-17 11:10:21 453

原创 Dubbo源码系列V1-01和02.Dubbo第一二节-基本应用与高级应用

文章目录Dubbo源码第一节: Dubbo框架介绍什么是RPC什么是Dubbo基本原理开源RPC框架对比第二节: Dubbo的基本应用与高级应用项目目录负载均衡服务超时集群容错服务降级本地存根本地伪装参数回调异步调用泛化调用泛化服务Dubbo中的REST管理台动态配置服务路由标签路由什么是蓝绿发布、灰度发布Zookeeper可视化客户端工具Dubbo与其他微服务组件整合1、文章可能会优先更新在Github,个人博客【包括文章纠错与增加内容】。其它平台会晚一段时间。个人博客备用地址2、如果Github很

2021-09-17 11:08:35 657

原创 设计模式-05.03-行为型-状态&迭代器

文章目录状态模式【重要】什么是有限状态机?状态机实现方式一:分支逻辑法状态机实现方式二:查表法状态机实现方式三:状态模式迭代器模式【重要】迭代器模式的原理和实现迭代器模式的优势在遍历的同时增删集合元素会发生什么?如何应对遍历时改变集合导致的未决行为?如何在遍历的同时安全地删除集合元素?如何设计实现一个支持“快照”功能的iterator?问题描述解决方案一解决方案二1、文章可能会优先更新在Github,个人博客【包括文章纠错与增加内容】。其它平台会晚一段时间。个人博客备用地址2、如果Github很卡,可

2021-09-17 10:19:55 465 2

原创 设计模式-05.02-行为型-策略&职责链

文章目录策略模式【常用】策略模式的原理与实现策略的定义策略的创建策略的使用如何利用策略模式避免分支判断?案例:文件排序问题与解决思路代码实现与分析代码优化与重构职责链模式Demo案例-学校采购Approver【抽象类】PurchaseRequestDepartmentApproverCollegeApproverViceSchoolMasterApproverSchoolMasterApproverClient职责链模式的原理和实现职责链模式的应用场景举例Servlet FilterSpring Inter

2021-09-17 10:18:40 491

原创 设计模式-05.01-行为型-观察者&模板模式

文章目录观察者模式【常用】Demo案例-天气预报方案一WeatherDataCurrentConditionsClient问题分析观察者模式方案Subject【接口】Observer【接口】WeatherDataCurrentConditionsBaiduSiteClient原理及应用场景剖析基于不同应用场景的不同实现方式如何实现一个异步非阻塞的EventBus框架?异步非阻塞观察者模式的简易实现EventBus 框架功能需求介绍手把手实现一个 EventBus 框架SubscribeObserverAct

2021-09-17 10:17:07 516

原创 设计模式-04.02-结构型设计模式-门面模式&组合模式&享元模式

文章目录门面模式(外观模式)【不常用】门面模式的原理与实现Demo案例-影院管理传统方案门面模式代码TheaterLightStereoScreenProjectorPopcornDVDPlayerHomeTheaterFacade门面模式的应用场景举例解决易用性问题解决性能问题解决分布式事务问题组合模式【不常用】组合模式的原理与实现组合模式的应用场景举例享元模式【不常用】享元模式原理与实现享元模式在文本编辑器中的应用享元模式 vs 单例、缓存、对象池我们先来看享元模式跟单例的区别我们再来看享元模式跟缓存的

2021-07-04 01:23:01 609 2

原创 设计模式-04.01-结构型设计模式-代理模式&桥接模式&装饰器模式&适配器模式

文章目录引言代理模式【常用】静态代理动态代理cglib代理代理模式的原理解析动态代理的原理解析代理模式的应用场景业务系统的非功能性需求开发代理模式在 RPC、缓存中的应用代理模式在缓存中的应用桥接模式【常用】Demo案例-手机操作问题需求传统方案解决手机操作问题分析使用桥接模式的代码Brand【接口】Phone【抽象类】VivoXiaoMiFoldedPhoneUpRightPhoneClient桥接模式的原理解析桥接模式的应用举例桥接模式的注意事项和细节装饰器模式【常用】Demo案例-咖啡订单项目星巴克咖

2021-07-04 01:22:02 897 1

原创 设计模式-03.02-创建型设计模式-工厂模式&建造者模式&原型模式

文章目录工厂模式【常用】简单工厂(Simple Factory)工厂方法(Factory Method)那什么时候该用工厂方法模式,而非简单工厂模式呢?抽象工厂(Abstract Factory)如何设计实现一个Dependency Injection框架?工厂模式和 DI 容器有何区别?DI 容器的核心功能有哪些?如何实现一个简单的 DI 容器?最小原型设计提供执行入口配置文件解析核心工厂类设计建造者模式【常用】为什么需要建造者模式?与工厂模式有何区别?原型模式【不常用】原型模式的原理与应用原型模式的实现

2021-07-04 01:20:54 928

原创 设计模式-03.01-创建型-单例设计模式【万字文系列】

文章目录前言创建型结构型行为型单例模式【常用】为什么要使用单例?实战案例一:处理资源访问冲突实战案例二:表示全局唯一类如何实现一个单例?饿汉式(静态变量)饿汉式(静态代码块)懒汉式(线程安全,同步方法)懒汉式(线程安全,同步代码块)懒汉式(线程不安全)双重检测静态内部类枚举单例存在哪些问题?单例对 OOP 特性的支持不友好单例会隐藏类之间的依赖关系单例对代码的扩展性不友好单例对代码的可测试性不友好单例不支持有参数的构造函数有何替代解决方案?如何理解单例模式中的唯一性?如何实现线程唯一的单例?如何实现集群环境

2021-07-04 01:19:34 778 9

原创 设计模式-02.经典设计原则-第二节【依赖反转,迪米特】

文章目录设计模式经典设计原则-第二节依赖反转原则(DIP)控制反转(IOC)依赖注入(DI)依赖注入框架(DI Framework)什么是依赖反转原则?KISS原则和YAGNI原则代码行数越少就越“简单”吗?代码逻辑复杂就违背 KISS 原则吗?如何写出满足 KISS 原则的代码?YAGNI 跟 KISS 说的是一回事吗?DRY 原则实现逻辑重复功能语义重复代码执行重复代码复用性(Code Reusability)怎么提高代码复用性?迪米特法则何为“高内聚、松耦合”?“迪米特法则”理论描述理论解读与代码实战

2021-07-04 01:18:13 398

原创 设计模式-02.经典设计原则-第一节-单一职责原则,开闭原则,里式替换,接口隔离【万字长文系列】

文章目录设计模式经典设计原则-第一节单一职责原则(SRP)如何理解单一职责原则?如何判断类的职责是否足够单一?类的职责是否设计得越单一越好?开闭原则(OCP)如何理解“对扩展开放、修改关闭”?修改代码就意味着违背开闭原则吗?如何做到“对扩展开放、修改关闭”?如何在项目中灵活应用开闭原则?里式替换原则(LSP)如何理解“里式替换原则”?哪些代码明显违背了 LSP?接口隔离原则(ISP)如何理解“接口隔离原则”?把“接口”理解为一组 API 接口集合把“接口”理解为单个 API 接口或函数把“接口”理解为 OO

2021-06-13 19:20:36 1192

原创 设计模式-01.设计思想

文章目录设计思想基于接口而非实现编程如何解读原则中的“接口”二字?如何将这条原则应用到实战中?是否需要为每个类定义接口?多用组合少用继承为什么不推荐使用继承?组合相比继承有哪些优势?如何判断该用组合还是继承?如何通过封装、抽象、模块化、中间层等解耦代码?“解耦”为何如此重要?代码是否需要“解耦”?如何给代码“解耦”?1、文章可能会优先更新在Github,个人博客。其它平台会晚一段时间。个人博客备用地址2、如果Github很卡,可以在Gitee浏览,或者Gitee在线阅读,个人博客。Gitee在线阅读和

2021-06-13 19:17:21 1404 2

原创 Netty入门-第三话

文章目录Google Protobuf编码和解码的基本介绍Netty 本身的编码解码的机制和问题分析ProtobufProtobuf 快速入门实例Student.protoNettyServerNettyServerHandlerNettyClientNettyClientHandlerProtobuf 快速入门实例 2protoNettyServerNettyServerHandlerNettyClientNettyClientHandlerNetty 编解码器和 Handler 调用机制基本说明编码解码

2021-04-22 15:18:32 5506 5

原创 秋招/校招面试不完全整理

文章目录必看说明Java基础为什么重写 equals 方法就必须重写 hashcode 方法?hashCode()介绍为什么要有 hashCode为什么重写equals方法就必须重写hashcode方法?深拷贝和浅拷贝八中数据类型及其范围Java中int类型的最小值是怎么表示的?反射的作用及机制说一下序列化,网络传输使用什么序列化?序列化有哪些方式代理Comparable和Comparator有什么区别引用传递和值传递装箱和拆箱static变量存储位置super()和this()不能同时在一个构造函数中出现

2021-04-22 00:55:01 2595 1

原创 Netty入门-第二话

文章目录Netty 概述原生 NIO 存在的问题Netty 官网说明Netty 的优点Netty 版本说明Netty 高性能架构设计线程模型基本介绍传统阻塞 I/O 服务模型工作原理图模型特点问题分析Reactor 模式针对传统阻塞 I/O 服务模型的 2 个缺点,解决方案:I/O 复用结合线程池,就是 Reactor 模式基本设计思想,如图Reactor 模式中核心组成Reactor 模式分类单 Reactor 单线程方案说明方案优缺点分析单 Reactor 多线程方案说明方案优缺点分析主从 Reacto

2021-04-15 18:47:07 8468 5

原创 操作系统-IO与零拷贝【万字文,比较详细的解析】

文章目录IO阻塞与非阻塞 I/O 和 同步与异步 I/O阻塞IO非阻塞IOIO多路复用异步IO直接与非直接I/O缓冲与非缓冲I/O零拷贝标准设备标准协议利用中断减少CPU开销利用DMA进行更高效的数据传送零拷贝 - 传统文件IO零拷贝之mmap零拷贝之sendfilesendfile再优化文件传输总结小文件传输大文件传输相关文章1、文章可能会优先更新在Github,个人博客。其它平台会晚一段时间。个人博客备用地址2、如果Github很卡,可以在Gitee浏览,或者Gitee在线阅读,个人博客。Gite

2021-04-08 16:31:40 6580 7

原创 Netty入门-第一话【持续更新】

文章目录Netty简介Netty 的介绍Netty 的应用场景互联网行业游戏行业大数据领域其它开源项目使用到 NettyNetty 的学习资料参考Java BIO编程I/O 模型BIO、NIO、AIO 使用场景分析Java BIO 基本介绍Java BIO 工作机制Java BIO 应用实例问题分析Java NIO编程Java NIO 基本介绍NIO 和 BIO 的比较NIO 三大核心原理示意图Selector、Channel 和 Buffer 关系图(简单版)缓冲区(Buffer)基本介绍Buffer 类

2021-04-08 16:29:36 14956 10

原创 计算机网络-概述

文章目录概述计算机网络在信息时代的作用因特网概述网络、互连网(互联网)和因特网因特网发展的三个阶段因特网的标准化工作因特网的组成三种交换方式电路交换分组交换报文交换三种交换方式的对比计算机网络的定义和分类定义分类计算机网络的性能指标速率带宽吞吐量时延时延带宽积往返时间利用率丢包率计算机网络体系结构常见的计算机网络体系结构分层的必要性分层思想举例专用术语1、文章可能会优先更新在Github,个人博客。其它平台会晚一段时间。个人博客备用地址2、如果Github很卡,可以在Gitee浏览,或者Gitee在线

2021-04-03 15:32:56 725

原创 hexo搭建博客-butterfly主题详细版

文章目录Hexo搭建博客-butterfly主题前置知识博客环境说明Node.js安装Git安装安装Hexo步骤可能遇到的问题验证是否成功主题配置安装导航菜单搜索系统评论(twikoo)开启twikoo评论管理面板twikoo版本更新同时部署到Gitee和Github步骤Gitee避坑开启Pages服务验证效果Github自定义域名推荐插件和配置文章生成永久url连接步骤效果区别SEO中文转拼音插件又拍云CDN全站加速jsDelivr+Github做图床Typora集成PicGoPicGo 设置Typora

2021-03-23 21:55:58 13477 1

原创 Apollo简单入门

文章目录Apollo简单入门目标概览什么是配置什么是配置中心Apollo简介主流配置中心功能特性对比总结Apollo简介Apollo特性Apollo快速入门执行流程安装Apollo运行时环境下载配置创建数据库启动Apollo代码实现发布配置应用读取配置修改配置热发布Apollo应用Apollo工作原理各模块职责分步执行流程核心概念项目管理基础设置创建项目删除项目配置管理添加发布配置项修改配置删除配置添加Namespace公共配置添加公共Namespace关联公共Namespace集群管理创建集群同步集群配置

2020-12-29 11:22:03 1942

原创 hugo搭建博客教程-简单搭建

文章目录Hexo和Hugo安装Hugo(Windows)二进制安装(推荐:简单、快速)配置环境变量创建站点主题安装(以Even为例)文章显示巨坑!!!语言设置关于作者【菜单】社交链接定制logo中文导航栏文章可以配置的属性部署到gitee几个大坑报错error: failed to transform resource: SCSS页面加载不出来1、文章可能会优先更新在Github,个人博客,公众号【Github有】。其它平台会晚一段时间。个人博客备用地址2、如果Github很卡,可以在Gitee浏览,

2020-11-25 13:53:50 1391 1

空空如也

空空如也

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

TA关注的人

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