-Java will force the primitive data type to a string in order to concatenate with the other string
-for example:
int x = 3;
int y = 8;
System.out.print("I have " + x + y + " dollars");
-in the above example, we would actually be printed out, I have 38 dollars, and this is because Java reads from left to right so it sensed that we have a string first inside the print statement, so when it detected the ints, it forced them to strings (so 3 became "3" and 8 became "8")
-after Java had everything inside the print statement in terms of strings, it concatenated everything together
-we could have fixed this problem by either writing the print statement like this: System.out.print(x + y + " is how much I have");, and in this situation, Java read the mathematical operation between the ints first, so it did that first, then forced the sum of x and y to a string to concatenate it with the other string
-we could have also done this to fix it: System.out.print("I have " + (x + y) + " dollars);, and in this situation, by order of operations, Java first read the mathematical operation and then performed it first, and then it forced the sum of x and y onto a string and then concatenated it with the other two strings