This does not work, since "5" is
String and String cannot be implicitly converted to int.
This is OK, is creates int variable i and initializes it with value 5;
This is also OK. It creates Integer variable i, creates an object using Integer(String) constructor with parameter "5" and initializes i with reference to that object.
This is also OK, it just uses different constructor.
This will compile, but throws exception at run-time, since "aaa" cannot be converted to any number.
[ August 18, 2006: Message edited by: Vlado Zajac ]