📖 Scenario: Imagine you are working on a simple program that compares two words to see if they are the same. Different programming languages handle words (strings) in different ways. In Java, strings are objects and comparing them needs special care.
🎯 Goal: You will create two string variables with the same text, then compare them using both the == operator and the equals() method to see the difference in results.
📋 What You'll Learn
Create two string variables named word1 and word2 both with the value "hello"
Create a boolean variable named compareWithDoubleEquals that stores the result of word1 == word2
Create a boolean variable named compareWithEqualsMethod that stores the result of word1.equals(word2)
Print the values of compareWithDoubleEquals and compareWithEqualsMethod
💡 Why This Matters
🌍 Real World
Understanding how strings work in Java helps avoid bugs when comparing text, such as user input or file data.
💼 Career
Many programming jobs require working with strings correctly, especially in Java backend development and Android apps.
Progress0 / 4 steps
1
Create two string variables
Create two string variables called word1 and word2 both set to the exact value "hello".
DSA Java
Hint
Use String word1 = "hello"; and String word2 = "hello"; to create the variables.
2
Compare strings using ==
Create a boolean variable called compareWithDoubleEquals and set it to the result of word1 == word2.
DSA Java
Hint
Use boolean compareWithDoubleEquals = word1 == word2; to compare the two strings.
3
Compare strings using equals() method
Create a boolean variable called compareWithEqualsMethod and set it to the result of word1.equals(word2).
DSA Java
Hint
Use boolean compareWithEqualsMethod = word1.equals(word2); to compare the two strings by content.
4
Print the comparison results
Print the values of compareWithDoubleEquals and compareWithEqualsMethod using two separate System.out.println statements.
DSA Java
Hint
Use System.out.println(compareWithDoubleEquals); and System.out.println(compareWithEqualsMethod); to print the results.
Practice
(1/5)
1. In Java, which of the following statements about String objects is true?
easy
A. Strings are stored as linked lists of characters.
B. Strings can be changed directly by modifying their characters.
C. Strings are immutable, meaning once created, they cannot be changed.
D. Strings are always stored in the stack memory.
Solution
Step 1: Understand Java String immutability
In Java, String objects cannot be changed after creation. Any modification creates a new String object.
Step 2: Compare other options
Strings are not linked lists, and they are stored in heap memory, not stack.
Final Answer:
Strings are immutable, meaning once created, they cannot be changed. -> Option C
Quick Check:
Java String immutability = true [OK]
Hint: Remember: Java Strings never change after creation [OK]
Common Mistakes:
Thinking Strings can be changed in place
Confusing String storage with primitive types
Assuming Strings are linked lists
2. Which of the following is the correct way to create a new String object in Java?
easy
A. String s = new String("hello");
B. String s = String("hello");
C. String s = new string("hello");
D. String s = 'hello';
Solution
Step 1: Check Java String creation syntax
The correct syntax uses the keyword new and capitalized String class: new String("hello").
Step 2: Identify incorrect options
String s = String("hello"); misses new, C uses lowercase string, and D uses single quotes which are for chars, not Strings.
Final Answer:
String s = new String("hello"); -> Option A
Quick Check:
Correct String constructor syntax = String s = new String("hello"); [OK]
Hint: Use new String("text") with capital S and double quotes [OK]
Common Mistakes:
Using single quotes for Strings
Using lowercase 'string' instead of 'String'
Omitting the new keyword
3. What will be the output of the following Java code?
String a = "hello";
String b = "hello";
System.out.println(a == b);
medium
A. Runtime exception
B. false
C. Compilation error
D. true
Solution
Step 1: Understand String literals and pooling in Java
Both a and b refer to the same String literal in the String pool, so a == b compares the same object reference.
Step 2: Evaluate the == operator on String literals
Since both point to the same object, a == b returns true.
Final Answer:
true -> Option D
Quick Check:
String literal pooling makes == true [OK]
Hint: String literals share references, so == returns true [OK]
Common Mistakes:
Confusing == with .equals() for content check
Assuming == always returns false for Strings
Ignoring String pool behavior
4. Identify the error in the following Java code snippet:
String s = "hello";
s[0] = 'H';
System.out.println(s);
medium
A. Strings are immutable; characters cannot be changed by index.
B. Syntax error: single quotes cannot be used for characters.
C. Runtime error: index out of bounds.
D. No error; output will be "Hello".
Solution
Step 1: Check String immutability in Java
Strings cannot be changed by modifying characters at an index because they are immutable.
Step 2: Analyze the code error
Attempting s[0] = 'H'; causes a compile-time error since Strings do not support indexing for assignment.
Final Answer:
Strings are immutable; characters cannot be changed by index. -> Option A
Quick Check:
Immutable Strings prevent index assignment [OK]
Hint: Strings can't change characters by index in Java [OK]
Common Mistakes:
Trying to modify String characters directly
Confusing char arrays with Strings
Expecting runtime error instead of compile error
5. Given the following Java code, what will be the output?