📖 Scenario: Imagine you are working on a simple Java program that handles user names. You want to understand how strings behave when you try to change them.
🎯 Goal: You will create a string, try to change it, and observe how Java handles string immutability.
📋 What You'll Learn
Create a string variable with a specific value
Create a second string variable by modifying the first string
Compare the original and modified strings
Print the results to observe immutability
💡 Why This Matters
🌍 Real World
Understanding string immutability helps avoid bugs when working with text data in applications like user input processing or file handling.
💼 Career
Many programming jobs require knowledge of how strings behave to write efficient and correct code, especially in Java backend development.
Progress0 / 4 steps
1
Create the original string
Create a string variable called originalName and set it to the value "Alice".
Java
Hint
Use String originalName = "Alice"; to create the string.
2
Create a modified string
Create a string variable called modifiedName by adding the text " Smith" to originalName using the + operator.
Java
Hint
Use String modifiedName = originalName + " Smith"; to create the new string.
3
Compare the original and modified strings
Create a boolean variable called isSame that checks if originalName and modifiedName are the same using the equals() method.
Java
Hint
Use boolean isSame = originalName.equals(modifiedName); to compare the strings.
4
Print the results
Print the values of originalName, modifiedName, and isSame using System.out.println().
Java
Hint
Use System.out.println() to print each variable on its own line.
Practice
(1/5)
1. What does it mean that a String in Java is immutable?
easy
A. Once created, the string cannot be changed.
B. The string can be changed anytime.
C. The string changes automatically when printed.
D. The string can only be changed inside loops.
Solution
Step 1: Understand the meaning of immutability
Immutability means the object cannot be changed after creation.
Step 2: Apply this to Java Strings
Java strings cannot be modified once created; any change creates a new string.
Final Answer:
Once created, the string cannot be changed. -> Option A
Quick Check:
String immutability = cannot change after creation [OK]
Hint: Immutable means no change allowed after creation [OK]
Common Mistakes:
Thinking strings can be changed directly
Confusing immutability with constant variables
Assuming strings change when printed
2. Which of the following is the correct way to create a new string by changing a character in an existing string str?
easy
A. str.charAt(0) = 'A';
B. str[0] = 'A';
C. str = "A" + str.substring(1);
D. str.replaceChar(0, 'A');
Solution
Step 1: Check syntax for changing characters in strings
Strings are immutable, so direct assignment like str.charAt(0) = 'A' is invalid.
Step 2: Use substring to create a new string
Concatenate "A" with the substring from index 1 to form a new string.
Final Answer:
str = "A" + str.substring(1); -> Option C
Quick Check:
Use substring + concat to change string [OK]
Hint: Use substring and concat to create new string [OK]
Common Mistakes:
Trying to assign directly to string characters
Using array-like indexing on strings
Using non-existent methods like replaceChar
3. What is the output of the following code?
String s = "hello";
s.toUpperCase();
System.out.println(s);
medium
A. HELLO
B. hello
C. null
D. HELLOhello
Solution
Step 1: Understand that strings are immutable
The method toUpperCase() returns a new string but does not change the original string s.
Step 2: Check what is printed
Since s was not reassigned, printing s outputs the original string "hello".
Final Answer:
hello -> Option B
Quick Check:
Original string unchanged = hello [OK]
Hint: toUpperCase returns new string; original stays same [OK]
Common Mistakes:
Assuming toUpperCase changes original string
Expecting uppercase output without reassignment
Confusing method effect with print output
4. Find the error in this code snippet:
String s = "test";
s.charAt(0) = 'T';
System.out.println(s);
medium
A. Cannot assign to charAt() result; strings are immutable.
B. Missing semicolon after declaration.
C. charAt() method does not exist for String.
D. System.out.println() cannot print strings.
Solution
Step 1: Check usage of charAt()
The method charAt() returns a character but cannot be assigned a new value.
Step 2: Understand string immutability
Strings cannot be changed by assigning to characters; this causes a compile error.
Final Answer:
Cannot assign to charAt() result; strings are immutable. -> Option A
Quick Check:
charAt() result is read-only [OK]
Hint: charAt() returns char, cannot assign to it [OK]
Common Mistakes:
Trying to assign to charAt()
Thinking strings are mutable
Ignoring compile errors on assignment
5. You want to replace all occurrences of the letter 'a' with 'b' in a string input. Which code correctly does this considering string immutability?
hard
A. input.replace('a', 'b'); System.out.println(input);
B. input.charAt(0) = 'b'; System.out.println(input);
C. input.toCharArray()[0] = 'b'; System.out.println(input);
D. input = input.replace('a', 'b'); System.out.println(input);
Solution
Step 1: Understand replace() returns new string
The replace() method returns a new string with replacements but does not change the original.
Step 2: Assign the new string back to input
To update input, assign the result of replace() back to it before printing.
Final Answer:
input = input.replace('a', 'b'); System.out.println(input); -> Option D
Quick Check:
Assign replace result to variable to update string [OK]
Hint: Assign replace() result to variable to update string [OK]
Common Mistakes:
Calling replace() without assignment
Trying to assign to charAt() or array elements
Expecting original string to change automatically
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.