Integer flyweight implementation
Friday, April 23rd, 2010Here is a unit test that illustrates the Fly Weight implementation of Integers in Java.
import junit.framework.TestCase;
public final class TestIntegers extends TestCase {
public void testValueOfGivesTheSameIntegerForSmallValues() {
assertSame(Integer.valueOf(1), Integer.valueOf(1));
}
public void testValueOfGivesADifferentIntegerForSomeValues() {
assertNotSame(Integer.valueOf(13333333), Integer.valueOf(13333333));
assertEquals(Integer.valueOf(13333333), Integer.valueOf(13333333));
}
public void testNew() {
assertNotSame(new Integer(1), new Integer(1));
assertEquals(new Integer(1), new Integer(1));
}
public void testValueOfGivesTheSameIntegerForAutoBoxing() {
assertSame((Integer) 1, (Integer) 1);
}
public void testValueOfGivesADifferentIntegerForAutoBoxing() {
assertNotSame((Integer) 13333333, (Integer) 13333333);
assertEquals((Integer) 13333333, (Integer) 13333333);
}
}
