Just to confirm my own understanding, I can't parse a primitive (e.g an "int") to another primitive type (e.g a "double") without first of all wrapping that "int" into an Integer? In fact, apart from arithmetic functions I cant do very much with an int (or any primitive) at all?
>>I cant do very much with an int (or any primitive) at all?
No, you can't do much with primitives, except build Java objects, which essentially allows you to do everything.
Remember, pretty much every standard Java object can be broken down and flattened out into nothing but the basic Java primitive types from which it is made.
Different primitive types use memory, those magnetic, binary ones and zeroes, in different ways. Obviously, a boolean value uses a bit of memory to represent true or false, while a char uses a series of bits to represent a character. So, moving between primitive types that used memory for different purposes can create some weird results, as you would expect. Also, some primitive types just use more bits of memory than others, so again, moving between a large long and a small short just has data truncation problems.
In the code sample below, which all compiles, you can see a double is 'cast' into an int. Even though they're different types with different sizes, a cast can force the JVM to do what you want it to do. "Casting" is an important term to get familiar with in Java.
You'll also notice I take a String of numbers and turn it into an int. The method is called 'parseInt.' When we take a string and turn it into a number, that's referred to as 'parsing.' Just all part of the lingo that you've got to get familiar with if you want to bluff your way through a Java job interview. How's my bluffing doing?