String concatenation with + operator
In general, Java does not allow operators to be applied to String objects. The one exception to this rule is the plus (+) operator, which concatenates two strings, producing a String object as the result.
Example,
package com.ibytecode.strings.operators;
public class PlusOperator {
public static void main(String[] args) {
String str = "the" + "open" + "tutorials" + ".com";
System.out.println("Welcome to " + str);
}
}
Welcome to theopentutorials.com
Line 4 creates seven String objects in the memory which is shown in below picture
- “the”
- “open”
- “tutorials”
- “.com”
- “theopen”
- “theopentutorials”
- “theopentutorials.com”
Line 5 creates additional two String object “Welcome to” and “Welcome to theopentutorials.com”
String concatenation with primitive data types
You can combine primitive data types with Strings using the plus (+) operator.
package com.ibytecode.strings.operators;
public class PlusOperator {
public static void main(String[] args) {
int a = 10;
int b = 20;
int sum = a + b;
String result = "The sum of " + a + " and " + b + " is " + sum;
System.out.println(result);
}
}
The sum of 10 and 20 is 30
If either of the operand is String for plus (+) operator then it becomes String concatenation. The compiler simply treats the primitive value as characters and concatenates with the String.
The above code creates eight String objects in the memory
- “The sum of”
- “and”
- “is”
- “The sum of 10 “
- “The sum of 10 and “
- “The sum of 10 and 20”
- “The sum of 10 and 20 is “
- “The sum of 10 and 20 is 30”
| Left Operand | Plus Operator (+) | Right Operand | Result |
|---|---|---|---|
| Number | + | Number | Addition |
| Number | + | String | Concatenation |
| String | + | Number | Concatenation |
| String | + | String | Concatenation |
String concatenation using compound additive operator (+=)
It is legal to use += operator with Strings.
The above code can also be written as,
package com.ibytecode.strings.operators;
public class PlusOperator {
public static void main(String[] args) {
int a = 10;
int b = 20;
int sum = a + b;
String result = "The sum of ";
result += a;
result += " and ";
result += b;
result += " is " + sum;
System.out.println(result);
}
}
The += operator was used and always the left operand was a String, hence all the operations resulted in String concatenation.
Equality Operators (== and !=)
You can compare two String references using == and != operators to check whether two references are referring to the same String object in the memory.
package com.ibytecode.strings.operators;
public class EqualityOperator {
public static void main(String[] args) {
String s1 = "abc";
String s2 = "abc";
if(s1 == s2)
System.out.println("s1 == s2 is True");
String s3 = new String("abc");
if(s1 != s3)
System.out.println("s1 != s3 is True");
}
}
s1 == s2 is True
s1 != s3 is True


