IdentityCheck

From APIDesign

Revision as of 13:14, 26 March 2009 by PetrSmid (Talk | contribs)
Jump to: navigation, search

Is there an externally observable difference between following programs?

public static String sayHello() {
  return "Hello World!";
}
public static void sayHello() {
  String s1 = "Hello";
  String s2 = " World!";
  return s1 + s2;
}

Of course, there is! Just call the method twice:

assert sayHello() == sayHello();

The first version of the method passes the IdentityCheck test. The second does not. There are also other differences in MemoryAllocations as well as StringsUsedInConstantPool.

Personal tools
buy