java静态缓存工具类_Java线程静态在对象缓存中的妙用

线程静态在对象缓存中的妙用由广州疯狂软件教育java培训分享:

线程静态标记静态字段的值对于每个线程都是唯一的。简单来说,是只应用在静态字段上,而且对于每一个线程都是独立存储的。

那么,结合对象缓存来说,需求如下:

1、一些工具类,需要占用一定资源,但又不希望太频繁的创建该工具类。

2、需要适应多线程的情况

一个例子就是StringBuilder类,StringBuilder类内部实现使用了char[]来存储字符,我们需要使用StringBuilder来创建字符串,而且希望不太频繁的创建它,避免内存压力。

下面,就是。NET Framework 4.5.1 中对StringBuilderCache的实现:

internal static class StringBuilderCache{

private const int MAX_BUILDER_SIZE = 360;

[ThreadStatic]

private static StringBuilder CachedInstance;

public static StringBuilder Acquire(int capacity = StringBuilder.DefaultCapacity){

if(capacity <= MAX_BUILDER_SIZE){

StringBuilder sb = StringBuilderCache.CachedInstance;

if (sb != null){

if(capacity <= sb.Capacity){

StringBuilderCache.CachedInstance = null;

sb.Clear();

return sb;

}

}

}

return new StringBuilder(capacity);

}

public static void Release(StringBuilder sb){

if (sb.Capacity <= MAX_BUILDER_SIZE){

StringBuilderCache.CachedInstance = sb;

}

}

public static string GetStringAndRelease(StringBuilder sb){

string result = sb.ToString();

Release(sb);

return result;

}

}

疯狂软件教育中心依托开发团队的强大技术实力,把企业最新技术融入实训课程,打造金牌的品质,才能给予学员黄金的未来,疯狂软件凭借过硬的技术实力与丰富的项目开发经验,赢得了社会的肯定。疯狂软件Java培训师资力量强大,课程内容深入,为学员高薪就业做了很好的铺垫,拥有丰富就业指导经验的就业团队也成为了学员高薪就业的先天优势。地址:广州天河区车陂沣宏大厦3楼。

疯狂Java在前几年的培训过程中,凭借自身强悍的师资、一流的课程、真实的项目、超高的就业率已经让广大南方学子成功走上软件工程师职业道路。大量毕业即失业的学子已通过疯狂Java实现了就业。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值