自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring的扩展点及实例

本文介绍的spring扩展点都是基于spring中bean的生命周期扩展的。专用扩展点比较简单,这里只说通用扩展点。

2024-09-19 16:19:31 835

原创 Redission源码详解

在本地搭建个redis,启动redis服务端和客户端。客户端是为了观察redis中锁的信息。

2024-08-16 18:19:02 1170

原创 JKD动态代理及CGLIB动态代理

jdk动态代理采用字节重组,重新生成代理对象来替代原始对象,以达到动态代理的目的。

2024-08-12 23:52:56 370

原创 HashMap源码解析(jdk1.8)

java.util.HashMap实现了java.util.Map接口,是存储key、value的一种数据结构。key 和value都可以为null,但是key不可以重复,若是重复则会覆盖。jdk1.7中,HashMap是数组+链表实现的;jdk1.8中,HashMap是数组+链表+红黑树实现的。下面主要介绍jdk1.8的Hash源码。

2024-08-12 19:56:51 971

原创 Spring MVC源码详解

Handler是controller中带请求路径的方法,最常用的是Controller中@RequestMapping注解标注的方法。如下面getProduct方法是Handler,loginPage方法不是Handler。@Slf4j@Autowiredlog.error("你妹的");model.addAttribute("name","登科");Spring中共四种Handler加RequestMapping注解的方法(常用的)

2024-08-10 17:21:57 802

原创 Spring中Bean的生命周期及源码详解

org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#initializeBean(java.lang.String, java.lang.Object, org.springframework.beans.factory.support.RootBeanDefinition)是初始化bean的方法,里面主要包含初始化前、初始化、初始化后三个步骤。依赖注入就是属性填充。

2024-08-06 12:09:40 1178

原创 Spring 三级缓存解决循环依赖源码分析

上面代码的链路已经了解,做下总结。1.1 首先获取ServiceA的实例AbstractBeanFactory.getBean(String name),name是"serviceA"1.2.1 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton,从三级缓存中获取serviceA实例,未获取到。如果取到了直接返回。

2024-08-05 19:17:50 721 1

原创 Redis学习笔记

synchronize、Lock接口等都是单机锁,分布式系统中的分布式锁应该独立于我们的业务服务,如用redis中间件实现。只能有一个线程访问互斥资源其他线程要么等待要么报错把数据分配到不同节点,如果某些节点数据异常,其他节点可以正常工作。类似于微服务的思想。

2024-06-17 10:27:29 876

原创 设计模式之责任链模式

责任链模式是将链中的每一个节点看成是一个对象,每个节点处理的请求不同,且内部自动维护一个下一个节点对象。当一个请求从链的首端发出时,会沿着链的路径依次传递给每一个节点对象,直至有对象处理这个请求。属于行为型设计模式。

2024-06-17 10:25:10 295

原创 设计模式之策略模式

策略模式是将定义算法的家族分别封装起来,让他们之间可以相互替换,从而使算法的变化不会影响到客户端,属于行为型模式。

2024-06-15 10:34:12 159

原创 设计模式之模板方法模式

模板方法模式,又叫模板模式,指定义一个操作中算法的框架,而将一些算法步骤的实现延迟到子类中。使子类可以不改变算法结构,只改变算法的特定步骤。属于行为设计模式。

2024-06-13 19:16:03 340

原创 设计模式之工厂模式

工厂模式分为简单工厂、工厂方法、抽象工厂,属于创建型设计模式。工厂模式的特点是将创建产品对象的过程通过工厂包装起来,客户端只需要调用,不需要关系产品创建的细节。

2024-06-01 14:54:06 405

原创 Windows 下Nacos安装启动

windows下Nacos的安装及启动,非常简单的。

2023-12-06 00:32:15 722

原创 dubbo简介及部分特性使用

简要的介绍了dubbo,并描述了dubbo部分特性的使用。

2023-12-03 16:24:38 1359

原创 springboot集成dubbo实例

简单搭建springboot集成dubbo项目

2023-11-28 21:36:46 1020

原创 windows 下安装zookeeper

windows系统下,安装zookeeper

2023-11-26 16:14:00 412

原创 ThreadLocal详解

java中ThreadLocal源码分析

2023-11-18 17:08:36 66

原创 java 类加载器

本文简单介绍jvm的三种类加载器,并介绍类加载机制,双亲委派模式。结合代码,验证理论。最后介绍了如何自定义类加载器,并附上代码及测试结果及测试结果的分析。

2022-01-05 23:13:39 495

原创 idea 导出某个类的jar

本文介绍使用开发工具idea,导出某个指定类的jar包

2021-12-28 21:31:08 468

原创 java对象的内存布局

java对象的内存布局包含对象头、实例数据、对齐填充。本文介绍java对象的布局,并通过代码实例验证。

2021-12-23 22:22:32 426

原创 计算机的单位

简介计算机的单位换算

2021-12-05 19:52:08 2590

原创 JVM的学习笔记

简单介绍什么是jvm,jvm都有啥

2021-12-05 17:24:56 630

原创 java序列化

本文介绍什么是序列化与反序列化,序列化的使用场景,序列化的实现。

2021-10-26 00:36:37 147

原创 java克隆

本篇文章讲述java克隆。什么是克隆,为什么要克隆,克隆的分类及实现的实例。

2021-10-18 23:33:42 141

原创 ArrayList源码之为何线程不安全

面试的时候经常会问,ArrayList为何线程不安全,本篇文章将通过源码分析原因。

2021-10-17 15:15:09 93

原创 idea注释模板设置

本文介绍了idea配置类注释、方法注释、行注释的步骤。

2021-10-17 14:02:55 285

原创 ArrayList源码分析

ArrayList概述本文讲述的是jdk1.8的ArrayList。ArrayList位于jdk的rt.jar中,java.util.ArrayList。ArrayList的继承、实现关系首先看ArrayList的继承、实现关系。public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializ

2021-10-10 20:30:49 109

原创 变量、方法的访问权限

类成员的访问权限总体介绍java有三个访问权限修饰词,public、protected、private,如果不加以上的修饰词,则是默认的friendly(包访问权限)。public:公共权限,无论是谁,无论在哪,都可以访问该成员。protected:继承访问权限(受保护的),同一个包的类、及其子类可以访问该成员。private:私有权限,只允许本类内部可以访问该成员。friendly 友好(默认的):只允许同一个包内的类访问该成员分析难点public和private比较好理解,不做过多解

2021-09-19 16:28:44 209

原创 计算机的原码、反码、补码

计算机的原码、反码、补码为了方面理解,以8位的1和-1为例,解释原码、反码、补码的计算实例。原码:1:反码:补码

2021-09-04 16:15:47 4095 3

原创 ArrayList源码之6260652 bug号

ArrayList源码之6260652 bug号List的toArray()方法有多个实现,主要关注两个。原因是分析ArrayList源码时,解决构造方法中的“c.toArray might (incorrectly) not return Object[] (see 6260652)”注释。ArrayList的构造方法源码public ArrayList(Collection<? extends E> c) { elementData = c.toArray();

2021-09-02 22:02:40 238

原创 Java 1.8 RandomAccess接口

Java 1.8 RandomAccess接口简介RandomAccess接口从jdk1.4开始提供,接口中没有定义任何方法,是标志接口,说明实现该接口的List支持快速随机访问功能。标志接口标志接口是没有任何方法和属性的空接口,仅仅表明它的类属于某种特定类型,用法如下:if(obj instanceof Cloneable) {………} 常用的标志接口示例:java.io.Serializable:序列号接口。未实现此接口的类将无法使其任何状态序列化或反序列化.为保证 serialVer

2021-09-02 20:18:38 172

原创 Java集合简介

Java集合框架集合与数组的区别集合长度可变,数组长度不可变 集合中存储的为引用对象,数组中可以存储引用对象,也可以存储基本类型集合中存储的内容可以不是同一类型,数组中存储的内容必须是同一类型List接口List的特点是元素可重复,有序(数据add的顺序)ArrayList底层实现为动态数组,线程不安全;获取数据时(get方法)快,直接根据索引找到数据;插入删除数据慢,因为需要挪动数组中的元素;List长度可变,是通过数组扩容实现的,数组的扩容是通过数组拷贝实现的,因此初始化l

2021-09-01 21:08:20 51

空空如也

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

TA关注的人

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