`
wb1991wb
  • 浏览: 157129 次
  • 来自: 上海
社区版块
存档分类
最新评论

【叨、校长】java缓存实例、自己做的一个缓存实例

阅读更多

自己写的一个缓存类、通俗易懂、老少皆宜!--叨、校长

package com.master.common;

import java.util.List;

/**
 * 一个缓存实例
 * @example 
 *  String name="test";
 *  List list=null;
 *	CacheData c=CacheData.matchCahceData(name);
 *	if(c.getData()==null){
 *		list=jokeService.findJokeList();//从数据库获取数据
 *		c.setData(list);
 *	}else{
 *		list=c.getData();
 *	}
 * @author 叨、校长
 * @datatime 2012-11-04
 */
public class CacheData{
	//最大缓存记录
	private final static int MAX_SIZE=10;
	private static CacheData[] datas=new CacheData[MAX_SIZE];
	//每条缓存的名称
	private final String name;
	//每条缓存的数据
	private List data=null;
	
	//使用单例模式、防止外部实例化该类
	private CacheData(String name){
		this.name=name;
	}
	
	public String getName(){
		return name;
	}
	public List getData(){
		return data;
	}
	public void setData(List data) {
		this.data = data;
	}
	
	//判读缓存中是否有该名称的记录,如果没有则添加缓存实例并且返回该缓存实例
	//如果缓存满了,则把第一条记录更新为新缓存,并且返回该缓存实例
	public static CacheData matchCahceData(String name){
		CacheData cache;
		int i=0;
		int j=1;
		for(;i<MAX_SIZE;i++){
			if(datas[i]!=null){
				if(datas[i].getName().equals(name)){
					return datas[i];
				}
				j++;
			}
		}
		cache=new CacheData(name);
		if(j==MAX_SIZE){
			datas[0]=cache;
		}else{
			datas[j--]=cache;
		}
		return cache;
	}
}
 

 

3
2
分享到:
评论
11 楼 zhukewen_java 2012-11-05  
wb1991wb 写道
数组的性能比map高吧!
lhm20092003023 写道
写得不错,不过 1.有没考虑过内存问题呢?是否可以使用软引用。 2.这里用list做缓存不太适合吧?这样遍历效率比较低。

数组的性能比map高吧!

建议楼主写个邮件给memcached团队和apache团队和很多其它的团队,叫他们把缓存由map改为数组。
10 楼 wb1991wb 2012-11-05  
数组的性能比map高吧!
lhm20092003023 写道
写得不错,不过 1.有没考虑过内存问题呢?是否可以使用软引用。 2.这里用list做缓存不太适合吧?这样遍历效率比较低。

数组的性能比map高吧!
9 楼 wb1991wb 2012-11-05  
lhm20092003023 写道
写得不错,不过 1.有没考虑过内存问题呢?是否可以使用软引用。 2.这里用list做缓存不太适合吧?这样遍历效率比较低。

数组的性能比map高吧!
8 楼 lhm20092003023 2012-11-04  
写得不错,不过 1.有没考虑过内存问题呢?是否可以使用软引用。 2.这里用list做缓存不太适合吧?这样遍历效率比较低。
7 楼 zhukewen_java 2012-11-04  
有缓存的意识是件好事,不过楼主的缓存效率上会有点问题。每次取的时候都要遍历整个数组,size小倒没事,如果大了,就会比较慢了。一般缓存都是用map来存的。
6 楼 realskyzou 2012-11-04  
额。。。这太搞笑了吧。。。
5 楼 w156445045 2012-11-04  
没看懂是啥意思,哈哈。。
4 楼 shanhucc 2012-11-04  
果然是老少皆宜····
3 楼 wb1991wb 2012-11-04  
lpy3654321 写道
是什么思路'能说说吗

就是用一个数组就存储频繁读取的数据、加假如有一个频繁的查询功能、则把第一次读取的数据保存在服务端的内存里面、下次读取直接从内存里面拿!
2 楼 wb1991wb 2012-11-04  
就是用一个数组就存储频繁读取的数据、加假如有一个频繁的查询功能、则把第一次读取的数据保存在服务端的内存里面、下次读取直接从内存里面拿!
1 楼 lpy3654321 2012-11-04  
是什么思路'能说说吗

相关推荐

    Java缓存技术的使用实例

    Java缓存技术是提高应用程序性能的关键工具,尤其是在处理大量数据时。...这个“Java缓存技术的使用实例”提供了一个动手学习的机会,加深了对缓存工作原理的理解,并为实际开发中的缓存使用提供了参考。

    java 缓存 cache lru 实例

    java 缓存 cache lru 实例 java 缓存 cache lru 实例 java 缓存 cache lru 实例 java 缓存 cache lru 实例 java 缓存 cache lru 实例 java 缓存 cache lru 实例 java 缓存 cache lru 实例

    java 缓存插件ehcache 应用实例

    这个配置定义了一个名为`exampleCache`的缓存区域,最大内存中元素数量为1000,非永久性缓存,元素空闲120秒后过期,存活120秒后过期,数据存储在系统临时目录。 四、Ehcache API使用 1. **创建缓存管理器**: ```...

    Hibernate一级缓存、二级缓存以及查询缓存实例

    接下来是二级缓存,它是一个可选的、SessionFactory级别的缓存,由用户根据需求配置。二级缓存可以跨多个Session共享数据,这意味着即使关闭了Session,数据仍然可以在缓存中保留。二级缓存通常由第三方插件如...

    java缓存经典实例

    Cache 缓存类存放缓存id 缓存更新时间 缓存资源(object)缓存是否可用 CacheManager 缓存管理类有缓存各种操作的方法 以上两个为主要类 下面为测试类 TestCache main方法测试缓存 TestBo 需要存入缓存的资源

    java map 实现缓存技术

    在Java编程中,Map接口是数据结构中非常重要的一个部分,它提供了键值对的存储方式,便于快速访问和操作数据。在许多实际应用中,尤其是高性能和高并发的场景,Map常被用来实现缓存技术,以提高数据读取速度和系统...

    java 缓存系统实战(安装和实例代码)

    Java 缓存系统实战主要涉及的是使用 Memcached 这一开源缓存框架,它是一个高性能、分布式的内存对象缓存系统。Memcached 提供了 key-value 存储,旨在优化速度差异较大的硬件或软件之间的数据交互。以下是关于 ...

    hibernate二级缓存实例

    总的来说,"hibernate二级缓存实例"是一个很好的学习资源,它可以帮助我们理解二级缓存的工作机制,掌握如何在项目中配置和使用,以及注意潜在的问题和优化策略。通过实践,我们可以更好地运用这一技术,提升Java...

    基于Java的实例源码-Java缓存工具 SimpleCache.zip

    总的来说,"基于Java的实例源码-Java缓存工具 SimpleCache.zip"是一个宝贵的教育资源,为Java开发者提供了实际操作缓存机制的机会,从而提升他们的技能和理解,对于那些希望优化应用程序性能或构建高效服务的开发者...

    基于Java的实例源码-ehcache(Java缓存框架 EhCache).zip

    EhCache是一个高性能、易用的Java本地内存缓存框架,它被广泛应用于各种Java应用程序中,以提高数据访问速度,减轻数据库负载。基于Java的实例源码-ehcache(Java缓存框架 EhCache).zip这个压缩包包含了使用EhCache...

    Spring+EhCache缓存实例

    **Spring+EhCache缓存实例详解** 在现代的Java企业级应用中,缓存技术扮演着至关重要的角色,它能够显著提升系统性能,减少数据库负载。Spring框架与EhCache的结合,为开发者提供了一种高效、易用的缓存解决方案。...

    JAVA缓存技术深入了解

    - **Ehcache**:是一个广泛使用的开源Java缓存解决方案,支持本地缓存和分布式缓存。它提供了内存和磁盘存储,以及过期策略、缓存预热等功能。 - **Guava Cache**:Google的Guava库提供了一个轻量级的缓存解决方案...

    spring缓存实例

    本篇将深入探讨Spring缓存实例,基于给出的博客链接(http://blog.csdn.net/maoyeqiu/article/details/50433934)和文件"20140527demoSpringCache",我们将全面解析Spring缓存的使用方法和实践场景。 首先,Spring...

    基于Java的实例开发源码-Java缓存工具 SimpleCache.zip

    基于Java的实例开发源码-Java缓存工具 SimpleCache.zip

    SpringAOP结合ehCache实现简单缓存实例

    本文将深入探讨如何结合Spring AOP与EhCache实现一个简单的缓存实例,以便优化Java应用的运行效率。 首先,让我们了解Spring AOP。Spring AOP是Spring框架的一部分,它允许我们在不修改业务代码的情况下,通过定义...

    redis缓存java类使用实例

    在Java中,你可以创建一个`HashMap`,然后使用`Jedis.hset()`方法将数据存储到Redis。例如: ```java Map, String&gt; myMap = new HashMap(); myMap.put("key1", "value1"); myMap.put("key2", "value2"); ...

    Java缓存框架 Ehcache.zip

    EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。 下图是 Ehcache 在应用程序中的位置: 主要的特性有: 1. 快速.2. 简单.3. 多种缓存策略4. 缓存数据有两级:...

    基于Java的实例开发源码-ehcache(Java缓存框架 EhCache).zip

    EhCache是一个高性能、易用的Java本地缓存框架,被广泛应用于许多Java应用程序中,以提高数据访问速度,减轻数据库负载。它提供了一个简单但功能强大的API,使得开发者能够轻松地集成到他们的项目中。在Java应用中,...

    JAVA的缓存应用介绍

    总的来说,Java缓存的应用是提升系统性能的关键策略之一。了解Java内存体系和有效使用缓存框架,能够帮助开发者创建更高效、更稳定的系统,同时避免因内存管理不当导致的问题。正确设置JVM内存参数和使用内存检查...

    java缓存理解

    Ehcache是一个开源的、高性能的、易于使用的Java缓存框架,主要用于提高应用程序的性能。Ehcache支持将数据缓存在内存中或磁盘上,从而减少对底层数据源的访问频率,减轻数据库的压力。 ##### 1. Ehcache的基本概念...

Global site tag (gtag.js) - Google Analytics