有人可以解释一下为什么下面的代码会导致内存泄漏吗?
从 ~27 MB 开始:
# 循环 | MB消耗
- 400.... | 44
- 800.... | 60
- 1200.. | 77
- 1600.. | 99
- 2000.. | 99
- 3000.. | 116,0
- 4000.. | 116,4
- 5000.. | 124
// ------------------------------
// executer service
ScheduledExecutorService $exec = Executors.newSingleThreadScheduledExecutor();
$exec.scheduleAtFixedRate(new Runnable()
{
@Override
public void run(){
try{
Process $p = Runtime.getRuntime().exec("tasklist /fi \"Imagename eq mspaint.exe\"");
InputStreamReader $ir = new InputStreamReader($p.getInputStream());
BufferedReader $br = new BufferedReader($ir);
String $line = $br.readLine();
while($line != null){
System.out.println($line);
$line = $br.readLine();
}
$line = null;
$br.close();
$br = null;
$ir.close();
$ir = null;
$p = null;
}catch(IOException $ex){System.out.println("Error" + $ex);}
}// run() end
} /* runnable object end */, 0, 50, TimeUnit.MILLISECONDS);
// ------------------------------