No, they are different types, the operation must be normalized to one type only, and it has to be one that all works well.
The string does not work well with numbers, what number would it be to add?
Then all the operands are considered as string and there is only a concatenation and not a sum.
All Java types can be converted to string , although not always properly. Only a few strings can be converted to number and it is not the function of the compiler to check this, because in most cases it will not even know what the value is.
This is because of the associativity and precedence of operators (in this case, precedence does not matter because it is the same operator in all subexpressions). This is doing so:
x + " "
The result is
"0 "
Then he takes this result as left operator and makes a new "sum" with the right operand:
"0 " + y
The result is
"0 1"
Then he takes this result and finally makes the last sum:
"0 1" + z
The result is
"0 12"
Associativity is always from left to right in this operator (there are operators that are inverted)
In all sums you are using a string with a number.