泛型缓存原理

简介: 泛型缓存原理

泛型方法的根本目的就是一个方法代替多个方法,满足不同类型的需求

例如,差不多的方法体需要传入不同参数

public class GenericMenthod
    {
        public static void GetName(string name)
        {
            Console.WriteLine("" + name);
        }
        public static void Getid(int id)
        {
            Console.WriteLine("" + id);
        }
        public static void Get(object Datetime)
        {
            Console.WriteLine("" + Datetime);
        }
    }


有人说为什么不用object来代替呢

当然可以,但是object是引用类型,当传入值类型的参数,会执行装箱拆箱操作,损耗系统性能,没有约束程序不严谨。

public static void Get<T>(T t)
        {
            Console.WriteLine("" + t);
        }

延迟加载,在调用时才指定类型

Console.WriteLine(typeof(List<>));

a16279ef14a3beae4c9f0aa040a49fd2_2088.png

泛型.NET Framework2.0 编译器升级-支持占位符 JIT升级-运行时将占位符替换

第一次编译会带占位符,第二次编译会把占位符替换成真实类型

JIT会为不同的类型产生不同的副本


public class Generic<T>
    {
        private static string GenericCache = null;
        static Generic()
        {
            GenericCache = $"{typeof(T).FullName}";
        }
        public static string  GetData()
        {
            return GenericCache;
        }
    }
static void Main(string[] args)
        {
            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine("**********************");
                Generic<int>.GetData();
                Generic<string>.GetData();
                Generic<DateTime>.GetData();
                Generic<object>.GetData();
            }
            Console.ReadLine();
        }


在循环第一次时,已经为每种类型生成了副本,当第二次循环时,直接使用之前的对象,返回GenericCache

相关文章
|
6天前
|
存储 缓存 关系型数据库
InnoDB 引擎底层存储和缓存原理
InnoDB 引擎底层存储和缓存原理
|
6天前
|
存储 缓存 前端开发
浏览器缓存工作原理是什么?
浏览器缓存工作原理是什么?
|
6天前
|
存储 缓存 Java
【Spring原理高级进阶】有Redis为啥不用?深入剖析 Spring Cache:缓存的工作原理、缓存注解的使用方法与最佳实践
【Spring原理高级进阶】有Redis为啥不用?深入剖析 Spring Cache:缓存的工作原理、缓存注解的使用方法与最佳实践
|
6天前
|
存储 缓存 安全
Go 简单设计和实现可扩展、高性能的泛型本地缓存
本文将会探讨如何极简设计并实现一个可扩展、高性能的本地缓存。支持多样化的缓存策略,例如 最近最少使用(LRU)等。
73 0
Go 简单设计和实现可扩展、高性能的泛型本地缓存
|
6天前
|
缓存 Go API
Go 实现一个支持多种过期、淘汰机制的本地缓存的核心原理
本文旨在探讨实现一个支持多种 过期、淘汰 机制的 go 本地缓存的核心原理,我将重点讲解如何支持多样化的过期和淘汰策略。
83 0
|
6天前
|
缓存 NoSQL Java
Spring Cache 缓存原理与 Redis 实践
Spring Cache 缓存原理与 Redis 实践
222 0
|
6天前
|
XML 存储 缓存
【深入浅出Spring原理及实战】「缓存Cache开发系列」带你深入分析Spring所提供的缓存Cache管理器的实战开发指南(修正篇)
【深入浅出Spring原理及实战】「缓存Cache开发系列」带你深入分析Spring所提供的缓存Cache管理器的实战开发指南(修正篇)
37 0
|
6天前
|
存储 XML 缓存
【深入浅出Spring原理及实战】「缓存Cache开发系列」带你深入分析Spring所提供的缓存Cache功能的开发实战指南(一)
【深入浅出Spring原理及实战】「缓存Cache开发系列」带你深入分析Spring所提供的缓存Cache功能的开发实战指南
123 0
|
4天前
|
存储 缓存 中间件
中间件Read-Through Cache(直读缓存)策略工作原理
【5月更文挑战第11天】中间件Read-Through Cache(直读缓存)策略工作原理
11 3
|
5天前
|
缓存 数据安全/隐私保护 UED
深入了解304缓存原理:提升网站性能与加载速度
深入了解304缓存原理:提升网站性能与加载速度