JAVA程序实现监视----JAVA程序内存使用情况

2016-02-19 16:26 55 1 收藏

下面图老师小编要向大家介绍下JAVA程序实现监视----JAVA程序内存使用情况,看起来复杂实则是简单的,掌握好技巧就OK,喜欢就赶紧收藏起来吧!

【 tulaoshi.com - 编程语言 】

  =========================================

  

package myprojects.jmemorydemo;
import javax.swing.UIManager;
import java.awt.*;
public class JMemoryDemo {
private boolean packFrame = false;
public JMemoryDemo() {
MainFrame frame = new MainFrame();
if (packFrame) {
frame.pack();
}
else {
frame.validate();
}
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
if (frameSize.height screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width screenSize.width) {
frameSize.width = screenSize.width;
}
frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height)
/ 2);
frame.setVisible(true);
}
public static void main(String[] args)
{
new JMemoryDemo();
}
}
===================================================
package myprojects.jmemorydemo;
import javax.swing.*;
public class ProgressThread extends Thread {
JProgressBar pbar;
JLabel label;
public ProgressThread(JProgressBar pbar,JLabel label) {
this.pbar=pbar;
this.label=label;
}
public void run() {
int min=0;
int max=100;
int free=0;
int totle=0;
int status=0;
pbar.setMinimum(min);
pbar.setMaximum(max);
pbar.setValue(status);
while(true){
try{
totle=(int)(Runtime.getRuntime().totalMemory()/1024);
free=(int)(Runtime.getRuntime().freeMemory()/1024);
}catch(Exception e){
e.printStackTrace();
}
label.setText("Free Memory :"+(int)(Runtime.getRuntime().freeMemory()/1024)+"K"+" Totle Memory Allo
cated :"
+(int)(Runtime.getRuntime().totalMemory()/1024)+"K");
status=(int)(free*100/totle);
pbar.setValue(status);
pbar.setString("Free Momery "+ status+"%");
try{
this.sleep(1000);
}catch(InterruptedException err){}
}
}
}
===============================================
package myprojects.jmemorydemo;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MainFrame extends JFrame {
private JPanel contentPane;
private BorderLayout borderLayout1 = new BorderLayout();
private JProgressBar jProgressBar1 = new JProgressBar();
private JLabel jLabel1 = new JLabel();
private JLabel jLabel2 = new JLabel();
public MainFrame() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
(MainFrame.class.getResource("[Your Icon]")));
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(borderLayout1);
this.setSize(new Dimension(304, 215));
this.setTitle("JMemoryDemo");
jLabel1.setFont(new java.awt.Font("Dialog", 0, 14));
jLabel1.setHorizontalAlignment(SwingConstants.CENTER);
jLabel1.setText("Memory Monitor");
jProgressBar1.setOrientation(JProgressBar.VERTICAL);
jProgressBar1.setFont(new java.awt.Font("Dialog", 0, 14));
jProgressBar1.setToolTipText("");
jProgressBar1.setStringPainted(true);
jLabel2.setFont(new java.awt.Font("Dialog", 0, 14));
jLabel2.setText("");
contentPane.add(jProgressBar1, BorderLayout.CENTER);
contentPane.add(jLabel1, BorderLayout.NORTH);
contentPane.add(jLabel2, BorderLayout.SOUTH);
ProgressThread pThread = new ProgressThread(this.jProgressBar1,this.jLabel2);
pThread.start();
}
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
}

  ======================================================================

  提示如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  ======================================================================

  问题的关键:

  totle=(int)(Runtime.getRuntime().totalMemory()/1024);

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  free=(int)(Runtime.getRuntime().freeMemory()/1024);

来源:http://www.tulaoshi.com/n/20160219/1612128.html

延伸阅读
---- 摘要:在Java出现之前,编写多线程程序是一件烦琐且伴随许多不安全因素的事情。利用Java,编写安全高效的多线程程序变得简单,而且利用多线程和Java的网络包我们可以方便的实现多线程服务器程序。 ---- Java是伴随Internet的大潮产生的,对网络及多线程具有内在的支持,具有网络时代编程语言的一切特点。从Java的当前应用看...
IP协议是Internet上所有信息的传播手段,UDP(User Datagram Protocol,用户数据报协议)数据报被封装在IP包中,发送到网络上适当的机器。众所周知,大多数IP使用单点发送,即从一个主机发送一个包到另一个主机上。 !-- frame contents -- !-- /frame contents -- 然而,IP协议也具有多点发送的能力,若要使用多点发送时,一个...
安装配置完Java的jdk,下面就开始写第一个java程序--hello World.用来在控制台输出“Hello World”。首先,我们用最原始的方法,即用文本编辑器来写代码。在任意一个盘符下,以D盘根目录为例,在这个目录下建立一个txt文本,命名为HelloWorld,然后把后缀改为java,即HelloWorld.java。    然后打开编辑代码,如下: 代码如下: ...
  前言: 关于 JWS JWS 是作为 JSR-56 的一部分而创建的,目的是提供一种方法来分发在客户端上的 JVM 中运行的 Java 应用程序。JWS 包括以下特征: 部署     运行 JWS 应用程序包括选择 Html 链接,与打开新的页面没有什么区别,惟一的不同之处在于 Web 服务器页面是 .jnlp 文件,该文件启动 JW...
垃圾收集是一个比较复杂的过程。通常,Java运行时会遍历堆,检查不再被其他对象引用、从而可以安全删除的对象,然而,由于垃圾收集占用CPU周期,所以它可能会影响应用程序代码的执行。即,假如在执行应用程序代码的过程中执行垃圾收集,则应用程序代码的响应时间可能延长。这会导致用户事务延迟的延长。更为糟糕的是,因为用户不知道何时会...

经验教程

940

收藏

92
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部