This is because Java evaluates expressions with a 'precedence'. In this case, it starts at the left, and it works to the right, because the operations are all + they all have the same precedence so the left-to-right order is used. In the first 'addition', you add a number and a String. Java assumes the '+' is meant to do String concatenation, and you get the result "10 ". You then add that to 20, and get the (String concatenation) result "10 20". Finally you add the 30, again adding to a String, so you get the result"10 2030"`.
Note, if you change the order of your operations to:
System.out.println(num1+num2+" "+num3);
the num1+num2 will be treated as numbers, and will do numeric addition, giving the final result: "30 30"
To get the correct value you can change the evaluation order by making a sub-expression by using parenthesis (...) (which have a higher operator precedence than '+', and get the result with:
System.out.println(num1 + " " + (num2 + num3));
The num2 + num3 is evaluated first as a numeric expression, and only then is it incorporated as part of the string expression.