
Java
文章平均质量分 95
应用于 Java 语言领域知识,不依赖于其他外部组件
vnjohn
vnjohn,博主名字的简写,是一名专注于后端领域的程序猿,借用歌名“自己”里的歌词来时刻提醒自己要不断学习,不断思而前行:“第一要保持希望在每天清晨太阳升起,第二切记不要与自身的平凡为敌,第三与自己所处的现在促膝长谈”
展开
-
解析 HashMap 源码:深入探究核心方法的实现与原理
该篇博文,主要分析 HashMap 类所使用的数据结构,基于数组、链表、红黑树,说到了 initial capacity、load factor 等核心属性,重点分析了该类的一些核心方法:tableSizeFor-阈值如何计算、putVal-插入元素如何懒加载扩容以及数组转换为链表,链表又是如何转换为红黑树结构的、resize-在底层是如何基于 2 次幂实现数组扩容的以及链表结构的形成、红黑树的转换操作,最后,简要分析了获取元素、删除元素、遍历元素时移除元素的 fast-fail 快速失败机制原创 2023-06-15 19:29:28 · 2394 阅读 · 25 评论 -
探索 Java ServiceLoader、Dubbo ExtensionLoader:构建灵活可扩展的应用程序的利器
该篇博文介绍 Java SPI 服务提供接口,是如何基于 ServiceLoader 核心类实现的,以经典的 SQL 驱动扩展类作为案例,揭开底层源码的加载逻辑,从这方面我们可以来做一些自己的扩展工作;同时,还仔细阐述了在 Dubbo 是如何基于原有的 SPI,作一些自己的扩展和优化的,它还支持我们自定义扩展实现其他的加载策略,只要你需要!以过滤器链为序幕,揭开 Dubbo 底层是如何基于 ExtensionLoader 作扩展实现的;最后,以 Dubbo Rpc 服务之间传递 Token 的实战案例原创 2023-06-13 03:49:27 · 2338 阅读 · 2 评论 -
Tomcat 参数调优及 Https 配置
当使用默认的 Tomcat 配置和参数进行使用,当使用量/并发量慢慢增长达到一定数量时,默认的配置是不支持这么高的并发的,所以整理了以下灵性的方式对 Tomcat 进行调优原创 2022-07-26 00:30:00 · 3297 阅读 · 0 评论 -
ThreadPoolExecutor 线程池执行流程及核心源码分析
corePoolSize:核心线程数,一般设置该值 CPU 核数、maxinumPoolSize:最大线程数、keepAliveTime:非核心线程的存活时长(最大线程数-核心线程数 剩下的线程都是非核心线程)、unit:存活时长的单位、workQueue:工作阻塞队列,核心线程满了以后不够用就往队列里面塞、threadFactory:生产线程的工厂,一般是采用默认的工厂生产线程、handler:拒绝策略,当工作阻塞队列满了以后,线程数也满了,其余的任务采用那种去拒绝处理原创 2022-07-25 18:00:04 · 3038 阅读 · 1 评论