Your question is Java Memory Management Process. Take a moment with it on the right.
Talk me through your thinking if you like. When you're confident, submit your answer and I'll grade it like a real screen (7/10 or better passes).
Relevance Lab's automation platform keeps a cache of recent test-run logs in memory for quick QA dashboard access. Here's the class responsible for it.
import java.util.*;
import java.io.*;
public class TestRunLogger {
private static List<String> allLogs = new ArrayList<>();
public void logRun(String testId, String result) {
String entry = testId + ":" + result;
allLogs.add(entry);
try {
FileWriter fw = new FileWriter("run_history.log", true);
fw.write(entry + "
");
} catch (IOException e) {
e.printStackTrace();
}
}
public String buildReport() {
String report = "";
for (String log : allLogs) {
report = report + log + "
";
}
return report;
}
}
What would the memory management process be for this code in Java? Walk through what happens as logRun is called repeatedly over a long-running test session, and what you'd change.