导航:首页 > 编程语言 > java缓存图片

java缓存图片

发布时间:2023-12-08 19:34:22

java 如何将图片读入缓存中去

paint方法是继承的,repaint方法在这里没什么意义,只是调用了一下而已,使得每隔5秒重绘一次

import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Test {
public static void main(String[] args) {
final JFrame frame = new JFrame();
frame.setContentPane(new ImagePanel(new ImageIcon("test.gif").getImage()));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(100, 100, 100, 100);
frame.setVisible(true);

new Thread(new Runnable() {
public void run() {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
}
frame.repaint();
}
}).start();
}

static class ImagePanel extends JPanel {
BufferedImage image;

public ImagePanel(Image image) {
// Not really need a BufferedImage, just a requirement
this.image = new BufferedImage(image.getWidth(null), image.getHeight(null),
BufferedImage.TYPE_4BYTE_ABGR);
Graphics g = this.image.getGraphics();
g.drawImage(image, 0, 0, null);
}

public void paintComponent(Graphics g) {
g.drawImage(image, 0, 0, null);
}
}
}

❷ java 中如何进行页面缓存

可以在要执行的页面中通过set方法设置要缓存的内容,之后通过get方式获取到设置的内容
举例:
第一个访问页面:
request.setAttribute("username",zhangsan");
第二个跳转页面:
Srting username = request.getAttribute(''username'');
此时即可获取到username的存储信息。

❸ 页面图片加载速度比较慢,有什么优化的方法吗,请提供下,最好是java的 是否可以用缓存框架

跟缓存什么的没关系。
跟图片大小,网速、带宽 有关

图片不能太大,一般网站都会对上传的 图片进行缩略,压缩处理

一般都会把图片处理成三或四 种规格:缩略图,中图,大图,原图
不要把原图直接放在页面上,根据需求尽量用最小的图。 这样页面加载就会很快。

不要用TOMCAT压缩图片,会很占服务器资源的。而且大部分图片都是已经压缩过的只是像素太高,实际页面显示的时候根本不需要太高的像素,主要是要对图片像素大小进行处理。
怎么实现你可以搜一下java 图片处理 图片缩略

❹ java web项目中有很多的图片,如何存放

一般有两种情况,
一种是前端开发需要显示的图片,这个是页面构成必须的元素,一般这些会做 动静分离,后台接口 跟 前端资源会部署在不同的服务器上,有不同的优化,一般会有转发的服务器,判断是后台接口,就转发到后台的服务器,如果是前端资源,就转发到前台的服务器。一般情况下,前端服务器,跟后台的服务器,是分离开的,有不同的人去管理,如果项目小的话,可能就全放在一个。这个优化的化,你可以去了解下 CDN原理。这个是用来优化静态资源加载情况的。
另一种情况是,显示的图片,不是前端构成的,是用户上传文件产生的,这种情况下,现在一般有专门的对象存储,用过 七牛云,跟阿里的。这个的逻辑是文件上传的时候,不是上传到我们自己的服务器,上传到专门的云服务器,我们自己数据库只需要保存这些上传文件的地址,真正使用的时候,把连接给前端,前端自动会根据内容到专门的云服务器上去获取。所有的安全,优化,带宽,缓存命中,这些都有由云服务器去保证。 简单来说,只有有钱,这些东西根本不会成为你项目的瓶颈。
作为技术,我们讨论的应该不是这些。图片会做备份,这个可以有专门的磁盘阵列去实现,简单来说,就是上传的内容保存到磁盘的时候,会自动多保存几个备份到不同的磁盘上。还是那句话,多去了解下CDN的原理,最后这段,个人理解,不一定对。

❺ Java实现简单的缓存机制原理

package qinbo hui;

/*

设计思想来自-回钦波(qq: )

*/

public class CacheConfModel implements java io Serializable{

private long beginTime;

private boolean isForever = false;

private int rableTime;

public long getBeginTime() {

return beginTime;

}

public void setBeginTime(long beginTime) {

this beginTime = beginTime;

}

public boolean isForever() {

return isForever;

}

public void setForever(boolean isForever) {

this isForever = isForever;

}

public int getDurableTime() {

return rableTime;

}

public void setDurableTime(int rableTime) {

this rableTime = rableTime;

}

}

package qinbo hui;

import java util *;

import test CacheConfModel;

/*

设计思想来自-回钦波(qq: )

*/

public class CacheMgr {

private static Map cacheMap = new HashMap();

private static Map cacheConfMap = new HashMap();

private CacheMgr(){

}

private static CacheMgr cm = null;

public static CacheMgr getInstance(){

if(cm==null){

cm = new CacheMgr();

Thread t = new ClearCache();

t start();

}

return cm;

}

/**

* 增加缓存

* @param key

* @param value

* @param ccm 缓存对象

* @return

*/

public boolean addCache(Object key Object value CacheConfModel ccm){

boolean flag = false;

cacheMap put(key value);

cacheConfMap put(key ccm);

System out println( now addcache== +cacheMap size());

return true;

}

/**

* 删除缓存

* @param key

* @return

*/

public boolean removeCache(Object key){

cacheMap remove(key);

cacheConfMap remove(key);

System out println( now removeCache== +cacheMap size());

return true;

}

/**

* 清除缓存的类

* @author wanglj

* 继承Thread线程类

*/

private static class ClearCache extends Thread{

public void run(){

while(true){

Set tempSet = new HashSet();

Set set = cacheConfMap keySet();

Iterator it = erator();

while(it hasNext()){

Object key = it next();

CacheConfModel ccm = (CacheConfModel)cacheConfMap get(key);

//比较是否需要清除

if(!ccm isForever()){

if((new Date() getTime() ccm getBeginTime())>= ccm getDurableTime()* * ){

//可以清除 先记录下来

tempSet add(key);

}

}

}

//真正清除

Iterator tempIt = erator();

while(tempIt hasNext()){

Object key = tempIt next();

cacheMap remove(key);

cacheConfMap remove(key);

}

System out println( now thread================> +cacheMap size());

//休息

try {

Thread sleep( * L);

} catch (InterruptedException e) {

// TODO Auto generated catch block

e printStackTrace();

}

}

}

}

lishixin/Article/program/Java/hx/201311/25737

阅读全文

与java缓存图片相关的资料

热点内容
幼儿编程教育培训多少钱 浏览:401
经常生气有什么东西能解压 浏览:900
代理服务器地址和端口可以怎么填 浏览:62
unity5手游编译模型 浏览:265
安卓无人机app源码 浏览:808
pl1编程语言 浏览:801
台达plc编程换算指令大全 浏览:174
手机上的编程游戏 浏览:108
服务器密码机有什么用 浏览:477
dos磁盘命令 浏览:955
单片机cpu52的功能 浏览:691
opc服务器怎么开发 浏览:373
觅喜是个什么app 浏览:402
加密cd机 浏览:946
社保用什么app缴纳 浏览:313
nodevlinux 浏览:582
腾讯tt服务器怎么登录密码 浏览:898
windows命令提示符 浏览:352
win7管理员权限命令 浏览:729
地图app哪个适合老年人用 浏览:74