急问!为什么我的java程序运行这么耗内存?
我写了一个非常简单的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();
}
});
}
}
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();
}
});
}
}
...全文
相关推荐
java面试变态32问
#### 第二问:匿名内部类是否可以继承其他类或实现接口?- **匿名内部类**本身没有名字,通常是在声明的同时进行实例化。
【JVM】灵性一问——为什么用元空间替换永久代?
【JVM】灵性一问——为什么用元空间替换永久代?在Java的虚拟机(JVM)设计中,HotSpot虚拟机曾经采用了一个名为“永久代”的内存区域,用于存储类元数据,如类信息、常量、静态变量等。
Java 面试题经典 77 问!.zip
Java面试是每位Java开发者职业生涯中的重要关卡,它考察了开发者对语言特性的理解、实践经验以及问题解决能力。这份"Java面试题经典77问!.
java 获取程序运行环境的信息
在Java编程语言中,获取程序运行环境的信息是十分常见的需求,这有助于开发者了解程序的运行状态,调试问题,或者根据不同的环境配置进行条件判断。
Java程序运行机制和过程
"Java程序运行机制和过程主要围绕Java虚拟机(JVM)和垃圾收集机制展开,这两者是Java程序高效、跨平台运行的关键。Java虚拟机作为一个抽象的计算环境,通过软件模拟实现了类似真实计算机的功


Java SE
