To clearly specify Gabriels explanation:
Numeric types are all by value. (speed reason)
All other data types are objects and thus by reference (by typesafe object references, not C like pointer)
Numeric types are all by value. (speed reason)
All other data types are objects and thus by reference (by typesafe object references, not C like pointer)