自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于netty的可群聊聊天室

主要有两个字段:messageType消息类型,用于区分消息,messageSequenceId,提供一个通信序列号。将消息类型和其对应的Class类存入map,便于后续Gson反序列化使用

2022-08-23 22:58:27 669

原创 HashMap面试题

1.链表长度>82.数组容量>=64,如果数组容量不够大,会先尝试扩容解决链表过长的问题,所以链表长度是可能大于8的,容量到64才会树化。

2022-08-21 22:52:25 174

原创 ArrayList扩容机制

元素满之后,调用add()方法,再次添加触发扩容,新容量是原来容量的1.5倍(生成新数组,复制元素,原来数组被垃圾回收)数组扩容后大小取下次扩容1.5·倍扩容的容量 和 addAll()与原来元素个数之和 中的最大值。DEFAULTCAPACITY_EMPTY_ELEMENTDATA是一个空数组。如果调用addAll()方法,需要扩容时,扩容规则是。初始化没有指定容量是,ArrayList的容量为0。当第一次添加元素是,容量扩容为10。会以集合的大小作为参数。

2022-08-21 21:06:51 164

原创 Java异步非阻塞模型AIO

代码】Java异步非阻塞模型AIO。

2022-08-17 12:13:54 272

原创 模拟实现解析@Bean注解

Overridetry {//1.拿到MetadataReader//2.拿到注解元数据--》拿到注解的方法//工厂方法Bean,指定哪个方法,属于哪个对象//看@Bean有无设置其他属性,如初始化方法//获取方法加的注解属性,如initMethod//如果initMethod不为空,说明有//设置初始化方法}//拿到beanDefinition}}}}......

2022-08-15 17:01:35 226

原创 模拟实现ComponentScan

/模拟实现ComponentScan@Override//用AnnotationUtils查找此类上有没有ComponentScan注解//不为空,有注解= null) {//包名转换为路径名try {}}}}}}}

2022-08-15 13:11:14 294

原创 Visitor访问者模式应用之Files.FileWalkTree

walkFileTree()传入的第二个参数是访问者,用户可以根据自己的选择重写其中的方法,包括访问目录之前,访问文件时等等,按需求访问文件对文件类型进行选择: 如果是文件,则执行 visitor.visitFile(),visitor.visitFileFailed()方法 如果是目录的起始点,则执行visitor.preVisitDirectory() 如果是目录的结尾,则执行visitor.postVisitDirectory() 如果用户不重写方法,则

2022-08-14 22:56:50 334

原创 ByteBuffer解析

调用compact()方法,也可以切换为写模式,区别是不会清空buffer,而是将未读过的数据向前移,把已经读过的数据覆盖掉,叫做压缩

2022-08-14 22:41:28 552

原创 AutowiredAnnotationBeanPostProcessor详解

准备好BeanFactory,因为@Autowired需要在BeanFactory中找需要的Bean参数

2022-08-09 16:36:16 778

原创 Bean后处理器

ConfigurationPropertiesBindingPostProcessor解析@ConfigurationProperties准备一个类

2022-08-09 12:02:57 236

原创 设计模式之模板方法

作用:增加代码的可扩展性背景:模拟一个BeanFactory的getBean方法

2022-08-08 23:56:26 127

原创 Bean的生命周期

构造方法-->autowire-->PostConstruct初始化方法-->容器关闭时,单例对象执行销毁方法

2022-08-08 23:37:16 94

原创 ApplicationContext实现

1.ClassPathXmlApplicationContext

2022-08-08 20:13:28 257

原创 BeanFactory认识

beanFactory不会做的事:1.不会主动调用BeanFactory后处理器2.不会主动添加Bean后处理器3.不会主动初始化单例4.不会解析${ },#{ }

2022-08-08 17:16:55 135

原创 BeanFactory和ApplicationContext

SpringBoot调用SpringApplication.run()方法时,会有返回值返回类型是ConfigurableApplicationContext接口类型,实际上返回的就是Spring容器

2022-08-03 19:41:03 101

原创 JVM类加载相关机制(三)-----类加载器

类加载器的分类:以JDK8为例,分为4种

2022-08-03 16:30:24 303

原创 JVM类加载机制相关(二)

类加载阶段:一.加载:1.将类的字节码载入方法区,内部采用C++的instanceKlass描述Java类,其重要的field有:

2022-08-02 23:54:51 87

原创 JVM类加载机制相关(一)

类文件结构

2022-08-02 22:23:18 122

原创 CyclicBarrier使用

CyclicBarrier与CountDownLatch很像,都是可以同步多个线程,不同的是

2022-08-02 17:34:42 157

原创 CountDownLatch基本使用

CountDownLatch基本使用

2022-08-02 16:30:37 572

原创 ReentrantReadWriteLock读写锁

一般的锁并不能区分是哪种目的,但如果仅仅是读操作,并不会有并发问题。多次的阻塞也会带来性能的损失,因此读写锁应运而生

2022-08-02 15:32:05 76

转载 Java代理模式

动态代理和静态代理

2022-07-28 22:13:18 88 1

原创 String+String的细节

String拼接的细节

2022-07-28 21:24:25 744

原创 为什么说String类是线程安全的?

我认为String类是狭义上的线程安全的。

2022-07-28 21:02:25 4478 2

空空如也

空空如也

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

TA关注的人

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