This week's book giveaway is in the OCMJEA forum. We're giving away four copies of OCM Java EE 6 Enterprise Architect Exam Guide and have Paul Allen & Joseph Bambara on-line! See this thread for details.
In this particular case, you think wrong, my friend. The Java language specification is quite clear on this point. All integer literals are of "int" type, and all floating-point literals are "double". In the example we're looking at, the "int" version is called. You could use "aMethod((byte) 12)" to call the byte version (or pass a variable, of course.)
Now, the original poster didn't ask this, but I'll tell him anyway: this is a very bad idea. This sort of wonton use of overloading can be really confusing. In general, overloading a method on multiple different integral types this way is a bad idea, and should be avoided.