急问!为什么我的java程序运行这么耗内存?

crystal2046 2007-11-04 08:39:05
我写了一个非常简单的java swing程序。完成显示一张jpg图片,图片只有450K。但是运行它,需要差不多30兆的内存。但是如果将窗体最小化,它占用内存会小一些,只有1兆多一点。不理解java为什么这么吃内存,不应该阿。请大家帮忙看看,以下是我代码。另外,可以解释一下,java程序运行时,内存主要用在哪儿了,谢谢!
package image;
import java.awt.Image;
import java.awt.Color;
import java.awt.Toolkit;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JWindow;


public class DrawImage extends javax.swing.JFrame {
Image myImage;
String imageNameOne = new String("DSCN8010.JPG");
public DrawImage() {
initComponents();
myImage = Toolkit.getDefaultToolkit().getImage(imageNameOne);
Dimension iScreen = Toolkit.getDefaultToolkit().getScreenSize();
int x = iScreen.width;
int y = iScreen.height;
this.setBounds(0,0,x,y);
this.setTitle("Image");
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setBackground(Color.BLUE);

}
public void paint(Graphics g){
g.drawImage(myImage,0,0,800,600,this);
g.dispose();

}

public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new DrawImage().invalidate();
}
});
}



}
...全文
287 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
crystal2046 2007-11-05
  • 打赏
  • 举报
回复
有没有什么办法让它占用得小一些呢?我用Xms Xmx来控制虚拟机占用的内存,但是无效。
KeSummer 2007-11-05
  • 打赏
  • 举报
回复
JVM自身也是一个程序,也是要消耗内存的,而JAVA程序是运行在JVM之上的,所以总消耗内存为两部分之和。
Lisliefor 2007-11-05
  • 打赏
  • 举报
回复
这才是JVM嘛,一个加载了jdk_install_path\jre\lib这么多jar包,以及整个解释环境,占内存很正常!
crystal2046 2007-11-05
  • 打赏
  • 举报
回复
不重复画,内存也是一样大。我是在xp下运行的。即使生成一个空的桌面程序,运行起来也有20多M,实在是不明白怎么回事儿阿
网络咖啡 2007-11-04
  • 打赏
  • 举报
回复
不用使用线程重复绘制吧

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧