Operators, String Concatenation & Object Equality (== vs equals())
1Concept
Java provides standard arithmetic and logical operators. Critical rule: == compares primitive values or reference memory addresses; .equals() compares semantic object contents. Strings in Java are immutable objects managed in the String Pool.
2Architecture Diagram
String Pool Comparison:
s1 = "Java" (Points to Pool Addr 0x100)
s2 = "Java" (Reuses Pool Addr 0x100) ──► s1 == s2 is TRUE
s3 = new String("Java") (New Heap Addr 0x200) ──► s1 == s3 is FALSE, but s1.equals(s3) is TRUE!3Code Example
Stage 0 Language Foundations
public class OperatorsDemo {
public static void main(String[] args) {
String s1 = "CareerAI";
String s2 = "CareerAI";
String s3 = new String("CareerAI");
System.out.println("s1 == s2 (String Pool check): " + (s1 == s2));
System.out.println("s1 == s3 (Reference check): " + (s1 == s3));
System.out.println("s1.equals(s3) (Content check): " + s1.equals(s3));
// Ternary operator
int score = 85;
String grade = score >= 80 ? "Distinction" : "Pass";
System.out.println("Score " + score + " Grade: " + grade);
}
}4Expected Output
s1 == s2 (String Pool check): true s1 == s3 (Reference check): false s1.equals(s3) (Content check): true Score 85 Grade: Distinction
5Key Takeaways
- ✓Always use .equals() or Objects.equals(a, b) to compare strings and objects in Java.
- ✓String concatenation inside loops creates temporary StringBuilder instances; use explicit StringBuilder.
- ✓Logical && and || perform short-circuit boolean evaluation.