Variables are just boxes to store a value in (this works nicely with 'simple' data like integers. For objects, it gets a bit more complicated). You have variables (boxes) of different sizes, see
http://java.sun.com/docs/books/jls/seco ... s.doc.html section 4.2.1. A byte-sized variable can store values -128 to 127, etc.
This is especially important if you have not so much room (eg in an embedded device), or if you have storage requirements eg in a file.
In general, you should not care very deeply about the sizes, and just use 'int' for everything, unless -2147483648 to 2147483647 is not large enough :)
Byte code is something different entirely. It is Java program code, translated for your computer (JVM (Java Virtual Machine), to be precise), so it can run the program. Not something you should care much about when still learning about variables.