I've got two methods to read in a string, and create Character objects:
static void newChar(String string) {
int len = string.length();
System.out.println("Reading " + len + " characters");
for (int i = 0; i < len; i++) {
Character cur = new Character(string.charAt(i));
}
}
and
static void justChar(String string) {
int len = string.length();
for (int i = 0; i < len; i++) {
Character cur = string.charAt(i);
}
}
When I run the methods using an 18,554,760 character string, I'm getting wildly different run times. The output I'm getting is:
newChar took: 20 ms
justChar took: 41 ms
With smaller input (4,638,690 characters) the time isn't as varied.
newChar took: 12 ms
justChar took: 13 ms
Why is new so much more efficient in this case?
EDIT:
My benchmark code is pretty hacky.
start = System.currentTimeMillis();
newChar(largeString);
end = System.currentTimeMillis();
diff = end-start;
System.out.println("New char took: " + diff + " ms");
start = System.currentTimeMillis();
justChar(largeString);
end = System.currentTimeMillis();
diff = end-start;
System.out.println("just char took: " + diff+ " ms");