自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 资源 (2)
  • 收藏
  • 关注

原创 Java算法 每日一题(十一) 编号20:有效的括号

编号20:有效的括号

2022-09-20 23:24:55 282 1

原创 Java算法 每日一题(十) 编号151:反转字符串中的单词

编号151:反转字符串中的单词

2022-09-17 12:27:29 519

原创 Java算法 每日一题(十) 编号541:反转字符串 II

编号541:反转字符串 II

2022-09-16 22:29:56 233

原创 Java算法 每日一题(九) 编号142:环形链表 II

编号142:环形链表 II

2022-09-15 23:20:53 103

原创 Java算法 每日一题(八) 编号206:反转链表

编号206:反转链表

2022-09-14 23:07:25 335

原创 Java算法 每日一题(七) 编号707:设计链表

编号707:设计链表

2022-09-13 23:21:01 76

原创 Java算法 每日一题(六) 编号203:移除链表元素

编号203:移除链表元素

2022-08-13 20:57:23 205

原创 Java算法 每日一题(五) 编号59:螺旋矩阵II

编号59:螺旋矩阵II

2022-08-06 20:39:38 130

原创 Java算法 每日一题(五) 编号209:长度最小的子数组

编号209:长度最小的子数组

2022-08-01 17:59:26 201

原创 java多线程进阶(十)线程池

本文详细阐述了线程池的作用与对应源码的实现方式

2022-07-30 23:08:31 1091

原创 Java算法 每日一题(四) 编号18:四数之和

编号18:四数之和

2022-07-24 20:55:13 127

原创 Java算法 每日一题(三) 编号15:三数之和

编号15:三数之和

2022-07-24 19:35:58 137

原创 Java算法 每日一题(二) 编号27:移除元素

编号27:移除元素

2022-07-24 01:12:51 107

原创 Java算法 每日一题(一) 编号35:搜索插入位置

编号35:搜索插入位置

2022-07-23 00:01:31 210

原创 java多线程进阶(九)ConcurrentHashMap

ConcurrentHashMap是一个多线程情况下依旧线程安全的HashMap集合

2022-07-08 23:16:45 1792

原创 java多线程进阶(八)Fork/Join任务拆分与合并

Fork/Join任务拆分与合并

2022-06-15 17:31:40 1264

原创 java多线程进阶(七)ThreadLocal

有关ThreadLocal的一些知识与源码阅读

2022-06-04 21:26:26 307

原创 java多线程进阶(六)JUC工具集

1、阻塞队列队列是一种线程表,可以一端插入,一端删除,是先进先出的基础结构。阻塞队列,需要支持两种情况在队列满溢的时候,添加线程需要被阻塞,删除线程需要被唤醒 在队列为空的时候,添加线程需要被唤醒,删除线程需要被阻塞由此可见,其实这就是一个生产者消费者模型。在JUC之中,有很多的阻塞队列实现,以下是一些通用方法添加方法add:添加元素,如果队列满了,则抛出异常 offer:添加元素,返回true/false,添加成功,返回true,否则返回false put:添加元素,如果队

2022-05-31 23:12:19 139

原创 java多线程进阶(五)线程通信

1、wait与notifywait和notify分别起到等待和唤醒的作用,

2022-05-29 17:32:34 165

原创 java多线程进阶(四)LOCK锁及其原理

2022-05-21 21:52:58 2208

原创 java多线程进阶(三)可见性

执行程序,会发现程序无法自动结束,因为修改的stop值无法被线程thread感知到,这就是不同线程共享变量的可见性问题。

2022-05-09 20:58:45 1444

原创 java多线程进阶(二)同步锁

结合JVM,详细阐述了无锁,偏向锁轻量级锁,重量级锁之间的转化关系

2022-05-08 21:24:46 1175

原创 java集合进阶(一)ArrayList源码

本篇文章多借鉴于b站账号:@河北王校长的直播,本人能力有限,阅读源码水平不足,此作为笔记以记录知识。此文章分析的是ArrayList源码,最为常见的集合之一,希望能对读者有所帮助1、RandomAccess:随机存取进入ArrayList类,第一行代码就是介绍ArrayList继承了哪些类,实现了哪些接口。AbstractList抽象列表类,List列表接口,Cloneable浅克隆接口,Serializable支持序列化接口,这些都是比较常用的接口,那么RandomAccess接口是做什么

2022-05-07 21:16:21 539

原创 java多线程进阶(一)线程

1、线程的概念开始学习多线程之前,要弄清出一个概念,什么是线程?线程是轻量级的进程,每一个进程内都包含N个线程。那么问题又来了,什么是进程?进程是每一个系统操作的执行操作。实际上,在进行系统操作时,无论是什么操作,都是需要CPU资源和磁盘IO的,磁盘IO相比其他操作,速度很慢,而CPU资源不可能等待IO,它非常宝贵,所以只能让CPU去执行其他的操作,这就是CPU的时间片切换为了能让CPU有切换的进程,系统设计了一种多进程,多个进程同步进行,互相隔离互不影响,但进程太重了,为了轻量化,

2022-04-21 02:15:05 362

原创 Spring框架进阶(九)Spring V3.0 AOP源码分析流程

1、总体分析在Spring的设计之中,AOP发生在实例化的过程中,在符合代理要求的情况下,返回的类从原生类改为代理类。整个代理切面方法会被组成一个代理链,通过递归的方式,将它们按顺序执行。2、源码分析回到上一节DI之中,可以看到,之前提到过在doCreateBean方法之中,有两个方法,一个是实例化方法createBeanInstance,一个是依赖注入方法pupolateBean。...

2022-04-20 00:47:59 593

原创 Spring框架进阶(八)Spring V3.0 DI源码分析流程

在Spring框架中,实现getBean方法的类是AbstractBeanFactory。在IOC完成对应的配置信息加载之后,IOC就可以开始对Bean进行管理了。但此时的Bean还没有完成依赖注入,只有经过依赖注入之后,才能继续使用。Bean的依赖注入过程发生在两种情形下:在getBean方法被首次调用的时候,触发依赖注入在非懒加载的情况下,容器解析Bean时进行预实例化

2022-02-23 01:20:09 308

原创 Spring框架进阶(七)Spring V3.0 IOC源码分析流程

第一步,在ApplicationContext中,BeandefinitionReader用loadBeanDefinitions方法读取到配置文件的配置,保存到BeanDefinition之中,完成定位。第二步,在ApplicationContext中获取到Beandefinition的列表,Beandefinition包含有Bean的名称和类信息,完成加载。第三步,DefaultListableBeanFactory用doRegistryBeanDefinition方法将Beandefiniti

2022-02-20 01:46:15 715

原创 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 569

原创 Spring框架进阶(五)Spring V2.0 MVC

MVC是负责渲染页面和匹配URL与Controller函数的组件

2022-01-09 15:21:25 310

原创 Spring框架进阶(四)Spring V2.0 循环依赖

解决循环依赖并不需要三级缓存,只需要到二级缓存就可以完成循环依赖的解决,因为在实例化完成后就可以直接放入二级缓存,整个过程都不需要三级缓存参与

2021-12-30 02:19:05 422

原创 Spring框架进阶(三)Spring V2.0 IOC与DI

通过ApplicationContext调用getBean()方法来获得各种BeanFactory,通过BeanDefinitionReader读取配置文件信息,根据BeanDefinition创建Bean,得到的Bean无论是原生对象还是代理对象,都交给BeanWrapper进行装饰,所以getBean()方法,最后拿到的就是BeanWrapper对象

2021-12-23 17:41:35 383

原创 Spring框架进阶(二)Spring V1.0

spring的主要功能是IOC,DI,MVC,AOP,如果一个系统能实现这些功能,就可以实现一个简易版本的Spring框架。

2021-12-15 17:26:47 709 2

原创 Spring框架进阶(一)常见组件

Spring是Java开发中最重要的开发框架,可以说现在所有的Java开发者都必须要了解和使用的一种框架。

2021-12-08 22:07:00 543

原创 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 926

原创 SpringCloud基础(五)Gateway:微服务网关

在微服务场景下,前端访问不同服务的时候,需要做重复的工作,如鉴权,日志等功能,为了解决统一问题,就增加微服务网关进行整合,如限流,鉴权,缓存,熔断,日志,协议转换。...

2021-11-24 23:39:17 1957

原创 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 1366

原创 SpringCloud基础(三)OpenFeign:远程通信

1、基本介绍RestTenplate是Spring提供的用于访问Rest服务的客户端,它提供了很多可以方便访问远程http服务的方法,这些方法可以减少开发人员在编写客户端代码的工作量。

2021-11-10 18:31:38 576

原创 SpringCloud基础(二)Ribbon:负载均衡

1、

2021-11-07 22:55:06 552

原创 SpringCloud基础(一)Eureka:服务注册与发现

1、

2021-11-04 18:27:59 307

原创 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 357

手写RPC框架实例,配合《IO流基础(二)网络IO》食用更佳

有关socket网络通讯

2021-07-02

手写starter组件.zip

一个手写的starter组件示例,很简单

2021-04-23

空空如也

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

TA关注的人

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