這里我主要和大家一起討論靜態(tài)變量與set/get方法。這些都是我們經(jīng)常接觸到的,特別是使用多個類的時候,靜態(tài)變量與set/get方法就會頻繁被調(diào)用到,到底是哪個好點呢?
package Optimize;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class staticTest extends MIDlet {
public staticTest() {
super();
// TODO Auto-generated constructor stub
}
protected void startApp() throws MIDletStateChangeException {
// TODO Auto-generated method stub
long timer = 0L;
data d = new data();
timer = System.currentTimeMillis();
for (int k = 100000; k > 0; k--) {
d.setj(k);
}
System.out.println(System.currentTimeMillis() - timer);
timer = System.currentTimeMillis();
for (int k = 100000; k > 0; k--) {
data.i = k;
}
System.out.println(System.currentTimeMillis() - timer);
}
protected void pauseApp() {
// TODO Auto-generated method stub
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub
}
}
class data {
protected static int i = 0;
protected int j = 0;
public data() {
}
public void setj(int j) {
this.j = j;
}
public int getj() {
return j;
}
}
這里我主要和大家一起討論靜態(tài)變量與set/get方法。這些都是我們經(jīng)常接觸到的,特別是使用多個類的時候,靜態(tài)變量與set/get方法就會頻繁被調(diào)用到,到底是哪個好點呢?
package Optimize;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class staticTest extends MIDlet {
public staticTest() {
super();
// TODO Auto-generated constructor stub
}
protected void startApp() throws MIDletStateChangeException {
// TODO Auto-generated method stub
long timer = 0L;
data d = new data();
timer = System.currentTimeMillis();
for (int k = 100000; k > 0; k--) {
d.setj(k);
}
System.out.println(System.currentTimeMillis() - timer);
timer = System.currentTimeMillis();
for (int k = 100000; k > 0; k--) {
data.i = k;
}
System.out.println(System.currentTimeMillis() - timer);
}
protected void pauseApp() {
// TODO Auto-generated method stub
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub
}
}
class data {
protected static int i = 0;
protected int j = 0;
public data() {
}
public void setj(int j) {
this.j = j;
}
public int getj() {
return j;
}
}
測試出來的結(jié)果是讓人興奮的,因為使用靜態(tài)變量比get/set方法的速度快十倍以上,這么大的差距是我沒有想到的,另外用靜態(tài)變量所使用的內(nèi)存值還要少點,這更讓我們感覺到靜態(tài)變量的好