public

Java API ThreadLocal

ThreadLocal 提供线程局部变量,使用它保存的变量在每个线程中都是独立的变量副本,ThreadLocal 通常是类中的私有静态字段,用于将状态与线程相关联。如下所示: pu…

Java单例序列化破坏单例模式原理解析

什么是单例模式? 单例保证一个对象JVM中只能有一个实例 这里提供一个双重锁校验单例,并且引出了序列化破坏的问题,本篇来说一下这个原理和解决 首先把上一篇的单例代码拿过来贴上: /…

从ThreadLocal到TransmittableThreadLocal,彻底学透ThreadLocal的设计

1、从一个案例说起 观察下面的代码请你判断代码的输出: public class TestCase1 { private static ThreadLocal threadLoca…

Java设计模式

工厂模式 案例 现在有一家咖啡店,用户选择两种咖啡:美式咖啡和拿铁咖啡 原代码 定义 coffee 类通用接口 public interface Coffee { public S…

Java SpringBoot模板

全局异常处理类 @ControllerAdvice //控制器增强类 @Slf4j public class ExceptionCatch { /** * 处理不可控异常 * @p…

springboot 使用threadlocal

概念 threadlocal为每一个线程提供一个单独的存储空间,具有线程隔离的作用,只有在线程内才能获取到对应的值,线程外则不能访问 工具类 public class BaseCo…

面向接口编程,你考虑过性能吗?

大家在平时开发中大多都会遵循接口编程,这样就可以方便实现依赖注入也方便实现多态等各种小技巧,但这种是以牺牲性能为代价换取代码的灵活性,万物皆有阴阳,看你的应用场景进行取舍。一:背景…

.NET 定时任务

注册服务 builder.Services.AddHostedService(); 创建服务 TestHostedService.cs namespace 定时任务 { publi…

.NET Cache方法类

创建CacheHelper.cs public class CacheHelper { public static IMemoryCache _memoryCache = new …

.NET HttpClient

环境搭建 服务注册 builder.Services.AddHttpClient(); 创建实体类 namespace HttpClient { public class Requ…

.NET 序列化的三种方式

参考 C#中Json序列化和反序列化总结 JavaScriptSerialize 创建实体类 using System; using System.Collections.Gene…

线程安全问题(面试常考)

🍊一. 观察多线程下n++和n--操作 我们目前所知当一个变量n==0,n++了1000次并且 n--了1000次,我们的预期结果为0,但是当两个线程分别执行++和--操作时最后的…

苞米豆框架生成步骤

1. 背景 以前我在使用ORM框架的时候,一般使用mybatis xml generator插件生成代码,但升级了知识库以后,我都采用另外一套jar生成苞米豆ORM为框架的crud…

Java枚举enum入门

枚举 枚举某种程度上也是一种语法糖。枚举主要是代替过多的public static final修饰的全局常量。 枚举快速开始 搞个demo看看: public enum MyEnu…

Java单例双重锁校验详解

双重锁校验单例 什么是单例模式? 单例保证一个对象JVM中只能有一个实例 直接上代码吧: /** * 双重锁校验的单例 */ public class DoubleLock imp…

用了这么多年的泛型,你对它到底有多了解?

现代程序员写代码没有人敢说自己没用过泛型,这个泛型模板T可以被任何你想要的类型替代,确实很魔法很神奇,很多人也习以为常了,但就是这么有趣的泛型T底层到底是怎么帮你实现的,不知道有多…

数据结构栈以及经典应用

栈(Stack)是一种常见的数据结构,它遵循后进先出(LIFO,Last-In-First-Out)的原则。 基本介绍 栈可以看作是一种特殊的线性表,只能在一端进行插入和删除操作,…

SQL引擎插件开发指导

开发流程① 在 openGauss 社区 Plugin 仓进行兼容性相关开发(https://gitee.com/opengauss/Plugin)② 通过 fastcheck 自…

SpringBoot 并发编程学习历程,你所需要的所有知识点!

本教程大概目录:模拟单线程情节用Callable实现 并发编程用DeferedResult实现异步处理###模拟单线程情节。/** * Created by Fant.J. */ …

Java代理设计模式

代理设计模式 通过对目标对象(target)进行封装, 对程序进行加强处理。例如:获得目标对象方法的运行总时长、Spring的面向切面编程。 实现原理:创建一个代理类(proxy)…

加载更多