C++多繼承的細節

gudesheng發表於2008-01-03

//Color.java

public final class Color   //final表示該類不可被重寫
{
static final int RED=0xff0000;
static final int GREEN=0xff00;
static final int BLUE=0xff;
static final int YELLOW=0xffff00;
static final int BLACK=0;
static final int WHITE=0xffffff;

public static int newColor(int r,int g,int b)
{
  return (r&0xff)<<16|(g&0xff)<<8|(b&0xff);
}
}

 

//MemoryMonitor.java 測試記憶體使用峰值

import java.util.Date;
import javax.microedition.lcdui.Graphics;
class MemoryMonitor implements Runnable
{
private static final long defaultInterval=10;//預設的時間間隔是10ms

private static final long minInterval=1;//最小的時間間隔是1ms
private long interval;//定義時間間隔

private Runtime rt;//lang包裡的一個類,每個java應用程式都有一個獨立的Runtime類例項,用於和應用程式執行的環境互動
private long usedMemory;//已經用掉的記憶體
private long maxUsedMemory;//已經被用掉的最大記憶體
private boolean alive=true;//是否存活

MemoryMonitor()
{
  this(defaultInterval);
}
MemoryMonitor(long interval)
{
  if(interval>minInterval)//如果時間間隔大於最小時間間隔
   this.interval=interval;
  else
   this.interval=defaultInterval;//否則時間間隔是預設的時間間隔
  new Thread(this).start();//啟動新執行緒
}
public void run()
{
  while(alive)
  {
   rt=Runtime.getRuntime();//取得一個Runtime的例項
   usedMemory=rt.totalMemory()-rt.freeMemory();//已經用的記憶體=總記憶體-剩餘記憶體
   rt=null;
   maxUsedMemory=Math.max(usedMemory,maxUsedMemory);//最大記憶體是已用記憶體和已用最大記憶體裡的教大的一個
   try
   {
    Thread.sleep(interval);//讓執行緒休息一個時間間隔拉
   }
   catch(Exception e)
   {
   }
  }
}
public void end()
{
  alive=false;
}
public void paint(Graphics g,int x,int y,int anchor)
{

g.drawString("maxUsedMemory="+maxUsedMemory,x,y,anchor);//在螢幕上畫出已經用的最大記憶體
}
}



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=745624


相關文章