Not very sure about your question related to Integer and String pool however
if you use Integer.valueOf methods, you will get cached/common instance for same value used multiple times.
Which means this implicitly creates a pool of commonly used values.
http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#valueOf(int)